Developers, Developers, Developers! Maksim Sorokin IT Blog


Maven for Eclipse — a new book from PACKT

Maven for Eclipse -- another interesting book from PACKT on widely used technologies.

The book focuses on integrating Maven with Eclipse, so these two monsters not only can play well together, but also can give your development speed an additional boost. I find this book as a good start for starting Java developers, who need to have additional support on setting up their development environment.

The book starts of by presenting Maven and basic integration with Eclipse using m2eclipse. Afterwords the authors discuss project creation and manipulation following building and running. Then multi-module aspects of Maven projects are discussed. In the final chapters of the book advanced topics on m2eclipse plugin are presented.


Awesome Photographic Film Scanner for Android

CodeUnited create the fastest mobile photographic film scanner for Android. Check it out on Google Play.


Kulturarv — augmented reality application for Android

Check out our latest application Kulturarv -- augmented reality application for Anroid:


We won hack4dk hackathon!

Kostas and Max from CodeUnited has just won hack4dk hackathon 2012 "hack your heritage" ( with augmented reality application on Android for Kulturstyrelsen!


Photo Hack Day in Berlin — We Won

Kostas and Max won the competition on the Photo Hack Day in Berlin ( We developed a fast and easy application for film scanning. Stay tuned -- we release a public version soon!


CodeUnited Goes Hacking!

Max and Kostas are attending Photo Hack Day in Berlin. Hope to see a lot of nice people and have fun!

Check out for our updated website version!


Exif4Film — tool for photographers

Check out my latest project "Exif4Film". It is dedicated for film photographers to record EXIF data on scanned images:


JBoss AS 7 Startup Time

Impressed by JBoss AS7 book from PACKT, I decided to try out JBoss AS7 release.

The first thing I noticed is the startup time. JBoss AS7 book author claims it is fast to start due to the new modular architecture. I can see on his screenshot, that it is about 5 seconds (on my netbook it is 11 seconds). However, I personally do not consider it "that fast". Certainly, something like GlassFish would take longer.


JBoss AS7 Book: Configuration, Deployment, and Administration

I have finally had a change to read the JBoss AS7 Book from PACKT. I have to admit, that this is very helpful book both for a developer and system administrator. It can be used both to grab an idea about JBoss AS 7 features and capabilities, as well as use it as a reference for JBoss AS7 configuration and management.

The book is divided into several chapter. The first ones deals with general things: installation and basic configuration. The following ones deal with configuration for Java EE. The remaining chapter discuss quite advanced topics, such as clustering, load-balancing and cloud computing.

What I especially in this book, that each chapter, or even each separate small part can be used separately without reading previous pages. The author also makes some useful comments and practical remarks. Additionally, the book contains many configuration examples.


Drupal 7 Views — Collapsible Grouping Field

The idea for this solution was stolen somewhere from Drupal forums (cannot find the link now) and combined with this post.

1. Go to the edit page of the view
2. Click Advanced
3. Click Theme: Information
4. In the new window choose "Style output"
5. Copy the appeared code into new file "views-view-table.tpl.php".
6. Edit this new file. Add something like this (take a look onto highlighted lines):

 * @file views-view-table.tpl.php
 * Template to display a view as a table.
 * - $title : The title of this group of rows.  May be empty.
 * - $header: An array of header labels keyed by field id.
 * - $header_classes: An array of header classes keyed by field id.
 * - $fields: An array of CSS IDs to use for each field id.
 * - $classes: A class or classes to apply to the table, based on settings.
 * - $row_classes: An array of classes to apply to each row, indexed by row
 *   number. This matches the index in $rows.
 * - $rows: An array of row items. Each row is an array of content.
 *   $rows are keyed by row number, fields within rows are keyed by field ID.
 * - $field_classes: An array of classes to apply to each field, indexed by
 *   field id, then row number. This matches the index in $rows.
 * @ingroup views_templates

<?php drupal_add_js('misc/form.js'); ?>
<?php drupal_add_js('misc/collapse.js'); ?>

<fieldset class="collapsible collapsed">
  <legend><span class="fieldset-legend"><?php if (!empty($title)) : ?><?php print $title; ?><?php endif; ?></span></legend>
<div class="fieldset-wrapper">

<table <?php if ($classes) { print 'class="'. $classes . '" '; } ?><?php print $attributes; ?>>
      <?php foreach ($header as $field => $label): ?>
        <th <?php if ($header_classes[$field]) { print 'class="'. $header_classes[$field] . '" '; } ?>>
          <?php print $label; ?>
      <?php endforeach; ?>
    <?php foreach ($rows as $row_count => $row): ?>
      <tr class="<?php print implode(' ', $row_classes[$row_count]); ?>">
        <?php foreach ($row as $field => $content): ?>
          <td <?php if ($field_classes[$field][$row_count]) { print 'class="'. $field_classes[$field][$row_count] . '" '; } ?><?php print drupal_attributes($field_attributes[$field][$row_count]); ?>>
            <?php print $content; ?>
        <?php endforeach; ?>
    <?php endforeach; ?>



7. Save the file
8. Copy the file to the "templates" folder of the theme.