Montag, 6. Juli 2015

Get involved in Stack Exchange

StackExchange has become one of the most popular Q&A platforms. Having started with StackOverflow there are now many sites to explore and participate in.
In summer 2010, a staging area called Area 51 was launched where you can suggest new sites. Once there is enough appreciation by the community a beta is launched. A few examples currently in beta i especially like are e.g. Open Source, Buddhism and CodeReview.

Sonntag, 3. Mai 2015

Practicing Oracle12c migration made simple

My professional experience with Oracle is that there is no "5 minute introduction tutorial". That means you need to be serious about getting started with Oracle (or just try out a new feature) because things won't get smooth until you pass the entry barrier of installing and configuring Oracle.
Sadly, this experience results in
  1. Developers that are used to more lightweight persistence layers just...don't get started with Oracle ("Meh, let´s try MongoDb or Elasticsearch instead")
  2. Database Administrators that would benefit from keeping up with the latest features...just skip it because it's too cumbersome to get an isolated playground Oracle DB up and running
What can we do to lower this entry barrier? Vagrant to the rescue! Over the past weeks i contributed to the GitHub repository wkoertgen/train.oracle12.migration whichs aims to alleviate most of the nastyness of setting up Oracle. It is also a great resource on installation and configuration.

hello.nVLC: A minimal WPF Media Player

A few days ago, i put hello.nVLC on GitHub. This is a minimal WPF media player application comparing an MVVM media player implementation for Windows Media Player and VLC using

  • nVLC, a great managed wrapper for VLC by Roman Ginzburg, 
  • VLC.Native, a NuGet package containing the native VLC dependencies and
  • FontAwesome.Sharp, our WPF wrapper for using awesome icons.

Mittwoch, 29. April 2015

Vagrant: Optimizing virtual Ubuntu/Debian boxes

A while ago, we used hilverd/vagrant-ubuntu-oracle-xe to alleviate the testing bottleneck, i.e. too many developers on too few dedicated testing environments. Since then, i am a big Vagrant fan as this really boosted up our testing feedback cycle time.

However, even oracle-xe is anything but a lightweight installation, so minimizing your base box is a good thing to do.

There are quite a few resources on how to optimize virtual boxes for vagrant. I picked up some of these and documented what worked well in this gist mkoertgen/ Enjoy!

Sonntag, 26. April 2015

Squirrel.Windows - Starterkit

You probably know Slack, the team communication tool. If not, go see. It's awesome. The Slack windows app is one of the most prominent users of Squirrell for installation & update. Squirrel itself is an ingeniously simple library for installing and updating desktop windows applications. It uses NuGet packaging to build app releases and supports delta compression for updates. You don't need a NuGet feed to host your releases, just a static web server. If you want to try out Squirrel, you may have a look at the starter sample mkoertgen/hello.squirrel i comitted today. It's a minimal WPF application with an update button.

As extra candy i automated "releasifying" updates with msbuild, i.e. you can build updates by typing

    build.bat HelloSquirrel\HelloSquirrel.csproj /t:Deploy /p:DropLocation=c:\temp\Releases


Donnerstag, 23. April 2015

Faceted Search using Elasticsearch and WPF

Today i uploaded a quick sample on how to build faceted navigation for Elasticsearch in WPF which includes highlighting of search results. Below is a screenshot of the sample app. Enjoy!

Sonntag, 19. April 2015

Work tip: Disable Chrome history

If you are using Google Chrome at work you should probably disable storing history to avoid your intranet urls being synced out into the Google cloud. Here is how: How to Prevent Google Chrome From Storing Browser History. Chrome basically stores history and other data in a local SQLite database. The tip is a little bit of a hack: You first empty the database (clear history) and then prevent Chrome to modify it (by making it read-only).