A couple of months ago, Antoine Vignau helped me recover the contents of my old HD 20SC hard drive. The disk was in very bad shape but he was still able to image it and most of the contents could be recovered. What really surprised me was that I was able to recover two programs I wrote in the late eighties.
Among the many interesting things that I found on that disk was an old NDA (New Desk Accessory) that I wrote back in 1988. If you have been using your IIGS with a French keyboard and hoped for better support for accented characters, AZERTY may help you.
The other product I was able to rescue was Jigsaw Deluxe, an improved version of my first Apple IIGS game, Jigsaw! This new version adds several new features that make it more fun.
Download and enjoy!
A couple of weeks ago I was interviewed by Mike Maginnis and Quinn Dunki from the Open Apple podcast, a monthly show about the Apple II. I had a lot of fun sharing some of the stories behind the development of SoundSmith and some of my other Apple II titles. I realize that not many people are interested in vintage computing, but if you are my age and had the pleasure to enjoy the early days of personal computing, you may be interested in listening.
Here is the link to the episode.
You may also be interested in subscribing and listen to older episodes. I particularly enjoyed the ones with Bill Budge (of Raster Blaster fame) and Mike Westerfield (The byte works), but there are many others also worth listening too.
It is hard to believe, but Sun Microsystems released Java 1.0 almost 20 years ago, on January 23rd, 1996. I was an early adopter because I was intrigued by the write once, run everywhere promise. At the time, developing for the Mac did not look like a viable career option and yet I did not like the idea of having to switch platforms. As a result, Java seemed a great option.
Java 1.0 couldn’t do much beyond producing animated content for the browser, but it was easy to learn, mostly because it had so few libraries available at launch. In fact, this was part of the excitement, as so many basic building blocks had to be created in order to allow other developers to build more powerful applications. As an example, during Java’s early days I wrote a GUI for applets (Swing didn’t exist and AWT sucked), inspired by the classic MacOS toolkit. I called it MAE for Java. It was a lot of fun.
Over the next few years, Java grew up. In 1997, version 1.1 added JDBC and the servlet standard, which paved the way for the application server era. I discovered WebLogic at the second ever JavaOne event in San Francisco and even though the product had limited capabilities at the time, it was clear to me that the concept had a lot of potential. Java was quickly becoming a solid platform and a serious contender in the Enterprise world. Over the following years, the J2EE spec (now simply known at JEE) continued to mature in order to address an increasingly large array of IT requirements (SOA, Web development, encryption, MQ integration, O/R mapping, etc.). For those of us who got on the bandwagon early, adopting these technologies was easy. We just had to learn a couple of new APIs each year, a pace which, with hindsight, now seems quite reasonable. Everything was great. So great in fact that I credit Java for developing a whole generation of IT Architects. I am of course talking about senior professionals who usually have somewhere between 15 to 20 years of experience, not the kids just hired out of school by consulting firms and labeled “Architects” to justify higher hourly rates.
So, how can someone become an architect today? It all starts by learning the right programming language. Some languages, like Visual Basic (let’s use a dead language as an example to avoid offending anyone), are great for quickly building specialised solutions, but won’t help you with your career. I for one have never met a CTO or CIO who got his/her job after a successful and gratifying career as a Visual Basic programmer. On the other hand, Java was designed from the beginning as a general purpose language, designed to build any kind of application. Sun Microsystems, which was on a mission to conquer the world, wanted their language to be used for everything, from embedded systems to large distributed enterprise applications. To achieve that goal, they enlisted most of the IT industry leaders (IBM, SAP, Oracle, etc.) to help them provide Java developers with a large selection of rich, stable and supported APIs as well as solid developer tools like Eclipse. The results achieved by this broad industry alliance have simply been amazing. Twenty years later, no other computer language comes even close to the level of versatility Java offers today. Engineers who grew up with Java got progressively exposed to a large number of technologies which allowed them in turn to grow their own career and eventually become Architects or CTOs.
Despite Java’s undeniable success, something weird started to happen somewhere between the releases of J2EE 5 (2006) and JEE 6 (2009). People started to label Java as “heavy”, “complex” and “hard to learn”. Sure, the fact that Oracle bought Sun in 2010, adding fear and uncertainty to the future of the platform, did not help, but this trend started well before the acquisition. Learning Java was becoming increasingly hard for beginners. In my opinion, this doesn’t speak ill of Java, but it does raise some serious questions on how we should teach complex platforms to beginners, an issue we definitively haven’t solved yet. That said, perception is reality and interest in Java started to dwindle, despite the success of Android.
Over the last few years, countless new programming languages have appeared and are now fighting for our attention. Some are great, others not so much. The problem is that, in order to become viable alternatives to Java, specially in the enterprise, these languages will need to mature. Even if the language itself may not have to evolve significally, the plaform will need to grow. In order to solve complex problems, new APIs will have to be built and over time these platforms will inevitably become as complex as Java is now.
I am not saying that we shouldn’t try to replace Java with a better alternative because complexity will inevitably creep into any successful development platform, on the contrary. A better programming language with a strong API library could be a significant boon for developers. I absolutely believe that a better programming language can make us more productive. However, adopting a better language does not make complex projects significantly simpler. You may be able to use less lines of code to achieve you goal, avoid potential errors or even simplify the development of multithreaded code, but in the end, hard problems remain hard to solve and require experienced professionals that can design complex systems. A better language is great but it is pretty much useless if it does not have the APIs enterprise developers require.
This has been quite an exciting week. Apple has introduced over 4,000 new APIs for both OSX and iOS and most developers have been raving about how the “new” Apple led by Tim Cook has changed. They claim that the company now listens more to their customers and use the fact that iOS will support custom keyboards, allow for the use of the fingerprint reader and offer inter application communication mechanisms as proof that things have changed.
Frankly, I am not convinced that much has fundamentally changed. When Apple launched their Rip, Mix and Burn campaign in 2001, they were clearly listening to what customers wanted at the time. In order to do it properly, they had to plan for their vision, which included buying the application (SoundJam MP) that would eventually become iTunes and add the capability to easily burn CDs, which took some time, but they eventually released the product they wanted.
What happened this week was similar. Apple may have wanted to offer the possibility to install alternative keyboards for a while, but it took some time to deliver the capability in a secure form. What is so dangerous about alternative keyboards? Well, imagine that the keyboard logs all your key strokes and send them to some server in Ukraine. All your passwords, credit cards numbers would be gone. So, what is needed to make sure that supporting alternate keyboards is safe? Well, one way to do that is to avoid using the keyboard to enter credentials or credit card numbers in the first place. That is something that Apple has solved by releasing iCloud keychain in iOS 7 and by opening the use of the fingerprint reader in iOS 8. The other thing to do is to forbid internet access for the keyboard app if the user chooses to do so. That was also announced by Apple as part of iOS 8. It is likely that by the time Apple releases iOS 8, all new iOS devices will include a fingerprint reader and as a result, should be well protected against malicious keyboard apps. As you can see, opening iOS to support alternative keyboards is not something totally new that came out of nowhere, it is the result of careful planning and making sure that everything is in place before launching a new feature.
Swift, the new programming language launched by Apple at WWDC is another interesting example. This new language has been in the works for about four years now. It is a modern language with a lot of new cool features, but I would hardly call it revolutionary. What is interesting about Swift is that, as far as I know, it is the first language designed from the found up to make the use of an existing library much easier. Normally, a language is designed to solve a particular problem that other existing languages cannot handle well (multi-tasking, security, etc.). However, Swift seems to be designed solely for the purpose of giving the Cocoa framework a new lease on life. By basing variable types on Cocoa objects (for example strings are NSStrings) and hiding the complexity of handling structs, Swift makes it much easier to write code for Apple platforms without impacting the huge investment made by Apple and Next on Cocoa over the last 30 years (NextStep was launched in 1989). This makes a lot of sense, because it preserves Apple’s biggest asset while giving us developers what we want. Swift is therefore in that sense evolutionary and not revolutionary. It is the result of a plan launched years ago with the adoption of the llvm compiler, and the launch of Objective-C 2.0, and if Apple is really planning on eventually moving their Macs away from Intel, applications written in Swift will make the transition transparent for application developers.
WWDC 2014 was a great event because it saw the fruition of many initiatives started by Apple years ago, not because Tim Cook just started to listen to their customers and developers but because Apple seems to be accelerating the delivery of features that result from a carefully crafted plan. The success of Apple depends on maintaining a clear long and medium term plan to deliver their vision, as they have done so far, and not on delivering a long list of short-sighted features.
Once again, I won’t be able to attend WWDC. I am very excited though that on Monday we will be able to see what Apple has in store for us for the next few years, because I believe that this event will be more about announcing the foundation of things to come than actual products we will be able to buy in June.
From a developer perspective, Xcode 6, iOS 8 and OS X 10.10 should include enough new functionality to keep us busy for the next few months. Support for larger iPhones will probably translate into a lot of work to prepare old apps for the official launch of the new devices. Something similar is to be expected for Mac developers who will have to deal with a flatter overall design including updated controls. I certainly hope that the changes are more than skin deep, because while appearance is important and having a uniform look and feel across Apple devices can make the user’s life much easier, when I use my Mac, it is all about what I can do with it, great looks come second.
What I would like to see announced at WWDC are improvements around iCloud, namely lower pricing and APIs for Windows, Linux and Android. Writing a cross-platform app that syncs data among devices is not very difficult, there are many scalable document based data stores than can handle this task (Cloudant comes to mind). The problem is persuading customers to pay for the service. Apple on the other hand can do that much more effectively because they already have a large customer base that use the free service or pay for iCloud once a year and get a lot of value by using the service with not one but multiple apps. The value proposition is much better. Sure, there are competing services, like Dropbox, but I like the Apple option better because I can easily assume that all Apple customers have an account.
On the hardware front, I do not have many expectations. Apple has been unable to keep hardware leaks from happening in China in the past and right now we haven’t seen enough credible information to believe a product launch is imminent. If there are any announcements it will be like last year’s MacPro, a simple preview with a launch date, to generate pent-up demand.
I have no doubt that WWDC 2014 will all be about announcing the infrastructure for things to come, namely new services that will be available only to customers with modern hardware (fingerprint reader and the M7 processor as well as future devices) which will generate a need to upgrade old devices and leave the competition in the dust for a while. Apple has had several years to build the infrastructure and plan for this moment. On Monday we will finally understand what Apple has been working on. We may not understand the full reach of these announcements until Apple launches their new devices in the fall, but it will be an exciting event. I will be spending a lot of time on the treadmill next week, watching the WWDC session videos on my Apple TV.
Yesterday, after working on the project for over a month, I finally published my redesigned home page. It was long overdue, the previous design looked dated and was not designed to support mobile devices. The new site sports a modern responsive design and I really hope you enjoy the enhanced navigation experience.
So, I started by looking for a tool that would allow me to keep design activities to a minimum and focus on content. After evaluating several options, I finally settled on RapidWeaver, a Mac application developed by Realmac Software. This may come as a surprise to many, as RapidWeaver by itself is a quite unremarkable piece of software. It would be quite easy to argue that at US$79.99, it is way overpriced for what it does.
For all of its limitations, though, RapidWeaver provides one great feature, it offers extensibility through the use of plugins. One of these plugins, Stacks 2, achieves an incredible feat, it converts a mediocre product in an unmatched web design tool that is powerful, flexible and easy to use. Sure, you will probably have to invest another US$100 in plug-ins and stacks (take a look at the stacks developed by Joe Workman) to achieve whatever you want to do, but at this point you will be able to create almost any kind of complex web site with almost no effort.
I can’t really emphasize enough how pleased I am with this RapidWeaver based solution and I really recommend it to anyone who wants to develop a professional looking site without going through the hassle and cost of contracting a pro.
I started exercising about 18 months ago. At the time, I could barely walk for an hour at 5.6km/h. Today, I routinely walk 10km in under 1h20m and I often walk 12, 14 or even 16km per day. While I do not expect to win any medals at the next Olympics, what really strikes me is that back when I was sixteen, it took me about 40 minutes to run 5km (yes, I know, I have never been an athlete). Now, thirty years later, I can walk faster for at least twice that distance. Sure, I am probably bit taller now and also slimmer, but still, it is quite astounding what you can achieve by exercising regularly, no matter your age.
What I have learned is that while it is obvious that exercising is key to improve your fitness, collecting data about your progress is equally important. That is where Withings comes into the picture. I bought their Wi-Fi scale last year and was so pleased by the results that I later bought their new Pulse Activity tracker. I now have access to all my data on my iPhone or on their web site. It is easy to see what works and what doesn’t. For example, I used to believe that playing soccer with my colleagues was equivalent to playing Paddle. It turns out that playing Paddle is much more demanding. I also never imagined how little exercise I did on a normal work day. I now try to never go to bed without having walked at least 10,000 steps. It used to be “No pain, no gain”, today it is more like “No information, no gain”.
Right now I feel better than ever and I do not believe I could have achieved it without proper monitoring. I am sure that competing products from Nike or Fitbit work also very well, but what I like about Withings is that they also have a scale and even a blood pressure monitor that complete the solution. I do not endorse products very often, but I am so pleased with these products, that I really felt I had to.
Earlier today I laid out my expectations for tomorrow’s Apple Event. That said, the prediction game is extremely entertaining and I do not want to miss a great opportunity to play it. So, here we go, these are my predictions:
And that is it. There will not be a new product category this year, but it will still leave Apple with a solid product lineup for Christmas that should allow them to have a successful quarter.
What do you think?
Update: I was definitively wrong about iPad differentiation. Choosing an iPad is harder than ever. Apple covered all the price points but did not explain why people should choose one model over another depending on their needs. I think this is a mistake, most people need to be guided and confusion can be a sales inhibitor. The iPod touch wasn’t updated either.
Next Tuesday Apple will unveil a lot of goodies. It is widely expected that the Cupertino based company will unveil new iPads (probably with some new cover), updated MacBook Pros and a totally overhauled Mac Pro, as well as many software updates to both its consumer and professional software offerings. That should be more than enough to justify a lot of excitement among the Apple faithful.
That said, there are still many unanswered questions. Take me for example, I am looking to replace my first generation unibody iMac and would also want to buy a second monitor that I could use both as a second screen for the new computer and as the main screen for my Mac Book Pro when I need to do some work at home. The issue I have right now is that the 27” iMac does not align with the 27” Apple Thunderbolt Monitor. This is a big mistake that is preventing many iMac owners from buying a second monitor. Apple has to know about this issue, since there are complaints on its forums, and will most probably fix it at some point, hopefully on Tuesday.
Right now there is little chat about an update to the Apple Thunderbolt Display, but there are reasons to hope for an updated model. The first reason is that with the release a new Mac Pro with Thunderbolt 2, Apple needs to either update their Displays to support it or release some kind of Thunderbolt 2 dock. My money is on the first option. The second reason is that the current design of the Thunderbolt Display is reminiscent of the previous generation iMacs and that a slimmer design is long overdue. If Apple updates their monitors and they align nicely with the new iMacs, my problem is solved.
On the other hand, if Apple upgrades the Thunderbolt Display but does not fix the alignment issue, the solution is to buy two monitors and a Mac mini (or a Mac Pro, but that will likely fall out of my budget range). That is more slightly more expensive and I will get less bang for my bucks, unless the Mac mini is also updated on Tuesday (hopefully with Thunderbolt 2, a new Haswell processor and 802.11ac wireless networking, which would be nice. This is a possibility, but we don’t know for sure if this will happen, since no rumors point in that direction (although it would be logical to expect an update to the mini at this point).
Of course, there are other possibilities. Apple could choose to release new (expensive) 4K monitors for the Mac Pro and not update their current products. That would be great for pros, but would leave me wondering if I should invest my money in products that haven’t been updated in quite a while.
The fact is that even though we already know many details of what will be announced on Tuesday, for Mac users there still are many unanswered questions that will keep us excited. We may well be riding a truck in a car age, but what can I say, I still love my truck.
Update: It seems that i was overly optimistic. No new Mac mini and no new monitors. Who knows, there may be new monitors in store when Apple releases the Mac Pro in December. I will wait patiently…
When I attended WWDC in 2006, Apple introduced Core Animation. It was a great technology for OS X that allowed to easily create dynamic interfaces. Everyone was wowed by the demos, but nobody was really sure how they could use the technology in their applications. Why? Because the technology had not been developed with the Mac in mind. That became painfully clear in January when Steve Jobs introduced the iPhone at MacWorld. To this day I blame myself for not understanding what was happening. We had all the facts, we knew that Apple was working on a phone, we knew they were interested in touch technologies and we had seen Core Animation. Yet nobody, including myself, did make the connection.
When Apple introduced the iPhone 5S and its new M7 chip, I remembered what happened in 2006. Something did not sound right. So Apple is adding a new chip to its flagship phone just to allow Nike to develop a new app? Granted, this chip could be used by other companies to develop innovative apps, but I think there is more to it.
Samsung just released a smart watch that is plagued by problems. The most obvious issue is the very limited battery life of the device. That is mainly due to the fact that the watch is a (slow) computer in its own right and that it includes a camera and sensors. The other problem is price, US$300 is quite expensive for a phone accessory. How can a company produce a cheaper, more powerful watch with better battery life? Simply by offloading most of its work to the phone. Could the M7 chip be the sign that Apple is moving closer to releasing a watch based on this design principle?
Most analysts seem to believe that Apple will release a smart watch in the first half of 2014. Nobody expects Apple to release a new iPhone until the second half of the year. That means that if Apple’s rumored smart watch relies on some kind of dedicated hardware it has to be included in the current generation of iPhones. I think that the M7 chip is that dedicated hardware.
I understand that my reasoning could be wishful thinking. I may still be obsessed by my failure to understand why Apple had developed Core Animation. Yes, maybe. On the other hand, the more I think about this, the more sense it makes to me. What do you think?