Here’s a short video where I am trying to make a point of why you might like to be working in Vienna, Austria. My company Drobnik KG is looking for a Junior developer to join the team. And video is what young people respond to best these days, don’t they?
The older you get the quicker a year passes it seems. 2013 was a good year for us at Cocoanetics. Not really exceptional, we’re still waiting to get our great chance. But we cannot complain either, 2013 gets the “solid!” predicate.
We’re offline for “maintenance” until July 22nd with no way to receive emails or respond to your requests and orders. We mention this so that you know why you won’t hear from us until then. We haven’t forgotten about you, we’ve just remembered about ourselves.
So please be patient while we’re recharging.
If you have purchased components from us in the past you should have received a note from our sales team asking you for what credentials you would like on our new GitLab server.
As of this moment all Subversion access has been terminated. The components that we are still offering for sale have all been migrated to git. Of the discontinued products a few might be moved to DTFoundation are another open source project if there is any interest.
If you have no email from our sales team regarding your new credentials please email us.
In DTCoreText there is the DTCoreTextParagraphStyle class which represents an Objective-C wrapper around CTParagraphStyle. This has a method createCTParagraphStyle which creates the actual Core Text object to put in attributes of an NSAttributedString. It also knows how to create an NSParagraphStyle, but since this only exists from iOS 6 upwards and lacks a few features we’re still using the Core Text variant everywhere.
Due to the way how DTCoreText works I need to createCTParagraphStyle whenever I am constructing a sub string of the generated attributed string. This led to an unnecessarily large amount of CTParagraphStyle instances being created. So I had implemented a method long time ago to cache thusly created CoreText objects based on the ivars.
Though this was causing some problems in DTRichTextEditor and so I yanked the caching back out. Now the project has developed much further and so I felt I would want to give the caching another go. Here’s something interesting I learned.
One of the first lucky owners of the iPhone 5, David Smith, kindly ran my Image Decompression Benchmark on the latest 3 generations of iPhone. These benchmarks measure the time it takes for an image to get from disk to screen and encompass 5 resolutions, PNG crushed and uncrushed, as well as 10 compression levels of JPEG. Christian Pfandler prepared the charts for us.
We like to repeat the same benchmarks on every new CPU that Apple likes to solder into their devices, you can read past analyses iPhone 3G through iPad 2, iPad 3. One note of caution if you want to compare these to the results in this article, we changed the methodology of logging the times from NSLog to CFAbsoluteTime. NSLog itself takes up to 50 ms per logged statement. The new method is more exact and does not have this drawback of including the logging time in the measurements.
Executive Summary: the iPhone 5 can indeed be claimed to be twice as the predecessor.