I purchased a current model MacMini (Mid 2011) to serve as a Continuous Integration server. I chose the one model that has 4 GB and 2 HDDs because the larger RAM certainly should benefit the overall performance and 2 HDDs would give me an opportunity to experiment with striping the hard disks to see what performance could be gotten from that.
When I first formed the idea that evolved into Linguan it was because it was a tedious process to edit strings files with text editors and never being sure if you translated everything. In school my Latin teacher told us (incorrectly) that Ecstacy comes from ex (“out of”) and tease (“cause pain”) and that is what Ecstasy really means: to be without pain.
Many years later I was reminded of that because it was a pain (you know where) to deal with translations, especially if you had more than one extra language or had to deal with translators. As soon as you update your app with some new features you instantly lose track what additional tokens which of the translators has to provide a translation for.
Linguan comes to the rescue for all of us pained developers. It’s basically a very smart editor for .strings files. Plus a validator that is able to find inconsistencies and for example if you saved a strings file as UTF8. Plus an export and merge function that lets you send all untranslated tokens of specific languages to translators and merge their results back into your project. And you can even tell your translator to get Linguan because it gives him a nice interface to work through the strings files you send him.
Devin Snipes asks:
1. When it comes to iOS programming, does it matter what type of machine you have? I’m using a 2010 MacBook Air, and everything feels fine, although I’ve heard from some developers that xcode feels sluggish on 4GB of ram and they must get every Mac that comes out.
2. When compiling and submitting an app for 3.1.3, is it best to test your apps on all devices (i.e first generation devices) or would my iPhone 4 and the simulator do the trick?
Thank you for taking the time to answer my questions. Although I could perform a simple Google search for these questions, I’d prefer to get the answer from a well-known, trusted iOS developer.
It’s early in the morning and I am extraordinarily grumpy. But since you asked nicely I’ll try to give you my opinion.
Almost always when we iOS developers want to display some rich text we are using UIWebView. That’s not by choice, since traditionally Apple did not provide any classes to us being able to show formatted text.
That changed slightly with the iPad, because in 3.2 we got CoreText as well as CATextLayer. CoreText gives us NSAttributedString which is basically a string that can have different attributes for ranges of characters. Those attributes can either be standard ones, like to describe the font, color, size and paragraph format. Or they can be your own arbitrary attributes.
I’ve shown how to programmatically construct these in my previous article on CoreText. The one thing though that is still missing from making CoreText really useful are ways to create attributed strings. Clearly doing it all in code is not feasable.
In this article I am introducing an Open Source project that aims to provide the missing functionality to iOS developers.
A few days ago I mentioned to my father-in-law Alois (who happens to be a passionate wood tinkerer) that it would be nice to have something to prop up an iPad for watching movies or playing poker. A quick search yielded one at Wired, a website woodenipadstands.com and the one that Matt Legend Gemmell had recomended: WoodPad
A mere four days later he presented these prototypes to us. Ingenious!
You can see that it works well in portrait and landscape and the iPad stand has two angles at which you can use them, 15 and 25 Degrees. To make it stand even firmer he extended to pieces at the base, so it sits rock-solid on your table. The 15 Degrees also work very well with the picture frame mode which does support landscape as well.
A while back I reviewed the only two tripod mounts I could find to fit my iPhone 4 and to this date its one of the most searched for articles on this blog. So its only fitting that I would also review the glif as soon as it became available. The two previous contenders for the crown of iPhone 4 Tripod Mounts were the Mosy Mount and the U+G4 Holder. There I preferred the latter because of how snug the holder fit my iPhone4 and because of the engineering effort that went into it.
You might remember reading how the two inventors of the GLIF wrote their own success story on Kickstarter. Originally they where shooting for $15,000 but with the help of some friendly linking they soon went past the $100,000 mark. When backing the project you had several options. One of the regular options would get you one glif as soon as mass production would start. I opted for the $50 variant where I would also receive a pre-release glif so that I could review it before everyone else. For a while I was tempted to go for the VIP option which would have gotten me a dinner with the guys, but being in Europe made this impossible.
When you first see the Glif you might think that “there’s something missing”, it is that simple. Holders before it would encompass or grab the iPhone 4 in some way to prevent it from obeying gravity. Here is the first major difference. The glif only gribs as much of the iPhone 4 as is absolutely necessary. The material has a somewhat intentional roughness without which the iPhone would simply slide out. But because of the friction and precision molding that much material is all it takes to firmly secure the iPhone in place. Theoretically even upside down, but I would not dare doing that without some extra tape. The first few times it would hold upside-down, but I suspect that insertion of the iPhone flattens the structure of the material slightly over time which would reduce the friction to a point where the iPhone 4 would fall out. Now the material of the final production Glifs might be somewhat different, but generally it would not be wise to risk you iPhone just to boast to your friends: “weeee! upside down!”
UPDATE: I also reviewed the glif and compared it with these mounts.
If you’re like me then you justified getting an iPhone 4 (on top of the original 2G, 3G and 3GS) by telling your wife “honey, this has an HD camcorder BUILT IN. By getting this we actually SAVE the money for an extra device.” And then on the second or third video you’re shooting you’ll find that you have the hands of a programmer and not of a surgeon. Meaning that it is next to impossible holding the iPhone perfectly steady.
Yet once more we see that technology has advanced to a level where it is no longer the limiting factor, but instead the human body is. For all intents and purposes of my iPhone business I deem the quality of the iPhone 4 video recorder more than sufficient. If only there was something that would help me steady my aim and frame. Well, there is, because this problem is one that photographers and videographers have been having for a long time. And most of the solutions revolve around contraptions that allow you to levitate your lens in a fixed distance from the floor.
I am of course talking about the tripod. You might remember from geometry that any surface can be described by 3 points. Tripods define a point by three feet. The point where you can mount a camera usually has two or three degrees of freedom which you an restrict by tightening screws. One or two of these screws might be attached to a handle that would allow you to move the tripod head around and adjust the tightness of one scree by turning your wrist.
I shopped around for a 3-way tripod to mount my iPhone 4 on and ended picking the Cullmann Nanomax 250 which is a sturdy but extremely lightweight tripod that almost fits into my backback. Because it is made out of aluminum it weighs only 2.3 lbs (1 kg). So it’s ideally light and compact to work for a blogging developer like myself. Cullmann in Germany grants you 10 year warranty on the tripod if you register on their website.
But this article is not about my choice of tripod. Once you got one you are presented with the challenge to somehow mount your pretty iPhone on it. That’s where special cam mounts are necessary. I asked around on Twitter and two options were recommended to me. I purchased both and now I’m going to compare them so that you don’t have to.
In Austria we have a saying “Big things throw their shadows way ahead of them”. While the rest of home-staying iPhone … pardon iOS developers has only seen the Stevenote, a couple of lucky attendees where able to get their hands on a pre-BETA version of Xcode. They are still under NDA when it comes to discussing it, but you know how it is with Twitter, it’s not really possible to keep those things under wraps if people are excited and connected.
And also, since these details are now on the internet and thus public domain, wannabe journalists can scrape the few available details together and summarize them for you, my dear reader.
Generally developers love that Xcode 4 appears to be a total refresh, lots of thought is apparently being put in, all the more reason to look forward to it. Attendees of the WWDC got a download link on the Apple Developer Forums, but us regular folk only gets an error message. Some People think it was changed too much (T, T) for comfort, but a revolution is never easy.
But for the most part you find only happy tweets (T) and comments. Here’s my rundown on the features we have heard about:
- Interface Builder becoming part of Xcode for a combined IDE. T T
- There is a new Counterparts View that is really convenient. T
- There is a Code Snippet feature, possibly similar to Dashcode. T T
- LLDB will replace the current GDB debugger. T
- New LLVM compiler. (2x compile speed improvement. up to 25% runtime speed improvement. On iphone up to 60% faster apps!) T
- There will be Tabs. T
- MDI (Multi Document Interface) where you see multiple source files within the same Xcode window. T
- Great GIT Support. Improved Subversion Support, too. T T
- You will be able to choose different skins for the IDE. T
- Revamped project and target settings for choosing build configurations, localizations, deployment target,etc.
If you purchase a component from the Dr. Touch’s Parts Store you will receive a quick start guide which includes the access details to the Subversion repository that keeps my code. The address of the repository uses HTTPS protocol, which confuses some people into thinking that they could use a browser to download the files.
That’s why I made this video showing how to properly set up your Xcode to get the source for any part onto your harddisk.
The advantage of following this guide is that you end up with a “working copy” of the contents of the repository. That means that you can simply pick “SCM – Update Entire Project” and you get your copy updated to the latest version.
There are generally several methods how you could add external code to your own project, besides of simply copying it. The problem with just copying is that it’s quite hard to keep all the individual copies of a framework updated in all of your projects.
In my case I am continuing development on most of my components if I add them to one of my own apps, but I don’t want to have to make all additions that I put into the new project into the component project a second time. Development is boring if you have to repeat steps. Surely there has to be a method to have the updates stream back from the app project to the component project.
In fact, there is. The technique to use is called …
I had ordered my 27″ i7 iMac on Black Friday and expected for it to arrive on Dec 22nd as per the information on the Apple Store website. I was happily surprised to suddenly have a UPS lady at my doorstep at 5 pm. I had never gotten a package from any package delivery service that late, that was another first.
When I inquired about that, she responded: “We start at 5 am and we don’t stop until all packages are delivered”. I like that kind of service.
My brother-in-law helped me record the unboxing on my iPhone 3GS. To get it from 15 minutes down to the maximum allowed 10 minutes for YouTube I already used iMovie on the new machine.
- 27″ gorgeous LED-lit wide display. It’s also huge. Almost twice as wide as my 15″ MacBook Pro display.
- 8 GB RAM, I chose the cheaper variant where all memory banks are full because I don’t think I will need more RAM for coding
- i7 CPU, the fastest iMAC machine. It’s also the greenest because between high-power compiling it can idle more thus using less energy.
As a final test of happiness I installed XCode on it and timed a complete build (after clean all) of MyAppSales. I had to first export my certificates including private keys from my MacBook and import them on the iMac’s keychain. Then I also copied the provisioning profiles and installed all things via double click.
- MacBook Pro 2.8 GHz Intel Core 2 Duo: 12 seconds
- iMac 2.8 GHz Intel Core i7: 4 seconds
I had to double-check these results, but really the i7 compiles my biggest project 3 times as fast. You wouldn’t think that having the processor speed rated at the same value. But more cores and 2 generations later give you such a turbo-boost. “Roarr!” says the Tiger, pardon, Leopard, pardon SNOW Leopard.