Ernst Kuschke

     Arbitrary thoughts and musings on life, the universe and everything else

Syndication

News

    ernst kuschke (v1.0)

    My Photos

    Microsoft Most Valuable Professional

    Member in good standing

    View Ernst Kuschke's profile on LinkedIn

    Add to Technorati Favorites

Blogs I read

Books I recommend

General Links

I must say that the newly launched MSDN Forums frontend is probably the coolest forums frontend for development-related posts that I've seen to date. Do yourself a favour and check it out, even if you don't have any questions and/or answers to post ;o)

Posted by Ernst Kuschke | 2 comment(s)
Filed under: , ,

As Hilton's blog indicates, we'll have the pleasure of chatting with legendary Brad Abrams soon, right here in Cape Town! He will be doing a talk on the planned ASP.NET MVC Framework for SADeveloper.net. Scott Guthrie explains the MVC pattern nicely over here. This is an exciting framework that might(!) remind you of Ruby on Rails. Some open source efforts to bring the rails mentality of CoC and DRY to the .net platform has been attempted before, most notably with the Castle Project.

One of the main concerns with the new ASP.NET MVC Framework is that, instead of allowing client-server interaction via the current postback model, your postbacks will now be directed to a Controller class. This is in fact not a concern as much as it is a breaking change - it is in fact a much cleaner seperation of concerns, which the current ASP.NET model does not have.

RSVP over here to book your seat.

logoThe guys from Moodia are hosting a Facebook Developers Garage tonight, where I'll be presenting a short (10 minute!) session titled "Facebook applications on the .NET framework". Hope I see some of you guys there!

It will be very interesting to hook up with other Facebook developers from Cape Town, and discuss online social trends.

Posted by Ernst Kuschke | with no comments

Thanks for everyone that made it out to the Continuous Integration talk! It was great to have a former employee of Thoughtworks (the guys who developed CruiseControl) in the audience, and it seemed as if many people derived value from the event. Thanks to FoschiniDATA for the venue and the snacks!

The slide decks I used for the talk can be found here.

Facebook now supports JavaScript in Facebook applications in the form of FBJS (added to FBML and FQL).

Posted by Ernst Kuschke | with no comments
Filed under: , ,

I'll be chatting about Continuous Integration (yes, once again!) next week to the SADeveloper crowd, and it would be great to see you there! Details are as follows:

    When:        19th September 2007 18h30 - 20h00
    Venue:       FoschiniData
                      Lefic Building
                      340 Voortrekker Road
                      Parow East
                      Cape Town
                      (right next to Sanlam Shopping Centre)
    Topic:        Continuous Integration
    RSVP:         Please RSVP here

The Extreme Programming (XP) Development Methodology defines many concepts, one them being Continuous Integration, which will be discussed in this session. Knowledge of the following concepts will be useful, but isn't compulsory:
·         Source Code Control
·         Periodic Builds
·         Unit Testing
·         Code Coverage Analysis
Once you've experienced Continuous Integration, you'll feel naked without it!

Took this screenshot of the Numetro homepage earlier today:

NuMetroPwnd

With the introduction of Domain Specific Languages (DSL's) like LINQ right into the .net languages themselves, we become capable of becoming more focused on the domain of the problem space to which we're developing solutions. We're able to do Domain Driven Design (DDD) at a language level, and that's cool!

What is really cool in addition, is that we don't lose out on the ability to go down to a lower level - the code we write with language-level DSL's is backwards compatible with previous versions of .net, and if we so wish, we can still program at a lower level. Hats off to Anders Hejlsberg and the rest of the teams at Microsoft for their design of LINQ. So it is really easy to make DDD a reality on your business projects today. (When you design the classes describing your business problem domain, you are in fact designing a DSL, but this DSL is confined to your problem space, where DSL's like LINQ are a bit more generic).

So languages are evolving into more high-level, generic DSL's, which is very difficult to do right, because by creating a DSL you immediately introduce constraints and limitations.

Where to might languages evolve next? One of the things that are very difficult to do right now is parallelism. Very few programmers can write solid multi-threaded, re-entering code. It's hard to write, and even more difficult to debug. (Ever tried re-creating state with multiple threads?!) For me it's hard just to think in terms of parallelism - the human brain just doesn't work that way!

For many years we saw the clock speeds of processors increasing exponentially, and then all of a sudden there was a slowdown; making the wafers on processors thinner and yet thinner are becoming constrained by the physical size of atoms! But we still want faster! So we are now seeing processors with multiple cores. More cores are being introduced per processor, and more multi-core processors are introduced per computer. (In fact, more computers are being introduced per computing-grid, but we'll talk about that another time!)

The next logical evolution for programming languages would be to bring parallelism concepts (like threading) to the language level. In fact, LINQ already addresses this somewhat with Parallel LINQ (PLINQ). Anders Hejlsberg: "With PLinq, effectively you write the code the same way, but we arrange for it to run on multiple CPUs".

PS - One library that we (Armand and myself) discovered while doing our Robotics talks at last year's Tech Ed, is the Concurrency & Coordination Runtime (CCR). In the world of robotics there are really many concurrent operations, where the results of one might effect those of another, or even require another to abort. The CCR is an API that manages threading operations very effectively, and can definitely be used outside of the world of robotics in your business applications today!

The amount that the US Department of Energy is spending on the development of nuclear war heads for FY2007, namely $23.4 Billion, is just about enough to give each of the 10 million starving people in the USA $2300 for the year. That's more than double the average (monthly) USA minimum wage!!

Ruby is one of those wonderful gems that has been getting people excited for quite some time, but it hasn't been until the Rails framework has been released that the majority of Ruby users fell in love with it. Developing with Ruby on Rails enables you to get fully functional web-apps up and running in literally no time. What's Rails? It's a brilliant MVC implementation, using the Active Record pattern  to map domain objects to your persistence layer:

"Rails is a web-application and persistence framework that includes everything needed to create database-backed web-applications according to the Model-View-Control pattern of separation."

Most of the demos you'll see for Ruby on Rails (RoR) will be shown on a mac. The guys use Textmate and it all looks wicked-cool-and-mind-blowing. It's enough to make you run to the nearest apple store and buy a MacBook Pro.

But can RoR be done on Windows, and could it possibly be as ultra-cool? After reading lots of doom-foreboding posts about running Rails in Windows, and specifically IIS, you might loose heart. But fear not, me hearties, because it took about 5 minutes to get RoR running on my XPSP2 box.

  1. Download and install InstantRails
    This will install Apache HTTP Server, mySql, Ruby, phpMyAdmin, the InstantRails server management tool and some sample RoR apps. (This step takes care of just about most your required installations in one go).
    Here's a screenshot to illustrate the simplicity of the InstantRails management application:

    ror1 
    ror2

  2. Install mySql client tools (optional)
    If you don't like phpMyAdmin, download the mySql client tools.

  3. Install RubyInSteel.
    To enable you to develop in Ruby right from within Visual Studio, get your hands on this great tool from SapphireSteel. It allows you to create new Ruby-type projects from within Visual Studio 2005, following the Rails standards:

    ror3 ror4

    It gives you syntax-colouring, deployment options, issuing Rake commands, and the ability to watch variables at runtime, set breakpoints, step through code, etc:

    ror5

    Change your Ruby In Steel Configuration to point to the correct paths in the InstantRails install location. (You only need to change your MySQL- and Ruby paths).

Morfik's has this to say about their WebOS AppsBuilder (quite a mouthful):

WebOS AppsBuilder brings extreme simplicity to the design of sophisticated AJAX applications without compromising their functionality. You don't need to write any HTML, XHTML, XML, JavaScript or CSS. It has never been easier to create highly interactive web sites and applications - and you don't even have to learn a new language or new technologies to do it!

Their (patent pending) JavaScript Synthesis Technology generates pure HTML/JavaScript/CSS - you only have to write your code in your favourite OO language. (Well, that's if your favourite happens to be one of either Basic, C#, Java or Object Pascal!) You also manage and deploy to your webserver from within the IDE.

Sounds cool - check it out.

Get it while it's hot.

Posted by Ernst Kuschke | with no comments

SaDeveloper hosted a developer-session on Saturday on Developing SharePoint Solutions and Office Business Applications (OBA) using .NET at Microsoft Cape Town, which was very well received. It's the first of a series of in-depth enterprise-related sessions you can expect, and because of the length of these, they will take place on Saturdays. (The session received excellent ratings and in general it seems that events on Saturdays might become more popular than some might have anticipated).

Thanks to Zlatan Dzinic and Schalk van Wyk for an excellent session; I have no doubts that many hours were devoted to preparation! The slides for their presentation can be found here.

Microsoft just released the training kit with material based on the DinnerNow! scenario. Get more info here.

Posted by Ernst Kuschke | with no comments

imagePodcamp is coming to South Africa! Join us at PodCamp Cape Town by registering on the wiki. Discussions will happen through the Facebook Group.

 

What is PodCamp?

Started in Boston, MA, USA in September 2006, PodCamp was born.

In the same style as BarCamp, PodCamp is a community driven UnConference for anybody and everybody in New Media. Whether you create and/or consume content by podcasting, listening, blogging, reading, producing video, watching and anything else that is New Media.

More Posts Next page »