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.
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.
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.
Founder, Ning, Opsware, Netscape; Creator of Mosaic
Founder, FriendFeed; Creator of GMail
Partner, Y Combinator; Founder, Viaweb
David Heinemeier Hansson
Creator of Rails; Partner, 37Signals
Vice President of Corporate Development, Google; Founder, Xfire
Partner, Wilson Sonsini Goodrich & Rosati
Partner, Sequoia Capital
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.
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.
Best popupblocker implementation I've seen in a while.
Nice unintrusive downloadmanager.
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.
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.
Noooo, not another browser I need to test :(
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.
- 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.
A while back I created a little utility to upload files to MediaFire which is a file hosting service. MediaFire supports uploading of files up to 100 MB in a free account with unlimited storage, and is in my opinion one of the best free online storage possibilities out there.
It has galleries for pictures, nag free FAST downloads, sharing options, file manager the works.
It now also has a paid option which has additional features.
The news is that they added in a Flash uploader which makes it possible to smoothly upload a lot of files through there web interface which makes my previous upload utility obsolete, or at least I think so.
If you would like to see the utility updated or think it still has a right to be here, please let me know but for me the itch is probably scratched for now :)
When your getting ready to start doing the tasks at hand you will have to start organizing the different tasks and prioritizing these tasks.
The easiest way of doing this is by using a Todolist application, there are a lot of different strategies of getting more productive but most of these ways and ideas are to get organized by using todo lists.
The main advantages of Todolists
- Support: Getting Things Done (GTD)
- Making it possible to plan things in a simple fashion
- Centralizing information and tracking of progress
- Organize tasks into projects and break down tasks into manageable chunks
Getting things done
Getting things done is a famous book and is also very much something you will want to study as a developer.
It makes heavy use of lists to organize the things you need to do.
Getting to stress-free productivity, from wikipedia:
The notion of stress-free productivity starts with off-loading what needs to get done from one's head, capturing everything that is necessary to track, remember, or act on in what Allen calls a bucket: a physical inbox, an email inbox, a tape recorder, a notebook, a PDA, or any combination of these. The idea is to get everything out of one's head and into a collection device, ready for processing. All buckets should be emptied (processed) at least once per week.
A developers view of this methodology:
The Joy of Freeing Up Mental RAM
10 Practical Tips on Freeing up Mental RAM
Getting started with GTD
How to get yourself to actually do the things on the list.
The different options in Todo lists
Offline todo lists
Use Visual Studio's task list option, you can also utilize it through your code.
The Outlook task list option this one has it's own blog there is even a sidebar gadget.
If you practicly live in one of those applications it's nice to be able to use them as your todo list tool of choice.
Abstract spoon has made a very nice todo list application you can download the source code and read a codeproject page about it.
Online todo lists
Simple shareable lists
Tadalist: You can't get any simpler, the application which caused
Blablalist: My current choice of todolist
More advanced lists
Todoist: Todo lists on steroids with repeating items, scheduling reminders, keyboard accelerators etc.
Remember the milk: meta data, integration into a lot of different things, twitter, Google agenda and more.
Voo2do: mixing simple time tracking and todo lists.
With an organized overview of tasks and source control set up we are totally ready to start with development.
Well ok you do actually have to set up your development environment.
If you want help or direction in other things getting started please leave a comment and perhaps I can write another article about that.
This will hopefully be the start of a series of posts / articles about the basic information/skills needed for different software development.
Source control is one of the things you need to set up before starting to do the actual development.
Before creating things of value it's wise to make sure that your investment is guarded.
Source control is there for this need.
Not only can it be used to keep your source code and files safe but it will also allow you to keep different revisions of files available so you can revert to any other version of the files.
This can be great for going back to the way things worked in version x or the way things looked in version y.
More information on Source control / Revision control.
Source Control: Tutorials / Lingo
Since this is very nicely explained by others I will just link to some tutorials by others:
Different Source Control providers
There are a lot of different source control system a brief overview:
- Visual Sourcesafe: free solution by Microsoft, this one is not really recommended by most people
- Sourcegear Vault: commercial solution created by Sourcegear to be Sourcesafe done right.
- SVN: Free open source source control and the default Source Control solution nowadays
- Git: The new source control kid on the block
For me the most interesting source control solutions at the moment are:
SVN / Git
So I will go into these options some more but first lets have a look at a comparison between SVN and Git.
How to set it up on windows.
How to use it on a daily basis.
A free book about SVN.
Daily usage of Git.
Git commit policies.
Source control hosting options
If you want to get started with source control but you don't want to take ages to set up a server and things like that there is also the option, for going for a hosted option.
There are a lot of different hosting options for SVN, there are also a lot of options coming up for Git hosting.
Some are free others aren't the ones I've tried:
And all looked well.
Here is also a comparsion list of different Source control hosters.
Source Control should be the first thing you think of before starting to develop, with this article I hope to have given the readers a head start on how to go about actually using it in a correct way and getting started.
Highlights of new functionality included
- JScript debugger .
- Webslices (sort of widget extractor for websites)
- Activities (extend your right click with custom menus)
- HTML View (think firebug / Internet Explorer Developer Toolbar
Other important changes
- Connections per host increased
this was 2 connections and will go up to 6 when a highspeed connection is detected.
- It will break the visuals from quite a few sites and some sites (windows update amongst others)
More information: Internet Explorer 8 Readiness Toolkit website Internet Explorer 8 Beta 1 Whitepapers More information can be found in the release notes
How to test
For this Microsoft supplies VPC images, this will be your best bet to test since you probably won't easily be able to run the IE instances side by side.
Internet Explorer Test VPC Images
The download links IE8 for different windows versions
Microsoft Expression Web Beta
Also out, is something I missed, Microsoft Expression Web Beta
This is Microsofts answer to Dreamweaver.
Most important new features:
- PHP support (intellicense / previews)
- Media support extended (Silverlight + Windows Media enhancements)
- Photoshop integration (import with live update)
- FTP enhancements
- Support for new ASP.NET functionality (3.5 / MS AJAX)
What is MVC
MVC stands for:
Controller (business logic)
View (what you see + view logic)
It is used to separate the logic from a web application and other types of applications into these 3 logical parts.
There are a lot of people who think this makes development easier and more maintainable. For more information on MVC click here.
What is Ruby On Rails
Ruby On Rails, ROR for short is the framework which took the world by storm.
Or it just caused a storm, one or the other, but I guess it made the whole MVC idea a whole lot more famous.
Ruby is the language on which this framework is built, the characteristics of Ruby as it stands now is that the language is very powerful and expressive but runs pretty slow
What is ASP.NET (Webforms)
ASP.NET is currently set up in a way that it tries to mimic windows programming as much as possible.
This means that it is event driven and supports concepts which make it more like a statefull windows program.
This means that you can for instance drag a button on a webform and double click this button to add an action to it.
Double click the form, to type in an action which is done when the page is loaded.
This means that this form of programming is a form of event driven programming.
What is ASP.NET MVC
ASP.NET MVC is the Microsoft implementation of MVC.
It does away with the event driven programming and it doesn't try to be statefull. With these choices it gains a few things and loses a few others.
Differences Between them in a feature chart
I think the best way to highlight some of the differences between the platforms is to highlight these difference in some charts. So without further ado let's have a look at the differences:
Webforms vs MVC
| ||Webforms ||MVC|
|URL's ||through pagenames / URL rewriting. |
programmaticly set up the url's by default this works through REST like interfaces.
|Event driven ||Yes ||No|
|Statefull ||Yes (Viewstate) ||No|
|Easily unit tested ||No ||Yes |
|Easily View tested ||same ||same|
|Can use designer easily ||Yes ||No (I think)|
|Double Click to get action ||Yes ||No|
|Different view engines supported ||No ||Yes|
|Support AJAX easily ||Yes ||Yes |
|Support ASP.NET Request / Response objects ||Yes ||Yes|
|Supports Dynamic Languages ||Yes ||Yes|
|Can play well with the other ||Yes ||Yes|
|Abstraction from html ||Yes ||No|
|Exact control over html ||No ||Yes|
|Support ORM ||Yes ||Yes|
|Will be able to use library of third party controls for ASP.NET ||Yes ||Partial (no state / postback controls only)|
|Works on Linux / Mono ||Yes (Partial) ||No|
ASP.NET MVC vs Ruby On Rails
| ||ASP.NET MVC ||Rails|
|Compiled ||Yes ||No|
|Intellisence ||Mostly ||Depending on editor|
|Has free IDE ||Yes ||Yes|
|Can be easily deployed on shared hosting ||Yes ||not really |
|Can be easily deployed on windows ||Yes ||No|
|Can be deployed on Linux ||No (Maybe if mono picks it up) ||Yes|
|Has a built in ORM ||No (not yet) ||Yes|
|Has out of the box for multiple Databases ||No ||Yes|
|Is resource efficient ||Yes ||No|
|Extensive caching options ||Yes ||Yes |
|All URL available ||Yes ||Yes|
|REST possible ||Yes ||Yes|
|.Net Framework available ||Yes ||No|
|Ruby Runtime available ||Through interop / CLR implementations ||Yes|
|Has an active community around it ||Yes ||Yes|
I'm missing feature X from this chart
Could be, it's not a complete list of features.
It's just a list of things which seemed nice to compare if you want you can always comment about your favorite pet difference between one of these frameworks / development methods.
Generalisations / when to use which option
The charts above will mostly tell you when you can't use one of the options in the list.
All the platforms will keep evolving but each has it's own strengths and weaknesses at the moment.
ROR is great for when your working on a non windows platform and want to write as few lines as possible and want to work in Ruby.
Webforms is great for when you want quick results with nice building blocks from 3rd party developers and you don't need exact control over your html.
ASP.NET MVC is great for when you want complete control over your html and url's and want unit testing like there is no tomorrow.
My webdevelopment method of choice for now remains to be Webforms this is mainly because of a lot of nice development speed enhancements which are present in this platform.
It's something which makes the easy things pretty fast to do and makes the harder things quite hard and complicated.
I might be going over to some other platform / framework based on what lies ahead in terms of websites / applications to create.
Only time will tell, but for now I remain satisfied with Webforms for a RAD platform.
But what about testing ?
There are a lot of people who like setting up unit tests along with their regular development.
I think my opinion on this is a subject for a whole other posting so I won't go into it any further at this time :)
We are living in a golden age for Internet development there are a lot of options in the web development world, and the possibility's are still growing and evolving at a brake neck pace.
All the choices above will probably be used to amaze us with things that are possible and all will probably still have a place in developers hearts for quite some years to come.
The question is what will the new players bring 5 years from now, and how will these technologies stand up to each other then.
The kind folks of Ucertify.com have offered people who read this blog post with a discount you can get a 10% discount for this product using the following code:
You can download this product at:
Founded in 1996, uCertify is a leading provider of exam preparation solutions for certification exams of all the major IT vendors. uCertify products provide certification candidates a complete coverage of exam objectives with extremely realistic practice tests, comprehensive study notes and guides, and other value added features to help them to excel in the exams.
This kit is supposed to help you train and pass the MCSD exam:
Developing and Implementing Web Applications with Microsoft Visual Basic .NET and Microsoft Visual Studio .NET
Which is quite the mouthfull
Microsoft has the complete description here
Why would you need such a thing
- To prepare for a MCSD exam
- To train yourself without taking any exams
- To use it as an interviewing tool
Allthough when taking into account it's price, I think the only thing this should realisticly be used for is as a study guide for the exam.
What do you get in a Prepkit
You get the ucertify prep engine which is the quiz engine used to ask you the questions get the answers and give you extra information when you review the questions.
Next to the quiz / review part there are also some other helpers to get you to where you want to go:
- Exam Objectives - What are you studying for
- Study Notes - A whole lot of what is x ? questions
- Articles - Background information on things (.Net / Framework etc)
- How To's - Illustrated walktroughs
- Study tips - Where do you need to lay your focus
Look and feel
The look and feel is quite solid and modern. "
You can see that there was quite a bit of polish has gone into the looks of the application.
The amount of questions, notes, articles etc. seems good to me.
There are quite a few practise tests and the quality of information looks to be very good.
If you want to get a look and feel of how the application works and what the questions are like you can download a free sample from the internet which includes the application. The only thing is that a lot of the content on it is locked.
This means you get a pretty good idea of what you get when you get the whole thing.
Ucertify has quite a bit of competition in the testing / exam preperation field some of it's competitors are:
Ucertify seems to be at the top end of the market in terms of features / price.
Ucertify vs the Competition
Testking - Seems to be cheaper all round but only offers a question / answer engine. It is a more familiar brand but I'm not sure it actually offers better value for money.
Braindumps - Is free and seems to offer actual tests + community answers it feels more like cheating then like a preperation tool.
Exam Collection - Offers questions / answers only which seem to be community supplied. Price is very low as well.
Ucertify vs a course or book
A course will definitely take more time and probably more money I think this prep kit for me would be more effective then assignments with teacher corrections.
A book, this defininately beats a book by having the information organised in a way that it's very fast to access and offcourse being able to do tests to monitor progress beats a book hands down :)
I think that if you want to get certified this is a product that you can use to save a lot of time without making you feel like you cheated.
It also comes with a money back guarantee, which means that you can get your money back when you don't pass the exam.
For me personally I think this prepkit could easily be the only thing I would need to pass the exam (together with some practice with all the things inluded in the exam).
That to me justifies it's current price of euro: 41,20.
Nokia and it's software a .Net developers take on things.
First off I would like to say that I started this quest with a good amount of confidence that I would be pleased about things on the software side of things. But each time when I look further it starts to look even worse.
So let's begin my little review of the state of the modern phone + it's pc software.
I set out this little quest to copy about 200 name / phone number pairs to my mobile phone.
My mobile phone is a Nokia N73 which runs on the S60 3rd Edition platform based on Symbian OS v9.1.
This means that it supports Java, Python and Symbian C++ as programming languages. Which seems to me like it should be easy to do what I want with it.
I mean I only want to copy a couple of addresses in there and I'm willing to whip something up to get there.
The existing program which can be downloaded for free from Nokia to do the communication work is: Nokia PC Suite.
It's quite a big program, and the parts I'm interested in work quite slowly and with a horrible interface.
There is another version coming up in a while which looks to be even worse. (total install size around 440 MB) 70 MB for an updater.
At those sizes it really doesn't look like something I want to install on my PC.
At first I was overjoyed to see that Nokia developed an SDK to help developers out with programming what is needed for the things I wanted to do, i was even getting some nice ideas in my head of applications which would work like a sort of msn like interface with your phone contacts list and a chat / message history of what you sent / received to the currently selected person on your contact list. Which would mean that I would finally be able to Text message as fast as my friends, well actually quite a bit faster :)
After registering on the Nokia forum (this registration process could use some work) I was able to download the SDK, there were even examples in VB.Net and C#, how good can it get :)
My happy feelings about this unfortunately ended there, that SDK didn't contain all the possibility's of the Suite instead it only contained some file operations.
So for my cause this seemed absolutely hopeless, since the bar had been raised a bit I figured I would be better of using someone else his work this also didn't go as smoothly as planned. It seems that there is an API out there which Nokia supplies, you just have to become a member of a Pro Network and fork over $4000 this might be excluding the membership fee of $800 a year.
Since the cost of entering is quite high this also means that the applications for things like updating your addressbook aren't available for free.
That is barring the standard Nokia PC Suite.
Or at least that's what it looks like after spending quite a few hours googling and otherwise scouring the internet for applications which would make this possible.
The salvation seems to be in the fact that the Nokia PC Suite does have a synching option with MS Outlook. So the contacts will be added to my phone with with Outlook as the middle man.
Still this whole adventure does feel like Nokia is trying to make a buck from the developers instead of really trying to provide the best service and getting the best platform out there. Too bad, because if they openened up their API Í'm sure better alternatives for their own software would arrive and that might be a big selling point for the people who are turned off by their current software offering.
State of the PC interface software: Not very good from my point of view
State of the API's surrounding it: Very limited or pay up
In other words don't try this at home and if you want to do anything just work with the standard software no matter how much it pains you :(
What others have tried / done
A guy wanting to write his own importer as a midlet
An effort for a thunderbird contacts sync program
More Posts « Previous page
- Next page »