Category Archives: development

Fix new line characters with Eclipse

One of the most popular differences between operating systems is the new line separators used in each one of them.

Typically, the top three OS out there print new lines this way:

  • Windows - CRLF, \r\n
  • Mac OS X - CR, \r
  • Linux/UNIX - LF, \n

It's normally an issue when working with a text document under different OS (or deploying to servers).

Luckily, there is a function in Eclipse that would help you automatically convert line endings - "Convert Line Delimiters To" under "File"


As a Linux user myself I personally prefer the UNIX-style as our servers are always running under some Linux derivative (and it helps mitigating possible issues related to this for version control systems or deploy scripts). Digg DZone Facebook Google Google Reader Magnolia reddit SlashDot Technorati

Setting up Grails and Postgres on Fedora

On Fedora, install Groovy with yum.

Then, download Grails and follow the guide:

Important: set correct Java and Grails home paths to be used by the engine.

Plain and simple guide for Postgres -

The only difference here was that initdb was called through:

sudo postgresql-setup initdb Digg DZone Facebook Google Google Reader Magnolia reddit SlashDot Technorati

Python, SVN and Android


Three things with not much in common, except that these are the three interesting things around me these days.

For the last 2 weeks I do python development (actually Django) for an international project while I'm ending my CakePHP and Digital Signer applications. I set up Subclipse in my Eclipse because I got tired of committing twice some of my files. This way my SVN is connected to the project in the IDE and the new data is deployed in an easy and beautiful way without any console commits.

The Django projects are fine as well. I do researches over the multilingual applications. So far I found url-locale and multilingual modules which serve to detect the language via the URL and create a multilingual content while create the intermediate tables for that. I continue researching the session system in order to save the languages there where switching around.

As for the Android, I plan to do my first app for almost a year. Recently I had a few job proposals for Android development plus the Mtel contest for Android app. That's why I downloaded the SDK and the Android plugin and started from the Hello World tutorial online. More researches are done and I am willing to test a more complex application with Internet activity, of course. Digg DZone Facebook Google Google Reader Magnolia reddit SlashDot Technorati

Database training in Switzerland


Last week I gave a database training in Switzerland. We had a look into relational databases, normalization theory, some good principles on database modelling, SQL language.

As of the used tools, we had an overview of Oracle 11g free database server, as well as Oracle SQL Developer tool to access the database systems. The E/R diagram toolkit we used to train on was TOAD data modeller. The previous versions of the tool were freeware, but the last implementations available are only evaluation for 2 weeks. You could try to find an old version that does the general work - database drawing, generation of SQL (as well as simple reverse engineering), creation of relations - identifying and non-identifying, as for one-to-one, one-to-many and many-to-many relationships.

In my training here I also extend the presentations with PL/SQL tips and tricks, Object relational mapping with Hibernate and JPA and few practical projects in classes. Digg DZone Facebook Google Google Reader Magnolia reddit SlashDot Technorati

Collabtive – cannot login after installation


I had a research on project management systems. My top 2 choices were .project and Collabtive. Unfortunately I was unable to properly install the .project and logically rejected using it as a personal PM solution.

What I find charming in Collabtive is the concept of usability - most important sections are in the horizontal menu on the top. The system is AJAX-oriented which makes passing through different modules almost transparent. There are few important mods:

  • Projects
  • Tasklists/Tasks
  • Users
  • Messages
  • Tracking

So, what can you do with Collabtive? Add users with privillegies, write description for your clients and projects, then divide them by phases and add tasklists with tasks. You could set start/end hour for working projects and receive an invoice-like print preview of all projects and how long did you work on them. Fair enough. The only missing feature is automatic tracking and start/stop button for tasks - when you don't have to take care of start and end hour of each task.

Hope this one would be implemented, too. Otherwise you could use Toggl - either the whole PM system, or the timer only. Or use a custom tracking script.

I was surprised that I was unable to login for second time after logout. There was a technical problem with the system. I tried a couple of things to fix the issue, but no success. Some of the known issues include incorrect session.save_path in the PHP settings which can be redefined to a path with writing permissions. The other was the magic quotes option that could misunderstand your user input and therefore change the password itself.

My server had writing permissions and session.save_path changed via php.ini file so problem was hiding somewhere else. The hardcore fix was changing the password from the database:


  2. UPDATE user SET pass = SHA1('your password') WHERE ID = 1;


The Collabtive system uses SHA1 hashing for passes, so I just hashed the pass by myself. So it's working the correct way now. Digg DZone Facebook Google Google Reader Magnolia reddit SlashDot Technorati

BubbleTip – jQuery bubble tooltip


I had to implement a bubble tooltip helper for a client. After a short research I tried the Coda Popup Bubbles.  Useful plugins that worked great for a couple of days, when I set it for a single text field and 2 browsers only. When I decided to integrate it as a platform independent snippet and add it to 10 more textfields, I hit a rock - indents from bubble to the textfield were not consistent, bubble was popping over the textfield etc. Some images were also missing - left and right borders in Firefox and the bottom arrow in Internet Explorer.

I used to hack the Javascript and CSS for 3 days and finally got stuck. I found a workaround working since then - the BubbleTip plugin, which is a modification of the upper one, but acting better in different browsers. Also, it's using an automatic offset which makes it far more useful when you have different text in bubbles. Digg DZone Facebook Google Google Reader Magnolia reddit SlashDot Technorati

Mini SEO book


Yesterday I found a useful guide in Russian that covers most of the useful tips and tricks in SEO optimisation.

The short book could be find here. It's in Russian, but it could be translated via Google Translate with a similar meaning. It covers the important practises as defining title/keywords etc fields, setting alternative texts to links and images, adding images and videos to pages and posts, be careful about density of keywords etc.

Enjoy the resource. :) Digg DZone Facebook Google Google Reader Magnolia reddit SlashDot Technorati

Optika Zornica – google ranking improvement

оптика Зорница

2 months ago I deployed a client project online - Оптика Зорница, for optic services, sunglasses, health consultations etc. It started with no budget for advertisements and I had to do at least basic ranking. What I did was the standard procedure:

  • Chose an appropriate domain name
  • Define title/keywords/descriptions
  • Write valid XHTML/CSS
  • Link it from my personal projects
  • Submit the URL in public search engines and social networks
  • Create a blog and publish information about new products, health advices and other useful data
  • Simulate dynamic activity via rss feeds in the basic site
  • Create Facebook fanpage of the website

I have a couple of other things to do, but I prefer doing them step by step - in order to keep regular activity and watch the continuous improvement. Currently I keep the first 2 places for the Optics name (it already existed in many ranked catalogs) and present on second page on "Оптика" search in Google. Google page rank - 2. Target is first page and blog popularity. Digg DZone Facebook Google Google Reader Magnolia reddit SlashDot Technorati