Apple WWDC 2018 Announcements – A few thoughts

As I do every year, I watched the Apple WWDC 2018 keynote, for personal entertainment purposes as well as a genuine interest in what Apple is doing. The same is also true for both Google’s and Microsoft’s developer conferences. This is not a comprehensive summary as done by other Apple news sites and blogs, but rather  a few thoughts on what I’ve seen and how it may or may not affect me.

iOS Update Strategy

Every year, and with good reason, Apple mocks Google’s Android platform for lagging behind in the software update department. This year was no different, as was to be expected, but in addition to that they emphasized the support of devices dating back to 2013. Five-year-old iPhones and iPads! Take that Android.Read More »

enable_shared_from_this: boost vs. std

If you are a modern C++ developer, then you are probably using some kind of smart pointer implementation. The boost C++ libraries offer one possible solution (among many other useful features) and are generally held in high regards in the C++ community. With the latest C++11 standard, some of those ideas found their way into the standard library bundled with your C++ compiler. At some point, you very likely run into a situation where you need a shared_ptr of one of your classes, but only have a raw pointer or this available.

This is where enable_shared_from_this comes in. Boost and the standard C++ library provide this feature and they both have a very important prerequisite for this to work.
Read More »

The Pitfall of Trying to Be Too Smart When Using dllexport/dllimport

As a seasoned C++ developer I should’ve been aware of this which makes it a little bit embarrassing. But, since this issue has cost me several hours of searching through the Internet over the course of two or three days, I thought it might be worth sharing. Maybe somebody else is trying to be too smart or just doesn’t know better.

The problem? It is summarized in short in this StackOverflow question that I posted. With this blog post I’ll be a bit more elaborate and show some details.
Read More »

Grails Startup Error: ASSERTION FAILED at JPLISAgent.c

Grails always has something new to offer, not only features but also random bugs (unfortunately). Out of the blue I couldn’t even let Grails show its own version (grails –version) let alone perform any other action. This is all I got for each and every command I tried to execute.

*** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with 
message transform method call failed at 
../../../src/share/instrument/JPLISAgent.c line: 844 
Exception: java.lang.StackOverflowError thrown from the 
UncaughtExceptionHandler in thread "main"

The following runtimes were used:

  • Windows 7 64bit
  • Java 7 Update 71 64bit
  • Grails 2.4.4

Of course I removed all temporary files and folders, the “target” folder of the project and the “.grails”, “.groovy”, “.m2” and “.ivy” folders in the user directory. Nothing helped. Some say it has to do with forking processes, but playing with those settings didn’t change a thing. After all, the error happens way earlier.

Then I came across a post that mentioned to create the “.inputrc” file (on a Linux system) because through debugging it was found that Grails tries to access this files. Well, I’m not using Linux, but since I was already in the “helplessly desperate” phase I wanted to give it a shot. Surprisingly, this file already existed.

Solution: I deleted “.inputrc” from the user folder et voilà, Grails worked again.

Grails Upgrade 2.3 to 2.4: Validation Errors

Recently I have updated our Grails 2.3 based web application to Grails 2.4. Although the 2.3 release was working fine, one doesn’t want to fall too far behind. I know out of experience that this can happen very fast. If you wait too long, then at some point the migration to a newer version is almost like starting from scratch, instead of just updating a few lines of code to accommodate for deprecated APIs. The biggest problem I encountered going to version 2.4 was a behavioral change regarding the validation.
Read More »

Performance Iterating Directories Revisited

I have written about the performance of iterating directories before, in the context of Java and its switch from version 6 to 7 that brought with it the new Java NIO API. For whatever reason I felt the urge to do something similar again, but this time I wanted to compare two different approaches to recursively scanning a directory’s contents:

To make things more interesting, I implemented this in C++ using the Windows API and the Qt framework, in C# in combination with its buddy the .NET framework and, for good measure, I also threw in the old Java code from over a year ago.

Update (26.12.2014): I added additional data at the bottom of the article.
Read More »

WorkTracker v1.2.2 Released

It has been around three months since the last release, June 22nd to be exact. Since then I have made some small changes along the way, but didn’t publish them because they haven’t been in the shape that I wanted them to be for a release, but still good and helpful enough for me to use them on a daily basis. The biggest new feature is an editor. Second comes the translation and around them gather a few improvements regarding usability.

Visit the GitHub page to download the latest version.Read More »

C# LINQ Performance vs. Iteration

It’s been a while since I have written something related to programming. Time to remedy that.

Just recently my interest for the C# language rose again and to get back up to speed with the fundamentals I swallowed all videos of an absolute beginners guide on Microsoft Virtual Academy. Something that has been touched briefly was LINQ and my initial thought was: how’s the performance of that compared to how I would usually write it in C++ – where my expertise is?

Mind you, I’m not comparing C# vs C++, but merely LINQ vs. old-school iteration. Let’s go and find out.
Read More »

WorkTracker, a Little Open Source Tool

Up until my last post I was working on a little tool that helps me track the time of all (or just one) the different tasks at work. Since the work intensity went down it opened up time (yay!) for some personal stuff. We’re required to record our everyday labor and sometimes it became quite complicated to calculate how much time was spent on a single task, especially when the day didn’t start at 08:00 o’clock but some randome time earlier and ended at some random time.

Introducing: WorkTrackerRead More »

Grails i18n in Regular Classes

The Grails web development framework is a very powerful tool for quickly creating web applications ranging from simple to enterprise ready. For that, it probably provides everything a developer ever needs. And if it’s not delivered by Grails itself there are many useful plugins and tons of existing Java libraries (including the JDK, of course, the underlying SpringSource Framework and the GDK).

However, there is one thing I have stumbled across several times now and a quick search on the internet shows that I’m not alone with this problem: how can I use the internationalization features from a regular Java or Groovy class?Read More »