The idea for the format of this conversation is simple: put two geniuses together, give them each a whiteboard and some markers, and see what happens. It’s much like free jazz: expert improvisation, seriously geeked-out whiteboard jamming.
The content theme for this episode — Monads as coordinate systems–is not simple. To grok this, we need to think in three dimensions: programming, physics and mathematics. But don’t worry. Brian and Greg do not expect to be jamming in front of only fellow experts. This is Channel 9, after all, and there are many different levels of knowledge out there amongst our Niner population. Accordingly, you will not feel as though you’re watching something in a language you don’t speak. That said, you should possess interests in the theoretical, in mathematics, and in physics, and an overall appreciation for learning new things.
Monads are often used in functional programming – they’re structures that describe a flow of control and data (ff you’re a SharePoint person or have developed using WF, you might want to think of them as distant cousins of workflows). As the practical upshot of Moore’s Law has shifted from “doubling in speed about every couple of years” to “doubling in cores about every couple of years” and shows no sign of shifting back, functional programming and what it offers to parallel programming are becoming increasingly important. So don’t pass by this video thinking that it’ll never apply to you – there’s a chance it might.
Explanations of monads for non-functional programmers include:
Are you a web developer and want to sharpen your jQuery skills? Would you like to attend a conference featuring some of the brightest lights in jQuery programming? Are you too short on time and travel expenses to hit such a conference?
Beyond String Concatenation. Using jQuery Templating to Cleanly Display Your Data Rey Bango (Client-Web Community Program Manager for Microsoft and Head of Evangelism for the jQuery JavaScript Project) In this presentation, Rey will show you a new way to produce easily maintainable dynamic pages via pre-built JavaScript templates and the Microsoft jQuery templating plugin.
Testing Your Mobile Web Apps John Resig (JavaScript tool developer for Mozilla and creator of jQuery) This talk will be a comprehensive look at what you need to know to properly test your web applications on mobile devices, based upon the work that’s been done by the jQuery team. We’ll look at the different mobile phones that exist, what browsers they run, and what you can do to support them. Additionally we’ll examine some of the testing tools that can be used to make the whole process much easier.
Taking jQuery Effects to the Next Level Karl Swedberg (Web developer at Fusionary Media, member of the jQuery Team, author of jQuery 1.3 and 1.4 Reference Guides and maintainer of the jQuery API site) One of the first things web developers learn to do with jQuery is to show and hide elements on a page and then add some flair by sliding those elements up and down or fading them in and out. Too often, though, we stop there, missing out on the incredible range and flexibility of jQuery’s core effects. In this talk, we’ll investigate both standard and custom animations and how they can be used to create useful and fun effects. We’ll also build a couple effects plugins, explore parts of the effects API that are often overlooked, and learn how to avoid common problems when attaching these effects to certain events.
jQuery Pluginization Ben Alman (Developer at Boston.com, contributor to jQuery and Modernizr) In this live-coding session, Ben explains how, with just a little thought and effort around generalization, parameterization and organization, you can convert your "just get the job done" jQuery code into a legitimate, reusable, modular jQuery plugin.
Your conference attendance fee not only lets you watch the live event and ask questions of the presenters, it also lets you watch the recordings of the events any time afterwards. So if you can’t catch the live event (perhaps you’re busy at work, or it’s 3:00 a.m. in your time zone), you can still watch the presentations. This also lets you watch the live event to get the general idea, and then watch it again for note-taking or hands-on workshopping.
Are you a developer looking to launch your new web application? Or perhaps you’re an IT Pro or IT Architect trying to understand what all the fuss about “The Cloud” is. Or maybe you need for some compute time to run calculations. No matter who you are, or why you’re thinking about the cloud, Microsoft is making it easy for you try out our cloud offerings: Windows Azure (which runs your apps the in the cloud), SQL Azure (your database in the cloud) and AppFabric (which ties your on-premises and cloud systems together).
Check out the Azure Pricing Page and take a look at the introductory special, which lets you take Azure for a spin for a limited time – free of charge. Here’s what you get:
Included each month at no charge:
Windows Azure
25 hours of a small compute instance
500 MB of storage
10,000 storage transactions
SQL Azure
1 Web Edition database (available for first 3 months only)
AppFabric
100,000 Access Control transactions
2 Service Bus connections
Data Transfers (per region)
500 MB in
500 MB out
Any monthly usage in excess of the above amounts will be charged at the standard rates. This introductory special will end on October 31, 2010 and all usage will then be charged at the standard rates.
If you’re in Canada and have questions about Windows Azure, my team and I are here to help and can answer your questions. We’d also love to hear what sorts of projects you’re using Azure for. To reach us, drop us an email at cdnazure@microsoft.com.
I’ve heard the back-and-forth debate about whether you should write your phone app as a native app or as a web app more times that I care to recall, but it’s never been done as well as Jason Alderman and Matthias Shapiro do it…rap battle style!
By the bye, if you’re building stuff for WPF, Silverlight or Windows Phone, you really should be reading Matthias’ blog, Designer Silverlight. I’ve already bookmarked it, and so should you!
And for the truly nerdcore, here are the lyrics:
Jason: You bought three coding books for reading on your Kindle, They never got read, the whole deal is a swindle, Pony annual fees for app sales, then they tax it, I’m telling you man, that app store is a racket! You are MUCH better off with HTML– The web page markup that I know you know well– The latest spec lets you store data on phones Even when offline, but the browser phones home! Your iPhone, Android, Palm, soon Blackberry: Local data storage! SQL! it’s no worry!
Matthias: Cross platform apps are a real seduction But you give up your form, and most of your function And your app, it hobbles in the passing lane Like a one-legged zombie but with far less brains Running your crap on the web, no performance Mine is greased lightning, you run like a tortoise You don’t understand the mental model users are adopting They don’t want to hit the web, they want one-stop shopping Here’s how you make an application fun Turn it on, do your thing, turn it off and you’re done
Jason: When the iPhone came out, sure the browser was slow, But the new smartphones? half a gigahertz or mo’ That’s faster than the box on which your mom does her taxes Pretty snappy–WinME!–, but now it’s like molasses In praxis? I already write scripts, it’s easy Better than compiling native code till my teeth bleed Time that I saved, I put in media queries, add UserAgent switch statement, stylesheets fear me! Custom chrome, each phone? Modus operandi. Willy Wonka’s schooled by my custom eye candy!
Matthias: Did that school teach usability cause I think you missed it With apps for devices the use is holistic Gotta look act like you belong, not draw their attention Like a steam punker crashing an Avatar convention Use is more than just Chrome and colors, look at navigation Modern users look for standard gestures, menus, animations, And what about the richness of movement & location Do you want to surf the web or record your whole vacation? When I tilt your web app, it’s just stuck in a groove With my purely native code I can bust a move.
Jason: But that’ll only improve–heck, web apps get location And if the case came where I needed acceleration I’d wrap my web app in the library Phonegap–
Matthias: Excuses, excuses, You’re giving mobile a bum rap Try adding 3D to your list of what apps do Or write a game that’s not scrabble, chess or sudoku And you know CSS competes with OpenGL Like a cub scout against 10 marines with a 50 cal Boom! 3D mushroom cloud filling the room Now go back your text adventure version of Doom
Jason: Sure games make money, but think of their use, They’re casual, waiting in line at Jamba Juice, You’re making the mistake of the hardcore PSP, When a simple DS meets the goal just as easily Heavy duty third-dimension graphics drain the life Of your battery, more than the scripts I’m paid to write. But, hey, if you want 3-D page flip transitions, Perspective transforms of element positions, Web apps can do that, CSS has you covered, To your Mel Gibson, C-S-S is Danny Glover! (I’m too old for this!)
Matthias: CSS animations, are you out of your gourd? That’s a terrible sin in the eyes of the web lord. Every time I bring up something hard You just dance around it, pulling out your library card Or some spec or framework only halfway done As if javascript and CSS are rainbows and fun Look, there’s only one way that this thing can go Build your web apps for free or jump into the cash flow Advertising won’t help you survive But just one little iFart can get you set for life No app store, no eyeballs, no business plan. Making just enough dough to pay the rent on your trash can I hate to play the role of Scrooge McDuck But without a good market you’re pretty much… well, you know
Jason: Trash can? Your app waits in limbo for a month, You’re stuck eating ramen, watching reruns of Monk. Your funk? Only lifted if the app store approves it And we both know the king of the process is ruthless! The truth is, even if it does get approved There’s a chance that your make-it-rich dream comes unglued When a bug in your app that slipped through the process Makes users hate it, they leave lots of comments, And you fix it real quick, test patches and submit it But it still takes a month, so your app gets attritted From all the top ten lists, losing all worth, It’s a digital coaster, like "Battlefield Earth"! My apps sell anywhere, and update on the fly. You can’t have your cake OR eat it, ’cause the cake is a lie.
By now, you’ve probably seen the tech news reports as well as Scott Guthrie’s announcement about WebMatrix, Microsoft’s lightweight web development web development system that packages a web development tool with a number of new web technologies:
IIS Developer Express: a lightweight, free-as-in-beer web server with simple setup, runs on all versions of Windows and is compatible with the full-on version of IIS 7.5
SQL Server Compact Edition: a lightweight, free-as-in-beer file-based database with simple setup that can be embedded within ASP.NET applications, supports low-cost hosting and whose databases can be migrated to the full-on version of SQL Server.
ASP.NET “Razor”: A new view engine option for ASP.NET for easy and clean templating with a simple syntax. You can use Razor to embed C# or VB into HTML.
WebMatrix ties these goodies together in a nice simple package that the beginning web developer will find easy to use and that the pro web developer will find handy for building quick sites. These parts are also available individually to ASP.NET developers and will soon be available to ASP.NET MVC developers.
If you’re looking for a quick video tour of WebMatrix, chack out the Channel 9 video below:
WebMatrix provides a simple, task-based interface for quickly creating web sites, both static and dynamic:
It makes it easy to include open source ASP.NET- and PHP-based web applications in your site:
It’s also easy to manage applications in a WebMatrix site:
If you’d rather write your own web app in WebMatrix, you can do that too. There’s a rich file editor:
And database definition and management tools:
There’s also sample code and web helpers to make your life easier and show you what’s possible, such as this handy sample that makes it easy to make a Twitter client. Here’s the code that takes advantage of the sample:
…and here’s the result:
If you need to get hardcore, you can open your WebMatrix project in Visual Studio or even the free-as-in-beer Visual Web Developer 2010 Express:
Previewing your WebMatrix site in multiple browsers is a snap:
Deployment is nice and easy once you’re doing editing your site:
Find Out More
I haven’t had a chance to take WebMatrix out for a proper spin yet, but I’m hoping to over the next few days. It’s a collection of cool technologies (which I ‘ll also use in my regular ASP.NET MVC development) wrapped together by a nice, simple tool that’s great for the web developer who’s not working on enterprise sites. I can also see myself using it as a handy prototyping tool.
If you’d like to find out more about WebMatrix, take a look at these:
As a reader of this article, the chances are that you’re out of school and working either as a programmer or at least work with them. You might have come around to thinking that you wish you’d paid a little more attention in that Algorithms course, in that wistful, grown-up “Why did I quit piano lessons when I was young?” way. If you feel this way, here’s your second chance.
Microsoft’s Channel 9 is presenting a series of video lectures by computer scientist and big math brain Yuri Gurevich,, the guy behind the abstract state machine (an enhancement of the Church-Turing Thesis, which states that if it’s computable, it can be computed by a Turing machine). In this series, he’ll walk through all those algorithms that were covered in that course, provide plenty of historical context and explanations, and hopefully give you enough knowledge to help make you a better programmer. The first lectures in the series introduces algorithms by starting with Euclid’s “greatest common divisor” algorithm, explores the history of computation (including the Entscheidungsproblem), covers the difference between solvable and non-solvable and covers all those goodies you missed in Algorithms class.
What’s the number one reason why developers choose a mobile platform? According to Mobile Developer Economics 2010 Report, which is produced by VisionMobile (and which I’ll call MDE 2010 from now on), it’s market penetration:
Do mobile developers stick to one platform, or do they develop for multiple platforms?MDE 2010 says that the latter is true:
Most developers work on multiple platforms, on average 2.8 platforms per developer, based on our sample of 400 respondents. Moreover, one in five iPhone and Android respondents release apps in both the Apple App Store and Android Market.
Which mobile platform was most used by developers in 2010? It might not be what you think, going by MDE 2010’s numbers:
Are app stores the way of the future? Quite likely, and that’s because according to MDE 2010:
It provides the fastest time from final GM version to market, and
It’s the fastest way to get paid.
MDE 2010 is a treasure trove of useful information for developers and entrepreneurs looking to make it big by creating software that runs on those little computers that are rarely more than arm’s reach away. Luckily, it doesn’t cost a thing – the folks at VisionMobile have made the download available for free!
If that weren’t enough, VisionMobile is also posting a four-part series of articles on their blog in which they discuss MDE 2010. Part one is here, with the other parts to follow.