Your CMS can do more, even generate mobile app!

Submitted by vadim on Wed, 11/28/2012 - 00:18

Hey guys!

I would like to share with you my session that I have performed on multiple events: DrupalCon Munich 2012, UA Mobile 2012, Drupal Camp Kyiv 2012, Drupal Camp Lviv 2012, Drupal Cafe Donetsk #1.

Here is a video from DrupalCon Munich 2012 (English, with Fabian):

Infographics: good software design

Submitted by vadim on Sat, 09/15/2012 - 16:21
I think this infographics will be very helpful to the Drupal developers who want to have more contributions of modules and patches to drupal.org and have their projects done faster.

It is on Pinterest too: http://pinterest.com/pin/240661173808850601/.

Boosted LAMP for Drupal devs

Submitted by vadim on Wed, 07/11/2012 - 16:05

In one on my previous posts I wrote how to configure Drupal development environment in Ubuntu, in this post I am going to talk about performance on your localhost (PAE, APC and MySQL tuning). There is also another blog post about Tuning Drupal Performance for production which is a bit different thing.

My old laptop was broken last days so I quickly found a cheap replacement, which had a bit different insides: two AMD cores VS four Intell i3 cores and 4GB vs 3GB. I decided to try Linux Mint, which is said is better then Ubuntu. IMO for LAMP stack the name of the Linux distribution is not so important, because they are all working good now :) But you should decide which version of one to chose: 32 bit or 64 bit. In this post I found out that 64 bit Linux is better for development, but it could be not good enough for some applications, which could fail running on 64 bit Linux.

Memory utilization for 32 bit Linux

I decided to chose 32 bit version of Mint. But the first thing I noticed was 2.6GB of RAM was only available. That looked very weird and that was one of disadvantage of 32 bit system. When I was running full LAMP stack + IDE + Skype I saw almost almost all memory was used and some disk space were taken for swap. Fortunately good people wrote Physical Address Extension (PAE) which could be installed with the following command:

$ sudo apt-get install linux-generic-pae linux-headers-generic-pae

That worked good and then System Monitor showed 3.5 GB of RAM. Still not 4, but it could be a unit conversion issue. I am glad that swap is not being used and system is working faster now.

Configuring Alternative PHP Cache

A bit later I cloned a big project and I saw how hardly my machine was trying to handle requests, which used to slow down the system. So the way out was to install APC. Alternative PHP Cache is a free, open source framework that optimizes PHP intermediate code and caches data and compiled code from the PHP bytecode compiler in shared memory. In Mint or Ubuntu it could be installed with following command:

Building iOS/Android mobile app using Backbone.JS, jQUeryMobile and HTML

Submitted by vadim on Sat, 05/26/2012 - 21:37

There are interesting researches made by Cisco and Ericsson that predicts incredible mobile traffic increase during next few years and a share of it will reach a share of PCs traffic by 2016.

Nowadays almost any major website has a mobile version or responsive/adaptive design that helps to view website on any device. These approaches are quite different, but they work good for content display only. What if you desire to build a rich HTML5 and JavaScript application which interacts with a server and renders pages using theme similar to iPhone or Android one? What kind of technology stack would you use for that?

In this blog post I will answer on the questions above and demonstrate you simple mobile web application that allows to view and save textual posts. There is a Python backend, that stores information in the MongoDB and communicates with a front end using REST approach. Front end is built with the Backbone.js and jQueryMobile.

Below are screenshots of the application (click to view big image in a new window):

Speed up Drupal development with Search Krumo module

Submitted by vadim on Tue, 02/28/2012 - 11:38

How often do you use dpm() function from Devel module? I guess, you are using it often, when you writing your own PHP code.

If you have ever printed a view object using dpm() function, you might know how difficult is to find anything in such big and recursive accordion.

I would like to show you one of the must-to-use module, called Search Krumo, which allows you to find a text in a Krumo accordion, printed by dpm() function.

After you entered the text to find, you can select, which Krumo object to use, and click the Submit button. Then you will get Krumo expanded with a highlighted text entries.

Session about Open Source inspired attendees of the DrupalForum ZP

Submitted by vadim on Sun, 02/19/2012 - 16:35

I held two sessions there. First one was about making Drupal distribution and second one was named "Open Source and You", which was presented by Yuriy Gerasimov and me together. We got much positive feedback right after this session, so I am pleased to show you the slides and hope it will help you to make first steps in the Open Source.

DrupalCamp Donetsk 2011 was a great success!

Submitted by vadim on Mon, 12/05/2011 - 14:49

On 25-27th of November in Donetsk (Ukraine) there was DrupalCamp, an international event related to the content management system Drupal. The event gathered more the 170 people from Ukraine, Russia and Belarus. Venues of the DrupalCamp were conference-halls of Shachtar Plaza и Ramada hotels. While the conference there were 20 sessions, 5 BoFs, code-sprint and a party. Elloria rock band performed some Drupal songs, rock covers and their own themes. Slides and videos from the event will appear on the DrupalCamp website soon: http://donetsk.drupal.ua/.

Groups in Twitter

Submitted by vadim on Sat, 07/23/2011 - 19:23

There is no secret that in Facebook we have very useful feature to post messages in a group. And so many interesting discussions have been started there. But many of us often use Twitter, and would like to have same functionality there.

The solution is really simple.

Group

  • Group is an twitter account.
  • User can follow group or add it into a list.

Entry into a group

  • To add new user into a group, group should follow that user.
  • Group can automatically follow back people who follow it.

Improving DHT reliability

Submitted by vadim on Fri, 06/17/2011 - 19:07

In this post I am going to make a few notes about how reliability of Distributed Hash Table (DHT) can be improved. Distributed Hash Table is a decentralized peer-to-peer system that provides lookup service in the similar way how regular hash table does. One of the popular implementation of DHT is file sharing used in BitTorrent Protocol, it allows to download files without use of the tracker.

DHT Implementation

Let's take a quick look on how DHT Pastry works. All other DHT tables have similar implementation with a few differences. The main concepts are:

  • Each data object has a unique identifier (key) which is calculated as hash of it's content.
  • All keys belongs to 160 bit circular key space.
  • Files are stored on a multiples nodes (equal PCs).
  • Each node have random unique identifier in the same key space.
  • Data object is stored on the working node which id is closest to the data object key. Special routing function is used to find such node.
  • Once data object has been pushed it could not be deleted from the DHT.
  • Replica function transforms key to another key, that could be used to store copy of data object.

DrupalCamp Kyiv 2011 rocks the Drupal scene!

Submitted by vadim on Mon, 06/06/2011 - 13:46

I was very excited about attending DrupalCamp Kyiv 2011. It was awesomeness and the most fantastic Drupal event that I have ever visited in Eastern Europe. It had the same Drupal spirit as one was on DrupalCon Copenhagen 2010. Most of the slides were in English. Interesting sessions were performed by guys who worked in Belgium company Inuits, which was sponsoring students to attend this event.

I was visiting sessions about Services, MongoDB, Git, Varnish, participated in the small talk with Yuri Gerasimov about future of Menu Token module and performed two sessions. First one was about Best practices for cross-browser compatibility of Drupal website, which I prepared for DrupalCon Chicago 2011 and the second one was about OpenAcaDept – Drupal distribution for building academic departmental websites.

I was very happy to meet and to drink beer with some well known guys in Ukrainian community. They had made great contributions to d.o and at that time were seating in front of each other and having fun. I also liked talking to Michel and Safeen from MadCap.