Stickers

  • Nov 05 An advanced SASS mixin for media queries. Follow the link
  • Nov 03 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
  • Sep 17 Drastic performance optimization in CommonJS Compiler by github.com/igor-bezkrovny. Time for: npm update Follow the link
WebSockets vs Server-Sent Events vs Long-polling

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.


Review services getting consolidated

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.

But in real life it’s not all so nice.

G+ at first glance or Google bringing Web 3.0

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.

HTML5 Video on iPhone

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.

Drupal – nice ideas and bad coding

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.

ECMAScript 5 and JS frameworks

Standards are being always approved with a slow pace. Though, the features declared in drafts usually find their implementation long before the standard release. Let’s take for an instance Websockets, which were already implemented in Chrome/Safari and Firefox 4b when standard unexpectedly changed. Apparently YUI3 and jQuery have implemented for long time the features, which are only coming up with ECMAScript 5 (the implementations is called JavaScript 1.8.5) spread.

Extending MVC on Drupal

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.

phpBB3 customization driven by configurable feature list

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.

Building a site on Drupal using MVC

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.


MVC on command line

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.