Lunches are Massive

wpid IMG_20121030_135719
Standard

image

Today I ate a burger that was literally as big as my face. I found out after it’s customary to eat these with a knife and fork. Out waitress must have though I was a pig.

Windows 8 with HTML/CSS/JS Slides and Document

Standard

As promised, here are  my slides and an accompanying guide from my talk on Windows 8 Applications with HTML/CSS/JS, https://skydrive.live.com/redir?resid=F56549E79BB0E4F2!8748. The Presentation has some interesting screenshots but the real meat is in the accompanying Word doc. For the next couple days it should be considered a living document, as it’s proofread, but it has enough material to touch on the basics.

Training Begins, Then Grinds to A Halt

itbs-vs-pfps
Standard

I want to run another marathon and qualify for Boston again. It was a tonne of fun the first time and now that I know what I’m up against, I really want to be prepared for that race and do it proper justice. So with the goal of running an early December 2012 marathon in mind I started training last week (about 4 months lead time).

I started the week with the U of  T tri-club in an a interval session running the Casa Loma hill. I was pleasantly surprised with my fitness. There were a few guys that utterly spanked me, but overall some of my (very modest) speed work served me well. The following day I went for a very easy 7.5km jog in the morning to shake things out.

Thursday morning came and I was ready for a tempo run. Maybe it’s getting excited about a training schedule again, maybe it’s the Olympics, but I wanted to run hard! I set off for two easy km then 6 hard and a two km cool down. I was planning on a 3:45 min/km pace but it was pretty obvious that wasn’t happening. I had the occasional show of speed, but most of the time I was struggling to keep it at 4 min/km. My goal time may need to be reassessed, but I didn’t feel too bad about a less than stellar tempo run, it was the first of the season.

My muscles felt fine, and I was even surprised that when I wasn’t running my knees felt good. During the runs there was the occasional tenderness, but that usually subsided once I was warm.

Friday was another easy 7.5 km with stretching and weights in the evening, then Saturday was going to be a LSD 10km.  Just at the halfway point (as far as I would go from my apartment) my knees started throbbing. Almost instantly every stride was brutal. The pain was just below and to the outside of my knee cap, and in the tendon behind and to the outside of my right leg.

I went for a swim on Sunday to take things easy, but even on a casual bike on Monday my knees were bothering me. I spend this morning just doing core and stretching at the gym and things still hurt.

Tomorrow I’ve got a meeting with a physiotherapist.

What Are My Tweeps Using?

DevTO Twitter Client Pie Chart
Standard

We often find similarities in those we keep near to us. I like to be around runners and geeks. Maybe you think we get along because we’re both Aries. There’s always that commonality that bonds people. Up until recently I thought there was another indicator of a simpatico relationship: smart phone choice.

I’ve spent a fair bit of time over the last month working with the good people of DevTO and Ladies Learning Code, two tech groups that make Toronto more amazing every day. And with most other tech focused crowds, they tweet. A lot. I always felt a certain kinship with those two groups, and assumed their client of choice was similar to my own Android.

Evidently, I was wrong.

I put together a little R script that queries the Twitter search API and spits out a pie chart and a table summarizing clients used. You can find the script in this Gist, I won’t go into it here, it’s nothing special. The pie chart shows the top 10 most popular clients, the table lists everything.

DevTO

DevTO Twitter Client Pie Chart

Client Freq
        Twitter for iPhone 168
                       web 93
                 HootSuite 63
                 TweetDeck 48
       Twitter for Android 25
       Tweetbot for iPhone 18
           Twitter for Mac 11
   TweetCaster for Android 9
                 instagram 7
             Camera on iOS 6
                foursquare 6
       Plume for Android 6
                  Path 2.0 5
          Twitter for iPad 5
                    Digsby 4
              Tweet Button 4
                   Twitpic 4
                   Echofon 3
                  Facebook 3
ÃœberSocial for BlackBerry 2
                   Seesmic 2
  Twitter for BlackBerry® 2
                   Visibli 2
                     yoono 2
              360 Panorama 1
                Mobile Web 1

Ladies Learning Code

Ladies Learning Code Twitter Client Pie Chart

Client Freq
                       web 90
        Twitter for iPhone 34
                 TweetDeck 22
                 HootSuite 10
              Tweet Button 5
       Tweetbot for iPhone 5
                      kiwi 3
   TweetCaster for Android 3
       Twitter for Android 3
                   CoTweet 2
                  Facebook 2
                  Paper.li 2
  Twitter for BlackBerry® 2
ÃœberSocial for BlackBerry 1
                 instagram 1
                MeetupXApp 1
                   tGadget 1
           Twitter for Mac 1

You can imagine my horror when I discovered that for the better part of the last month I’d been cavorting with Jobs-worshiping, ironic-glasses-wearing iPhone users. I felt lied to. I felt abandoned. I felt dirty.

But the more I thought about it, the more I realized that I was being small minded. iPhone users are people too. They put their (skinny) jeans on one leg at a time. We both need a hit of coffee in the morning, even if they give their drinks insufferable names like ‘grande, no-fat, sugar-free Cinnamon Dolce Latte, no whip’. And who am I to judge a fellow geek or geekette if they like having a small computer attached to them at the hip.

I’ve learned that maybe we can get along even if you’re an iPhone user. So long as you’re an Aries.

DevTO Presentation Slides

devTOLogo
Standard

If you were one of the 60 or so that made it out to DevTO last night, you were treated to a pretty fantastic show. I wasn’t bad either. I embedded a few resources into my  slides so here they are for your bedtime reading

https://skydrive.live.com/redir.aspx?cid=f56549e79bb0e4f2&resid=F56549E79BB0E4F2!323&parid=F56549E79BB0E4F2!336&authkey=!AIMtd_9EHueZWfc

Take a look at the notes as occasionally I add a little extra information. If you have any other questions, feel free to drop me a line.

And if you haven’t already seen them, photos are in a Facebook album.

Ladies Learning Code Introduction to WordPress Next Steps

llclogo
Standard

Yesterday I was fortunate to mentor in the Ladies Learning Code  Wordpress class which was lead for the second time by Wes Bos. 75 women, and a few men, spent the day with Wes and the mentors to learn how to build an awesome website using WordPress.

I thought I’d offer some advice to attendees on what to do next.

Finishing Touches

The class brought your theme 80% of the way, but there’s still work to do to make it production ready. Make sure the content of your home page is laid out how you want it, and you’ll probably want to revisit the background colour/image. Check out BgPatterns for more subdued background options.

Picking complimentary colours is a bit of an art, so if you’re like me and artistically useless, you’ll appreciate kuler, a palette picker recommended by LLC mentor Anne Thomas. Read her tweets for other great design tips.

To really make your theme your own, you’ll need to dig a little deeper into HTML/CSS. Take a look at these videos from Google to bring yourself up to speed. Or keep an eye on the Ladies Learning Code site for future classes. Wink.

If you like having your Twitter feed in your site, make sure it’s now working. Same goes for the Flickr widget.

I don’t care what Wes says, tag clouds are rad. Use them.

You’ll also want to know how many people are visiting your Matt Barnes fan site (Yes, someone was developing this. He was their background and everything.) Tools like Google Analytics give you great detail into how much traffic your site is getting, where they come from, and what they’re looking at.

If you find you’re running into trouble while developing, consider turning on debugging. However, do not leave this turned on in a production site!!!(!). This could lead to massive security problems, should the wrong information be shown to malicious users.

Getting the Tools

At the end of the day, after the attendees left, the mentors had a rousing discussion about text editors. I’m not kidding. Developers spend a lot of time learning their tools, and develop loyalty to certain products. While a mentor was helping you, you may have noticed they insisted on installing a certain editor, or viewing your site in a specific browser. You’ll quickly become the same way. The good news is, there’s plenty of software available to you, absolutely free.

On the browser side, Google Chrome and Firefox currently rule the roost when it comes to developer preferred browsers. Chrome comes with excellent developer tools built in , but if you choose Firefox, you’ll also want to install a plugin called Firebug. Take a minute to familiarize yourself with the developer tools in your browser. Start by right clicking and selecting Inspect Element.

Ask a developer which text editors they use and you may accidentally start a holy war. If you’re on Windows, Notepad++ is a great choice. Mac users can take the lead of Mr. Bos (can we please start calling him that) and use Sublime Text (free for evaluation) or Komodo Edit, which is also an option on Windows. Good text editors will have syntax highlighting (colour coding your PHP files) and some even auto-complete as you type. If you need advanced features, you might want to start looking at an Integrated Development Environment (IDE) like Eclipse for PHP, but it’s best to learn with simpler tools.

These are just suggestions, and a starting point for your research. Feel free to mention any other tools I’ve missed in the comments.

Hosting

Web hosting has become a comodity in recent years. Essentially what you want to look for is PHP support to install WordPress, and unlimited bandwidth and storage, in case your site gets really popular all of a sudden. Some hosts offer free domain registration, which is nice. Most plans shouldn’t cost more than $8 a month.

While on the subject of domain registration I’d like to give a little extra guidance. I absolutely advocate everyone claiming their piece of the internet by registering YourName.com. But when searching for registrars, look for those that offer free who.is privacy. Otherwise, people will be able to look up some of your personal information based on the URL you’ve registered.

I use Arvix for my hosting. I’ve been happy with them.

Content

You need something for people to read when they get to your site! Get those pages in top shape, and start blogging like the digital citizen you are. Stuck for topics? Why not write about Ladies Learning Code.

On a Personal Note

Finally I’d like to say thank you to the organizers and the students. The Ladies Learning Code team did a fantastic job. Registration was orderly, the network was solid, and lunch was excellent. All I had to do was show up and geek out for a few hour. It’s pretty clear why these  events sell out in minutes.

As a technologist I often find I’m teaching tech. But my audience is never anywhere near as receptive as they were yesterday. Everybody showed up ready to learn and was extremely pleasant to work with. Having students like I did definitely makes me want to volunteer again.

In Defense of MySpace

MySpace logo
Standard

It’s easy to dump on MySpace. It was the twenty-first century equivalent of GeoCities, but with an even lower barrier to entry. When MySpace lost the social network race to Facebook very few people were sad to let go of, what Seth Meyers once called, ‘abandoned amusement park of the internet.’

But for a certain group, it’s time to look a little closer MySpace. That group is .Net developers.

For a brief period, MySpace was the most visited site on the internet and .Net technologies were powering it. Virtually no other company, Micrsoft itself excluded, has ever run .Net at the sort of scale that MySpace was innovating at the bleeding-edge of the CLR to keep up. And with little fanfare, they open-sourced a number of their projects. That work is still ahead of it’s time in many ways, and it’s time .Net devs took notice.

qizmt

Qizmt logoMapReduce is the framework that lets Google scale it’s data to massive commodity clusters in a reliable way. This method for distributing computation has been so successful Yahoo!, Facebook, LinkedIn and countless others are now using an open source competitor, Hadoop. By far my favourite project to come out of MySpace was qizmt. qizmt is an open source MapReduce framework for .Net. It allowed you to horizontally scale as your computational load increased. The source is hosted on Google Code at http://qizmt.myspace.com/.

MSFast

Many web developers will be used to tools like Firebug or the WebKit Inspector, but if you are using Internet Explorer, especially a pre-8 version, you’re mostly out of luck. MySpace built their own browser debugger that they released for free. It brought IE 8 very close to feature parity with the above mentioned tools, but it could also be used with browsers as old as IE 6! The plugin is available from their site with links to the project on Google Code, http://msfast.myspace.com.

Data Relay

My company recently built their own framework to speed up intercommunication between systems. Had we known about Data Relay, we may not have needed to reinvent the wheel. Data Relay is a middle-tier framework to facilitate message passing at scale. This is the sort of heavy weight architectural project that seems to thrive in the non-.Net open source community, but doesn’t get the same focus in Microsoft shops because it’s not provided out of the box. This project isn’t as well documented, but you can find the code on Codeplex http://datarelay.codeplex.com/. There’s also an interesting mention of it by a former MySpace engineer on his blog, http://www.metafilter.com/104479/Im-not-quite-certain-who-this-space-belongs-to-any-more#3752867

It’s easy to look at a loud profile page on MySpace and assume the engineering behind the scenes was equally frightening. But the fact is you don’t rise to the top spot on the Alexa rankings without some pretty serious brainpower on the development team. I think it’s time developers, and the .Net crowd in particular, paid their dues.

Silverlight vs HTML5 Is Stupid

silverlight_and_html5
Standard

This ‘Death of Silverlight’ debate is getting pretty idiotic. If you’ve been avoiding it, maybe doing real work while tech pundits enjoyed their pissing match, it all started with this little sentence from Bob Muglia, President of the Server and Tools Division at Microsoft:

Bob Muglia sharing the future of Silverlight.

Hide the women and children and number zero! Muglia has lost his shit and is taking out every .Net developer at the knees!

This is stupid. Please stop.

There has been a lot of suggestion that Silverlight was never meant to replace HTML. This is revisionist history, and doesn’t help anyone. Silverlight was pretty clearly Microsoft’s attempt to overpower the conventional rich web stack with their own tools. And I do mean overpower. With Silverlight Microsoft brought a Sherman Tank to a knife fight. When Silverlight 1.0 was introduced in 2007 the web was a very different place. The only way to deliver video was through Flash, jQuery was just coming of age and Google Chrome (with all it’s V8 hotness) wasn’t even out yet. Silverlight represented a competitor to Adobe’s de-facto plugin, and Silverlight 2.0 gave .Net developers an opportunity to put their skills directly in the browser.

But their attempts were misguided. Building Bing Maps in Silverlight seemed like overkill and  many Microsoft product web sites (SharePoint comes to mind) used Silverlight for landing pages. The problem seemed to lay in Microsoft’s threshold for “Rich Internet Application.” Microsoft still seemed content to build the basics in HTML+CSS, but as soon as you started moving elements around a page, it was time to pull out the plug-in. Even the Silverlight Navigation template looks like a normal web page. Both of the above examples have since been converted to HTML, I suspect this is the ‘shift’ Bob is talking about. If that wasn’t their original strategy, what have they shifted from?

Frankly, Silverlight development is  lovely and in many ways better than HTML + JavaScript + CSS. The tooling is far superior, the functionality is much stronger (DO NOT argue with this, does your HTML5 application use a webcam?) and performance is generally better for intense applications.

But Silverlight is far from perfect. It never really made sense for general web development for a few reasons.

Silverlight isn’t crawlable/accessible. When you’re talking web, you can’t ignore the 800lb. gorilla in the room named Google. If Google can’t find you, you’re S.O.L. and Google can’t find Silverlight. A Silverlight app is a big amorphous blob of binary so without going out of your way to expose your Silverlight embedded content, search engine’s won’t find you. Closely related to searchability is accessibility. Again, because Silverlight is an amorphous binary blob screen readers and other devices have a hard time getting to the content.

Copy and paste is a pain. In my mind, this just about sums up why Silverlight isn’t a suitable general purpose web tool. Copy and paste is just one example of niceties that users have come to expect that are not out of the box in Silverlight. Right-click, navigation and printing also come to mind as examples of things that are onerous to put in Silverlight projects.

Microsoft Controlled. The other large vendors simply can’t use Silverlight over flash, because siding with Microsoft is like hitching a ride on the Death Star. For better or for worse, a single entity controls the platform. Google is now finding out just how fun it is to depend on a competitors platform. Oracle is trying to sue the pants off them for their JVM.

Plug-ins are an extra step. Getting users to install an extra plugin is ultimately one more hurdle you need to overcome. It may be simple but there are so many issues that could get in the way. Security settings. Computer literacy. New devices may not even support the plugin. (iAnyging, Android, BlackBerry, etc)

If you were building entire sites in Silverlight, you probably had a little too much Microsoft Kool-Aid. If you can’t distinguish between best-practices and marketing, you probably shouldn’t be developing in the first place.

Why Silverlight Is Still Relevant

Despite the above knocks on Silverlight it’s still a pretty good place to hang you RIA hat.

Microsoft is able to innovate faster than web standards. Silverlight was able to put video in the browser while the HTML5 video spec was in it’s infancy because plugins aren’t bound to any standards process. Standards boards move slowly because of all the players involved, but if Microsoft wants to try something, they’ve got their own sandbox to experiment in.  Right now, Smooth Streaming is the killer app for Silverlight. I suspect the video tag will catch up in time, but right now there’s no great story for streaming HTML5 video. Same with webcam and audio input.

Internet Explorer 9 doesn’t run on Windows XP. If you’re not a fan of the new Aero UI, there isn’t much reason to upgrade to Windows 7. There, I said it. Sure, there are optimizations that come from a new operating system, but unless you’re a power user, you probably won’t notice them. And if  you are a power user, you probably don’t use Internet Explorer anyways. So what of these remaining users? They’re still happily rocking their XP boxes running Internet Explorer 6 through 8. ‘Far superior performance in other browsers you say? Meh, Internet Explorer works for me.’ And you know what I’m okay with that. It just means I need to provide an experience for users that don’t have HTML5 canvas/SVG, audio/video, validation etc. I used to believe that the average web user really wanted an open and free web. Then Read Write Web ran a piece about the new Facebook authentication other sites could use. Turns out when you put Facebook and Login in the title, the people Googling for “Facebook login” are going to stumble across your site and think they’ve arrived at Facebook. This lead to comments like these:

These people weren’t stupid, they’re just not geeks like you and I that spend evenings reading blog posts about Silverlight. I think a lot of the behaviours we take for granted still needs to be learned by the less technically savvy. That includes using non-default browsers. And Google, Facebook, Twitter etc. haven’t been able to change their ways, your cat photo sharing app isn’t going to change that.

DRM is a necessary evil. DRM sucks. Get over it. You like getting paid to write software/music/anything creative? If you are to have a hope of making a living you need a way to control it’s distribution. This may be an area HTML never embraces because it’s so anathema to the open web philosophy.

.Net Developers Want a RIA Platform. All the above begs the question, then why not use Flash? Well here’s your answer Mr./Mrs. Smarty-Pants. I don’t know Flash. And I don’t care to learn it. Nothing wrong with Flash, per se. 20 billion users can’t be wrong. But I know C# and rather enjoy it, so if there’s an option to enhance a web page with my .Net skills, I’m going to use it.

So whether you’re a member of the HTML5 mafia or a Silverlight fan-boy, please calm down. There’s enough web to go around and we’re going to need to play nicely for years to come.