Link your app to something more powerful
This is a gentle reminder that you are not forced to limit yourself to any app’s built-in features when you work on Mac OS X thanks to Services with an assist from Automator. I recently utilized Automator’s Run Shell Script action to create a needed function in Xcode’s text editor.
My problem is that I follow a style guide that limits line length to 80 characters. I usually don’t have trouble with this. Xcode will show a gutter line to help prompt me to break my lines around the limit. But when editing multi-line comments it becomes a pain to reflow the new text. Other editors can do this without my help.
I know. I’m sorry.
Last time I wrote about doing imports of large data sets when using AFIncrementalStore to handle server synchronization I thought I had made an end-run around it, finding a technique which was compatible but faster. I was wrong.
Before I begin, this is not a knock on AFIncrementalStore which does its job well overall. It was my first use of this library, and I have no trouble recommending it for certain uses cases.
After my last post, when I started to test more thoroughly and use the imported data, I saw strange things. Mostly that meant my objects relationships were not what I expected. I’m fairly sure I had seen these relationships created as they should be, but in the fog of the battle which was my work on this feature, I can’t say for certain. My bad. (more…)
Imports can be, in a word… (photo by freefoto)
Before taking this advice, please see my follow-up.
AFIncrementalStore (AFIS) is a brilliant bit of open source code from Mattt Thompson. It is a great help in synchronizing a remote data source and local data storage handled with Core Data. Its magic is turning the Core Data API into a single interface to both what is on the device and on the server. Data consumers need not worry where the data resides before asking for the data. Just perform a fetch request, and AFIncrementalStore will query both the local store and the remote side to make sure that all data returned is up to date as best as it can.
There is a use case where this model fails, but that’s not a problem if you know how to deal with it.
(Audio reactive sphere by Andreas Köberle.)
For years it has been possible to write general purpose code for those data crunching cards almost all of us have in our devices by using tools like NVIDIA’s CUDA and OpenCL, but that power is rarely applied to non-graphical tasks except in high performance computing.
This article passed my attention many weeks ago, but I only recently came to read it. Two researchers implemented a finite difference simulation of a cymbal-like instrument which runs on a Mac’s GPU. (more…)
A good developer will be familiar with and use numerous libraries. If you can find a library that is a good fit for your problem, it’s probably a better solution than your first crack at it will be. And the library has been reviewed, debugged and optimized by a wide community. And more often than not, like the guy in the meme above, we can’t spend much time hot-rodding code to see how good we can get it. These can lead to work which is a little stifling for anyone who likes to think about how fast that loop could be, or how he would implement that image processing feature. Where’s the fun?