A while back I predicted that motion detection would be the future of gaming.

I think we can say that with Sony and Microsoft heavily investing in motion detection and have some big projects down the line.

Microsoft with Project Natal and Sony with the Wand Controller.

My prediction for 2010 is that this is the year where people actually start using E-readers a lot.

There are a couple of different companies which will enter the market with new shiny Tablet computers.

Apple just recently presented the iPad (Apple’s take on Tablets) which has gotten a lot of press.
A short recap of the news surrounding it:

$499 starter model + $130 for 3g communication.
More expensive models available for more storage.

There will be an E-Book reader installed, amongst other things it will run almost all of the applications which are currently on sale for the iPhone / IPod Touch.

I have been using an iPhone for a little while now and it’s funny how much vendor lock there is.

Want to use applications or games, download those in apples AppStore, want music get it in iTunes, with the iPad there will also be an iBookstore.

Want to use your iPhone / iPad / iPod etc with a computer then you can synchronize between 1 computer and your iDevice.

You also can only install software on it which comes from the AppStore, so all the software needs to be approved by Apple itself.

Which means that some applications will never see the light of day.
It also means that Apple will be getting a fair amount of profit from these applications. Since Apple receives one third of all sales from the AppStore.

Recently they announced the 2 billionth downloaded application from the AppStore. This probably translates into quite a bit of cash for Apple.

Ok so the iPad with it’s pricing will probably be a big hit. It will also invite others to do the same trick and try to do it even cheaper.

This means that there will be a few very nicely priced Tablets floating around soon.

One of the main uses of these Tablets will probably be reading e-books/comics/magazines.

So prediction nr 1 for 2010:

E-readers and off course Tablets will become a big thing in 2010.

Predication nr 2 for 2010:

People will be using internet even more on phones and unlimited internet access for phones will become very common.

with no comments
Filed under:

A couple of days ago my girlfriend called me that the files she stored at MediaFire where gone. A little after that I tried to login to MediaFire to have a look at how my files where doing.

I was quite surprised to see my own files deleted as well.

After that I came across a FAQ entry on the website

“There is currently no time limit on how long uploaded files will be stored as long as you access your account (i.e. login to your account) at least once every 60 days OR at least one of your files is accessed (i.e. downloaded) every 30 days. If your account is not accessed within the time limit, then the files in your account will be cleared. MediaPro subscribers’ uploaded files will remain forever as long as the account is active.
If you are a Mediafire free user and your files were deleted due to inactivity, they are deleted from all servers and cannot be retrieved.

This means that files stored on MediaFire will be deleted without any kind of notification if you don’t log in every 2 months. This is something which is quite scary to me.

So be careful when using MediaFire and don’t store any files on there which you haven’t stored anywhere else, or be sure to use your account enough to not get your files deleted.

 

with 4 comment(s)
Filed under:

“Je bent bekender dan je denkt”

This is a dutch subject which is sent around by the government which alerts you to the dangers of having an online profile.

By creating a video clip using an online profile on the hyves site which is sort of a dutch MySpace / facebook.

This uses images from your “friends” and integrates them in the video.

It’s quite interesting that these things can so easily be done nowadays.

It’s getting harder and harder to stay anonymous. When you have an online presence.

_why aka Why the lucky stiff

_why is someone who has an online persona but who didn’t want to be recognized under his own name.

He has created numerous projects, mostly written in and for Ruby,

August 19th 2009 he decided to remove his online accounts and projects.

This started a small wave in blog land with some pretty prolific people writing about it.

It also meant that people where going to try and find out what was the identity of this person in a huge way.

As you can read up on in the link above the effort made to find out who someone is by reading up on what he has done online can be huge.

And there is a huge amount of information you leave behind even if your a smart person.

Hacking of Sites

One would think that if your a smart person then you wouldn’t have to worry as much about these things. Actually it seems to be a sport to get to smart people.

For example Perl Monks (a perl programming site) got hacked and had all passwords of it’s members stolen, the annoying part is that the passwords where all stored in plain text which means that there wasn’t even any decryption necessary to view the passwords.

Jeff Atwood (the man behind CodingHorror.com) got his account hacked for the Stackoverflow site

This means that your passwords from sites you use on the web might be in danger.

1 way to help this is password storing engines.

Password protection programs

There are quite a few password protection programs out there. Some are online some are offline and some are both.

One of the ones which is good to have is Keepass password safe.

there are also quite complete solutions for handling this problem like thycotic secret server.

Conclusion

Don’t think your safe, almost nobody is safe.
But do try to make an effort to stay safe it’s pretty hard.

Good luck.

This week there are 3 pieces of candy which are all sort of related, they are all talking about ruby

Candy nr 1: Faster ruby

Ruby for windows has long been available as a 1 click installer, this one click installer is based on Visual C++ version 6 which came out in 1998.

There is an effort going on to update this installer to a newer version of Mingw + GCC.

The new installer is called Rubyinstaller and can be found here.

How much faster is it?
Benchmarks can be found here.

Candy nr 2: Iron ruby

IronRuby has been around for quite some time, it’s now up to it’s 0.9 release.

Which would seem to be getting closer to the 1.0 mark. It has reached most of it’s compatibility goals and it’s main focus now seems to be performance.

For those of you wondering what IronRuby is:

IronRuby is a .Net implementation of Ruby based on the DLR, the dynamic brother of the CLR on which most of the regular .Net languages are based.

IronRuby is both available on windows and on Mono.

More information can be found on it’s about page.

Candy nr 3: Browser ruby

Last piece of candy is Gestalt. Gestalt is a way of using Ruby / Python / XAML in the browser by leveraging the Silverlight plugin.

This means that it will work on any browser which has the Silverlight plugin installed.

It can be called by placing a reference to the gestalt.js file which can be downloaded from the downloads page.

This means that DOM manipulation, animation etc is possible by using Ruby or Python.

Conclusion

I Hope you enjoyed these pieces of Ruby candy hopefully I will be back again soon with more candy.

A while back a colleague of mine used to send out emails every once in a while called candy of the week.

This little piece of candy usually was a pretty picture or website which lightened up everyone's day.

I was thinking about moving this concept to my blog and to go with a developer theme. To make things interesting for my Developer readers.

Which I’m going to assume most of you are.

My first post will be some double candy:

Candy nr 1:

ExtJS is a JavaScript library and UI framework to make setting up AJAX forms with validation and a whole lot more a breeze compared to the other offerings out there. There is a wide array of samples and demo’s available on the website so you can see how little effort is actually required to make forms and other UI components work together.

This framework + JavaScript library has just released version 3.0, which adds charting support, data binding support and Ext Direct a remoting / data streaming effort.

A slight warning should be placed here, ExtJS is a dual licensed project:

GPL + payed except for Ext Core which is licensed under and MIT license.

Candy nr 2:

The Coolite Toolkit is a set of AJAX enabled .Net Controls which use ExtJS to perform it’s magic. As can be seen from the examples these controls make it very easy to integrate ASP.NET with ExtJS in a way that is very clean and takes away most of the JavaScript and puts it into nicely wrapped controls.

with no comments
Filed under: , ,

About SubSonic

Let me start off by saying that SubSonic is great, it's my DAL of choice for most projects.

It's small it's fast to set up and it has a whole lot of functionality and elegance out of the box.

You can tell I was pretty exited about it by reading my previous entry about SubSonic.

That said there are a couple of things that in my humble opinion can still be improved upon in the project.

Stored Procedures VS Other Data Access in SubSonic

Data can be inserted / Updated in the following fashion in SubSonic.

Insert a new order for instance could be done like this:

Dim order As New Generated.Orders
order.Name = "My Name"
order.ProductID = 1
order.Isactive = True
order.Save()

dim newOrderID as integer = order.Id

Now if there are columns which are not set through the object all will still work out and the object will still be created.

Stored Procedures are called like this:

sps.CreateOrder("My Name", 1, Nothing, True).Execute()

It would offcourse be great if the Stored Procedures would have the same approach as the SubSonic Object but with some extra's:

Dim order As New sps.CreateOrder
order.Name = "My Name"
order.Ordernr = 1
order.Isactive = True
order.Execute()

With some other parts ready to be used:

dim ReturnValue as integer = order.ReturnValue
dim Output1 as integer = order.NamedOutputParameter
dim Output2 as string = order.NamedOutputParameter2

This way the existing functionality surrounding Stored Procedures would have:
A sexy way of dealing with optional parameters.
A good way to set up parameters out of order with the Stored Procedures.
Some very nice ways of communicating with the output parameters / return value.

Alas I seem to be a little late with this blog post since Subsonic 3.0 has already been released.

And released and released and err, updated.

Offcourse I still hope this can be added to a new version of Subsonic.
So that it can get even better.

with no comments
Filed under: ,

Introduction

A while ago there was quite the discussion about what the differences where between VB.NET and C# and what people should use.

After a while it seems that most things where said and it became clear that the C# camp had the most zealous advocates.

Now things have quieted down a lot and it would seem that most people have made their choice and perhaps even changed it in between.

At the time that I wrote my previous post about the subject the statistics where telling us that the usage was about equally divided between VB.NET and C#.

The state today

Today there is a different picture, most of the highly visible people who where actively supporting the VB.NET language have switched to C#.

That probably means that the usage of VB.NET has now dropped a great deal compared to C#.

Looking at job postings etc. it would also seem that C# has won the race.
Which is something which probably isn't that surprising.

A poll by Telerik shows: 69% C# vs 30% VB.NET.
Last year it was: 63% to 34%.

Why did C# win the race

  1. VB.NET got a bad name by being associated with VB6 and it's predecessors, which most wouldn't really consider a respectable language.
  2. C# Has a good name because of the fact that it's modeled by Andreas Helberg the creator of amongst others the Delphi language.
  3. C# has been modeled after more respectable look a like languages: Java / C / C++, which are all languages which are well respected.
  4. Because of the points above there are more job openings for C#.
  5. It seems like a lot less typing to get the same thing done.
  6. More and more projects are done in C# in comparison to VB.NET.
  7. C# pays more money.
  8. People migrating from VB6 sometimes choose C# instead of VB.NET because of a lot of the above reasons.
  9. Almost no people who migrate from Java / C++ are considering VB.NET as a language.

What is happening now

Things are getting worse for VB.NET.
My favorite .NET books (ASP.NET Unleashed) have gone from VB.NET to VB.NET + C# to C# only.

People who use to be prolific VB.NET programmers are also migrating.

What are the current differences in the languages

Taken from wikipedia:

Features of Visual Basic .NET not found in C#
  • Variables can be declared using the WithEvents construct. This construct is available so that a programmer may select an object from the Class Name drop down list and then select a method from the Declarations drop down list to have the Method signature automatically inserted
  • Auto-wireup of events, VB.NET has the Handles syntax for events
  • Support for optional variables (this will also be available in C# beginning in version 4.0). This is typically used to provide easy interoperability with native code
  • Marshalling an object for multiple actions using an unqualified dot reference. This is done using the With ... End With structure
  • IsNumeric evaluates whether a string can be cast into a numeric value (the equivalent for C# requires using int.TryParse)
  • XML Literals
  • Inline date declarations by using #1/1/2000# syntax.

Features of C# not found in Visual Basic .NET
  • Allows blocks of unsafe code (like C++/CLI) via the unsafe keyword
  • Partial Interfaces
  • Iterators and the yield keyword
  • Multi-line comments (note that the Visual Studio IDE supports multi-line commenting for Visual Basic .NET)
  • Static classes (Classes which cannot contain any non-static members, although VB's Modules are essentially sealed static classes with additional semantics)
  • Can use checked and unchecked contexts for fine-grained control of overflow/underflow checking
  • Auto-Implemented Properties (as of C# 3.0[4])
  • Implicitly Typed Arrays

Other characteristics of Visual Basic .NET not applicable to C#
  • Conversion of Boolean value True to Integer may yield -1 or 1 depending on the conversion used
  • Assigning and comparing variables uses the same token, =. Whereas C# has separate tokens, == for comparison and = to assign a value.
  • VB.NET is case-insensitive.
  • Type checking is less strict by default. If the default is left in place, It will auto convert type without notifying programmer, for example:
        Dim i As Integer = 1
        Dim j As String = "1"
        If i = j Then
            MessageBox.Show("Bad comparison")
        End If

It should be noted that changing this default (known as 'Option Strict') is widely considered best practice for VB development.

Other characteristics of C# not applicable to Visual Basic .NET
  • By default, numeric operations are not checked. This results in slightly faster code, at the risk that numeric overflows will not be detected. However, the programmer can place arithmetic operations into a checked context to activate overflow checking.
  • Addition and string concatenation use the same token, +. Whereas Visual Basic .NET has separate tokens, + for addition, and & for concatenation.
  • In Visual Basic .NET property methods may take parameters
  • C# is case-sensitive.
  • C# does not allow optional parameters (this will be available in C# beginning in version 4.0[2]).

Conclusion

The fight is over and C# won, not that VB.NET isn’t a valid option.
As you can see from my list I think that technical superiority isn’t the reason that C# is winning the race.
It still has my vote for a lot of things. But I don’t expect to be programming in VB.NET a lot in coming jobs.

with 5 comment(s)
Filed under: , , ,

The folks of ajaxian where so kind to give us some videos with some beginner and advanced Jquery content covering both Jquery and Jquery UI.  

These folks have also given us a nice web based editor / IDE a few days back.
Which is something really weird when you think about it.

 

 

I have created a windows forms application for my own use a long time ago, since then I have added some features every now and then when needed.

A little while ago I decided to give these utilities away for free on my website.

At current the Utilities are some rudimentary tools which can be compared to a swiss army knife.

So what does it do...It does the following things:

  • Lightweight Codegeneration (based on The World's Simplest Code Generator )
  • Encode / Decode: HTML, XML, URLS
  • Regex Search and Replace
    Test / Return Matches / Replace using regular expressions

    The current version is v1.10

    And it can be downloaded here.

     

  • Dreamhost is Beta testing something called: Dreamhost Apps

    Which means that you get to get some free stuff for your domain:
    WordPress / Drupal / Zen Photo / phpBB / MediaWiki / Google apps.

    This without having to set anything up, this will be done for you by dreamhost.

    Because of the beta, its all free.

    You can sign up here.

    There is a user limit of 10.000 accounts but as of time of writing that is still far from reached. (7548 accounts available).

    So if you want to experiment with any of the above products for free I think it's a great deal to give this a spin.

    Ruby on rails is one of those technologies that just took of where a lot of other different technologies didn't do anything.

    I would like to share my insights about why this technology blossomed where a lot of others failed.

    First of all they did a lot of things right, most things are marketing related.

    The first steps

    Perhaps it is best to start out with the beginnings of the Rails framework.
    Rails was extracted from the basecamp application that 37signals made.

    This is an online project management application.

    One of the things that needs to be said about 37signals is that these guys know their stuff.

    They are the more with less poster boys of the web.

    A reputation they have earned with things like releasing a todolist application with under 600 lines of code (ta-da list) .

    The 10x as productive / less code mantra

    Somehow it all got about lines of code, some people are thinking aha so they are doing the perl thing.

    Perhaps, but one of the major selling points was lines of code:

    LOC = Lines Of Code

    ta-da list 579 LOC
    rails 1 KLOC
    basecamp 4 Kloc

    We are talking about beginning of 2005 here so these sizes are probably not anywhere near where they are now.

    At that time the Java frameworks contained a lot of XML for config works so when you where looking at things like Hibernate then a project of significant size would have ta-da lists size in config files alone :)

    The interesting part is that there where quite a few people from java shops deserting the base also adding to the Rails is so much more productive mantra.

    How did they get to so productive

    Rails is an opinionated framework, which means in this case that the framework chooses a lot of defaults for you to use.

    Active Record, the database layer is always something where a lot of time is spent. Web applications are usually quite heavy on the communications with databases of some sorts.
    Active Record, offers a very compact way of setting up the communications with the database with a lot of things happening in the background.
    Also the syntax used to communicate with the database is very streamlined.

    Scaffolding, scaffolding is a way of setting up pages which interact with the database without actually writing these pages.

    Ruby, Ruby is a dynamic language and you can write pretty compact code with it like Perl but more readable according to some.

    Ajax where it's nice, built in Ajax stuff with a nice interface to it.

    Some smart concepts like flash, which is a way to display text to the next page.

    Cutting fat from wherever they can by adding magic / abstraction.

    What others where doing at the time

    in the JAVA camp

    The Java Spring framework was getting a lot of attention.
    It featured: MVC, Dependency Injection and some other things it also started the there is too much overhead in setting up an J2EE project movement.

    in the .Net camp

    ASP.Net v2 was just released with it's datasources and Master pages.

    For me the thing to do to be more productive was code generation.

    The like minded

    At the time of Rails there where some other projects who where taking shape at just about the same time.

    Django: a project in python which has it's origins in the publishing world with a great auto admin system.

    Nitro: a project which started out around the same time as rails with another ORM mapper and another vision. At first I actually liked it more alas it didn't really gain the traction it needed in terms of user base to get there.

    There where probably some others, but I'm not quite sure of the moment at which each got introduced.

    And the others followed

    The succes of Rails made such an impact that a lot of other frameworks started popping up with some of the same ideals / mindset.

    You can think of: Grails (groovy rails), Cake PHP, Catalyst, Castle Project.

    So what's wrong with it

    There are / where a couple of problems with it.

    Rails also has it's problems some of these have been well downplayed others have been ignored and others have been contested.

    Some of the things which have been troublesome:

    The memory leaks there have been several, in ruby itself, in fcgi + ruby, in rails etc.

    This offcourse has also led to deployment problems, which have been plagueing Rails for quite some times.

    Shared hosting + Rails didn't mix well.
    This has been changed with the coming of phusion passenger (mod_rails).
    Which provides easy to set up hosting for Linux / BSD / OS X apache.

    Performance of the Ruby language is horrible when set off to other alternatives. (the solution is always caching though)

    Rails has a long hard troubled past with UTF-8 support aka support for languages which aren't using the standard character set.
    Things seemed to have been mostly solved with character proxies and the like.

    Last but not least it's web development with an attitude, which means that the core members which create(d) the Rails Framework are opinionated and will clearly state what they don't want. (See the picture at the top to get the idea)
    You might also get into trouble when what you want isn't exactly what they want.

    Conclusion

    Rails has become a large player in the web development field, while still not as large as the PHP community nor the .Net community it is still a player.

    For a look at how far the Rails framework has come there are several screen casts out there to show you the power of rails today.

    I have a feeling the guys supporting Rails have grown up a bit in the time it has been around. But the platform and it's creators still make things seem like the wild west of web development.

    So your still in for a wild ride when things get down to it.

    So I'm teaching myself some new technology. 

    That in this case means new technology for me not for the general population. 
    I went freelance about a year ago, this meant that I really wasn't sure which technologies I would be working with since it's much more of a do I want this job kind of thing. 

    Strangely enough the jobs that went my way where PHP jobs, the strange part of this is that I've done most of my development work in MS technologies. 
    The other strange part is that I actually liked doing things in PHP.

    I would have expected to feel all dirty inside when I use PHP, this is because of the  fact that it's not the finest language when you actually look at it
    But the fact is it's a language in which you can get stuff done fast, and this is what I really like in programming delivering business value to a client ASAP.

    I've chosen to compliment PHP with some Ext JS and jQuery to even it all out. 
    It all feels quite easy and because of all the AJAX loving and JSON flying in and out of the serverside 

    Btw if you haven't checked it out yet Ext JS is a wonderfull framework for html widgets to use, especially for handling ajax enabled forms. 

     

     

    with no comments
    Filed under: , ,

    The videos:

    http://www.omnisio.com/startupschool08/

     

    The Speakers:

    Sam Altman
    Founder, Loopt

    Marc Andreessen
    Founder, Ning, Opsware, Netscape; Creator of Mosaic

    Michael Arrington
    Editor, TechCrunch

    Jeff Bezos
    Founder, Amazon.com

    Paul Buchheit
    Founder, FriendFeed; Creator of GMail

    Paul Graham
    Partner, Y Combinator; Founder, Viaweb

    David Heinemeier Hansson
    Creator of Rails; Partner, 37Signals

    David Lawee
    Vice President of Corporate Development, Google; Founder, Xfire

    Jack Sheridan
    Partner, Wilson Sonsini Goodrich & Rosati

    Greg McAdoo
    Partner, Sequoia Capital

    Peter Norvig
    Director of Research, Google 

     few hours ago I wrote a blog post about google's chrome browser, now it has been released and I've spent a couple of hours toying around with it a bit. 
    You can read about the technical specs of the new browser here.

    First impressions

    The good

    It's slick, the user interface is bare bones. No menu's to speak off no title bar, it starts with tabs and there are some browsing essential buttons (refresh, back, forward) the usual.
    It's fast, loading pages feels fast, browsing through the pages also feels fast.
    It includes its own taskmanager, this is ideal for flash ads slowing things down, when you have a lot of pages open with flash ads things tend to get slow, just kill it with the task manager and you've got speed back.
    Autocompletion in the Javascript console
    Best popupblocker implementation I've seen in a while.
    Nice unintrusive downloadmanager.

    If you need to use webmail, use this browser, thats basicly because the javascript engine is FAST.
    Hotmail doesn't yet work with this browser or at least the advanced mode doesn't yet work with this browser,, but google's own gmail flies with it.

    One of the early benchmarks for Chrome can be found here.

    The bad

    F1 = for help - not so in chrome.
    View Source = right click + somewhere in the popup list - not so in chrome
    The middle mouse button scroller is gone.
    Memory usage is quite hefty, probably the biggest user of memory of current browsers. Firefox 2, might have used more.
    I don't understand the autocompletion in the Javascript console.
    Noooo, not another browser I need to test :(

    My thoughts

    The timing is right for this release, the most impressive thing about this browser is the Javascript engine which is currently the king of the round in terms of speed.
    Problem for google is that Firefox is working on a new Javascript engine which will be a lot faster.
    Safari, same thing.

    Also the target market for this browser seems to be the people which aren't very technical, It has simplified browsing written all over it and that is a good thing :)

     

    Google's browser will be launched tomorrow but there is already a lot known about the browser.

    - It will use webkit which is already in use by: Safari, Konquerer, Google's Android, Nokia browser and some others.
    - It will use a custom javascript engine named: v8 which is a VM based engine.
    - Each tab will have it's own process, so when it crashes it only brings down the tab not the whole browser.
    - There will be a task / process manager keeping track of all the processes and things happening with them including plugins used on a tab by tab base.
    - An intelligent addressbar, same thing which is happening with IE8 / FF3
    - New tabs will open an opera quickstart kind of page with 9 quick select slots and most used search terms
    - No auto popups, popups will be confined to their own tabs (I smell problems here)
    - Google Gears included
    - Fully open source

    My expectations are that this browser will become a very populair choice and will be eating away at Firefox market share in a pretty short time.

    This also means that the webkit engine is one to be tested for with so many backers this engine will only continue to grow, and for me safari for windows seems pretty fast, which means that this browser will probably be even faster.

    More Posts Next page »