Dreamcatcher

Hell is fueled by nightmares...

Subscribe to RSS feed

Migrating to Blogger

I decided to migrate my blog to blogger.
Updates will be more frequent and focused mostly on programming.
You can find the new blog here.

The content from this blog will not be transfered - notes posted on my.opera.com will remain published.

How emacs keeps replacing my tools at work

,

I can't recall my first encounter with the Emacs editor. It was a long time ago and I didn't like it then. I have to be honest that I never used it for more then 5 minutes back then. For a long time I was using only vim for all of my editing needs and I felt no need for anything else.

So how did I end up from the vim camp to daily emacs usage?

It all started with Common Lisp. Pick almost any book/tutorial about Common Lisp and You will soon find that emacs is almost a requirement for keeping up with the material. I know that now there is limp but I started before it appeared.

So I decided to try Emacs at least for Lisp development. I must say that Emacs + SLIME just swept me away from vim. I didn't know much on how to use both of them but enough to keep me going. So time passed and I found myself reaching for Emacs more often. Learning slowly the parts I needed for my current tasks. I never spent more time to actually learn the editor itself.

The real switch happened where I didn't suspect it. At my current workplace. When I got hired I tried to use vim for my daily tasks but soon realized that it didn't work out so great for me. First of all it required some configuration beyond the time I could invest to do so. Secondly I had to tab over many applications to do my work (WinCVS, SQLPlus, a web based production planning system, PL/SQL Developer etc.). So I gave up with vim for a long time. I still kept it around to do those casual quick macro file conversions.

Then I got feed up with SQLPlus drawbacks. No command history, no syntax highlighting, no in-line editing of already entered text and no nice (quick) way to navigate for files on the hdd. At the same time I discovered that Emacs is bundled with a SQL-oracle mode.

The mode is a wrapper over Oracle SQLPlus additionally fixing all the problems I had with it.
So I decided to keep Emacs running all the time just for this functionality. And guess what happened? It's still running but is replacing much more than SQLPLus...

Warning, some of the hyperlinks in the following text lead to images. All of them are strictly topic related and are a result of Google hunting. If You are the author of some of them and want credit just drop me a line in the comments/jabber/mail.

As I started to use the editor on a regular basis I kept bumping into more modes that happened to integrate perfectly with my development needs.
Here is a short list of the applications that Emacs replaced completely or is in progress of replacing in my setup:

  • SQLPlus
    Obviously. I already told You about it smile
  • Total Commander
    Emacs dired mode allowed me to skip this application. I can handle all of my hdd navigation/manipulation without ever leaving the editor.
  • WinMerge
    Emacs ediff mode. I don't know why but it better suites my work-flow. I can now easily back-port changes that can't be merged by the version control system. I even grew some additional macros/functions to handle more tricky (application specific) situations.
  • PL/SQL Developer
    Emacs ide-skel, sqlplus and plsql. These modes allow me to:
    - List tables, views, packages, triggers etc on the database.
    - Get sources of all of the above objects.
    - Compile PL/SQL code with errors marked within the editor
    - Have query results nicely formatted
  • WinCVS
    This one was a little bit trickier. We use a custom plugin for each commit done to the repo. I basically use vc and pcl-cvs and my custom wrapper implementation for the plugin functionality written in elisp. Works flawlessly.
  • AstroGrep
    Emacs grep just works the way it should. Instant navigation between search results and the match is priceless.
  • cmd.exe
    eshell and other command line modes completley killed the need to fire up the cmd.exe shell.
  • ipconfig/ping/traceroute
    I don't need to open up cmd.exe to check this information. Just M-x ipconfig/ping/traceroute and it's all here where You need it.
  • Custom functions that retrieve information from the web based production planning system.
  • Evernote/Remember the milk
    I use those applications to track my activity and current side tasks. Emacs org-mode completely replaced it. It integrates todo-lists, calendars, schedules, tables, outlines and more. Check it out.
  • Calendar
    Emacs calendar mode replaces all my needs to quickly lookup a date and do date calculations.


I also wrote some simple additional scripts on my free time.
A quick hack to count SLOC in PL/SQL files. It allows me to quickly count SLOC, comments and blanks in the current buffer or over all the marked files in dired mode. I recently extended it to support counting those stats for elisp.

Another example is a script that is now used to fill in missing documentation in WSDL files based on existing XSD documentation and from source code.

I also tried to replace my jabber client with jabber.el plugin for Emacs. Unfortunately there is a problem with the SSL certificate of my companies jabber server that Psi can handle and jabber.el currently seems to not.
I edit a wiki from time to time at work so mediawiki.el is also tempting to try.

So to sum things up. I wanted to replace SQLPlus and ended up replacing almost all of my development tools also gaining additional ones that boosted up my productivity. Suddenly my work got more interesting.

This was supposed to be a quick writeup but ended up longer then I expected. I'm off to finish setting up Emacs on this PC as it's mostly occupied by my fiance which loves to play Final Fantasy VIII and she will get back home tomorrow smile.

Balsamiq Mockups - gui prototyping on steroids

, , , ...

Are You a software developer, interface designer or maybe You are paying someone to deliver an app?
If You answered 'Yes' to the above question then read on. I will tell You about an application that will remove the most boring, bug prone and difficult process of regular interface design for software.

In every application development cycle there is a moment when several different parties have to settle on a user interface. The problem is much harder then it seems and a simple chat on the phone or even in person might not be enough to get it 'just right'. The sides have to agree on functionality, usage and layout of widgets, field validation, implementation of business processes and much more...

Before You proceed take a moment to see the application I am going to talk about further in the post.
The screencast on the product page is probably the best starting point.

And some examples of GUI mockups created with it.

The following 2 screenshots are the result of my 1h play with the tool. Mocking up the Opera Mail client. Click to see a larger version.





Now, back to where we left off:

Most companies and independent software developers (and open-source software developers) have their own ways to approach this issue. Let's take a look at some of them:
  • Paper & Pen / white-board
    Many use paper and pen to sketch out the application - by far this was the most effective method I knew.
    The problems with it are:
    - many iterations of the design lead to lots of wasted paper
    - harder to archive
    - hard to keep track of iterations
    - hard to share with people working at a distance (important for big companies and open-source developers)
    - in a commercial setup - mostly unaccepted results to show the clients.
  • RAD tools/WYSIWYG GUI designers
    Some use the same applications that are used to create the final product.
    - to much layout work with complex UI for just a mockup.
    - in a commercial setup - the end user will compare the mockup to the final product and complain if they differ. And they will mostly differ because during implementation issues are discovered that force the change of some previous decisions.
    - seeing a mockup looking realistic (like the final product) might set off some customers to think that You are almost done.
  • Specialized software
    I have no experience in the field of specialized software for this purpose but the ones I found were overkill for a mockup.


A new player in town - Balsamiq Mockup.

Balsamiq Mockups "so freaking good"

  • Create software mockups in minutes
  • Collaborate with your team
  • Focus on creating your product



Balsamiq Mockup is all about productivity. The idea is simple and implemented perfectly - design a user interface with 'hand drawn' components, tweak an rearrange them until You/Your team and Your customers are satisfied.

The interface of the tool is intuitive and straight-forward. I didn't need any documentation to get going - most features worked as expected and more complicated ones came with tool-tip help. In fact, the application is so easy to use that You can hand it out to Your client to provide initial mockups of things they want and allow them to modify Your proposed solutions for further review.

I tried the desktop version, which is available for free but with some limitations (no export, save, import and creating more than one mockup at a time). The software is written in Adobe Air so it runs everywhere where Adobe deployed it's product (Windows/Linux/Mac?). The installation was quick and painless. Once the app was running I decided to create a mockup of the Opera browser. I took it a little further and selected a specific part of the browser that contains a more complicated UI - the Mail client displaying the 'Sent' directory an open message and the sidebar open plus several open browser tabs.

It took me about an hour to finish my mockup. It was incredible fun.

The widget library is comprehensive it didn't lack any of the items I needed to implement the GUI I choose for this test. And even if it did miss some - it's nice to know that You can create Your own. The widgets can be grouped, rearranged, colorized and tweaked with many parameters available for the predefined ones. There are also many nice features built in like the ability to search and import images from flickr with the image widget. There is also a full screen mode that turns Your mouse cursor into a big blue pointer - great touch for presentations with the client.

The look of the final mockup doesn't leave any doubt of what it is - a mockup. And this is good because it doesn't create false specification for the product when it's implemented. There is nothing worse then a tester insisting that the widget isn't placed exactly like the one from the example in the specification...

You can design any user interface You want with this tool. Be it a desktop application, an iphone app, web page - anything. You are only restrained by Your own imagination.

In contrast with the pen and paper approach, You can export Your mockups and put them under version control. There are also many ways to run the app - even from the browser so there are probably many paths of collaboration built-in but I didn't search for them.

As for pricing there is a one time fee of $79 per developer and there are also good discounts if You want to buy more licenses at once. For most developers and companies this is in my opinion a no-brainer. It's worth every dollar they charge.

Be warned - If You try it then You will not want to go back...

Novell Tech Support...

, , ,

I tried to contact Novell's tech support since Sunday about my problems with MSI Wind netbook I described in a previous post.

On sunday I have requested a tech support call from a form available at the Novell Customer Center.
A day later on monday I got a call from Novell informing me that this support line is reserved for commercial cusotmers only and I have to find another number on their site and call them by myself.
Great I can live with that, but why is the form available for me if it's not meant to be used by individual customers? And one more thing. You could at least give me the number I need to call to recieve tech support.

Today I logged to the customer center again to find the tech support number and guess what? Support for Poland is located in the Netherlands...

No need to say I didn't call that number instead I found a contact number to a Novell office in Warsaw Poland. The person who answered the phone informed me that:

  • There is no way I can get tech support from them because they are just a regular office.
  • There is no way I can get tech support from Novell in Poland. Only from their partner companies which charge an additional fee for tech support.
  • There is no way I can get any tech support from Novell because I am not their customer - MSI is.


I gave up with Novell. Frustration is a delicate word to describe my current opinion about Novell.

My last resort was to call MSI and I am quite nicely suprised.
The tech support numbers were easy to find - 3 of them listed on the contact page with information on what range of problems You can call them and what information You should prepare before the call.
The phone was answered immedietly. After a quick description of my problem the person on the other side was surprised that my system registered as an evaluation copy. Because MSI actually bought regular licenses from Novell for this netbook series.
I didn't start rambling about my desktop issues because the registration problem was of higher priority and most of my desktop woes are Novell not MSI related.

All in all I am supposed to be called back when they sort this issue out with Novell.

In the meantime I am thinking about replacing the SLED installation on the MSI netbook with another distro. Any suggestions? My main requirements are: working wifi, working bluetooth, working hibernate/suspend/sleep, working camera.

Ever wondered why people return MSI Wind Linux netbooks?

, , , ...

In a blog post Editorial: Thoughts on the MSI Wind Linux return rates… the author asks:


Thirdly.. how is the netbook being marketed? Do consumers realize they are getting a netbook system with Linux? If so, is it perhaps the flavor of Linux being distributed with the netbook that’s the problem? What exactly are the problems people are witnessing? Are there not enough bundled applications for the netbook to make it useful out of the box? Are return rates different for different aged groups? Do older consumers return the netbook more often than younger consumers?



Since my fiance owns a MSI Wind netbook with Novell Suse Linux Enterprise Desktop I'll try to answer some of them.

First of all some background.

I am not an uninformed user, and so is she. We carefully evaluated pros and cons before buying this netbook and finally decided to go for it. We heard that people had problems with the setup but we are tech savvy users and should be able to handle most if not all encountered problems.

So, here is a short summary of the problems we found with MSI Wind + SLED SP1/SP2. You may want to have the photo album containing the screenshots open in another browser window to see screenshots of the issues described here.

First there are problems that should be taken care of by MSI and problems that Novell should address.
I'll start with the ones caused by MSI.

1. Quality Assurance at MSI?
It seems that no one ever tried to run this system on this netbook. To back up this conclusion with some facts. Would it be possible to miss these problems:
  • A Novell SLED cdrom was provided, but the netbook doesn't include a cdrom drive.
  • Many applications display too big modal and non resizable windows that can't be moved outside the screen border. This makes it hard to configure and use some applications.
    pidgin - instant messanger preferences dialog
    evolution - wizard to wide window
    evolution - wizard after selecting IMAP, forward/back buttons outside of screen - no way to continue.
    evolution - no way to skip the wizard
    FreeCiv - launcher screen, the exit button is slightly out of screen space
  • The system came with the HDD partitioned as:
    /dev/sda1 (/) 20G
    /dev/sda4 (/media/data) 80G
    Now the funny part. The /media/data drive by default doesn't allow write access to users. There is no hint how to change this setting. I seriously doubt that a regular user would fireup the terminal, sudo su to superuser and chown the group for the drive to users. And living without 80G of space from 120G total (from which a part is taken for the automatic restore functionality) is in it's own a very good reason to return the netbook.
  • MSI Wind doesn't have a numeric keypad so You can't move diagonal in FreeCiv.

2. Upgrade to SP2 breaks the camera (no drivers?)

Novell or upstream
1. Novell Customer Registration
  • There is no information that registration is required to get updates and how to register. This is only explained in Yast or on the firefox start page. The start page is located on the network so if Your run firefox beign offline You will see no information.
  • MSI Wind provided a 30 day evaluation period SLED installation. It can be extended by 60 days which we recently did. Information about buying or the current state of our licensing is hard to locate. This is another reason why typical users could back off.
  • If You restore the system and try to register again with Yast, chances are that the update repository might not be added back. This can also happen when Your evaluation period expires and You extend it. In my case extending the evaluation didn't restore the update repository.

    2. Network problems
    • network tools hangs and goes gray if there are network problems and You try to ping. Isn't this ridiculus?
    • The NetworkManager applet takes long to connet, and often asks for the network key even though it retrieves it from the gnome key-ring.
    • SMB file sharing doesn't work out of the box. It also displays an error message that is to verbose for a typical user and gives no hints how to solve the issue. Here is the error msg: "'net usershare' returned error 255: net usershare: usershares are currently disabled"
    • Warning about too long name for the shared resource is displayed constantly even after changing the name. Also true for other errors displayed in this dialog.

      3. Usability and Quality
      • Totem and RealPlayer have problems with some media formats. Software repository from the customer center doesn't contain any codecs to solve the issue. There is no *easy* way to make it work. Another reason most people would return the netbook.
      • Games start in a centered window, the borders (chrome) of the window are not surrounding the game window. The cursor focus is taken by the window. Again, is it possible that anyone tried to run this OS on Wind at MSI?
      • Battle of Westnoth is unplayable. Parts of the desktop overlay on parts of the game. Also the game doesn't fill the whole screen. No comment.
      • The system doesn't contain any hints how to report errors in a convinient manner. As You see, there are many to report.
      • Beagle is not started by default. And starting it by hand doesn't get remembered between reboots. So each time You do a search in the Computer menu You have to tell beagle to start and wait a while longer for the results.
      • User switching doesn't work. I can select the other user account but after confirming the screen goes dark for a moment and brings me back to my own desktop. This is a really important feature and it should work. At least nested logins work.
      • Wrong encoding for polish characters in directory->sharing tab.
      • PrintScreen doesn't launch the screenshot applet
      • Context menu for applications in application browser is not translated.

      4. Tomboy
      I didn't find a way to change the spellchecking language. Had to disable it if I wanted to write in english.
      I also encountered some other bugs:

      Bug 1:
      Enable wiki markup.
      In a note enter text "MSIRrelatedProblems".
      Create a note MSIRrelatedProblems.
      Open it and type something in.
      Rename the opened note to MSIRelatedProblems.
      Go back to the previous note and rename the link to MSIRelatedProblems.
      The link will be gray even though the note exists.
      Click it. Another note will appear and a dialog box with the warning that a note with the name 'MSIRelatedProblems' already exists.

      Bug 2:
      Indent a path like /dev/sda1 on a newline with tab. The tab used to indent will become a clickable part of the hyperlink.

      Bug 3:
      Highlight one bullet list item along with the bullet.
      Ctrl-Copy/Cut and paste it into another note. Pressing the control key often reverts highlight from the bullet.
      The bullet is lost because of that.

      5. Planner
      Here are the bugs related to the Planner application.
      Bug 1:
      Open a new Planner project.
      Create some work resources (2 rows in my example)
      Fill them in.
      Save to disk.
      Close Planner.
      Double-click the file created by planner.

      The system throws a warning that it can't open the name.planner file. Because its filetype indicates that it is a planner file but the content is XML. It instructs the user how to open the file anyways. But this is a valid file created by planner...

      Bug 2:
      Add some tasks to the Planner.
      Try to save the file again.
      "Error could not write XML"
      No indication what caused the problem.

      All in all. We really like this netbook and we are able to handle those problems.
      My fiance wouldn't exchange this netbook for anything else.

      This rant was supposed to shed some light on the possible reasons why people could consider returning the netbook. I think that recently we too often focus on 'lack of kwnoledge' to justify the fact that OEM installed Linux still lags behind what a medicore Linux enthusiast could achieved on his own. This needs to change if You want to see a wider adoption of the OS.

      How to download full length tracks from last.fm

      , , , ...

      Yesterday I prepared a short video tutorial that shows how to download full length mp3 files from last.fm. You don't need an account on last.fm.
      Most tutorials for downloading music from last.fm depend on some way to record the running stream - this is not the case with mget. It will give You the direct download link to the track that You can use with Opera or anything else that You use to download files.

      There is a little bit of Opera advocacy smuggled into the tutorial wink Have Fun!


      If anyone wonders, this tutorial was created using wink

      How to close the last tab in Opera smile

      ,

      I encountered a weird way to close the last tab in Opera. Usually You can close all tabs except the last one, like in this example screenshot. As You probably already spotted, the screenshot on the left doesn't contain that tab.
      The way to achieve this situation is to open a new opera window (Ctrl+N), and drag the speed-dial tab from the newly opened window into any other Opera window. Check it for Yourself. Do You know of any other ways to close the last tab? smile

      Ruby Movie Get 1.50 Released! (Last.fm support added!)

      , , , ...

      It's been 5 months since the last release of Movie Get. Defc0n and I are both busy working in real-life but we are proud to present the 1.50 release of Movie Get. The project site is here and You can download Movie Get on Your machine from here.

      Here is the changelog for this version:

      Fixed support for:
      • dailymotion.com ( issue #62 );
      • gazeta.pl ( issue #62 );
      • glumbert.com ( issue #62 );
      • itvp.pl ( issue #62 );
      • sevenload.com ( issue #62 );
      • veoh.com ( issue #62 );
      • patrz.pl ( issue #53 , issue #56 , issue #57 );
      • smog.pl ( issue #54 );

      Removed support for (these sites are no longer avaible on the network):
      • stage6.com ( issue #61 );
      • loadup.ru ( issue #63 );
      • czechtv ( issue #63 );

      Added support for:
      • last.fm (mp3 and video) ( issue #59 );

      Ruby is no longer required on MS Windows (the installer contains all the required files), thanks to rubyscript2exe. This saves a typical Windows user ~22MB of download.

      We are mostly proud of last.fm support. You can download both mp3 and video content with mget from last.fm. But in order to download content You have to register a free account on last.fm and add at least 14 tracks to Your playlist. After that You can give mget url's like http://www.lastfm.pl/music/The+Offspring/_/The+Kids+Aren%27t+Alright and in return mget will give You back a direct link to full length mp3 files. It may take some time before mget returns the link. If it fails with a cryptic error then Your network probably timedout. Just try again and it should work wink

      A little example to get You started wink
      C:\Users\mulander>mget -sdC "http://www.lastfm.pl/music/The+Offspring/_/The+Kids
      +Aren't+Alright"
      [?] To use the LastFM module, you need at least 14 tracks on Your playlist!
      LastFM decided that in order to view this movie you must identify
      LastFM username: YourAccount
      LastFM password: YourPassword
      http://play.last.fm/user/1b4b32a32ee6e08a08bbc7a6c3e999e5.mp3
      --22:28:40--  http://play.last.fm/user/1b4b32a32ee6e08a08bbc7a6c3e999e5.mp3
                 => `./LastFM000000.mp3'
      Resolving play.last.fm... 87.117.229.109
      Connecting to play.last.fm|87.117.229.109|:80... connected.
      HTTP request sent, awaiting response... 302
      Location: http://s10.last.fm/user/9650693/1b4b32a32ee6e08a08bbc7a6c3e999e5/116/0
      004618070/a760648797f04e38f6477388d584973a/1213302521/10.0.0.25/164001545.mp3 [f
      ollowing]
      --22:28:40--  http://s10.last.fm/user/9650693/1b4b32a32ee6e08a08bbc7a6c3e999e5/1
      16/0004618070/a760648797f04e38f6477388d584973a/1213302521/10.0.0.25/164001545.mp
      3
                 => `./LastFM000000.mp3'
      Resolving s10.last.fm... 87.117.229.97
      Connecting to s10.last.fm|87.117.229.97|:80... connected.
      HTTP request sent, awaiting response... 200 OK
      Length: 2á918á608 (2.8M) [audio/mpeg]
      
      100%[====================================>] 2á918á608     16.44K/s    ETA 00:00
      
      22:31:30 (16.78 KB/s) - `./LastFM000000.mp3' saved [2918608/2918608]
      

      Soup v1.0.0

      , , ,


      Click the image for better quality.

      NetBeans Starter Kit DVD

      , , , ...

      You can order a NetBeans Starter Kit DVD directly from the netbeans.org (here) website, the DVD will be sent to You for free (all shipment costs covered by Sun).
      The idea is similar to Ubuntu and OpenSolaris shipping option. My copy of the DVD arrived today while I was at work.
      This is a very nice option for people with limited or slow bandwidth. It's also nice if You don't like to Google for reading materials.


      The Starter Kit DVD contains software distribution files for Windows, Linux, Solaris x86, Solaris SPARC, Mac OS X and the following list of items
      • NetBeans IDE 6.1
        (All packs included)
      • JDK 6 Update 5
      • GlassFish V2 UR2
      • Apache Tomcat 6.0.16
      • NetBeans IDE 6.1 Documentation
      • Java Platform API Specification
      • Selected Java Tutorial Trails
      • "Java Programming with Passion!"
        by Sang Shin
      May 2013
      S M T W T F S
      April 2013June 2013
      1 2 3 4
      5 6 7 8 9 10 11
      12 13 14 15 16 17 18
      19 20 21 22 23 24 25
      26 27 28 29 30 31