Sunday, August 19, 2012

Looks familiar...

Where have I seen this?!?


Of course!

Monday, July 30, 2012

LED daytime running lights

My Mitsubishi Eclipse was imported by the previous owner from the US, and was modified to have daytime running lights, but that job was done very badly - a modification was on the high beam circuit and something caused a fuse to melt. I just removed the fuse, as the high beam lamps were still working without it, but I lost DRL.

So to comply with the law and add some cool feature to the car I decided to put LED lights into the fog lamp placeholders - there were no fog lights anyway.

I bought a couple of LED strips on eBay (just $1 a piece):

Cut-off some extra LEDs to make proper sized rings, put them into the sockets, and used zip-ties to keep them in place:

Connected a power wire to the accessories electrical circuit, which turns on with ignition, and here we go:

 Cool, isn't it? :)

Tuesday, July 17, 2012

Ubuntu 12.04 tweaking

I wrote about experiencing a lot of issues with upgrade to Ubuntu 12.04. I survived that, but had to do a bunch of tweaking to make the system usable, and it's still not ideal yet. :(

Below is a brief list of my tweaks and some useful links.

First, a very helpful article about configuring Unity:

My Launcher changes:
- Run CompizConfig Settings Manager
- Reduce the Launcher icon size
- Backlight Mode -> Backlight Toggles

Customize workspace layout:
- Run CompizConfig Settings Manager
- Open General -> General Options -> Desktop Size
- Modify Horizontal & Vertical Virtual Size
- Run gconf-editor
- Open apps/compiz-1/general/screen0/options
- Change hsize/vsize

Disable workspace switcher animation:
- Run CompizConfig Settings Manager.
- Desktop -> Desktop Wall -> Viewport Switching: set Wall Sliding Duration to 0

Add task bar:
Solution 1: Use tint2
- The problem with tint2 is it does not work properly with workspaces - it shows all running applications on the task bar

Solution 2: Use GNOME panel
- Run gnome-panel - it will display normal GNOME top and bottom panels
- Use Super+Alt+Right-Click on the top panel, select "Delete This Panel"
- The bottom panel seem to work fine as a task bar
- Customization:
- cp /usr/share/themes/Ambiance/gtk-3.0/apps/gnome-panel.css ~/.config/gtk-3.0/gtk.css

Pidgin icon is hidden:
It is under the Envelope icon

Configure time:

Grub: Save the last selected system for the next boot:
- Open /etc/default/grub:
- Change "GRUB_DEFAULT=0" to "GRUB_DEFAULT=saved"

More links:

Sunday, July 1, 2012

Quick and easy notepad/memopad for Android: New apMemo

New version of apMemo notepad for Android is released!

apMemo 2.0 New Features:
  • New! Graphic and text notes together on one page;
  • New! Background can be changed without clearing the note;
  • New! Textured backgrounds;
  • New! Resizable widgets;
  • New! Support for Honeycomb and Ice Cream Sandwich (Android versions 3 and 4);
  • New! Long-press actions for the toolbar buttons;
  • New! Other improvements and stability fixes;

Existing features have been improved as well:
  • Easy visual selection of pen size, color, and background;
  • Quick and simple reminder time selection;
  • Note thumbnails view;
  • Share notes via Facebook, Twitter, GMail, Dropbox and other supporting applications;
  • Export note to a file.

apMemo is the simplest and fastest way to create quick handwritten or text notes with reminders!

Sunday, June 17, 2012

Happy Father's Day!

Got a package in the mail today! :)

Thursday, June 14, 2012

Work as usual...

No, it's not a flea market. :)

Tuesday, May 29, 2012

HTC One S phone tweaking

I mentioned before that though I liked my new phone, there were some annoyances with it, mostly related to software. The major ones: a lot of bloatware pre-installed by T-Mobile, and the absence of a hardware menu button. I also noticed that multi-tasking worked some strange way on this model. Almost every time when I opened a page in the browser, then switched to some other app, then returned back to the browser, it reloaded the page like if the process was killed, then restarted. Apparently it's a common issue for all the HTC One phones. HTC have gone too far in their efforts to improve the battery life - they kill the background applications too aggressively.

So I did some research and prepared to fix all the problems at once. Below are the steps I followed.


Step 1: Unlock the bootloader
Warning #1: This procedure may void your warranty!
Warning #2: During this procedure the phone will be reset to the factory state, so backup all your data!

You have to register at, and follow the procedure described there. Download their fastboot utility, use it do get your device identification code, submit that, and HTC emails you the unlock code, which needs to be flashed to the device.

Step 2: Flash recovery ROM
Download ClockworkMod recovery (get the Superuser application there as well - it's under the Download ROMs link). Reboot the phone into FastBoot mode by holding the Volume-Down button while switching it on. Connect to USB and use the following command to flash the recovery ROM:
fastboot flash recovery recovery-clockwork-

More details about flashing, working with ROMs and other hacking stuff could be found at It's an excellent resource with a lot of useful information, which helps to get maximum from your phone.

Step 2a: Make a backup
Reboot the phone to FastBoot mode again. Select the Recovery menu item using Volume-Up/Down and Power buttons. When in the Recovery mode, select Backup/Restore and make a Nandroid backup just in case.

Step 3: Root the phone
Reboot the phone normally, connect it as USB storage, copy the Superuser su*.zip file there. Reboot to recovery mode, flash the file using "install zip from sdcard" menu, and reboot again. The phone is now rooted!

Step 4: Fix the menu button
Download the file from this post at XDA-developers and flash it the same way in Recovery mode. The thread has some details on what exactly is done by flashing that file. There are different versions of the mod for different versions of the phones. The one above is specifically for the T-Mobile version as mentioned in the post. The change assigns the menu action to the Task Switcher button, and the task switching action to the long-press on the Home button as was on the older phones. It works beautifully!

Step 5: Removing the bloatware
There are options how to do this, but all of them require root access - that's why we needed the Superuser utility. A good way is to use Titanium Backup, which allows to backup an app before uninstalling it - just so it could be restored later if required. The list of the apps, which are not really needed is discussed here. I removed 24 applications! That's how much useless junk was there. And that's not counting those I kept just in case (may get rid of them later).

Step 6: Fix the multitasking issue
Apparently the parameters, which control the behavior of the system task manager, are editable (with root access of course), and their tweaking might help. Install MinFreeManager from Google Play. Here is a good article on the subject. The idea is to let the background applications run, do not kill them. Looks like that reducing the numbers in that utility from default values, especially for the Hidden App, helps the applications stay in memory longer, so switching back to them can be done without their restarting and reloading. I noticed a great improvement, though I guess removing of the useless junk, which took memory, helped here as well.

* * *

Now after doing all this, and reinstalling my usual set of applications, I see about twice more of the available memory (normal idle numbers were around 130-140MB, now they are up to 250-280MB and even more). Everything seems to be working as it should, the phone not only looks great, but now works well too. I am happy! :)

Sunday, May 27, 2012

Making a micro-SIM card

My new phone requires a micro-SIM card, which is a problem, as Wind Mobile does not provide such format yet, so I have a standard size "mini" SIM. A good thing is the micro-SIM uses the same chip with the same contacts as the normal SIM, so it is possible just to cut a micro-card out of the regular one. There are many instructions online with illustrations and videos how to do that.

Well, I had to use the new phone somehow, so I didn't have much choice. Found a good illustration with exact dimensions - it seemed easy to do. So for a test object I found an old Rogers SIM card, which I didn't need anymore, got good scissors, did the measurements, and just cut the card.

The new card could fit into the phone, and it did not complain.

So, I got my working Wind SIM card, and again measured it. I was afraid its bigger chip would be too big, but it looked exactly the right size! A couple minutes later I got a home-made micro-SIM card:

Put it into the phone, and ta-da! It worked!

So it is confirmed: you can actually make a micro-SIM card from a regular SIM without any special tools! You just need a ruler, regular scissors, and a pair of straight hands.

HTC One S Android phone

My birthday was last month, and it was about time to upgrade my Nexus S phone, so I decided to get myself a new more interesting and modern phone as a birthday present. While researching what was available on the market, compatible with AWS/UMTS used by my provider Wind Mobile, I found that T-Mobile USA was about to release a UMTS version of HTC One S. I noticed the new HTC One series some time ago. It reminded me the Nexus One - my first Android phone, which I liked more than the Nexus S, and I was looking for something similar. I really liked the design of the One S - so thin and stylish. Unfortunately the One series was not compatible with Wind at that time. But T-Mobile version should be compatible, as they use the same band! So it was decided, that was my next phone.

I checked, they were already receiving orders for the T-Mobile version of One S, and I ordered it. After more than a week of  waiting, they were still not in stock, so I decided to get it from eBay, as by that time these phones started appearing there. I won an auction where the seller promised to unlock the phone, waited another week, contacted the seller a couple times, and finally he admitted that he could not unlock the phone after several attempts to get the unlock code from different places. I had to buy the phone from another seller - the description said, it's already unlocked. In reality the seller was "ready to unlock it", but again the unlock code was not easy to get. Luckily he finally managed to unlock it, and in several days the package with the phone arrived!

It is really thin - only 7.8mm! Nexus S compared to it is so fat! :) It turned out though that such a thin shape, especially made out of slick aluminum, is a bit difficult to hold. And it's especially difficult to take from the desk surface - it's like a sheet of paper, which you need sometimes to move to the edge of the desk to pick up. :) But I can live with that - I still like the form factor and the design. The phone is more solid and better looking than all those plasticky Galaxies from Samsung. HTC still can do it! I liked their devices since the iPAQs - they always had nice design and were solidly built. And their modern phones are even better!

There are some annoyances on the software side though. As usual T-Mobile put a lot of bloatware, which I had to disable. I also don't like this new approach for the latest Android versions to get rid of the dedicated menu hardware button. Unlike Galaxy Nexus, which draws the buttons right on the screen, so can accommodate a small menu button on the side when needed, the HTC One has regular hardware sensor buttons, and because there is no menu button, and no place where to put it, in the old applications, which are not yet ported to Android 4.0, the button appears on a special black stripe at the bottom of the screen:

This is far from ideal of course, as it takes so much space just for one button! It definitely needs to be fixed, and I am planning to root the phone soon to do it. It's possible on One X to turn the task-switch button (which I rarely use) into the menu, and I guess it should be the same for One S as well. I was planning to root it anyway to remove that useless T-Mobile junk, so will fix this too.

Other than that I like the phone: it's nice and fast; the screen is good, even though it's "just" qHD resolution (960x540); it has a good camera and excellent sound. And did I mention the form-factor and design? ;)

Saturday, May 26, 2012

Surviving upgrade to Ubuntu 12.04

I installed Ubuntu 11.10 as a second system on my new PC some time ago, but never had time to fix all the issues with it. One of them was a problem with Logitech wireless USB headset, which was just not working for some reason. Updates and some tweaks did not help, so yesterday I decided to upgrade to the latest Ubuntu 12.04.

What a huge mistake!!!

I was using GNOME desktop - never could get used to the new Unity UI - it was just too limited. After the upgrade my GNOME session was completely broken! The display resolution dropped to default. The two monitors configuration was lost switching to the mirrored option. Windows did not have borders and title bars, they could not be moved or resized, which was especially annoying when I tried to change screen resolution and desktop configuration - I just could not get to the option I needed, as it was out of the screen! Any change to the UI settings (like an attempt to add more workspaces) broke something. A couple times I got an empty desktop without any controls - I could not even log off or restart the system properly! The keyboard shortcuts did not work - in such an empty desktop situation I could not start the terminal. It was a disaster! The system became absolutely unusable!

Luckily I could at least start a browser and access Internet. With help from Google I could fix some issues. The key was to start CompizConfig Settings Manager, which I already had installed - most of the problems with UI are due to the disabled settings there. I enabled Window Decorations in the Effects section; Move Window, Resize Window, and Application Switcher in the Window Management. After that I could at least use the UI. Apparently fixing keyboard shortcuts was not that easy though, as in 12.04 they are handled some special way, and in the GNOME desktop they are simply broken. There were other things still not working properly, so I had to bite the bullet and switch to the standard Unity UI.

Unfortunately this did not fix all the issues. Keyboard shortcuts with the Windows (Super) key did not work, changing those in System Settings - Keyboard - Shortcuts did not have any effect. Looks like the Super key is assigned to Unity, and cannot be used for anything else! Pressing Super+1..9 starts the corresponding shortcut from the launcher, and this overrides any other assignments. I was always using Super+1..4 to switch between the workspaces, and just could not live without it, so had to make it work somehow. Apparently the only way to change that is to completely remove the Super key assignment from the Unity. It can be done in the CompizConfig Settings Manager: Desktop - Unity - Key to show the launcher. After that some shortcuts with the Super key start working - now I can switch between the workspaces, but some keys are still lost. Super+E, which I used to open the Home folder, is still not working. Well, have to use Ctrl+Alt+E for now until I find the solution.

Another annoying thing, which I found, was the mouse sticking at the edge of the monitor when it's moving from one display to another. Luckily it's just an option. Open System Settings - Displays, and turn off the Sticky edges. Another option there, which one might want to change too, is the Launcher placement. I didn't want it to show on both monitors, and thanks to Ubuntu developers, this is customizable.

Well, these are just the first steps with the "latest and greatest" Ubuntu. I'm sure I will find more changes in the system, which break my usual workflow, but at least now it is more or less usable. Oh, and my wireless headset is now working! I have not yet tried the other sound devices though. :)

Tuesday, April 17, 2012

Using IntelliJ IDEA for Android development

Eclipse is a default IDE for Android development. But personally I have always hated it since the first try. Its UI is very obscure and unobvious. There are really annoying things, like Android Logcat log displayed not as a text, but in a grid, which is difficult to view and copy from; the Logcat window itself being always on top when detached; inability to open two files with the same name from different folders. There are at least five different search commands (three of which open the same Search dialog), but there is no simple "Find Word at Caret" function, which I use a lot. Some other functionality I am used to after many years of work with Visual Studio is missing as well, like quick simple bookmarks, which could be added or navigated to with just one key press.

A while ago I was recommended to try IntelliJ IDEA, and liked it much more! Its developers at JetBrains definitely kept good IDEs in mind while creating their IDEA.

Originally Android development in IntelliJ IDEA was supported via a 3rd-party plugin, then it was included into the Ultimate Edition, but in the latest versions it comes with the Community Edition as well.

The only problem when you are using IntelliJ for Android development is the initial setup for the IDE itself, and for each new project. Every time I start using it on a new system, I spend some time trying to figure out, which bits and pieces have to be configured. Finally I've decided to write this post, so that next time when I'll need it, I'll use this information myself. :)

Here's a brief list of configuration options to set. I am not providing step-by-step instructions at the moment - may do this later, now just trying to document what I've just done, while I still remember it.

Prerequisites: Java SDK (you need v1.6 for Android development) and Android SDK are already downloaded and installed on your machine.

All the options are in the Project Structure dialog, which opens through the main File menu.

Platform Settings section - SDKs:
- Add JSDK: select where Java SDK is located on your system;
- Add Android SDK: browse for the android-sdk-xxx folder, choose it, then when prompted select the JDK first, then the Android target platform;

Project Settings - Project:
- Check the Project SDK - it should have the selected Android platform.

Project Settings - Modules:
- Add Android module by clicking the [+] button on the toolbar;
- Press OK to apply the changes (just Apply does not work for some reason).

Project Settings - Facets:
- Make sure there is Android facet for your module.

If you have several modules, set the proper dependencies in the Modules section.

You'll also need to add Run/Debug configuration. It is done using Run - Edit Configurations menu command. Just click the [+] button on the toolbar in that dialog, select Android Application, type the name for it, select the module to run, and set other parameters if needed.

You are all set!

Monday, March 26, 2012

T-shirts review

Our T-shirts were officially reviewed by the Best-TShirts-Ever.

One more link to our web site! :)

Monday, March 12, 2012

It's Monday

There is a proverb in Russian: "Monday is a hard day". Today I experienced it in full extent.

Monday is a garbage pickup day in our area. We put all garbage and recyclable stuff in the cans, bags and boxes, and leave that at the curb. Last night was really windy. When I got up in the morning and looked to the street I was surprised to find that all our garbage bins and box were gone! I had a bad feeling when went outside to check that, and I had a reason. The garbage bin cover was on someone's front-yard on another side of the street. The used plastic bottles, containers, cardboard boxes were all over the cul-de-sac. The wind was moving all that and other stuff around. It looked creepy - like some ghost town in the horror movies. So I spent my morning gathering all that. Found some of our garbage even on someone's backyard!

But that was only beginning.

On the way to work I realized that I forgot my pass, so had to return to get it. When I came to downtown I found that my parking spot was taken, so I had to call a parking manager to clarify where I could park.

I hoped the problems should be over after three bad things happened, but I was wrong.
After a while my MacBook Pro crashed and did not want to reboot. Several attempts to reanimate it only resulted in the disk check utility saying the hard disk failed, and could not be recovered.

That was the last straw! Now I am afraid to drive home - really thinking about taking a bus. :\

Monday, March 5, 2012

How to clean your keyboard... using a dishwasher!

Last week I was complaining about the MacBook keyboard. I needed a full keyboard to be able to work, so I asked our IT guys, if there were any external keyboards available, and they pointed me at a cabinet, which had a bunch of old keyboards. OMG! Those keyboards were so dirty, I didn't want even touch them! And it's not just the keys, which were never cleaned. Apparently Apple hardware design is not always that well thought out. Who came up with such a shape, where the outer keyboard body is some kind of an open tray, with the keys inside? Dirt, bread crumbs, hairs, and any small pieces fall down into this tray and stay there between and under the keys and internal keyboard part. And because the tray is transparent, all that dirty stuff is very well visible, which doesn't help.

Well, those were the only keyboards available, so I took one, which at least looked a bit newer under that layer of dirt.

I used to wash a keyboard before, but it was quite time consuming, as I disassembled the keyboard, removed the internal electronic components, washed only the plastic shell with keys, and re-assembled everything back. It looked even more difficult with this Apple keyboard, starting with the screws, which required a small hex screwdriver, and the keys, which construction looked different.

I searched on the Internet and found quite many mentions of the keyboards cleaned in a dishwasher. This sounded like a plan! The keyboard was so dirty and looked so old and abused, that I thought, even if it would die in the process, not many people would regret. On Saturday morning I removed all the clean dishes from our dishwasher, prepared the keyboard by wrapping the cable around and connecting it to one of the USB ports (just so the cable doesn't dangle, and covers at least one USB port), put the keyboard into dishwasher with the keys down, and started a quick wash cycle without any detergent, using just hot water, and with air dry only, without sanitizing (I guess the heated air could melt the plastic).

When the wash cycle was completed, I removed the keyboard, which was full of water, but looked clean. I put it near the heater, not too close so just warm dry air comes to it, and let the keyboard dry over the weekend.

Then was the moment of truth. I connected the washed and dried keyboard to a computer, and it worked! Tested all the keys - no problem at all, and it looks like new!

Friday, March 2, 2012

Using Mac

Recently I changed the job, and at my new work place I've got a MacBook Pro.

Working on a Mac might be quite difficult for someone who was using PCs for 20 years. The Mac OS X UI is not bad, some things are familiar to me after being on Linux for the last couple of years. But one thing on a Mac is very annoying - it's the keyboard, especially on a MacBook.

Using this keyboard for me is like tiptoeing on a mine field. One wrong step and you're dead! Well, it's not really that fatal, but only because there is usually an Undo command available.

The worst thing is the absence of the separate Home/End/PgUp/PgDn keys on a laptop keyboard, so you need to use directional arrow keys with Fn, Control, Option or Command modificators. It is just impossible! Especially because the behavior is inconsistent in different applications.

I've already learned to use the Command key instead of Control, but those arrow keys with modificators drive me crazy! I desperately need a full keyboard!