We have an open position for a full-stack web-developer in our team to work on challenging RWD and multiplatform HTML5 projects bringing the awesomeness of Crytek games to the Web Follow the link
Drastic performance optimization in CommonJS Compiler by github.com/igor-bezkrovny. Time for: npm update Follow the link
Apparently social networking is the banner of the nowadays web. Everybody intends bringing some features into his projects. Some of them require immediate notification. That is getting common, if you open a page with upcoming messages (status feed, notification subsystem, friends-list), you expected them being updated as soon as a new message (status, notification, friend-making action) arrives. As you well know, original web design allowed only one-way client-server communication (one requests, another one responds), though now HTML5 working group doing their best to fix it or rather to patch it. However, the web-projects are still using long-polling trick to emulate server-client communication.
Well, now new web browser versions appear every few months. Besides they update automatically. Thus a huge number of users have the latest browser versions, which support HTML 5 communication APIs. Is that the time to put long-polling away? Let’s find out.
I anticipate Google to swallow Review Services market using G+. I hate the idea of somebody having total control on everything, but when I buy a product (any product), I see number of variations from different producers. I want to read some reviews, to see some ratings on products and their producers before picking one. That’s natural. Where to get those? On the site of producer/seller? Oh, please! I would rather not trust them entirely. Well, I could try to search on www.consumersearch.com or try www.epinions.com, though I would hardly find many of the products sold in Germany and the reviews by the locals. I’ll tell you what, I’m going to end up extracting reviews on public forums and likely giving up after hours spent in vain. However, I can use Google Products (www.google.com/products) and find everything in the place. I may even make a photo of the product right on the shelf of the store and try googling by the picture.
Google Plus was world-wide announced and my friend circles started to grow, popping up newly engaged members. Apparently after all those probing attempts Google has managed to present a live social platform. I have never understood Google Orkut aims, though it gave, seems, user profile management for whole the network of Google services. Google Buzz was a promising step, but obviously not thought out good enough. Just a Twitter-like wall by itself is not something worth switching to when you have all the friends on Facebook for instance. Google Wave was a huge concept, maybe revolutionary one. But it is too innovational for the wide audience. I would not be surprised to find it resurrected in a few years. Now we get G+ and here my first impressions.
Enabling your videos for iPhone Safari doesn’t seem as a big deal. You know it supports HTML5 . Besides, you don’t even need to write event handlers and produce a skin by yourself, but only take a ready JS component. Apparently videojs.com is getting close to be the most popular one. Though, I personally like mediaelementjs.com. It is very simple to use any of them. The only difficulty is to get your videos converted to h.264, Theora Ogg and WebM. When two last ones are meant for desktop browsers Chrome/Opera/Firefox/EI9, the first is for mobile devices. And here we go, using a converter (e.g. E.M. Video Converter) we are getting .mp4 which looks pretty ok on iPad, but iPhone refuses even to try playing.
Working with Drupal for half of year and constantly tuning it for better maintainability, code consistency I came to the idea – Drupal is going to be a toy, a pretty popular but only toy, unless they decide to rewrite everything from the scratch. Studying Drupal 7 I find the CMS wasn’t really refactored. They dramatically improved administrator panel, included CCK/ImageCache into the core, added file handlers and Unit-test framework. However it’s still a mess of coding styles and approaches. You can enter any module folder and you’ll find bunch files with no concern separation. View components, business logic, helpers, domain entities – all can be met in the same file. I understand that laying strict requirements on modules would affect the army of contributors. But anyway with Drupal 7 all the modules must be rewritten. Maybe the committee just can’t agree on a structuring strategy. As for me, it must be like that.
I’ve already described an approach of using MVC in Drupal . It wasn’t bad for the beginning I hope. Though in real life you face requirements which hardly can be fulfilled with such a simplicity. In, more or less, complex application you ain’t going to be satisfied by the only controller (page controller) to serve the whole bunch of components presented on the page. So, let’s assume we have a page full of components and each of them can behave differently. It means we need controllers and views for them. Reminds of Java portlets, doesn’t it? Such components are often referred as modules in IA, but I don’t dare to call them so in this context to avoid any confusion because of Drupal modules. So, let’s go with widgets.
Let’s assume you have installed phpBB3 to run forums on the web-project you are working on. The forum system was re-skinned and your project manager, seems, is pretty happy for the first. But later he requests some changes, e.g. to prevent users from sending emails to each other within the board. This one is easy; you can disable it globally via ACP. However, the project manager wants only registered users not be able sending emails, when administrators and global moderators are still able to do it. Again, it is not a problem, because phpBB3 provides permissions roles which can be assigned to user groups. So, you go to ACP and create and a new role, e.g. ProjectX Registered User Features, based on existing one (All Features). Now you can set false ‘Can send e-mails’ option of Misc tab in User permissions panel and apply this role for all the registered users. Everything is fine so far, but only until the project manager requests something like ‘user search form in UCP has to be removed for unprivileged users’. You cannot find this feature in role options. We need custom option for user roles.
If you ought to build a new site and don’t have time to develop a CMS, you’ll likely take an open source solution. And likely it will be Joomla or Drupal. They seem as most popular. Actually they are similar in many ways. Both provide basic content management frameworks, extensible through plug-ins and customizable via themes. Both focused on block-designed sites which can be often built without any programming at all, just using downloaded theme and configurable set of extensions. So it’s personal what to choose. I prefer Drupal. Its component model seems clearer to me. The documentation is much more explicit then Joomla’s and gallery of ready-to-use modules is really impressive.
If you work with Zend Framework, you likely tried ZF Console (Zend_Tool on command line). But have you tried to extend it? Why? To have common interface for all your Cli-scripts related to ZF-base project. How do you find the idea to program Cli-scripts in MVC? Zend Framework provides us with the tool to do it.
Project X at Crytek GmbH. No details till the project is launched (NDA's signed)
Age of Web 2.0
Size of my contribution: information architecture analyze on early stages, technical design (UML, documentation), PHP (on Zend Framework) and JS (on YUI3) project component development.
POZZZY is social system to aggregate entertainment, which has features of social news system (Digg.com), collective blog (Slashdot.org) and social bookmark system (del.icio.us). Pozzzy is an OpenID server/consumer, supports MicroID, Pavatar, hCard, XFN and FOAF.
Size of my contribution: idea, projection, programming
Age of XML Sapiens
XML Sapiens is an XML-based language used for describing of web-application data, presentation and functionality composition.
XML Sapiens allows to prepare a set of data structure declarations, content field type set, functionality and use all of them within site designing. Reusing of those components reduces costs of web-development and lets to avoid low-level programming.
Size of my contribution: idea, projection, specification developing
Site Sapiens is an enterprise content management system including web content management system (WCMS), web-application development environment, web-integration platform.
Web 2.0 Technological Foundation: AJAX, RIA, SOA
Leading program methodologies: AOSD/AOP, XML Sapiens, TDD, Replicating DB Architecture
Site Sapiens has been chosen as CMS for projects of Russia, Belarus, Ukraine markets such companies as The Coca Cola Company, Renault, Elle, Mars.
Size of my contribution: idea, projection, programming (everyting except AJAX-framework and XML Sapiens processor program code. Since version Site Sapiens 3.1 I left the project and it is deleloping without me).
SAPID CMF is a framework for rapid creation of content-based application of Web 2.0 generation. SAPID CMF allows to organize effectively process of new application development, data, structures, representation and functionality
components reusing, rich user interfaces creation.
Size of my contribution: idea, projection, programming
SAPID CMS - is a freeware tool for site creation and management. SAPID is distinguished through the comfortable Ajax-based site structure management interface and high flexibility of design, content and functionality integration.
SAPID does not need DB (file-flat CMS). SAPID is inline CMS. It means that site documents are editable in a way "what you see is what you get", a document in delivery phase looks same as in administrative phase.
Size of my contribution: idea, my share of projection and developing ~ 50%, promotion, cretion of sapid-club.com, special editions SAPID SHOP, SAPID Gallery, SAPID Personal Site).
Internet Auction Web Services API
The solution contains class library, which realize web services on server side, load balancing engine, samples of interaction with web services on client side, documentation (Web Services API Guide, 60 pages) and presentation.
Size of my contribution: library programming, documenting
Age of MySITE
MySITE - is the first full-function information space control system in Belarusian Internet. MySITE allows web-systems construction, management, scaling and change. MySITE does not require special knowledge for administration area user interface management. The system includes additional modules for management of a electronic catalogue, reports on attendance, advertising management, forums system management, interrogations and posting management.
Size of my contribution: idea, projection, programming
In year 2000 STC ATLAS (at that time a part of SoftLine Group) developed the following projects under my supervision: a web-site of Central commission of elections and referenda of the Republic of Belarus -"Elections 2000";Informational analytical server of Administrative office of the President of the Republic of Belarus.
In summer 2001 I had been offered to develop an electronic publications system MyPRESS.
It is a universal program complex which includes all basic functions of content control systems and allows creating and leading periodic WEB based editions. Sites management system MySITE has been created on MyPRESS basis in autumn.
This bookmarklet provides a controllable overlay with an image of page graphical design over top of the developed HTML. In fact it is similar to the well-know Pixel Perfect Firefox extension, which doesn't work properly with last Firefox builds for a while.
Page navigation using touch gestures on mobile devices
Usually we hide all auxiliary page components on mobile to save space of the viewing area. So we have to provide in return alternative navigation tool out of the screen. Since keyboard with navigation keys isn't available, we can use touch gestures.
The plugin turns your markup into a slide-show with a set of fancy configurable transition effects. The plugin tries to render the effects with CSS3 transitions. However if the browser does not support CSS3, the same effects will be achieved by JS.
Every available effect is encapsulated into a separate module. One can remove redundant effect modules from jquery.t-effects and leave the only code responding to his requirements.
That is a jquery plugin, which emulates HTML5 Form behavior on old browsers.The plugin also allows to customize form submission validation tooltips and field validation callbacks (e.g. via XMLHttpRequest).
Currently the plugins serves following input types: text, email, url, number, tel and following input properties: novalidate, placeholder, required, autofocus, pattern, min, max
Either you likely provide already sharing buttons to you blog posts or not, you may be interested in this light-weight solution. Why? Because it’s fancy, it takes very little space on your page and it is so easy to attach.
Have you ever noticed Google+ has an amazing feature called Google Feedback. You click on feedback highlight an area of the site page and getting screenshot with your marking on it sent to the Google support team. If you wonder of having this tool on your own, just take my code and adapt for your requirements.
I'm passionate about software product quality, particularly code architecture.
I have a strong belief that regardless of a programming language developer needs
a framework primarily for a consistent abstraction and the framework must not replace the language, but guide
Scss/Compass styles following SMACSS conventions, semantically meaningful HTML and
Software architecture, domain driven design
HTML5 + CSS3
Continuous Integration and Deployment
Test-driven development / BDD
An accomplished web developer specializing in Object-Oriented Design and Analysis with extensive experience in the full life cycle of the software development process.
Information Architecture: including metadata standards, classification schemes, knowledge of representation
CRYTEK GmbH(senior web developer)Frankfurt am Main, Germany
PHP5.x, remote APIs such as Google, Facebook, Twitter, Gamespy, automated building with ANT/Grunt, CI-server Jenkins
Designed and built Site Sapiens ECMP. Took part in development of more than half of hundred web-sites.
2007 - initiated and developed POZZZY startup. It was a social system to aggregate entertainment, which had features of social news system (Digg.com), collective blog (Slashdot.org) and social bookmark system (del.icio.us).
2006 - designed and built Site Sapiens 3.0 ECMP
2005 - PHP Programming Innovation Award October 2005 Winner of PHP Classes
2005 - created once popular Open Source CMS SAPID (sapid.sf.net)
2004 - wrote the specification of language XML Sapiens for CMS developers
2003 - designed enterprise information area management platform Site Sapiens
since 2003 - Senior web developer at Red Graphic Systems company
Developed a few dozens of web-project including some Intranet/Internet portals of Administrative office of the President of the Republic of Belarus. Initiated, designed and developed the first known CMS in Belarus - MySite
2002 - deputy head of Stc. Atlas studio
2001 created site management system MySITE
2001 created electronic publications system MyPRESS
2000 – 2001 - head of web-development InternetService studio
My duties included development of small business applications based on Clarion RDBMS. Created an interactive GUI extension (mouse control, pseudo-graphic) for Clarion using C /Assembler and applied to develop.
1993 – 1994 - programmer at BelarusRezinoTechnika joint-stock company (http://www.aobrt.by/en/)
1989, 90 – twice winner of All-Union contest for programming innovations and Soviet Union schoolboy conference member. Winner of the All-Union Lenin’s grant.
Speaker at the international congress PHPconf’2005
Speaker at Internet-forums by’99, by’00, by’01, by’02, by’03, by’04
Speaker at the international e-commerce congress etp'2001
Participant in broadcasts programs on the Belorussian TV and national radio as an Internet-technology expert