Why I might ditch the Retina 15

Buying a new machine has rarely been about money for me. I feel guilty about having an old machine sit on a shelf not doing anything (I’ve never had to replace a Mac because it ‘broke’ – my 2003 12″ PowerBook still runs great). Luckily, my family is large enough that there’s always someone who could use a newer machine than the one they have. This year, it’s my older brother. He has my 2006 MacBook Pro with its bizarre 3GB RAM cap that’s basically unusable today. He’ll be getting my 15″ retina MacBook Pro, and I’ll be buying something announced during the WWDC keynote (maybe).

Performance wise, the retina 15 is an unstoppable machine, but I’m tired of its size and weight. All the games I play work just as well on my 2010 11″ Air with the nVidia 320m so I won’t miss the dGPU if the Intel HD 5000 hype is to be believed. Assuming the retina 13 or 11 retains all the ports (I literally use all of them) I’ll be fine. I’ll miss the quad i7 for renders but I only have a 2.3 GHz so the new minimum should be faster, making the performance decrease not as bad as 50%.

I will miss 16GB of RAM, especially if I have to share some with the iGPU. That coupled with the decreased number of cores will severely limit me during the awful occasions I need a Windows 7 virtual machine for.

I understand WWDC would be soon for an update for the retina 13 so if it doesn’t happen I’ll ride out the difference on my work provided retina 15. I have a feeling Apple would try to unite the cycles of the 13 and 15 (and 11?) since none of the hardware in the 13 was newer than the 15 when it was released.

I’m actually not worried about the decrease in screen real estate because my eyes are good enough to operate this thing in “1X” 2880×1800 mode (using the Eye-Friendly app). Using a 13 in 2560×1200 mode to write code doesn’t worry me.

If there’s a retina 11″ Pro I’ll happily swallow almost any spec limitation. Also, if there’s a retina iPad mini I won’t be purchasing an iPad 5.

***

Random additional thought: As I mentioned in my hurricane post, the 85 Watts of the 15 is a lot on the 100 watt maximum of my car inverter and my backup battery, causing fans to come on and heat warnings and all that good stuff.

Xcode 5, OS 10.9, iOS 7 Wishes

I use Xcode in one of two ways. I either use it at a desk with a minimum of three displays (without using fullscreen or spaces) or I use it on a laptop with a lot of full screen spaces each in “split” mode with the .h file on the left. One thing that really bothers me about the latter is when I’m using the iOS simulators, it jerks to the non-space Desktop because the simulators aren’t full screen. This is also frustrating because my console output is back in the Xcode window.

My number 1 feature request for Xcode 5 is full screen mode for the iOS Simulator with console output available on the same screen. Yes, this would make the simulator viewport off-center. A full screen simulator could potentially lose some chrome too. Testing iPad apps on the 11″ MacBook Air is particularly difficult. Even though the air is 1366×768, big enough to fit a non-retina iPad’s 1024×768 landscape, the border of the iOS Simulator and the systemwide menubar make this impossible without scaling down the simulator.

The simulator could do a better job of being a fake iPhone. It would be great if it could show up in iTunes and Image capture so I could more easily dump image libraries on there for testing.

Currently, the simulator needs to reboot when you turn a simulated TV Out window on or off or change its size. This makes it impossible to test connection notifications. At this point, the iOS simulator needs to simulate a full AirPlay receiver (basically an AppleTV simulator with just the settings app), complete with the ability to simulate low bandwidth situations.

***

Xcode itself needs to stop changing my viewport on me and instead use better notifications for when things go wrong, like when I hit a SEGFAULT and it highlights return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); in main.m for me and I have to go back to whatever line the cursor was currently on manually, by clicking back and then re-scrolling to it because it doesn’t remember.

Another way Xcode gets in the way is that every time you build with an error or warning, the left pane reopens. Unless I have all the luxury of a 1920 logically wide display, I need to close the left pane to have room to work, especially if I’m in interface builder.

***

Development in general would be greatly improved if Apple put enough RAM in iOS devices to be a little less hasty about purging RAM. I don’t necessarily mean closing background apps, I mean when ARC releases something if I don’t use it literally the next line after creating it. The only way around this is to create a lot of globals, which uses more RAM because I’m not allowed to release them manually. Don’t get me wrong, ARC is the way of the future and obviates that nonsense we used to call garbage collection, but it’s not perfect yet.

Storyboards are great. Keep them optional.

Auto Layout is not. Please don’t kill springs and struts.

The documentation of appearance and its autocomplete / what counts as a syntax error needs a lot of work. The crashing [[UISwitch appearance] setTrackTintColor:green]; doesn’t even send up a warning. (UISwitch cannot setTrackTintColor, that’s for UIProgressviews, and not for UISliders either. UISwith has setTintColor and setOnTintColor). This, btw, is one of those errors that highlights main.m because it has no idea wtf just happened.

Unless using the Navigation bar and toolbar that are built into a UINavigation Controller, the ones you create manually don’t auto shrink in height on iPhones in landscape, and the way to do it in code is weird and messy. A checkbox in interface builder (accessible by code too, of course) is necessary.

***

Back to the Mac

UIKit is so far ahead of OS X. UIImageView, a class I use in literally every app, doesn’t have an equivalent on OS X. By equivalent, I mean an image viewer with the ability to set scale its contents to fit, fill, stretch, or 1:1. If I want to do that in OS X I have to start writing code in drawRect methods.

UIKit widgets also have a lot more events to take advantage of touch as thumb down, touch up, , drags, enters and exits, and value changed. These make iOS programming more similar to the ease of .net and Basic OS X falls far short of.

UIKit could benefit from vertical and circular sliders though, even if the circular slider does have a large minimum size.

The code-heavy way both iOS and OS X handle radio buttons and select-one elements is annoying.

***

Probably the two biggest requests for iOS are the opening of development for share sheets and the notifications area. I would immediately write a display brightness thing for the notification area and a “fix with Auto Adjust” share sheet.

WiFi vs WiFi

WiFi vs WiFi

I’m sitting out on my apartment’s lawn with the 11″ Air, quite far from my room (though I suppose without so much interference the 5GHz would reach). As you can see, there are tons of WiFi networks. So many that being in my bedroom I have a measurable (but endurable) speed drops. You’d think that they could make some sort of building-wide FiOS agreement and make it part of the rent instead of each unit paying for unique connectivity but whatever that’s not the problem I’m going to complain about.

The problem I’m having would occur even without those 400 other networks. Where I’m sitting, my computer “picks up” my JM-n home network, but not very well. A speed test is under 1Mbps down and it drops completely every now and again. I didn’t expect to use my WiFi so I brought out my Verizon iPad with me and turned on hot spot. But since it can still see JM-n, it takes a lot of coaxing to get the Air onto the iPad’s network. The ordering in system preferences doesn’t seem to always “stick”.

The iPhone did even worse. Because it can see JM-n, it tries to use that instead of its LTE connection. This problem happens more often than 1st world hipsters writing on their lawns. AT&T iPhones get to hop onto “AT&T WiFI” at Starbucks and McDonalds (and other places). But you’re not always in the Starbucks when this tries to happen. When I’m in the Chipotle next door, for example, the phone tries to get on the WiFi, and has effectively 0 downstream. Some other times it happens:

  • I’m walking out the door and trying to check mail or something, everything stops until the WiFI vanishes and LTE takes over
  • I’m in a corner conference room in the hospital, far but not far enough from the base stations
  • In a parked car outside my apartment
  • My grandparents house where it tries to get on my parents (next door neighbors) WiFi.
    • I should point out that my grandparents baseline DSL / modem are way slower than the HSPA+ AT&T I get at their address so I don’t use their network.
  • In good range of a WiFi with simply too many users on it

I’m not saying it should be on by default, but iOS needs a way to use cellular data in the presence of crappy WiFi. I swear a beta of iOS 4 or 5 had this but I guess it never saw the light of day.

-

I wish they would let me sit in one of these trees…

JP4 “new dinosaur” speculation

Giganotosaurs eating Argentinosaurus

Giganotosaurus and Mapusaurus eating an Argentinosaurus while Tyrannosaurus, Spinosaurus, and Suchomimus look on.
That image is a 10000×2500 png with transparency. If you do something cool with it let me know – @joemmac on twitter and app.net

What I would like to see is Giganotosaurus and/or Mapusaurus in a very large quantity – like 10 of them on screen at once. They were not feathered. They were Tyrannosaur sized. They have been found in groups. Unlike the Rex and Spino which went after things smaller than them, the Carcharodontosaurs all over the world preyed upon giant sauropods. A bonebed of Mapusaurus contains seven individuals of various size. While it’s not known whether this is pack or family behavior or just a mob (or even just a mere predator trap) but JP has made much greater leaps with its artistic license *cough* spitter.

Imagine the game-trail scene from the lost world that instead ends with the main characters watching 2 Giganotosaurs challenging an Argentinosaurus, then 2 more appear, then 6 more including juveniles. During prior movies, there simply wasn’t enough territory to worry about running into more than one male Tyrannosaurus or Spinosaurus. But after 20 years of Giganotosaurs not killing each other for dominance on Isla Sorna their numbers have gotten ridiculous and horrifying.

My hopes are not high. I imagine something boring like just one Carcharodontosaurus acting indistinguishably from the Spinosaurus and Tyrannosaurus “but guys it’s totally different!”

We’ll probably have to deal with “super smart” inexplicably giant (people sized) naked Troodons that resulted from that weird lab in JP3 that might act just a little too similarly to Xenomorphs.

I’ll get back to tech topics soon. Think of Dinosaurs as my coffee

Featherless vs Feathered Dinosaurs in JP4

There’s a bit of an uproar (sorry, at least I didn’t say ‘ruffled some feathers’) over the decision not to have feathered dinosaurs in Jurassic Park 4. Paleontologists are pissed for the obvious reason, but JP fans argue that Dr Wu created “Theme Park Attractions” that were “based” on incomplete dinosaur DNA, and geared towards public perception of dinosaurs more so than scientific fact. That seems like a copout, but as long as the film opens with Grant giving a keynote over the discrepancy when giving a talk on feathered dinosaurs and a snarky commenter brings up JP we’ll have an answer we can accept (as well as the whole 6 ft tall raptor thing).

Raptor and Human Scale

Pictured (from left to right), a Velociraptor, Deinonychus, average height human, and a Utahraptor, all with “decorative” feathers, since these raptors did not fly like microraptor or archaeopteryx.

I’m not sure I buy into the whole “continuity > accuracy” claim put forward by fans. It’s been 10 years since the last film and 20 since the first. This year’s college freshmen were born after the first film. The current crop of naked 18 year olds were born after the first film. The PG13 year olds for the film’s expected release date were born when the last one came out. They don’t give a crap about continuity, and unless they spent this last weekend watching the 3D release of Jurassic Park, this is going to be the first time they see dinosaurs on screen, and they’re going to be intentionally inaccurate.

I’m not saying they should Lucas up the old films and replace the dinosaurs with fluffy ones, but we’re talking about a new film. I’m going to bet your average movie goer has heard of Dr Grant and Velociraptor, but has no idea what InGen is, or that the park’s dinosaurs are “approximations”.

There’s also a way to let the dinosaurs “evolve” into their more realistic states over the course of 20 years. A current method of genetic engineering isn’t by actually swapping out DNA sequences but by manually inserting proteins into embryos. These environmental factors wouldn’t necessarily be passed on to subsequent generations. Furthermore, the short lifespan and very high isolation of a single island would drive evolution into overdrive. If velociraptor feathers were sexy then the first male to randomly sport them is going to be doing a lot more fathering than the naked males. The only way to justify a crop of all naked dinosaurs, in my opinion, is to somehow make them all female again, and assuming feathers were sexually dimorphic (only males need extravagant sexy plumage). Still, I don’t see why they can’t use that same justification to introduce feathered dinosaurs as males that hadn’t been seen as often earlier.

Microraptor, Archaeopteryx, Human, and Cat to scale

Miroraptor and Archaeopteryx were fully feathered and capable of at least gliding, but were also very small (and probably delicious). At up to 1 kg (2.2 lbs) in weight, they both would be prey to cats. Even the largest fully feathered winged dinosaurs were small enough to climb trees from which to glide. These probably wouldn’t be scary enough for a film and I can understand leaving them out.

Tyrannosaurus is a bit of an unanswered question for now based on its location in the clads of dinosaurs. Spinosaurus definitely didn’t have feathers. Another group of giant scary therapods bigger than Tyrannosaurus also definitely didn’t have feathers.

Tyrannotitan

The Carcharodontosaurs, from the same family as Allosaurus, branched off of the therapods long before feathers started showing up. Ironically for Jurassic park, Carcharodontosaurs had worse vision than T-Rex and may have actually had to rely on movement for tracking small prey (T-Rex had vision like a Hawk, btw). Luckily for humans, they hunted giant suaropods. Unluckily for everyone – they did so in packs. A clan of 5 or so Mapusaurus in a turf war with as many Giganotosaurus would certainly one-up both the Spino vs Rex battle of JP 3 and the dual Rex attacking the mobilelab in TLW.

Argentinosaurus and Mapusaurus

If they’re willing to stick with Carnosaurs and Megalosaurs, there are plenty of featherless terrors to go around without mucking up the science. But really, after 20 years there’s no real reason for naked, 2 meter tall velociraptors. If you don’t want to portray them accurately then don’t portray them at all.

Introducing Boardroom

Loading copy

People love democracy. Getting a popular vote is a quick way to settle a lot of arguments from “which quarter should we release our product” to “what’s for lunch”. Voting is one of the most important actions that happens in boardrooms across the world. You’d think by now voting would be mastered but it hasn’t.

“A show of hands” doesn’t work with a large audience. Personal response clickers are expensive. Paper is cumbersome. And, until now, there wasn’t an app for that.

So I came up with Boardroom.

As soon as you launch Boardroom on your iPhone or iPad, the polls are open. There are no cumbersome setup or tutorial screens. If you’re connected to an AirPlay screen, a web address is displayed. If not, the address shows up on your device for you to give out (such as by writing on a board). All your participants need to do is open a browser on ANY device on the same WiFi network as you an type in the address. The second people start voting, a graph starts updating with results in realtime.

iOS Simulator Screen shot Mar 17, 2013 11.13.00 PM

Boardroom doesn’t rely on the mirroring function built in to show polls on your AirPlay display (or HDMI TV or VGA projector). It instead uses the screen API to show just the graph and voting address, in full 1080p (no black bars).

tv

Boardroom’s intentionally dark user interface is ideal to reduce eyestrain in dark meeting rooms and auditoriums (and not blind your audience if you’re using a projector).

Because Boardroom’s voting is browser based, there’s virtually no limit on how many participants you can have (that’s limited more by WiFi capacity than your iPhone).

Some notes

  • Boardroom does NOT work over Cellular or over the internet. All participants MUST be on the same WiFi network.
  • You CAN use Boardroom on a WiFi network that does not have internet access. For example, you may bring an AirPort Express with you to your meeting, plug the power connection in, but do not have the ability to connect it to your venue’s internet. You and your participants can still connect to your AirPort Express to use Boardroom voting.
  • Boardroom does NOT run in the background on iOS. If you switch to another app, voting will be suspended and the live poll results will disappear from your AirPlay screen.
  • Boardroom’s voting webpage is compatible with all versions of Safari, Mobile Safari, Chrome, and Firefox. Boardroom’s voting webpage is only compatible with Microsoft Internet Explorer 8.0 and higher.
  • Boardroom doesn’t save any voter information.

[App Store]

Flat vs Skeuomorphic

I don’t take today’s news (and update of podcasts.app) to mean iOS is going to start looking like Metro. Things will still be gorgeous, they’ll just be simple gradients instead of mimicking real world textures. Just between iOS 5 and 6 we can see this trent in UINav and Tool bars loosing their gloss for smooth gradients. We also saw OS X go from heavily textured brushed metal to a smooth low-contrast gradient. But to extrapolate that we’re headed towards just solid colors is ridiculous. 8 bit designs don’t look good. That’s why we stopped using them. Metro looks refreshing, sure, but that doesn’t imply nice. It looks nicer than Android (which is also very flat) because Segoe is a nice font and roboto is a collection of stolen sans serifs.

The reason we hate certain skeuomorphic designs varies by each one. Address book doesn’t need to be symmetrical. Notes doesn’t need to flap. iCal doesn’t need torn pages or to be month by month (please someone make a rolling 5 week calendar). Find my Friends actually has a very usable interface, it’s just the awful puke yellow color of the leather that’s a turn off.

I would like for iOS 7 to gain the chrome look of iOS Maps.

Review: Logitech Ultrathin Keyboard Cover for iPad mini

I barely used the keyboard dock for the original iPad as a keyboard, or dock for that matter, because it didn't fit around the case

I barely used the keyboard dock for the original iPad as a keyboard, or dock for that matter, because it didn’t fit around the case

I’m writing the first part of this review after immediately taking the thing out of the box, because I think measuring the learning curve matters. For the record, this is my first time using any keyboard with an iPad, full sized or otherwise, so if any of the quirks I find are just the way iPads work with BlueTooth keyboards I apologize.

First, no matter how awkward this may be right now, it’s still leagues ahead of touch typing for me, even dual thumbing on it in portrait. Not having to switch virtual keyboards for numbers is immediately noticeable.

Regarding the form factor: makes infinitely more sense than the flaccid Surface keyboard. While docked in landscape it stays up easily on any surface including a single knee. Try doing that with a 22 degree kickstand. Folded up, it still fits easily into the back pocket in my jeans. Also unlike the Surface, the lack of any extra space around the keyboard (like a trackpad) places your fingers much closer to the screen. Result: you remember to touch it.

mini kb side

One week later, I can say the keyboard makes a lot more possible with my iPad mini. Of course this was always technically true, but since both the mini and this keyboard fit in my back pocket, it’s the first time I have both with me literally every time I leave the house. Combined with LTE and I’m writing more, being more active on social networks (instead of just liking), and I’ve even been writing some server side scripts.

mini kb close

The logitech has a clever strategy to keep keycaps as big as possible. It consolidates Tab and Caps Lock into Q and A respectively, and on the other side of things shrinks the lesser used (unless you’re writing code) symbols. I prefer this over say the Belkin keyboard which moves the location of these keys.

Conclusion? I’m keeping it. I’m recommending it. I’m surprised. I really thought double-thumbing was good enough. They’re available in Apple stores and from Logitech directly (not yet on Amazon from any official sources).

iPad Car Chargers

I successfully charged a 3rd and 4th generation retina iPad in the car at the same time using only one plug. Belkin makes it. It also conveniently comes with a lightning cable. For the longest time, I had been using these AC inverters with the official wall adapters (its built in USB port, like all my old chargers, does not charge a big iPad).

carcharger

In the picture, you can see my auxiliary audio in is right next to the power port inside the armrest. I used to use a charger that had a nice 6 inch audio cable coming out of it (and a dock connector for your iPod – I bought it in like 2005) but I unfortunately have not been able to find a replacement, so for now it’s just a standard audio cable and I have to plug in TWO THINGS. The car’s bluetooth is paired to my girlfriend’s phone since, you know, it’s her car.

I’m not sure what the point of this post was, but there you have it. You can finally charge two iPads without the mess of inverters, but that particular inverter is also worth owning because it has passthrough (so you don’t eat up your only port), USB for non-iPads, and three outlets. Just do your math ahead of time and read the labels on your car. Most ports only actually output 100 watt, and a 65 Watt MagSafe 2 takes up most of that, but charging 10 iPads should be fine.

More Lightning Digital A/V Quirks

Panic’s digital A/V adapter teardown inspired me to write down some of my own findings with the adapter that now make a little more sense.

When connected with a passthrough, the device doesn’t show up in Xcode, Image Capture, etc. This is frustrating because I can’t see console messages for debugging but at least I can do most of my testing using an AppleTV which I CAN use while connected to Xcode

The adapter tries to use a display’s native resolution, which it does as long as you’re not using something that accepts higher resolutions (TVs and projectors that are 1366×768 or 1280×800 often accept 1080p input and do their own scaling). When you programmatically try to set it to something else, it resizes the context and stretches it via software.

AVDell

It doesn’t actually let a developer see a display’s actual resolutions. When I use the old digital A/V adapter on this 1600×1200 display, I get 1280×1024 (5:4 ratio) as a choice. When using the new A/V adapter, I don’t get it anymore, and instead get 1200 x 900 (4:3, like the display actually is). Interestingly, although the new A/V adapter sets its output to 1600×1200, 1600×1200 is not a choice in the list, so no matter what I do things will be scaled.