Friday, February 29, 2008

Certainty.co.za

Myself, and a few fellow developers, are building a pretty kick ass financial services product for personal finance, called Certainty.

Sign-up at the site: http:/www.certainty.co.za/ to find out a little more as we reveal all the elements of the application.

It's being built strong, secure, super fast, and with a host of open financial web service based APIs, so other sites in South Africa, as well as around the world, will be able to run personal finance applets and applications with, well, certainty.

There is very little to show for the public right now, but the public beta will be available in March, so sign up now!

Monday, February 25, 2008

What's right with young people today

Microsoft has started a program called DreamSpark where their enterprise grade development applications (like Visual Studio) which my teams like mine, and millions around the world, make the products and services which change people's lives.

By legally putting these tools in the hands of students world wide, Gates and Microsoft are cultivating a new generation of innovators and entrepeneurs in what is the vanguard of broad based human efforts (I'm excluding things like genetics and medicine development, since these are very specialised) to better our world and society.

Bill Gates' article from the Globe and Mail in Canada

One of the striking things about human progress is that so many of the world's most important new ideas were the work of young people. From Isaac Newton's discoveries as a 23-year-old that formed the basis for calculus, to Charles Darwin, who surveyed the Galapagos Islands at age 26, and Albert Einstein, who published his paper on relativity at age 26, young people have been responsible for breakthroughs that form the foundation for much of our understanding of how the world works.

Young people have played a central role in many other fields, including business and technology. Paul Allen and I were in high school when we started thinking about the personal computer, and I was 20 when we founded Microsoft. Steve Jobs launched Apple at age 21. Sergey Brin and Larry Page were graduate students at Stanford when they developed their first search engine. Yahoo was launched by Stanford graduate students Jerry Yang and David Filo.

Why do young people play such an important role in innovation, even though older people have greater breadth of knowledge and a deeper understanding of their field? My theory is that young people aren't as constrained by traditional ways of thinking. They haven't yet completely absorbed the "right" way to do things, so they are free to pursue ideas that seem impossible to those of us with more experience.

I often see this at Microsoft. It's not unusual to have the best solution to a tough problem come from one of the youngest people working to solve it. Often, our first reaction is that what they are suggesting is crazy, until we understand that they have come at the problem in a creative, new way.

I saw this kind of innovative thinking when I visited the University of Waterloo this past week and spent time with students there who are focused on pushing the envelope in science, engineering, and other fields.

I am optimistic that college and high school students will continue to produce groundbreaking ideas that will change people's lives for the better in the years ahead. But I have some concerns.

In particular, I'm concerned that too few young people are acquiring the knowledge they need to use technology in creative and innovative ways. During the last decade, the number of college students who study math and science in Canada and the United States has declined dramatically. Today, there simply aren't enough people with the right skills to fill the growing demand for computer scientists and computer engineers. This is a critical problem because technology holds the key to progress, and to addressing many of the world's most pressing problems, including health care, education, global inequality, and climate change.

We can all help address this issue. As parents, we must help our children appreciate the joys of learning and discovery. Teachers and educators must find ways to teach science and math so it is relevant and exciting. We look to government to help improve educational excellence in our schools and ensure that all high school graduates have solid math and science skills.

Companies like Microsoft must contribute, too, by working with schools to foster interest in science and mathematics and provide training that is relevant to the needs of business. That's why we recently launched a new program called Microsoft DreamSpark. Through DreamSpark, we are providing professional software development and design tools to university students around the world as a download at no cost.

Our goal is to help students expand their skills and knowledge, and, hopefully, to inspire them to find new ways to turn their great ideas into businesses that create real opportunities and solutions that address real-world problems.

Although the world has changed dramatically during the last 30 years, I believe we are only at the very beginning of what is possible. If we do our jobs as adults, and equip young people with the knowledge and skills they need to turn their great ideas into breakthrough innovations, I believe they will find solutions for many of the difficult problems our world faces today. Their future - and ours - depends on it.

Thursday, February 21, 2008

GoogleTalk + Translation = Way Cool

From Alexey Gavrilov at MetaLink:

Released yesterday they allow you to translate from and to dozen of languages using any XMPP client (including GTalk of course).

Add [src language]2[dest language]@bot.talk.google.com

to your GTalk contacts and bingo — you’ve got your personal machine interpreter. For example en2zh@bot.talk.google.com will translate from English to Chinese.

The quality of translation looks pretty good in simple tests (I tried English to Deutsch and English to 中文).

The following language pairs are supported:
ar2en, bg2en, de2en, de2fr, el2en, en2ar, en2de, en2el, en2es, en2fr, en2it, en2ja, en2ko, en2nl, en2ru, en2zh, es2en, fi2en, fr2de, fr2en, hi2en, hr2en, it2en, ja2en, ko2en, nl2en, ru2en, uk2en, ur2en, zh2en.

Labels: ,

Flash CS3 / AS3 + .NET

I used to be a Flash Developer. Yes, there used to be such a thing. A Flash Developer was this crazy thing that existed after Macromedia (which was an awesome if often frustrating vendor before it gobbled up by the rationalists at Adobe: which isn't a bad thing, because Macromedia were excellent at screwing you by changing the API, the language etc. at a whim) gave the market Flash MX, which came with a 'real' scripting language in the form of ActionScript 1.

This was really cool, and I built, with other great developers, some amazing stuff, which by modern standards looks pretty much like Ajax, because the only bridge between our Flash UI and the .NET web services (which were in .NET 1.0 : yes, I'm that old!) was a single XML(); object which we could do Asynch requests, and attach callbacks, and even that was pretty rudimentary.

So by modern standards, we used the Flash MX component and object model like our own DOM, and used the XML object as our XmlHttpRequest object, and basically wrote an Ajax application, except it ran in the browser.

I now hear this application is being rewritten in .NET; personally I would rewrite the thing in JavaScript, because about 90% of the code would work, but what you'd need to know is how to map the Flash MX DOM to the XHTML DOM. Not a trivial task, and considering the company's skill base they probably are better off sticking to .NET despite all the IQ/IP that went into that fairly groundbreaking application for its time.

But Flash moved on, and so did I. Flash recentered on the user experience side of things, which in some ways reorientated the application back to the designer side of things (not that it ever really left); and with AS 2 and AS 3 being VASTLY different to AS1 I wouldn't really say that I am a PRO Flash Developer like I once way.

BUT I still fire it up from time to time, check out the every widening implementation of ECMAScript that is ActionScript (this stuff looks more and more like some sort of type-safe/inferent Java with each iteration), see how the player (essentially the runtime) has improved, and how the actual Flash IDE (if you can call it that) has also moved on.

Of course ActionScript now has a ASP.NET-esque life in the land of Flex, which is in my opinion the greatest technology which will never happen in a big way; and this is sad, because Flex is quite simply the best front end you've ever seen in your life for developing web business applications. One problem though, and that is the consumption of Web Services.

Flex/Flash/AS do do web services, and they do them well on paper. I'm not a Java guy, so I can't really say how well they do Java WS, but for .NET its just not intuitive and simple, and that for me makes the whole point of WS as a way of serializing language independent methods and classes nullified.

It's simply not easy to build a flash app that consumes and uses .NET web services in a QUICK and DIRTY way. I'm going to see if that has changed, I've got Flash fired up as I write, and I hope to be focussing on Flash a lot more on this blog, as its a vital area of interest, and a real friend to me.

Labels:

Tuesday, February 19, 2008

RDBMS obsolete: who needs transactions when developers can just use Ruby! (VOMIT)

Its always sad to see someone go INSANE, kind of like the inventor of Ingres at UC-Berkley (Mike Stonebraker) who now states that OLTP DBMS systems are obsolete because they fully implement locking, transactions and other nice things that make ACID compliance possible.

http://www.regdeveloper.co.uk/2008/02/18/stonebraker_dbms_outdated/print.html

This kind of thing is totally irresponsible, and a real step back in my opinion. Now that we have computers powerful enough to properly run a full ACID-compliant DBMS on any device, Stonebraker and others want to throw it into the trash heap.

To deprecate SQL would be to destroy all the amazing progress that has been made in the last 20 years to standardise data access and storage.

It shocks me to see a DB guy advocate what I can only imagine will be something not dissimilar to a flat file. "geographically dispersed RAM storage"??? Someone at RegDeveloper needs to do an elementary computer science course; RAM is for temporary storage, which is already done when ever a programmer defines a hash table or array. I don't see why the Data Layer should now be torched because its too complete.

The argument that the way people use modern computers makes the DB paradigm as it stands obsolete is patently ridiculous. The reason people are able to use computers in such a abstract way from the underlying data schema is because of the excellent glue that SQL has proven to be. To suggest that every coder in the world is better placed to define and manage his own data structure is clearly the domain of the academic who hasn't seem the absurdity of flat text files and the like being used some applications in the wild to store data.

Also I don't see why, considering XML's parallel development to tradition data stores, SQL and its implementations need to be scrap heaped to make any new sort of data methodology win. Let Stonebraker and his fellows try and build a better way of storing data; the man is smart, and I'll be excited to see what he builds. Too bad no one will use it. 

Labels: , ,

Sunday, February 17, 2008

Winning the battle but the war rages on: Static Vs. Dynamic Languages

Dynamic languages are getting A LOT of popular press at the moment, in the face of a wave of supposedly superior dynamic languages like Python, Ruby, et al, what is a poor static language guy like me supposed to do.

It seems everyone has forgotten that C++ is still the king of languages, closely followed by C#/Java (let's stop pretending: it's one language! - lol).

But the curly bracketed languages are in for a thrashing at the hands of the dynamic hippies, and not only because their languages sound cooler. Somewhere everyone got confused, and seems to think a dynamic language is a more practical one.

I like dynamic languages when I am prototyping and working quickly; they are quicker, cleaner and more direct. But whoah betide the person who tries to run a project of 10+ developers of middling quality with a dynamic language: get ready for code grid lock.

Why is this? Dynamic languages are great, if you have a Ph.D. in Comp Sci, and sadly the people who advocate particular patterns, practices and languages tend to, or at least have a computer literacy at that level. But not most developers. Most developers aren't superstars, they are code monkeys, and they WILL get confused in time, have the data types incorrectly implicitly data convert at runtime and the code will break.

Just this morning I was faced with a classic bug of developer stupidity; the application attached events to the Event Log in Windows, but the guy did a count of the event log for some business conditioning. So when you clear the SYSTEM event log, his code and the application breaks; meaning until SQL server or some other handy app writes to the Application Event Log, his vital process application WONT RUN. Why? Because he was a moron who ASSUMED that that the event log will always have a x > 0 length; ROT!

That is the sort of banal assumption that the compiler in static languages is able to generally remove; but in the brave new (old) world of dynamic languages will become the sort of bug a manager will have to become familiar with.

Labels:

Thursday, February 7, 2008

Windows Live Writer - Killer for the first time

I run several blogs, some for myself on my own domain, but the blog which I blog most too is my companies internal developer blog which I setup internally affectionately known as The Cooler.

I blog to Word Press and blogger mainly, but have tried out a couple of different spaces.

Now with so many blogs that I write too, it makes sense to use a Blog Writing package. I haven't tried out others, but Microsoft Live Writer, from the Live boys over at MS is simply kick ass.... its the perfect example of a web enabled Windows application.

It's extensible, coming with its own SDK for the development of Insert plug ins, all of which are super functional and make the creation of a good blog post awesome.

What for me is great is the automatic style sheeting, so you have a fairly true WYSIWYG process, far better than Office 2007's Word blogging tool : I hope Live Writer's features will eventually be embedded in Word, but I understand the software stacks for these two applications are truly different.

What is so awesome, is that despite punting Windows Live Spaces, Live Writer interacts so well with so many different blog platform providers. This is the kind of innovation I love about MS but which so rarely makes its way into their consumer products.

Anyone who has used Visual Studio in the last couple of years knows all about the extensible and web enabled nature of MS's application direction, but to see this kind of functionality in a free blog writer is truly excellent.

I find the software best of breed and  a joy to work with, especially when it comes to uploading, managing video and images on your site. The ability to to work effectively with multimedia in a blog writer with all the power of the native Windows OS is the first real sign that MS really 'gets it' when it comes to rich Internet enabled applications for the desktop.

The application is super fast, and a lot could be learned from it. It's so good it makes me feel a little open source evangelical: I'd kill to see the source of this great little application, but then so would Google and other Microsoft competitors.

It's such an exciting time for Internet enabled desktop applications, and with products like Windows Live Writer coming from Microsoft, it would seem MS is fully on board with this wave.

One of the awesome plug-ins allows you to quickly add a map, such as the one below of the South African parliament:

Map image

Labels: , , ,

Wednesday, February 6, 2008

Google / Yahoo / Microsoft : The Square Off

So... Microsoft offers billions for Yahoo!, and Eric Schmidt promptly offers Yahoo! help (even financial) to help them stave off their sale to Microsoft.

Why? Google dominates search and online advertising, and the merger would see tremendous difficulties reconciling the cultures and technologies of the two entities.

Some say Google just wants to see the price go higher. This may be true, but I think there is something deeper in this as well, and that is the culture clash between Redmond and Silicon Valley.

By buying Yahoo!, MS would be buying a major slice of the Valley, and therefore literally turf in the battle for skills, talent and exposure down South. I wouldn't be surprised to see Yahoo! becoming de facto MS South for a while, as the company figures out how to combine the two companies.

Google has more to lose than the beating their stock is receiving. Google could lose the battle for the services orientated world that is coming. They won't to control the cloud, but as search matures and becomes a less disruptive class of functionality, and as others copy their other businesses, Google will struggle to keep the financials they have managed to deliver to Wall Street thus far.

MS have proven themselves masters at perfecting what others have done before them. Will advertising and search be no different to Server OSs, GUIs, etc? I wonder, and deep down inside... I hope so!

Because a big Google, is just as bad as a big Microsoft!

Labels: ,