Information below is based on beta, hearsay and educated guesses.

Win8 ~= Win7 + Metro

To make things overly simple one can think of Windows8 as Win7 with a voluntary new touch centered user interface called Metro.  Touch is not mandatory.  Metro isn't mandatory either so one can use the old Win7 user interface if one prefers.  Clueless IT guys can even force people to use Win7 GUI on Win8 machines through policies.

Metro is sandboxed

One cannot use ordinary Dotnet to write Metro apps but must use the WinRT lib instead.  This is not a full fledged lib like dotnet with com interop and whatnot to  make you reach the whole computer but a sandboxed version.  Think Iphone or Android market where you are safe to download apps since you know they cannot harm your machine.

Metro requires an app market

This also means you cannot install applications in Metro without going through the Microsoft app market.  Think Itunes.  Think someone else ok-ing your app.  Think delays.  What does this mean for the development loop when bug fixes can't be deployed at once?  An educated guess is that Microsoft will allow for a shortcut for big companies so one doesn't have the turn around delay.

Note to self: Check with Iphone guys.

Harder, better, faster, stronger

I have briefly played with Metro and it was the most responsive touch GUI I have tried; but then it ran on a full fledged computer camouflaged as a tablet, heavy, expensive and powerful enough to develop on.  I want one.  Win8 will be tighter than Win7 and with the right hardware faster.

Full screen required

Applications in Metro are always full screen.  This is going back to Windows1 and the first Mac IIRC.  One can have another app visible at the same time like a  side bar which is good but doesn't solve the debugging problem.  I don't know if one can run Metro on only one screen and debug on the other - otherwise two machines are needed for developing at speed.

This news letter is sponsored by Daft punk.



Code and development

Browser functionality - browsercaps, wurfl and mordenizr

In the early aspnet days, before the turn of the century, Microsoft decided to letting the aspnet controls update their client side functionality depend on the browsers' user agent.  This functionality table was stored in the browsercaps file.  Microsoft never updated the file past the first years but instead it was taken under the wings of volounteers so today the file is fetched somewhere else.

Today we use javascript to find out its own functionality instead.  This means that instead of getting the user agent is not in use but instead we see if a method exists or not.  There is of course a javascript framework for that.  This framework is endorsed by Microsoft in aspnetmvc.

Developing web applications for mobiles is way more heterogenous than for the desktop.  For instance we don't know if there is a javascript at all and we don't know if the javascript is run on the phone or in (the very cool) servers of Opera mini.  So the user agent is needed again.

Since many years there has been a framework, Wurfl, that holds a database of 7000 devices or more and the functions of each and every one of them.  This project is very much alive and recently spawned a company in USA with pay-for-support.

- http://browsers.garykeith.com <- browsercaps maintained today

- http://www.modernizr.com/ <- javascript detection of javascript functionality

- http://wurfl.sourceforge.net/ <- wurfl

- http://www.scientiamobile.com/ <- commercial wurfl

Tipthanks PetterE

alice.js - css web client animations

Contrary to jquery et al alice.js uses CSS to animate stuff.  I see one upside with this and that is that the browser has better possibilities to do some performance magic.  Javascript on one thread and css on another or something like that.

- http://blackberry.github.com/Alice/

Html5 vs Flash vs Silverlight

This isn't the first article on the subject, nor is it the last.

When Microsoft said their first stuff about Win8 they never mentioned Silverlight and many who had invested in the technology shouted Death!  I can at the top om my head think of 20 technologies Microsoft didn't mention during that 1 hour talk but I don't think they are being killed just because of that.

But I won't bet my money on Silverlight anyway.  I tested version 1 ligthly and saw it only was appropriate for showing demos of moving pictures, not business applications that I am interested in.  It has developed since then and seems to work nicely.  On chosen platforms.

Presently there is a rumour about next version, 5, of Silverlight being the last one.  I doubt is since it also looks like Silverlight is coming to the xbox platform.

I must confess not doing Silverlight is partly because of religious reasons.

(no, I haven't developed for the xbox or even on xna.  yes, I would like to try.  and yes, I do have a business/developer application for it.)

Then there is Flash that took a big dive when the ipad made it big.  Suddenly web sites were crippled with holes (=squares) of non-graphics on them.  It seems that Adobe/Flash took the blame for this as everyone also pointed at Flash as a CPU hog.

Now Adobe has decided not to continue development for small devices.  I bet they are investing in making the Flex and Air solutions Html5 compatible instead.  That will make a Nice alternative framework!  I haven't tried Flex&Air myself but heard that it is a nice framework but lacks googleable questions and answers for business like applications.  Just like Flash its online presence is all about GUI and less about business rules and multi layering.

- http://www.zdnet.com/blog/microsoft/will-there-be-a-silverlight-6-and-does-it-matter/11180

- http://www.zdnet.com/blog/perlow/exclusive-adobe-ceases-development-on-mobile-browser-flash-refocuses-efforts-on-html5-updated/19226

- developers.slashdot.org/story/11/11/11/1411253/will-adobes-html5-strategy-help-developers        

Ripple emulator - Phonegap with debugging

My try at multi platform development with Phonegap left a hole saying "impossible to debug" big enough to make me temporary ditch Phonegap.

Then I heard about Ripple from RIM that makes it possible again.  I haven't looked into the product and can't say anything about price and whether it is good or not, or whether it works at all.

Anyone with experience?

- http://ripple.tinyhippos.com/

Google Appinventor killed and going open source

Appinventor is a graphical development environment for doing Android apps.  It isn't suited for business applications like we are used to but simple stuff is alright.  Fast and easy to learn to get your first android app on your phone to show around.

- http://www.appinventorbeta.com <- the product

- http://www.appinventorbeta.com/forum/#!msg/app-inventor-announcements/KOElwBV3sVs/-9b0XUwam90J <- information about its demise

- http://googleresearch.blogspot.com/2011/08/new-mit-center-for-mobile-learning-with.html <- google + mit

- http://mitmobilelearning.org/ <- new harbour

Agile modelling

Whether one is using agile methods or not; architecting and modelling is part of the development process.

Below is linked a site on the subject and it includes the term "whiteboard warrior" which is new for me.

- http://www.agilemodeling.com/

Graphical programming for kids for free

I don't believe in graphical programming for the corporate stuff that puts bread on my table. But beginners could have a great advantage of visualising the program more than reading it.

Scratch is a gratis (free?) solution for this. Of course limited, but building a limited program in Scratch it's better than not building it in a more mature language.

- scratch.mit.edu/        

SignalR - real time web communication

Until we have a full Html5 and web sockets on every browser and the starving problem of the world is solved we have to rely on other solutions.

SignalR is a stab at making real time communication over web accessible for programmers who don't want to dive into the web sockets or long polling documentation.

What it does is give a javascript API against web sockets with fallback to long polling.  I am in mentioning Signalr not going to explain web sockets, long polling or http; but if you are interested in immediate feedback from your server to your users' web clients Signalr is one of the frameworks to look at.

Also google "comet" which is a name for the technology.

- https://github.com/SignalR

- http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx <- more text and an example

- http://hanselminutes.com/291/damian-edwards-explains-the-realtime-web-for-aspnet-with-signalr <- a cast with the creator of signalr

Gadgeteer - hardware gadgets in dotnet

If you want to do hardware but is a little scared of the soldering pen - now is a good time to start.  With Arduino and the spin offs there are several solutions that allows for small pieces to be connected and programmed.  What I mean is that there is no soldering required and no smell of burnt ICs.  Just already created cables constructed of HW people for us to connect and play with.

There is even a dotnet variant so one doesn't have to leave the comfy Visual studio.

The prices aren't too bad either.

- http://netmf.com/gadgeteer/

- http://www.ghielectronics.com/catalog/product/297 <- starter kit with a whole lot of whizzbang

Singleton in dotnet

Singleton is often considered the simplest pattern but I digress.  Except for the simplest cases writing a singleton requires thorough knowledge about the language at hand; one really has to know the locks and ifs and constructors to make a zyzygy.

Below is linked a good article.  I don't consider it as wordy since it really explains the subject in depth in a simple way.

There are 6 examples where 4 can be used.  At the bottom of the article is a short explanation if you don't want to grok it.

- http://csharpindepth.com/Articles/General/Singleton.aspx

New Tool for Debugging Parallel Applications in Visual Studio 11

People say with all rights that parallel programming is hard.  I agree but chime in that it puts the fun back in programming.  Now I am forced to learn the geeky tidbits of dotnet and x64 to be sure a program works.

Already in Visual studio 2010 there is a parallel debugging tool to help. Among(st?) other it shows the stacks for several threads at once.  Caveat: it might only exist in the ultimate license of visual studio due to Microsoft's flawed licensing scheme.

     This tool seems to be updated in Visualstudio2011.  Good.

- http://www.infoq.com/news/2011/11/Parallel-Visualization-Pack

Flash for mobile no more

Adobe will discontinue Flash for mobile devices.  That puts a big dent in the usefulness for Flash...  But I understand them, with the Html5 bandwagon approaching I wouldn't bet on Flash either.

But who cares? if you had wanted to work with the same thing for the rest of your life you shouldn't have chosen computer science..

Adobe is also laying of people.  And moving resources to India.  They will move towards Html5 with Air, Dreamweaver, Edge and Phonegap (newly acquired).  I heard a rumour about Flex going open source.

- http://www.infoq.com/news/2011/11/No-More-Flash

Projects, methods and leadership

3rd of December is international code retreat day

In short: Code retreat is to take a simple example (Conway's game of life) and look at it from different viewpoints like test driven development, object orientation, continous refactoring, ping pong pairing and whatever.  Do some of these for a day and you will learn something to be a better programmer to come closer to yourself.

This year there is a code retreat in Stockholm, Umeå, Copenhagen, Vilnius and many more so there should be one near You.

- http://coderetreat.ning.com/events/event/listByDate?date=2011-12-3

- http://www.infoq.com/news/2011/11/global_day_of_code_retreat

10 step book about Kanban, gratis

Kanban is about visualisation.  Software wise probably the easiest way to think about it is to have a whiteboard with 3 columns.  First column is tasks not yet started on.  Second is tasks under development and third is for test.

     Now, instead of time boxing everything like one does in scrum instead one limits the work load by limiting the number of postits in each column.  The idea here is to visualise in an easy way where the job stacks up; if you can't move anything to test because the test are not done yet (the limit of 2 postits is reached) then go help the tester.

Unfortunately the PDF is 80 pages but one doesn't have to read every word.

- http://www.infoq.com/minibooks/priming-kanban-jesper-boeg

Products and releases

paper.li - your own online magazine

Start a magazine and let it get its news from your chosen twitter, rss or other source.

This means you update in one place and the magazine gets updated automagically.

There is an example linked below.

- http://paper.li/amazedsaint/dotnet

3D in html and javascript

Now javascript is fast enough to do 3D!

Below is linked a 45 minutes presentation of a 3D lib released under beer ware license.  To be honest, the full framework isn't created in 45 minutes, only presented.

There is also the A3 engine with the undulating monkey.  All javascript.

- http://vimeo.com/31129124 <- continue to the alice.js for 2D animation with CSS

- http://aerotwist.com/a3/

Tipthanks MAnaya

writeboard - online text collaboration

37 signals has had their writeboard live and gratis for some time now.  It is a very simple text document solution with collaboration and version management.

(i am presently reading their lates book)

- http://writeboard.com/

smarkets - crowdsourcing bets

I am not into gambling but I like crowd sourcing.

The site linked below tries to crowd source the bets.  Instead of a bookmaker making up bets the site lets the crowd do it.  It also tries to have a lower interest than bookmakers.

Since I don't do gambling I cannot tell if it works, but I like the idea.

Then there is betting on bets that has odds that differ from other bets, a sort of meta betting.  But that is another thing and not what I am interested in either.  More than mathematically of course.

- http://smarkets.com/

Security, privacy and rights

pwdhash - a very simple way to create unique pwds

Say you have the favourite password “apa”.  Pdwhash hashes it together with the site, to for instance DaQE8, so all you have to remember is "apa" while the site has a truly unique password.

If you don't want to install a plugin, just use the site.

- https://www.pwdhash.com/

Tipthanks JörgenB

Your data is Yours in the EU

If I understand correctly companies in EU must be able to delete a user's data on demand today. This is not enforced as of yet.

The Austrian initiative to get users' own data out of Facebook will continue. According to the article linked below EU user rights might in the future differ from USA which has a wider acknowledgement of corporations being some sort of super-citizens and not only toolsfor mankind.

- tech.slashdot.org/story/11/11/10/0319212/upcoming-eu-data-law-will-make-europe-tricky-for-social-networks

Adobe believes they own the usage of the word photoshopping

Not everything can be owned.

Adobe thinks otherwise.  They express it like this:

Trademarks must never be used as slang terms.

Correct: Those who use Adobe® Photoshop® software to manipulate images as a hobby see their work as an art form.

Incorrect: A photoshopper sees his hobby as an art form.

Incorrect: My hobby is photoshopping.

- http://www.adobe.com/misc/trade.html#section-1


Xbmc - a condensed article about setting up

Setting up Xbmc is a lot of clicking and searching.  Below is linked a try to condense all links to one place.  Even if it isn't the full reference it is still a good place to start.

- http://lifehacker.com/5536963/the-ultimate-start-to-finish-guide-to-your-xbmc-media-center

Tipthanks MaTh

Nerogame - train bots and fight against others

This solution is not about writing tons of AI code but to control the bots manually and let them learn step by step.  And finally pitch them against bots trained by other mere humans.

- http://nerogame.org/        

Tipthanks StenM

Microbricks - doing lego in the small

When looking at lego stuff on the web bigger is better.  Why?  Because it is easy?

Making lego creations smaller is a bit of putting lego back in lego - I mean, make away with all the gadgety, polished and non-brickety stuff to make lego fun again.

Everyone can make everything in lego with enough bricks.  But what is the fun in that?

- http://microbricks.blogspot.com/

How long didn't this take?

With my attention span I would have dropped out after 10 minutes.  And then there would be 12 hours left.  Plus post editing.  Yikes!

- http://www.youtube.com/watch?v=MHB6H5jdn90

Showcase lego constructions and vote

This is a showcasing with possibility to €arn.  Show your lego creation.  Get 1000 votes.  Lego guys check out your construction.  If it gets into production you get a percentage.

It might be something they're at here.  Lego has moved away from constructing and building stuff to the play market and is licensing all sorts of movie and toy stuff.  Downgrading a superb platform I would say.

In the later years Lego has started moving towards build-stuff again but not fully raised to their potential.

- http://lego.cuusoo.com/