Saturday, January 3rd, 2009...2:13 pm

Your Setup and Efficiency

Jump to Comments

I’m always keen on discovering and using tools that help to boost efficiency and get more fun. That’s why it’s very important to learn and type as fast as you phisically can, that’s why you need to learn vim emacs and use their hot-keys. Coding and typing routines shouldn’t interfere with your thinking, designing and problem-solving process.

I found another example of efficiency - it’s layout of your work place.


Yes, this pic looks really cool, just like in the movie about hackers. But look closely and read FAQs, and you will find origins, keys and efficient solutions:

1 Comment

  • Really amazing office! In my childhood I dreamed about 2 pc’s and 1 laptop, connected with LAN. 2 years ago after reading Joel Spolsky article I’ve put 2nd display at my office.
    And what’s the next? … Linux desktop with mega intellectual bash completion, voice recognition and stereo glasses instead of displays :)

Friday, December 12th, 2008...8:54 am

Adobe Alchemy - running C++ code in the browser

Adobe keeps playing with alternative approaches in the lab. Just meet their Alchemy project

Brief overview:

Alchemy is primarily intended to be used with C/C++ libraries that have few operating system dependencies. Ideally suited for computation-intensive use cases, such as audio/video transcoding, data manipulation, XML parsing, cryptographic functions or physics simulation, performance can be considerably faster than ActionScript 3.0…

Thursday, November 27th, 2008...12:49 pm

Technical Background of EMC’s Atmos Cloud Storage

Jump to Comments

Surprisingly I found an in-depth background available for undustrial cloude storage project - EMC’s Atmos.

Previously it was OceanStore project and EMC provided funding for the research few years ago.

So, here you are, The OceanStore Project

1 Comment

Tuesday, November 25th, 2008...6:56 am

Pondering Over The Next Big Thing

The Next Big Thing will come soon. It’s not here yet but it’s close.

Let’s consider symptoms:

– it was growing number of Web 1.0 users who read the web. Also there was small group of content authors who published stuff. Actually these numbers constantly keep growing even now. Less developed countries keep joining a club.

Web 2.0 has come. Readers got new skills and started content contribution. This happen due to such services as YouTube, Flickr and others. Basic idea is moving “off-line activties” to online ones: it started with searching for information in Google instead of regular library and shopping on eBay instead of regular stores. It countinued with photo and video sharing, one map usage, shopping, etc. Everything around you is moving and becomes virtual.

This era is a time of CONTENT. It brings content online. Also it brings your content from your desktop -> online, always available and portable one.

Those Web 2.0 providers are cool who managed move some kind of my content on-line and made it useful. Flash video perfecly works for video assets, and it’s quety easy to implement pattern “publish once, read as much as you want”. Basically we don’t edit videos on our desks. Images too.

Google and other competitors try hard to move documents online, but they are not there yet.

Guys from are on the right track, but they don’t swim against stream and also use “publish once…” model. So, let’s wait for appropriate tool for docs, maybe Adobe with the help of Flash will give it to us. Btw, as time shows Flash(Silverlight?) is a good technology to use to move some stuff from desktop machine - online. Our computers become thin clients as the time goes.

Content can be moved online also from our cells, not only desks. QIK is an example. They let you translate video stream from your cell directly to web site. They keep your archive of translated videos.

Interesting, what determins a nature of these transformations? Basically it’s technology, you can say. It’s a broad topic. I think I’ll write a separate post on it.

The Next Big Thing era .

Yeah, you can start enumerate a number of already existing services proving that I’m wrong and we already have it.

Basically I would, If I would wrote its name in low case. So, let’s talk about It.

One of remarkable pioneers here is Facebook. Why is it so successful? Yeah, it’s not a chemistry and there is no exact formula for that. Initially, it was an equation with man unknowns, the matter of time and place.

But it all began with The Model. Yeah, the idea was defined by students. Recommend for everyone to google it and read. But look how it works:

The first step is to make connections and create a skeleton. Then, you can grow a meat. It’s very interesting point here, but let’s make a short break and talk about sharing services. Btw, how many dozens of sharing <put you label here> services are present in our world? How many of them have you ever used? Hum…not that match.

- But why?

- Basically, because I’m doing my stuff using H software on Y OS, and to share a file with collegue I need to go to our corporate portal, but when I’m at home….

Yeah, we need to understand the cause that makes people share stuff and why they pick one tool or another.

The following leads to it:

* personal activities: here they use their address book or contact list and tools around close enough to *send* information to recepient.

* work activities: business processes. Toolset is usually complex, you don’t like your corporate app as it is old, ugly and slow, yeah, that’s why you prefer using emails.

In both cases you look at your contacts, pick a necessary one, and send info to recipient. That’s it. So, Facebook is your contact list, that doesn’t make sense without your friends sharing vacation photos and other stuff. You can share anything, it’s a matter of external application available.

Truly, they did a great job in gathering user base and now you don’t need to hold a long list of passwords to different sites and frequently use “remind me passw.” link anymore.

But the clear model was first - just get in touch with our class-mates, collegues, etc.

So, the idea is not new - The Next Big Thing will be Web OS. When all your data online, all services online,all your friends online, and you need portable devices and unlimited bandwidth to use it.The revolution is comming, we already can see Amazon, Microsoft and Google holding their weapons not so far.

22 October 2008 | 11:56

Multi-Dimensional Analog Literals in C++

funny one -

Tuesday, April 1st, 2008 at 9:00 am.

Some Details of Flickr DB Architecture

Here is the article that describes how Flickr uses MySQL for its needs.

Wednesday, March 12th, 2008 at 4:17 am.

Poster of Http Headers Flow

Discovered a nice poster here

Http Headers Flow

February 24th, 2008

Inside MySQL

Majority of us knows that databases are read-optimized products and most of them are not optimized for writes.

In this post I would like to describe what’s going on under the hood of mysql that can help us to find origins of some well-known rules.

So, let’s start with MySQL MyIsam table:

- MyIsam tables caches only key data structures in memory and let OS caching mechanism to cope with data. Truly, particularly Linux is good at it at some point(Also MyIsam has read-ahead buffer for data). So, if insert/update query updates key data structure, MyIsam will flush key data on the disk. It slows down a whole process. To avoid this you can tweak mysql’s configuration to delay key writes.

- MyIsam comes with a very simple locking mechanism - it’s its table-level locking. So, when user writes data, another one won’t be able to read any row till the end of transaction. Okay, you can say, if insert time is relatively short, we can wait. So, let us see how MyIsam inserts record into a table: Firstly, it scans a table area and tries to find previously deleted row and re-use its room. If no deleted row was found, it appends data to the end of the table. So, if the space is not as important as execution time, you can speed it up telling database to append data to the end of table immediately and disable scans.

For the bulk data management, it’s good to create a table without indices first and import data. Once the import process is finished you can create indices. If you need to append large amount of data to production machine, you can do hot replacement: prepare such table and send signal to application to use another table instead of old one(the type of signal depends on your application architecture: IPC, record in database with polling on application side,etc)

February 12th, 2008

Web-based Grid Computing

The article at codeproject describes framework that uses client-side Silverpoint CLR to implement web-based volunteer grid computing. The idea’s interesting.

Taking into account dramatic grouth of AJAX popularity and its adoption by a community, the paradigm shift towards grid-computing-in-the-browser is quite possible.

February 12th, 2008

Yahoo! launches 4,000 processor supercomputer availble for researchers

It’s a cool platform for distributed computing and research.

Just check out the numbers:

approximately 4,000 processors, three terabytes of memory, 1.5 petabytes of disks, peak performance of more than 27 trillion calculations per second (27 teraflop).


February 12th, 2008

Machine Architecture: Things Your Programming Language Never Told You (by Herb Sutter)

On September 19, 2007 Heb Sutter did a presentation on a subject at MS.

Snippet from description:

High-level languages insulate the programmer from the machine. That�s a wonderful thing — except when it obscures the answers to the fundamental questions of �What does the program do?� and �How much does it cost?�

The C++/C#/Java programmer is less insulated than most, and still we find that programmers are consistently surprised at what simple code actually does and how expensive it can be — not because of any complexity of a language, but because of being unaware of the complexity of the machine on which the program actually runs.

This talk examines the �real meanings� and �true costs� of the code we write…

Video of the presentation at google video:

You can download presentation here

February 12th, 2008

Desktop Cube on Ubuntu Gutsy

Almost everyone posted news on Ubuntu Gutsy. New enhanced desktop, flash support in firefox and etc.
I decided to give it a try, and… spent a lot of time playing with cube, visual effects and so on. Yeah, it’s fancy but eventually I’ll switch it off and get back to work ;). IMHO the most useful thing is native nvidia-glx out-of-the-box support and wireless networking(the same restricted drivers as on 7.04). I didn’t try it on 7.04 since I had handmade kernel and drivers
to try this tasy thing you need to install config utility first:

apt-get install compizconfig-settings-manager

See nice demo on youtube

you can also read this detailed tutorial Rotate the cube
or press
CTRL + ALT + drag LEFT-mouse pointer on the taskbar or desktop surface.

Task switcher
I like the “Ring Switch” plugin a lot. It’s under the “Window Management” category (see picture_10e).
Usage: Super + TAB to activate ring task switcher. I believe that the Super key is also called Window key. The ordinary task switcher is still ALT + TAB.
Task overview
Usage: Move the mouse pointer sharply beyond upper, right corner of the screen.
I usually make a rapid mouse movement towards (and slightly beyond) the upper, right corner of screen.

Flat desktop overview
Move from desktop to desktop by pressing ARROW LEFT / RIGHT.
Change opacity / transparency of a window
Usage: ALT + roll the MOUSE WHEEL on the window’s title bar.
I usually point at the titlebar and roll with the middle mouse button (which is a wheel button).
My keyboard has also a wheel button which works similarly.

Maginify (zoom)
Usage: Super key + roll the
MOUSE WHEEL on a window or desktop.
Again, in my case the mouse wheel is the middle mouse button.
Window preview on the taskbar
If you want to see a small window preview in the taskbar, select the “Window Previews” option under “Extras” category in ccsm. See

Move a window (actually this is an ordinary GNOME thing)
Press ALT + drag LEFT mouse button on the window (eg. middle of the window) to move it.

Some fancy effects with basic elements; fire and water !
Start the ccsm and browse to “Effects” category.
Activate eg. the “Cube Gears”, “Water Effects” and “Paint fire on the screen” effects.

“Cube Gears” is visible inside when you rotate the cube. The cube must be partly transparent (ref. step 10d).

“Water Effects” starts and stops by pressing SHIFT + F9 keys.

February 12th, 2008

Full-Text Search in MySql and the Minimum Indexed Word Length

MySql comes with extremely useful feature full-text search. The minor thing that bored me was the minimum word length that mysql can index to. It was 4 letters by default on my machine.

To change the value to desired one you need to:

  1. set ft_min_word_len variable up in my.ini file
  2. restart mysql
  3. ensure that the change was applied:

    SHOW VARIABLES LIKE ‘ft_min_word_len’

  4. rebuild table indices:

    ALTER TABLE Abc DROP INDEX `word_ind`, ADD FULLTEXT INDEX `word_ind`(`word`);

Detailed instructions could be found here -

February 12th, 2008

To Realize…


To realize the value of ONE YEAR,
ask a student who failed a grade

To realize the value of ONE MONTH,
ask a mother who gave birth to a premature baby.

To realize the value of ONE WEEK,
ask the editor of a weekly newspaper.

To realize the value of ONE HOUR,
ask the lovers who are waiting to meet

To realize the value of ONE MINUTE,
ask a person who missed the train

To realize the value of ONE SECOND,
ask a person who just avoided an accident

To realize the value of ONE MILLISECOND,
ask the person who won a silver medal in the Olympics