My Rants and Raves about technology, programming, everything else...
My PhoneGap series will continue soon. I promise. I’ve been busy working on a new business: How to Watch. This new business aims to help people find where a movie or TV show is available via online streaming (e.g. Netflix, Hulu, Amazon Instant or iTunes). I got sick of having to search on each of the platforms to find "my stories". The result is this site and mobile apps (Android, Windows 8, Windows Phone and Kindle; iOS is coming soon if I can get Apple to certify the thing!).
One of the goals of the project was to build the core product (the search UI) once and reuse it using PhoneGap to build all the apps. With some tweaks here and there that is what I accomplished. I am using Adobe's PhoneGap Build to build the iOS and Android/Kindle apps for me (check it out). And I am hand-building the Windows 8 and Windows Phone PhoneGap apps (because of special needs that PhoneGap doesn't accommodate).
One of the things that I’ve been spending a lot of time working with lately is the ability to be able to build cross-platform apps. While I spend a lot of time in the Microsoft space (especially Windows 8 and Windows Phone 8), I need to be able to create and deploy apps to iOS and Android platforms. I've decided to do a series on building one of these using Single Page Application for the web, then deploying it to devices via PhoneGap:
There are a number of solutions for cross platform apps (e.g. MonoTouch/Droid, et al.) The types of apps I am building are just consuming or displaying information from a standard web back-end (e.g. REST services). Because I typically need to build a responsive website for the solution as well, using a solution that could share some or all of it’s code with the website is a good match.
Using HTML5/JS/CSS to build apps isn’t perfect. Not all apps are a good candidate for this type of cross-device development, but I like to think that for many v1 apps, this is a laudable solution. In many cases, these apps are plenty functional for the life of the app, and in other cases it provides a fast-to-market solution so that a full native experience can be built after the app is initially launched and validates that it fills a market need (classic Minimum Viable Product strategy).
Very short post today, but wanted to share something that happens more than I'd like to admit. I work for some clients who use TFS and when I can't in through their VPN I need to zip up my files for them to check-in manually. It's not fun (I miss being able to create a change set in Mercurial or Git). When this happens I need to have a quick way of copying all the files in a project that aren't marked as read-only. Robocopy to the rescue:
robocopy %1 %2 %3 /S /XA:R /XD obj bin packages backup _UpgradeReport_Files /XF *.suo *.vssscc *.user *.vspscc
This allows me to copy all the files I'm working on while skipping the temp files (e.g. obj, bin), package chagnes, backup files and upgrade files. Hope this helps anyone else that runs into this.
With the surprising news of Sinofsky's leaving Microsoft still fluttering in the winds, I knew I'd hear some rants about Silverlight be heard among the XAML-lovers out there. I decided I needed a blog post (albeit a short one) to say my peace.
I've heard many say that Sinofsky is responsible for the death of Silverlight and that it's absence on Windows 8 is a shame. I hear a lot of Silverlight enthusiasts (or apologists) that Silverlight, while being a great technology, was killed because DevDiv and Windows couldn't get along. At last year's build, it was big news that Sinofsky actually said the word Silverlight made news. While the idea that Silverlight ran on a Mac certainly caused waves in the Windows team, it's not the reason for it getting pushed to the pile of technologies that are now in 'sustaining engineering' mode. If any executive is responsible for the current state of Silverlight it's one who is no longer with us...and not even part of Microsoft: Steve Jobs.
When Silverlight launched the target was clearly Flash. Flash was a great platform for advertising, games and starting to push into line of business apps. Silverlight was the dual barreled shotgun that Microsoft was pointing in Adobe's face. But at some point Flash became irrelevant. When did this happen? It wasn't Silverlight, it was iOS. When Steve Jobs decided to not allow Flash to be installed on any iPhone, Flash was demoted from the web.
What a weekend. Much to the chagrin of my beleaguered girlfriend, I signed up to be part of Startup Weekend here in Atlanta. I haven't had the chance to do one of these events before and it was a lot of fun. I want to thank the organizers and the great people at ATDC for holding a great event.
For the uninitiated, a Startup Weekend begins with a series of business idea pitches. This has to be a new idea that you haven't worked on before (no code, no design, etc.). After the pitches (2 rounds) you join a team to help build a business proposal over the next 54 hours. This usually entails a prototype, a business/marketing plan and a 4 minute presentation at the end of the event.
If you made it to build or spent much time watching the videos one of the stories many heard from Microsoft revolved about creating HTML5/JS applications for the Windows Phone 8. Unfortunately the story confused a lot of people (at least by the questions I've been getting lately.
Let me be clear...you *can* create HTML5/JS/CSS applications for Windows Phone 8. Yup. In fact, you could do it with Windows Phone 7 and 7.5. This is how PhoneGap works. The XAML page simply hosts a WebBrowser control and loads all of the assets locally in the XAP. What you can't do is create WinJS application. Let's step back a little and explain that better.
Windows 8 and Windows Phone 8 were both highly publicized releases this last week. One of the things that is not all that obvious to the casual observer is that the biggest change to Windows Phone 8 is that the underlying operating system now uses the same core as Windows RT (e.g. Windows 8 for ARM). In fact, the new phone SDK supports DirectX, C++ and creating WinRT components. All very cool.
I wanted to get a Type Cover for my new Surface today so I headed to the Microsoft Store. I never go to malls so it wasn't a lot of fun just getting into the mall. But soon me and my girlfriend found the store. I was very surprised by the sheer number of customers. I didn't expect it to be empty on a Saturday afternoon but it was packed. As we walked in we were immediately approached and helped with where to find the Type Covers. Even with all those customers, the store was really well staffed. Was simple to find someone to help us get a Type Cover from the back and answer some pricing questions.
Unfortunately there was an issue with her Touch Pad. Whenever she closed her cover and re-opened it the keyboard didn't work until she unplugged it and re-plugged it in. So I thought while we were there, we'd ask them about replacing it.
Replacing it might have been difficult because the keyboard was from the Surface machine I received at Build 2012. No receipt, no box.
Today Microsoft is finally releasing the new Windows Phone 8 SDK. As I've been updating my Windows Phone book for this new incarnation of the device, I am excited that the SDK is finally going to be available for public consumption.
Even though the new phone has completely changed the underlying operation system to use the same WinRT sub-system that powers Windows 8, the basics of how to build apps on the phone is primarily the same. This means if you have experience building XAML-based projects, you should be right at home with Windows Phone 8.
A lot has been talked about the new Operating System and it's new tile layout and other features. But what I want to explain are the new developer features that I am excited about (in no specific order):
I've always been a big fan of George Carlin. I remember watching one of his first HBO specials when I was quite young. No matter whether you agree with his point of view, you had to admit he had an impressive mind and a way to stay relevant no matter where the country went.
Recently, I was watching Louis CK talk at a Carlin Tribute when he told the story (that I'd heard before) of Carlin's philosophy of throwing out his act once a year to work on a new show. This got me to thinking how this could apply to what we do.
Learning new technologies, tools or languages expands what we are good at. In fact, I would argue that developers are paid to learn. That is what we are good at. In this way I think most developers should be learning new technologies every year.
If you attended my "Modern Web Development" workshop, here is where you can get the slides and code. If you have questions about the workshop, please just add a comment and i'll respond as soon as I can:
Thanks again to all who attended the session!