Mike MacDonagh's Blog

Somewhere in the overlap between software development, process improvement and psychology

Tag Archives: linux

Linux GUI Development: Lazarus 1.0 Review update

A while ago I wrote a review of Lazarus 0.9.30 and it came out with the 63% mainly because the installation process was so horrible. Well now it’s almost a year later and v1.0 has been released so it’s only fair I update my comments…

Installation

It’s still not exactly shiny but, and it’s a huge but, it is simple and it works! 🙂 To install on Linux I had to download 3 .deb files (1 for Lazarus, 1 for the compiler, 1 for the source) and then I could install them by simply doing:

doing sudo dpkg -i *.deb

It’s worth tidying up any old Lazarus installs first which you can do by running my script here.

Downloading *.deb files and installing them is pretty normal for linux users so although it’s not a shiny wizard installer or single command it is simple and most importantly it just works! I’m going to upgrade this from 1/19 to 8/10

First Impressions

A lot of the little niggles have gone away and it’s a much more stable, solid feeling environment. It does still load up with a million windows (Delphi style) and feel a little old fashioned (a lack of wizzy GUI controls and UI customisation, single window mode etc.) but being open source and written in itself I can change these things if I want to reasonably easily. In fact loading up the AnchorDockingDesign package makes the IDE a docked single window affair and there’s plenty of 3rd part controls to download and play with.

Normal multi-window interface for Lazarus
Lazarus as a single window IDE

There’s still no multi-project support and recompiling the IDE to get a new component on the toolbar feels a bit weird even if it does work perfectly well. I’m going to stick with 6/10 for those reasons.

The GUI designer and Code Editor haven’t really changed since my last review and so they stay happily at 9/10.

Language features

The handling of generics has improved since I last looked at Lazarus and all seems to work pretty well now 🙂

Otherwise nothing much has changed, no  multicast events or garbage collection but those things don’t really slow me down much. That’s why I gave it 6/10.

Despite the lack of some of these things the language has always been and still is quite elegant (other than the nasty globals), it’s got an excellent simple OO implementation and it’s really easy to quickly put an app together – oh yeah and it’s cross platform.

Cross-platform and backwards compatible

Lazarus works on windows, linux and mac. You can write a bit of code and natively compile it on each platform making for lightening fast code with no external dependencies. Write once, compile anywhere. You can already (partially) compile for android and other platforms are possible – anywhere the fpc compliler can be ported your code could work. That’s pretty impressive and it just works brilliantly.

Similarly all that ancient Delphi code can be loaded up edited and compiled and largely just works. Brilliant again. For that reason I’m going to bump up the language features to 8/10. (9 when android is working well).

I’ve not tried the feedback process again since v1 so I’m going to leave it at 7/10.

Conclusion

Despite it’s old fashioned feel in some places it’s simplicity is elegant and actually quite powerful. If you know the Object Pascal/Delphi language then it’s so fast to create good looking cross platform apps that it’ll knock your socks off.

When I pick up a new language I tend to do a challenge to load an xml file into a multi-column listview and create a details form to edit the selected row. In Java, something so apparently simple is a massive pain due to the imposition of the MVC pattern on everything. In C# it’s pretty easy, I can go MVC or not. In mono it’s reasonably easy too, although not the same easy and not as easy to get away from MVC.

In Lazarus it’s really easy, and it works fast and well on 3 major platforms. That’s a killer feature.

Category Score
Installation 8/10
First Impressions 6/10
GUI Designer 9/10
Code Editor 9/10
Language Features 8/10
Feedback process 7/10
Cross-Platform 10/10
Overall 81% – Easy to use and powerful

In my previous review I said I couldn’t really recommend it, and that made me sad. Now I can recommend it, in fact it’s quickly becoming my technology of choice for linux gui development, because it’s quick to put things together and they look good. Just maybe Lazarus is living up to it’s vision and bringing Delphi back to life, but bigger and better than it was before!

SimpleGit is developed in Lazarus

Advertisements

Can’t open links in Firefox on Ubuntu when it’s open – Fixed!

This is a little obscure but there’s a number of people with this problem and too many “simple” answers that just don’t work. There are a number of situations that cause Firefox to respond with an error message when you click on a link from outside of the browser (like Thunderbird or any other application that try to launch a url). You get an error message saying:

Firefox is already running, but is not responding. To open a new window, you must first close the existing Firefox process, or restart your system

The normal reasons for this are things like locked profiles etc. which are well covered here. But some users get this error message even when Firefox is open and there aren’t locked profiles 😦 The solution is to edit the way that Ubuntu invokes Firefox.

Grab a terminal and go to ~/.local/share/applications this is Unity stores it’s information for launchers in the unity dock thingy. You should have a Firefox.desktop in here, you might have several in which case the one called “Firefox Web Browser.desktop” is probably the one that Ubuntu is using by default.

Edit the file and have a look at the “Exec=” line about 4 lines down. In my case the problem was caused because this line was referring to an old profile that I’d previously removed trying to fix the problem. If you’re not sure what it should look like set it to “Exec=firefox %u“, save, exit and click links once more 🙂

Netflix UK Review 2012

I really like the idea of Netflix. You pay a flat fee of £5.99 a month and then you can stream movies and tv shows whenever you want them, over and over if you want, with no ads. So I thought I’d try it out (for free). The convenience of being able to watch whatever you want when you want is a great idea, and if it was ubiquitous I believe it’d cut down on piracy massively since it’s cheap and easy.

The bad news 😦
Unfortunately there’s no linux client. Since most media servers are linux based this is a shame but it’s due to DRM dependencies. There was talk of there being a linux client and now talk that there won’t be, however a Chrome addon is likely to eventually support NetFlix on linux.

The other bad news 😦
Although there’s clients for a variety of devices, including android tablets I can’t get the android client to work, I load it up and just see a spinning throbber endlessly.

The good news 🙂
The Wii client works well and was fun to browse. TV listings are well structured and programme fast-forwarding through thumbnails is great. Quality is ok and I loaded up a few FireFly episodes and enjoyed flicking around them. The quality wasn’t as good as my FireFly DVD though, so I turned off the Wii and put the DVD in my linux media centre to watch in my bedroom. If you’ve never watched FireFly it’s worth signing up for the free month trial just to watch it.

The really bad news 😦
The choice is just terrible at the moment. I like rubbish movies, and even old rubbish movies which is good because that’s all there is. In terms of TV there’s just ancient stuff. Top Gear episodes from 2003-2009 (which is basically the Dave playlist minus QI) and some other things I can already get for free (or rather forced purchase) from BBC iPlayer. In terms of US tv shows the choice ranges from appalling to non-existent (Ok so there’s a couple of good shows but I’ve already seen them, notable popular shows not on Netflix UK include Bones, Castle, Supernatural, True Blood, Nikita, Eureka, The Mentalist, The Vampire Diaries, Glee, Game of Thrones, Fringe, Homeland etc). It is possible to pretend you’re in the US rather than the UK of course, since Netflix is just looking at your IP address, in which case the choice is much better but that’s probably considered cheating at best and is probably T’s and C’s violation. If you do proxy to the US you’ll find most of the shows I listed above are available.

The conclusion
It’s a bit like dusting off my own DVD collection of rubbish old films and old good tv boxsets. Maybe there’s a couple of things in there to enjoy during the free trial month but there’s no way I’ll be continuing my membership past the free trial which is a shame. I like the convenience, I’d like it even more if there was a linux client and the android client worked, but it all comes down to the library in the end which just isn’t good enough at the moment.

I’m hoping it’ll get better and I’ll happily sign up again.

Woooo Ubuntu Running On Android looks cool

Recover lost or corrupt LibreOffice doc files (or any deleted media files)

Today I had the great misfortune of suffering a power based computer crash just after lunch. I’ve been writing a huge educational document for a client but I wasn’t too bothered because I’d been saving manually fairly frequently and I’d also got the options set to keep a backup copy.

After rebooting I was somewhat dismayed to find that my doc file couldn’t be auto-recovered by LibreOffice. In fact it’d changed to 0 bytes long! I tracked down the auto-backup files and found them in

/home/mike/.libreoffice/3/user/backup

Unfortunately they were all 0 bytes too 😦 After some rapid passing through of the stages of denial, anger, despair and finally acceptance accompanied with a fair amount of swearing I realised that the file contents were likely still there on the disk but not in a file. What I needed was a bit of forensic disk analysis to try and recover at least some of my content. If you’re on linux you can do this fairly easily using foremost originally intended for law enforcement purposes and kindly provided by the US Government.

If you’ve not already got foremost then you need to install it

sudo apt-get install foremost

You then need to know which partition your file was on, just run a mount command and see which partition is mounted on the bit of directory structure your file was in. If you haven’t got a clue what any of this means it’s probably the one near or at the top of the output of mount that says something like

$ mount
/dev/sda1 on / type ext4

Then you can use foremost to scan the partition looking for things like “doc”s and recover them to a folder somewhere. So next create a folder to put the recovered files:

mkdir ~/recovered

Then it’s time to scan.

sudo foremost -t doc -i /dev/sda1 -o /home/mike/recovered

The folder “recovered” will start (very slowly if you’ve got a big disk) filling up with recovered files named things like 646546789.doc. Hopefully one of these will be a recent copy of your missing file. If you find one that is, it’s worth looking through the others as some of them might be later versions. All in all I only lost a paragraph of about 6 lines in my doc after recovery 🙂

Top tip: the less you use your computer between realising you need to do a recovery operation and doing this set of steps the more luck you’ll have recovering missing content.

Good luck 😀

Linux GUI Development: Lazarus 0.9.30 review and screenshots

This blog is part of a series looking at programming tools on linux and covers Lazarus 0.9.30

EDIT: Since I wrote this Lazarus v.1 has been released  so I’ve updated my review here.

 


 

I’ve always liked Wirthian languages since programming in Modula-2 and university and Delphi late because they’re very readable and promote good programming practices in the structure of the language. Also, I like Wirth’s law “Software is getting slower more rapidly than hardware becomes faster.” from A Plea for Lean Software even if it wasn’t actually him that came up with it.

When I made the jump from Windows to Linux I was on the search for a nice high level language to do GUI development stuff in. In searching I came across Lazarus. Lazarus is a free cross-platform IDE which provides the Delphi experience for Linux (and Windows). Rather than Java’s “write once run anywhere” Lazarus aim’s for “write once compile anywhere” courtesy of the Fee Pascal Compiler (FPC). On top of the compiler Lazarus comes with the LCL (Lazarus Component Library) which gives a single interface for GUI programming despite underlying differences in implementation.

Lazarus is at 0.9.30 so it’s not a v1 product yet… However I’m not going to give much benefit for that since it’s been around for both windows and linux since 2008 and is available from the Ubuntu Software Centre.

Installation

Oh dear… the most important part of a software package, since if it fails your software doesn’t get used and for Lazarus it just sucks! When I first tried to install Lazarus it took me over 20 times to get it actually working. A comment from the Lazarus forum replied: “…20 times isn’t that much…” as if this is acceptable. Ok, so it’s free and open source but if it’s not accessible people won’t use it. It’s so hard to get running I’ve posted twice on the topic (and had a significant amount of hits from people with the same problems).

Worse, upgrades to Ubuntu have totally broken the installation and it’s not properly compatible with the new Ubuntu overlay scrollbars leading to focus problems with windows, text boxes and menus.

Basically, unless you really care it not going to be easy to get going. 1/10

First Impressions

Once I finally got it running my immediate reaction was summed up by the word “w00t“. Despite the always ugly multi-window layout here was an environment and language I knew like the back of my hand (so long as I rewind my memory 15 years) and could quickly put together good looking cross-platform apps in minutes 🙂

Normal multi-window interface for Lazarus

Lazarus as a single window IDE

It is possible (by recomiling the IDE) to get a single window mode which is a bit more modern. I was little disappointed to see that it didn’t have multi-project support but at least it’s solid and works if a little old-fashioned feeling. 6/10

WARNING: Due to problems with focus, the current version is close to unusable in Ubuntu 11.10.

GUI Designer

The GUI designer is solid and works well. Guidelines, alignment indicators and a pretty good set of visual components make putting together a simple form trivial. There’s no layout controls as you get in many newer GUI IDEs (flex boxes, tables, fixes vs.s flow etc.) but the use of anchors and panels means this isn’t a problem. The GUI designer feels a lot like the Delphi designer 9/10

Code Editor

The code editor features all of the old colour schemes and look and feel of Delphi with all of the modern stuff you’d expect like code folding, code completion etc.  The link between code and visual elements is easy to manage, especially with the excellent Actions feature. The Lazarus code editor is actually an improvement over the old Delphi editor 9/10

Language Features

Global variables are still there, I understand taking them out would cause problems for supporting old code bases but it’s still a shame.

The language is a good simple OO implementation but it misses out on some modern features like extension methods, anon methods, iterators, code attributes/decoration, multi-cast events…

Generics have been added but they feel a bit like a bolt on in this version, especially as when compared to their simplicity in languages like c#. Here’s the same example I used in the c# mono review in Lazarus.

generic TGList<T>; = class
  Items: array of T;
  procedure Add(Value: T);
end;

TBlobList = specialize TGList<Pointer>;

....

sb := TStringList.Create();
for n :=0 to Length(blobs.Items)-1 do
begin
  sb.Append(blobs.Items[n].name);
end;
Memo1.Text:= sb.Text;

I’ve created my own base generic collection here and then specialised it for a custom type. All seems to work pretty well.

Finally.. there’s no (limited) garbage collection. Although visual elements are dealt with when you close a form (it’s normally too late by then if there’s a problem) there’s no garbage collection which means in that code above I need to change the TStringList.Create to:

sb := TStringList.Create();
try
   ...
finally
sb.Free;
end;

All in all, although it used to be a neat elegant language, and it still is Object Pascal just feels a bit old fashioned and clunky now. Sadly I’m going to have to give this 6/10

Feedback Process

The main feedback mechanism is the Lazarus site with wiki and forum. The forum’s fairly active but there seems to be an acceptance of problems such as the installation issues which is worrying.  7/10

Conclusions

Although the current version doesn’t really work with Ubuntu 11.10 the previous (and I hope future) configurations provide a pretty easy to use solid GUI design and code experience if a little old fashioned.

The community is reasonably active but a lot of the Lazarus usage seems non-English meaning the resources are sometimes a little hard to understand for me and since Pascal is  a bit of a niche language these days there’s not much non-Lazarus resources that can apply (except for old Delphi resources).

Although I’m predisposed to be positive about Lazarus to be honest I can’t really recommend it unless:

  • You’re an old Delphi developer looking for some nostaligia
  • Someone who hasn’t accepted Delphi is dead (even the website set up to refute this http://www.isdelphidead.com/ is dead!)
  • You need to quickly produce something very simple for multiple platforms and don’t know any other languages
Category Score
Installation 1/10
First Impressions 6/10
GUI Designer 9/10
Code Editor 9/10
Language Features 6/10
Feedback process 7/10
Overall 63% – Sadly not good enough

Linux GUI Development: Monodevelop 2.6 review and screenshots

This blog is part of a series looking at programming tools on linux and covers MonoDevelop 2.6

MonoDevelop 2.6 is awesome 🙂 I first tried MonoDevelop about a year ago and gave up quickly. It just wasn’t usable, but these days it’s a totally different story. I’m quite drawn to Mono and MonoDevelop because I used to be a .net developer and really like C# as a language.  Also as an old Delphi developer the .net framework has an intuitive design and structure since they were both designed in large part by the same guy – Anders Hejlsberg. I saw him present on LINQ in LA, he’s a clever dude.

Mono is an open source project to make .Net compliant tools, compilers, runtimes etc. able to run not just on windows, but on linux, android, mac etc. MonoDevelop is an open source development environment for Mono providing GUI designers and language support for C#, Java, Boo, VB.Net, Python, Vala, C, C++, Oxygene (Object Pascal based .Net language, though not available in the current version of MonoDevelop).

Installation

I was able to install it directly from the Ubuntu Software Centre, it ran straight away with no issues. Not quite 10/10 though. I tried to write a “hello world app”  and  it wouldn’t compile 😦 A quick google later and I found that the default .net framework target in the project options needed changing from 2.0 to 4.0 then it was fine. 9/10

First Impressions

Starting up MonoDevelop you’re greeting with a very MS Visual Studio like welcome screen with links to create stuff, recent stuff and web links. The IDE has a very solid and elegant feel, it doesn’t start with a million views and tabs like Eclipse, is visually pleasing (unlike Lazarus) and incorporates platform theming well (unlike Eclipse/SWT). 10/10

MonoDevelop Welcome Screen

GUI Designer

The GUI designer is embedded in the main window in a similar fashion to MS Visual Studio, with widgets in a toolbox controlled by layout containers (fixed, aligning, tables etc.). Widgets are added to a window by drag and dropping and although there’s nice to have features like alignment guidelines missing the designer is solid, platform themed and doesn’t crash. It slightly frustrating to me that I can’t just double click on a button to create a default click handler and start writing my code but I can double click in the signals box (on the right) and do it from there.

MonoDevelop GUI designer

Brilliantly, it can handly some old c# .net forms I wrote which used custom visual inheritance to make a new form frame for an unusual app which I assumed would break it!

The only downside here is that many of the properties seem oddly named and aren’t consistent across different types. I keep having to hunt around for where to find the text property for different objects. There’s little relationship to WinForms either if you’re using GTK# in terms of property and event names. Oh yeah, and alignment/guide lines aren’t there yet when dragging components around.

Putting together a simple form is a trivial matter completed in seconds. 8/10

Code Editor

The code editor supports all the normal modern stuff like colour control, code folding, code completion etc. and again is neat and elegant. The code completion helper in particular is very easy to use as is the code snippets tool box. Obvious problems are underlined as you type and the link between the visual elements and code is easy to work with.

MonoDevelop - Code Editing

MonoDevelop - Code Errors

The only downsides for me are the refactoring interaction which features a visual arrow that jumps to suggested places to put the new code – it doesn’t jump to very sensible places sometime; the compilation errro/warnings which are shown inline embedded in the code. These can make it a little hard to read the code until you’re used to them. You can of course turn them off. Overall though, it’s excellent. 9/10

Language Features

Writing C# in mono is brilliant. From the mono project website:

The Mono C# compiler is considered feature complete for C# 1.0, C# 2.0 and C# 3.0 (ECMA). A preview of C# 4.0 is distributed with Mono 2.6, and a complete C# 4.0 implementation is available with Mono 2.8…

That means the language supports OO constructs, iterators, anon methods, generics, statics, extension methods, LINQ, memory management, reflection, threading and much more…

Between LINQ and the mono framework implementation of the powerful MVC pattern loading stuff into object graphs and presenting that in editable for to users is a high level programming exercise.

As an easy language example here’s  working with a collection of TestBlob entities:

private List<TestBlob> blobs = new List<TestBlob>();

...
StringBuilder sb = new StringBuilder();
for (int n=0;n<blobs.Count;n++)
{
      sb.AppendLine(blobs[n].Name);
}
....

Simplez! 😀

10/10

Feedback Process

There’s a little feedback button on the bottom of the IDE that lets you quickly send feedback to the community. I did this regarding my frustration over clicks from the visual designer direct to code handlers and another minor issue. Within the day I had a friendly response describing how my comments had been listed as two bugs on the public bug tracking system on xamarin.com and explaining how to add myself as a subscriber should I wish it.

MonoDevelop - Feedback

That’s awesomeness on toast! 10/10

Conclusions

The solid GUI designer, integrated debugger and high level language support for cross-platform development provided by MonoDevelop is brilliant. It’s easy to knock up a quick app to do something. My 7yr old son and I have been using it do develop a calculator as an introduction to programming basics and he things it’s a good easy to use system.

Getting going with the MVC pattern can be a little frustrating if you just want to programmatically put a bunch of things in a listview (btw if you do this use a treeview not a listview even if that sounds crazy at this point) but that’s a common hurdle for most modern day languages/gui widget sets.

The mono and monodevlop communities are large and active and the web is full of c# tutorials and info. I’ve found that guidance written for MS developers in c# is directly applicable to c# in mono. This is now my favourite cross-platform development environment and technology.

Category Score
Installation 9/10
First Impressions 10/10
GUI Designer 8/10
Code Editor 9/10
Language Features 10/10
Feedback process 10/10
Overall 93% – Excellent

Ngrams for nerds

Pictures that are worth 500 billion words!

Google Ngram Viewer shows graphs of how many times words or phrases have occurred in a set of 5 million books over the years. They’re a really interesting way of seeing trends in information and relative importance between words. It’s free and easy so check it out.

Here’s some I recently ran that I found interesting. I ran most of them from 1950 onwards and  the info only goes up to 2008.

Comparison of programming languages

Programming Languages

Ngram link – When looking at this you’ve got to mentally remove the baseline Java and Pascal references from the 1950 as they’re about coffee, islands and mathematicians. Interesting to see Java so dominant.

Programming paradigms

Programming Paradigms

Ngram link – I found this one really interesting. Compared to the others in my query “structured programming” had a lot more books written about it. I wonder how much this is a reflection of the rise of the internet… these days although there are lots of programming books the primary source for learning a language is online material?

Methodologies

Methodologies

Ngram link – I was a little surprised to see RUP so much more prevalent than agile but then I did have to add “software development” to the term to avoid including the bendy and stretchy. Also as with the previous one I suspect that there’s a difference here between a vendor driven process with supporting books and a more open source philosophy on agile as a generic umbrella for methodologies, and therefore more online sources. As Ivar Jacobson says: “No one reads process books

Shareware, Freeware and OSS

Shareware, Freeware and Open Source

Ngram link – This one speaks for itself 🙂 I wish I could have worked out how to add “expensive vendor products” to the query!

User Stories vs. Use Cases

User Story vs. Use Case

Ngram link – Ah yes, this argument again. Interestingly this dominance of use case over user story in written books correlates with query stats between user stories and use cases on by blog and the ivarjacobson.com site. Personally I think they’re both great and complimentary, I often use them together on software projects.

Windows vs. Linux

Windows vs. Linux

Ngram link – Yep, Linux beats Windows at every turn.

More Ngrams!

For more fun with Ngrams watch this very funny video explaining this stuff

How to deal with line feeds in Jazz RTC SCM

I’ve found that there’s sometimes a bit of confusion over how Eclipse & RTC deal with line feeds, especially when migrating files from ClearCase so thought I’d post about it.

By default RTC tries to be helpful when opening text files on windows and linux platforms by rewriting the text file contents to either windows standard or linux standard depending on which platform you’re currently using. This is generally quite helpful as it means that when you load a workspace on whatever platform and use an external editor to mess around with text files they’re in the right format to make sense to your editor.

There are some cases when this behaviour isn’t quite so helpful however which can often come up during migration from ClearCase or other SCM tools. During migration you tend to copy a set of files from a location, change permissions on them and then stick them into a workspace for sharing into Jazz SCM. If you do this on windows then your files will be converted to windows format. As I said in the previous paragraph this is generally helpful but in some cases isn’t, as if the team generally develop on linux then when they load the files they’ll convert the format again making a change set which can interfere in a simple understanding of the history of files or when doing a file contents comparison.

Similarly if you build on windows and then deploy to linux and run some bash scripts or similar in your set of files you can hit problems as the files loaded on windows will be converted to windows format, if they’re copied to a server without running a dos2unix (or similar) conversion on them then the scripts won’t run on the target server.

There are a couple of features that you can use to prevent these problems, which although minor and easily corrected, can sometimes dent confidence in adopting teams. I’ve heard teams say they want exactly the same files (in binary terms) that they had in ClearCase and they don’t want RTC to rewrite to platform… that’s easily achievable you just need to fiddle with some settings. Of course other teams simply don’t notice as the apparent contents stay the same whatever platform you’re on.

My advice for avoiding these issues is:

  1. Set a sensible set of default file format options in Eclipse before starting (Window -> Preferences -> Team -> File Content) including setting to “binary” any file formats you don’t want to change such as .sh (unfortunately this doesn’t have a */other files setting)
  2. Do the migration on the normal development platform the team will use with a bias towards linux – My process for doing migrations
  3. Ensure the adopting team is aware of the difference between line feed settings on different platforms and knows how to change them in their project.

RTC provides features to work around line feed formats, if you right click on a project in project explorer you can select Team -> Change File Properties to change the properties of the files in your project.  The setting text/plain : platform indicates that RTC should rewrite files to the current platform, so setting .sh files delimiter to LF (Unix) will prevent problems in the previous scenario even if the  project is built and deployed on Windows. Choosing next on this wizard allows you to set general preferences for types as well.

Moving from windows to Ubuntu, music, media centers, office and more

I feel like I jumped ship from Windoze to Ubuntu about 6 months before everything starting making sense in linux land.

I got fed up of my computer, which is reasonably powerful, taking ages and ages to startup, login and show me FireFox so thought I’d try Ubuntu. Installing as a windows app was so simple and it was so slick and fast that I was pretty much instantly converted and went the whole hog and now there’s not a trace of windows on my primary PC.

There were a few important things, some of which I couldn’t sort out instantly and some of which I had to wait for a few months for the next awesome and free Ubuntu release (a major one every 6 months) but now they’re all pretty much sorted 🙂

  • Media player that can sync playlists to my iPod – When I first got Ubuntu it came packaged with a media player called Rythmbox, at the time it didn’t sync playlists to my iPod, now it does. I had to search a bit for a script to transfer my ratings from iTunes to Rythmbox –  a bit convoluted but only took 5 mins and, more importantly, it worked!
  • A decent big screen media center app – it seems I’m both fortunate and unfortunate in having an nvidia graphics card. The most popular media centers (like XMBC and variants like Boxee) don’t work for me. I currently use Moovida which is good, but not perfect.
  • My various bits of hardware like my wireless printer, wireless mice, extra functional keyboards etc. – they all just worked 🙂 I also have a mini handheld keyboard thingy that didn’t just work but the fix for that is in the next release of Ubuntu in April 😀
  • Connecting to my work’s Outlook – Using Thunderbird this has now been achieved, it was quite involved so I’ll post about it as another post in a bit and update a link here when it’s done.
  • Messing around with screen settings – I flip between a dual screen setup and a large HD tv screen for media so need to change screen layout and resolution with a single button press, on windows I paid for UltraMon to do this on Ubuntu I achieved it using auto-disper for free!
  • Security, virus checking, firewalls etc. was all a bit different, so I’ll post about that separately too and update a link from here.
  • What about my favourite apps? I’ve managed to find through the Ubuntu Software Centre (a bit like an app store but free) a whole bunch of replacements straight away from LibreOffice for MS Office to loads of utilities and free games. I couldn’t really live without FireWorks and Dreamweaver just because I’ve been using them forever, but they work just great on Ubuntu with Wine (Pinta is a reasonable FireWorks alternative for Linux)
  • Development… that’s definately a whole other topic! But needless to say there’s loads of options and choices, finding one that suits you is the trick. I’ve had minor to major problems installing most development environments but an early favourite (due to my Delphi background) was  Lazarus – I’ve since moved to the much better MonoDevelop
%d bloggers like this: