Nov 28 2008

Modern UI

Category: UI designMaciek Talaska @ 7:51 pm

Office 2007 UI is one of the things that forced many people to think about UI of their own applications. I remember while working for one of the companies in – we were all impressed by the new UI. We planned to change the outlook of our application and make it more convenient for the end-user (and looking somewhat similar to Ribbon UI). I have just found a site on MSDN that describes all the things that people who want to create office 2007-like GUI should take under consideration (Ribbon guidelines). You may also be interesting in watching a 1.5 hour presentation by Jensen Harris, who describes the process of designing Ribbon UI. He shows many prototypes and talks about research that Microsoft has conducted while designing Ribbon. The amount of work is impressive and if you’re interested in creating modern GUI’s this is definitely what you should see. The guidelines are what every developer / designer responsible for designing GUI should see, and think of. I have seen many applications that seem to be created ‘by developers and for developers’. It is amazing how easy it is to make application hard to use, by making its GUI completely different that other similar application use (however sometimes innovation is what makes application better – just like in the case of Office applications).

Apple is a company that is believed to create and design the best user interfaces (although I am definitely not a keen on Apple, but I have to admit, that their applications look really neat, and they make apps really easy to use). There is a great site devoted to Apple developers that describes how should application be designed to meet all the standards for ‘true Mac app’. I does not matter if one is a Mac developer or not – most of the things described are universal. It is a strong belief that ‘good looking applications sell’ – so why not spend a little bit more time on designing GUI – just to make sure that there were no pitfalls made that will prevent the app from gaining popularity? Command-line interfaces are gone, and creating GUI is not the same as creating GOOD GUI (it is definitely something more than just putting some controls on the form). Why not to learn from the best? Why not to use all the experience they want to share with?

Tags: , ,


Nov 22 2008

Disk problems? I hate it!

Category: toolsMaciek Talaska @ 10:04 pm

There is one thing I hate about computers: sometimes something doesn’t work and it takes a lot of time to figure out what is causing troubles. I am really happy when everything works as I am expecting. I am aware that it is important to create backups – I prefer to devote small amount of time every day / week than have to spend all day repairing and trying to get my data back. Unfortunately I am also eager to check a lot of things that shows up – new operating systems’ versions (different Linux distribution for example), different compilers, tools etc. As far as it does not involves playing with disk partitions I feel quite safe – only thing that I have to do is just to create backup of the environment I am currently using. However when it comes to repartitioning or changes in partition sizes (sometimes, I had to do it – no matter how much I am trying to avoid it) it takes much more time than expected. A few days ago I have decided to change organization of partition on my old desktop machine. I didn’t expected it to take so much time…

The strangest thing that happened to me recently was… incidentally loss of a whole partition (the one with quite important data on it… and of course the one I didn’t backed up earlier ;) At the beginning I thought that everything is lost… but after a while I realized, that it have to be possible to recover at least some of the information. It should be possible – just like in case of deleting files. If nothing has been saved on the same place – the information is still there, the issue is that OS somehow does not see it. After a few click I had the first tool. Next couple of seconds, and… the tool informs me, that it found the lost partition, it allows me to see all the data on it… but… I am not able to recover them, because the full version of the software (the one you have to pay for) is needed for the write operation. I didn’t want to waste my time, and wait for the code, so I started to search for the free alternative. After a while I have found TestDisk utility. It is completely free, and it is available in many version for different OSes. It is not as much friendly as earlier mentioned commercial app (TestDisk is a console application) but it does its job very good. After a few moments I had all my data back. And everything is ok (media are playable, archives have been tested and are error free). The best thing is that this utility (TestDisk) comes as a part of great LiveCD called PartedMagic. The LiveCD consist of a bunch of disk utilities, among them: GNUParted (partition tool able to resize, move, create, delete partitions…), TestDisk (partition recovery tool) and PhotoRec (file recovery). I advise to download PartedMagic’s iso image, burn it, and have it always somewhere near – just in case…

A while ago, I went to my friends and they were having a problem – some application (which was really a state of the art when it comes to its design…) stopped working, because there were no sufficient free space on system partition (only 7 GB free…). They tried to reinstall this app on different partition – nothing changed – it claimed about insufficient free space on system drive. And that’s where another utilities I use come in handy: Junction Link Magic and Winbolic. What do these utilities allow? To be short: creating junction points (directory symbolic links, NTFS junction or however you’ll call it). The thing is just to create a special link pointing to a directory on a different drive or partition (that has a lot of free space) and thus overcome the limitation of "insufficient free space". It works similar to standard links, but it is transparent for all applications – the paths are not being changed, and from the view of application or file operations it is the same as it was before creating junction point. A few clicks in Winbolic (this one is my favorite) and everything was back to normal, app was starting without any complaint (all thing was about creating symbolic link for application’s preferences stored in AppData…).

Similar technique I often use to avoid repartitioning my drive, and still be able to use all its space. When I give up some new and fancy Linux distribution (for any reason) – I just format the partition and link them to an empty directory (this is possible using Windows built in Administrative Tools -> Computer Management -> Disk Management). The only thing you have to do is to remove any drive letter that is assigned to drive, and mount the drive to any empty directory to any of the partitions you use. From now on all the space from the specified partition (or drive) is accessible through the directory you’ve chosen. It works very similar to mounting drives / partition in Linux distributions. I find it much more convenient than having a lot of drive letters that you have to switch through to find something.

Tags: ,


Nov 18 2008

Visual SourceSafe to SVN migration.

Category: Programming, toolsMaciek Talaska @ 10:51 pm

After struggling with VSS for quite some time I decided to switch to SVN with all my private projects. I have used SVN before and I think it is great, but never had enough time to migrate all the projects. I thought that such an operation could not be painless. History of all changes was crucial for me – I did not want to devote all those information held by VSS just because of the migration. I started looking for some kind of script I could use… and I was very lucky, because almost immediately I found the solution that did all the work for me. VssMigrate is a command line C++ utility developed by a bunch of folks (y

ou will find all the info on the utility site). At the project page one will find a bunch of releases (bug fixes, additional features…) – personally I think the best idea is follow author’s advice and download one of the latest (the one with ‘tim2′ suffix seems to be the latest one – it automatically removes VSS bindings). VssMigrate seems to be quite mature and as much developer-friendly as could be – the only thing one has to do is to configure this tool by editing .config file. It did take me, however, a couple of minutes to configure it properly, but when I figured out the proper values… the migration was quick as lightning. Below you may find configuration that worked for one of my projects:

<add key="VSSWIN32" value="C:Program FilesMicrosoft Visual SourceSafe"/>
<!-- # VSSWin32 directory which contains ssapi.dll-->
<add key="VSSDIR" value="d:VSS"/>
<!-- #VSS repository directory (contains srcsafe.ini)-->
<add key="VSSPROJ" value="$/RegionCreator/"/>
<!-- #VSS project to start at (ie $/Product)-->
<add key="VSSUSER" value="<user>"/>
<!-- #User to use for VSS commands, use blank for none-->
<add key="VSSPASSWORD" value=""/>
<!-- #password to use for VSS commands, blank is OK-->
<add key="SVNUSER" value="<computer_name><user_name>"/>
<!-- #User to use for SVN commands, use blank for none-->
<add key="SVNPASSWORD" value=""/>
<!-- #password to use for SVN commands, blank is OK-->
<add key="SVNURL" value="file:///D:/Svn/RegionCreator"/>
<!-- #URL to use for the root of the check in-->
<add key="SVNPROJ" value="trunk"/>
<!-- #SVN project to start at (ie $/Product)-->
<add key="SVNREVPROPSPATH" value="d:Svndbrevprops"/>
<!-- #SVN Repository directory (ends in [RepositoryName]dbrevprops)-->
<add key="WORKDIR" value="c:Tempvss"/>
<!-- #Directory under which files and directories will be created as work progresses-->
<add key="DEBUG" value="1"/>
<!-- #turn on debug output, blank is OK-->
<add key="AUTORETRY" value="1"/>
<!-- #if a command fails to run, it will be run automatically 1 time before failing-->

Thanks to the comments, and sample values – editing config file was not such a big hassle as I was expecting. Just to make it even clearer – I will describe some properties that may not be obvious at the beginning:

  • [line 5] “VSSPROJ” should hold internal path of a project inside VSS.
  • [line 19] “SVNREVPROSPATH” should point into “dbrevprops” that is located right under the folder when SVN repository was created
  • [line 21] “WORKDIR” is a temporary directory used during the migration process. The directory must exist before running migration utility.
I am not sure if I have configured it properly, but it worked for me as a charm. The only disadvantage I can think of is that it is impossible to import all the content of VSS at once. One has to change configuration for every project that needs to be copied to SVN. It just take me about 15 minutes to move 8 solutions (most of them consisting of 3-4 projects).

And at the end… it is a good idea to remove source control bindings before releasing your sources, right? And why do it manually if there is another great tool that does all this work? :)

Tags: ,


Nov 11 2008

svn hosting service

Category: ProgrammingMaciek Talaska @ 2:21 pm

Having your sources (the private projects) only on one machines is not a good idea. The need of creating backups is obvious, but much more convenient for any developer is to be able to store source files in outer version control system. A few weeks ago I have discovered Assembla. It was a great site, that offered free svn hosting (200MB of space), free trac and many more services that most of developers would find very useful. Unfortunately I just got an email from Assembla, where the staff informs that within a month they stop offering private free spaces. You just have to decide if you want to convert your space to public one (i.e. publicly available to anyone) or you prefer to pay for a private one. Well… I choose neither. Instead I started looking for an alternative. It is quite hard, because Assembla was not only a svn hosting, but for me it was the most important service. I think that XP-Dev and Codespaces are worth trying. I just hope that there will be a free svn hosting service for all people developing free projects (not only open source, but also closed source free). I think it will be a great loss if there is no such a possibility.

Tags:


Nov 08 2008

the best things in life are for free, huh?

Category: BloggingMaciek Talaska @ 7:13 pm

A few weeks ago I started searching for some place to have a WordPress powered blog hosted. I didn’t want to buy a hosting. First hosting service I have tested was WordPress.com. Although it allows to create a blog for free there are way too many limitations (limited amount of skins you may use, no FTP access – so uploading binary files is not convenient). Then I tested Blogsome, Blogetery, and a few others similar services that gives WordPress powered blogs for free, but none was the one I was looking for. I realized, that it would be the best for me to have a free hosting that would allow me to install WordPress and manage it by myself instead of having a blog hosted on some site that specializes in hosting blogs for free. I didn’t believe it could be possible, but after a couple of hours (very, very exhausting) searching through the Web I have found the best (and FREE) hosting service – http://www.000webhost.com/. Yup, it is REALLY free. For free you get: 350MB of disk space, 100GB of transfer (per year I think), PHP, MySQL and mod_rewrite Apache module (this on is not a must, but I am sure you’ll want to use it). Setting your own blog is not very hard. It just takes a couple of minutes – after unpacking and copying WordPress source files, you have to configure it, create a database… and you’re ready to blog! What is mod_rewrite for? Well… it just makes all blog permalinks looks much better than default http://yourblog/?p=456 and allows them to look more ‘human’: http://yourblog/2008/11/03/just-a-test.

But what is the biggest advantage of having WordPress blog set up by yourself instead of using WordPress.com or Blogger.com that deal with all the hassle by themselves? Well… let’s suppose that you would like to have something more than ‘just a blog’. Let’s suppose, that you would like to have a blog looking more like a personalized homepage, that main part is blog. What to do? Blogger.com does not allow to create additional pages – you may of course use Google Sites, but I gave up after a couple of hours trying to create the site the way I wanted. WordPress is much more flexible. You may create a lot of additional pages, the may even be organized in a hierarchy – anything you want. The second thing is that hosting additional files on Blogger is not possible – you got to put files somewhere else… convenient? Don’t think so. The last thing (maybe not the most important) is ability to change the look of your blog. WordPress.com gives you a bunch of skins to choose from, the same is on Blogger – having your blog hosted on hosting service like http://www.000webhost.com/ gives you total freedom to apply new themes, manage them, upload binary files, install additional plugins to WordPress… you are the person who decides what you need. And for me, there is another advantage of WordPress – it works well with Windows Live Writer (I am not a keen on built in blog editors).

There are of course other blog engines, but from those I have tested WordPress seems to be the most flexible and the cheapest :) I am planning to move my blog to a WordPress powered one in a couple of weeks. And if you ever wondered if there is a possibility to have your own blog/site hosted for free – do not hesitate and try what http://www.000webhost.com/ has to offer. If you’re interested in setting up your blog in http://www.000webhost.com – I think some info on configuring WordPress may be useful (just pay attention that ‘localhost’ is not a proper value for ‘DB_HOST’ in config file – but you’ll find information what should be there on hosting service’s information pages; the same is with enabling mod_rewrite – everything you need to know you will find on http://www.000webhost.com information pages).

Happy blogging! :)

Tags: , ,