tag:blogger.com,1999:blog-3113995712549619132024-02-20T17:03:17.970-08:00Alex's CornerTechnology, computers, gadgets, and more...Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.comBlogger30125tag:blogger.com,1999:blog-311399571254961913.post-37264764809857488342018-01-22T13:09:00.000-08:002018-01-22T13:10:35.185-08:00Motorcycles Safety Facts<a href="https://1.bp.blogspot.com/-DSvANFL_50Y/WmZSb6VMk4I/AAAAAAABx14/y40Dzglel8k9ywWFrLEbCsfemfRp6qh8wCLcBGAs/s1600/Yamaha.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1600" height="320" src="https://1.bp.blogspot.com/-DSvANFL_50Y/WmZSb6VMk4I/AAAAAAABx14/y40Dzglel8k9ywWFrLEbCsfemfRp6qh8wCLcBGAs/s320/Yamaha.jpg" width="320" /> </a>Per registered vehicle, the fatality rate for motorcyclists in 2015 was 6 times the fatality rate for passenger car occupants, as shown in Table 2. The injury rate for motorcyclists (1,028) was slightly lower than the injury rate for passenger car occupants (1,035). Per vehicle mile traveled in 2015, motorcyclist fatalities occurred nearly 29 times more frequently than passenger car occupant fatalities in motor vehicle traffic crashes, and motorcyclists were nearly 5 times more likely to be injured.<br />
<br />
In 2015, 33% of all motorcycle riders involved in fatal crashes were speeding, compared to 19% for passenger car drivers.<br />
<br />
27% of motorcycle riders involved in fatal crashes in 2015 were riding without valid motorcycle licenses at the time of the collisions, while only 13% of passenger vehicle drivers in fatal crashes did not have valid licenses.<br />
<br />
Motorcycle riders involved in fatal crashes were 1.3 times more likely than passenger car drivers to have previous license suspensions or revocations (20.6% and 16.2%, respectively).<br />
<br />
In 2015, there were 4,684 motorcycle riders killed in motor vehicle traffic crashes. Of those, 1,285 (27%) were alcohol-impaired (BAC of .08 g/dL or higher). In addition, there were 337 (7%) fatally injured motorcycle riders who had lower alcohol levels (BACs of .01 to .07 g/dL).<br />
<br />
The reported helmet use rate for alcohol-impaired motorcycle riders killed in traffic crashes was 51% as compared to 65% for those with no alcohol.<br />
<br />
Helmet are estimated to be 37-percent effective in preventing fatal injuries to motorcycle riders and 41% for motorcycle passengers. In other words, for every 100 motorcycle riders killed in crashes while not wearing helmets, 37 of them could have been saved had all 100 worn helmets.<br />
<br />
40% of the 4,976 motorcyclists killed in motor vehicle traffic crashes were not helmeted, based on known helmet use.<br />
<br />
<i>Source: https://crashstats.nhtsa.dot.gov/Api/Public/ViewPublication/812353</i>Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0tag:blogger.com,1999:blog-311399571254961913.post-18123926638610477322018-01-05T15:30:00.001-08:002018-01-22T13:10:04.964-08:00Meltdown CPU security vulnerability<div class="separator" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: center;">
<img border="0" data-original-height="599" data-original-width="309" height="200" src="https://4.bp.blogspot.com/-7ojvOBOnYuc/WlAEQyLbsKI/AAAAAAABxKs/NDkCFonILU8-AEMVYxPVpfTOOk282zIuQCLcBGAs/s200/Meltdown.png" width="102" /> </div>
<br />
Meltdown vulnerability explained in 5 simple steps:<br />
<ol>
<li>Try to read a byte from protected memory. It will fail, but the CPU will still get that value, just will not return it to us.</li>
<li>Try to use that byte value as an index in our own array of 256 elements. This operation will fail as well, but as the CPU "knows" the inaccessible value, it will actually use it, will read the corresponding array element and put it into the internal cache.</li>
<li>Go through all 256 elements of our array in a loop trying to read them, and measure how long each reading operation takes.</li>
<li>The element, which was already accessed based on the "mystery" value, is already in the CPU cache, so it will be read dozens times faster, than the others.</li>
<li>The index of that "fast" element is the value, which we tried, but were not allowed to read from protected memory. Now we know it!</li>
</ol>
Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0tag:blogger.com,1999:blog-311399571254961913.post-35625062713891400822014-09-15T22:46:00.000-07:002015-10-25T22:51:38.463-07:00SuperchargerYes!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://farm3.staticflickr.com/2944/15161680367_7c14d61b2b_o.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://farm3.staticflickr.com/2944/15161680367_7c14d61b2b_o.jpg" width="640" /></a></div>
<br />
<br />
<a href="https://flic.kr/s/aHsk3zGdds" target="_blank">More - here...</a>Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0tag:blogger.com,1999:blog-311399571254961913.post-21686801850415803212013-11-11T23:07:00.000-08:002013-11-11T23:07:10.922-08:00Why Apple will eventually die...<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-L2fWG1enBmc/UoHF9MYPQII/AAAAAAAAIHo/_zZzG0cX550/s1600/apple_tombstone.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="310" src="http://2.bp.blogspot.com/-L2fWG1enBmc/UoHF9MYPQII/AAAAAAAAIHo/_zZzG0cX550/s320/apple_tombstone.png" width="320" /></a></div>
It all started from my simple need to install a test application on an iPod. I usually work with Android, but from time to time use my daughter's iPod Touch for testing purposes.<br />
<br />
The test application I needed to use required iOS 6, while our iPod had 5.1. Fine - we've been planning to upgrade the iOS on this device for a while. But it's a 8GB version, with a bunch of apps installed and some music. The upgrade required 2.7GB of space available, and this small iPod had less than 1GB free.<br />
<br />
OK, let's clean up some space by copying that stuff to a PC. Wait! The old laptop, where we connected this iPod previously, already died, and the new one doesn't even have iTunes installed.<br />
<br />
OK, let's install iTunes - it's "just" 100MB download... Some time later I could finally see the iPod in iTunes. But how could I copy all the music to this computer? Hmm... No obvious way. Maybe Sync? No! iTunes says if I want to sync to this machine it will delete all the music from iPod first. Why?!? Why cannot it just import all the music from my iPod to the library on my PC?!? Well, at least I can do a backup. But what if something will go wrong? I want my daughter's MP3's to be safe, and not in a form of a pile of unknown files with unreadable names (and probably modified from their normal format) in the backup folder.<br />
<br />
Well, Google is our friend. Hmm... Sounds like there is no standard way, but there are some 3rd-party applications, which could help. I used one of them before, found it again - it's named SharePod. It used to be free, but the new version now seems to cost $20. Apparently the old version 3.99 is still freeware, and it still works with our iPod.<br />
<br />
OK, the music is finally copied to the PC. Now, how do I add it to iTunes in case I want to install it back to iPod? I looked and clicked everywhere, but the only thing that I found was to import just one file. I remember for sure I could import a whole folder to the library - I did this a while ago on the old laptop.<br />
<br />
Well, back to Google... Aha! There should be a menu item "Add folder to library". But where is that menu? The one opened with a tiny button on the left did not have this command. Google again... Aha!! You have to press Ctrl+B to show a normal menu bar. And the "Add folder" command is there! But why?!? Why is it only in that hidden menu, and not in the regular menu, which is at least possible to find?!?<br />
<br />
Now, when the device backup was running, iTunes requested to authorize this computer to work with this iPod. OK, if it's required, I did that. But I didn't like that it said there are already 3 authorized computers out of allowed 5. Yes, there was that old laptop, and probably even older PC, which I don't even remember. How could I deauthorize those old machines? Google... Aha, there is an article on support.apple.com. What?!? It says <i>"Remember to deauthorize your computer before you sell it, give it away, or get your computer serviced"</i>. You gotta be kidding! What if my computer unexpectedly died? I could not simply delete it from the list?!? Apparently not. Well, there is a way to fix this in case I used all the authorization quota. I can deauthorize all computers associated with my Apple ID. Isn't that nice? What if I had a couple of normal computers, which I want to keep authorized, and deauthorize only one old and dead machine? Forget it! Only none or all! But wait, there is one more interesting detail. You may use this deauthorization feature only once per year! That's right! I hope I won't need it soon, but again - why?!? Why don't I have any control neither on my music, nor my device, and even computer?!?<br />
<br />
Apple-users, how are you still able to survive and even enjoy your life in such a hostile environment with ridiculous limits and procedures everywhere, and absolutely unusable iTunes?!? I cannot understand, why Apple is still alive!<br />
<br />
PS. I do not even start talking about the development process with Apple products. I don't want to hear the words "provisioning" and "Xcode" again!<br />
<br />Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com2tag:blogger.com,1999:blog-311399571254961913.post-3648756711116148482012-08-19T22:18:00.000-07:002012-08-19T22:18:04.774-07:00Looks familiar...<br />
<span id="goog_1060434005"></span><span id="goog_1060434006"></span>Where have I seen this?!?<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.facebook.com/media/set/?set=a.264361286939109.65155.147994755242430&type=3" target="_blank"><img border="0" src="http://4.bp.blogspot.com/-rucTBpUXTVw/UDHGVLqgi1I/AAAAAAAAGjg/6vmSHhh3_bk/s1600/drag.jpg" /></a></div>
<br />
...<br />
<br />
Of course!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-9jwqnLTw_b0/UDHGW-0NNgI/AAAAAAAAGjo/HvVzIn-ReiQ/s1600/engine.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="http://4.bp.blogspot.com/-9jwqnLTw_b0/UDHGW-0NNgI/AAAAAAAAGjo/HvVzIn-ReiQ/s640/engine.jpg" width="640" /></a></div>
<br />
Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0tag:blogger.com,1999:blog-311399571254961913.post-51674988782137727552012-07-30T23:41:00.000-07:002012-07-31T12:35:58.114-07:00LED daytime running lightsMy 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.<br />
<br />
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.<br />
<br />
I bought a couple of LED strips on eBay (just $1 a piece):<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-CX3ZH5unh5c/UBdzsS_qwlI/AAAAAAAAGh8/oOe69XC1gVw/s1600/LED_3339.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="427" src="http://1.bp.blogspot.com/-CX3ZH5unh5c/UBdzsS_qwlI/AAAAAAAAGh8/oOe69XC1gVw/s640/LED_3339.jpg" width="640" /></a></div>
<br />
Cut-off some extra LEDs to make proper sized rings, put them into the sockets, and used zip-ties to keep them in place:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-JNnH9xoTSCE/UBd1_aL1JuI/AAAAAAAAGiE/EorvNpAkaWA/s1600/LED_3341.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="426" src="http://3.bp.blogspot.com/-JNnH9xoTSCE/UBd1_aL1JuI/AAAAAAAAGiE/EorvNpAkaWA/s640/LED_3341.jpg" width="640" /></a></div>
<br />
Connected a power wire to the accessories electrical circuit, which turns on with ignition, and here we go: <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-cRNT2Fpnkpk/UBd5FasSszI/AAAAAAAAGiw/9lXkEgDNiv8/s1600/LED_3433.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="406" src="http://2.bp.blogspot.com/-cRNT2Fpnkpk/UBd5FasSszI/AAAAAAAAGiw/9lXkEgDNiv8/s640/LED_3433.jpg" width="640" /></a><a href="http://1.bp.blogspot.com/-Hpll4M2KUA0/UBd5FFheuMI/AAAAAAAAGio/X2_udDxMppA/s1600/LED_3344.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="422" src="http://1.bp.blogspot.com/-Hpll4M2KUA0/UBd5FFheuMI/AAAAAAAAGio/X2_udDxMppA/s640/LED_3344.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
Cool, isn't it? :)<br />
<br />Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com1tag:blogger.com,1999:blog-311399571254961913.post-91708559208974376232012-07-17T17:31:00.000-07:002012-07-30T23:42:15.729-07:00Ubuntu 12.04 tweaking<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-Fhilsy6uD5Y/T8G4fcIu93I/AAAAAAAAGbY/ELaRgVKNxBw/s1600/Ubuntu.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-Fhilsy6uD5Y/T8G4fcIu93I/AAAAAAAAGbY/ELaRgVKNxBw/s1600/Ubuntu.png" /></a></div>
<br />
I wrote about experiencing a lot of issues with <a href="http://blog.pakhotin.com/2012/05/surviving-upgrade-to-ubuntu-1204.html">upgrade to Ubuntu 12.04</a>. I survived that, but had to do a bunch of tweaking to make the system usable, and it's still not ideal yet. :(<br />
<br />
Below is a brief list of my tweaks and some useful links.<br />
<br />
First, a very helpful article about configuring Unity:
<br />
<a href="http://askubuntu.com/questions/29553/how-can-i-configure-unity">http://askubuntu.com/questions/29553/how-can-i-configure-unity</a><br />
<br />
My Launcher changes:<br />
- Run CompizConfig Settings Manager <br />
- Reduce the Launcher icon size<br />
- Backlight Mode -> Backlight Toggles <br />
<br />
Customize workspace layout:<br />
- Run CompizConfig Settings Manager<br />
- Open General -> General Options -> Desktop Size<br />
- Modify Horizontal & Vertical Virtual Size<br />
or<br />
- Run gconf-editor<br />
- Open apps/compiz-1/general/screen0/options <br />
- Change hsize/vsize<br />
<br />
Disable workspace switcher animation:<br />
- Run CompizConfig Settings Manager.<br />
- Desktop -> Desktop Wall -> Viewport Switching: set Wall Sliding Duration to 0<br />
<br />
Add task bar:<br />
Solution 1: Use tint2 <br />
- <a href="http://linuxandfriends.com/2011/10/29/how-to-add-a-taskbar-in-ubuntu-11-10/">http://linuxandfriends.com/2011/10/29/how-to-add-a-taskbar-in-ubuntu-11-10/</a><br />
- The problem with tint2 is it does not work properly with workspaces - it shows all running applications on the task bar <br />
<br />
Solution 2: Use GNOME panel<br />
- Run gnome-panel - it will display normal GNOME top and bottom panels<br />
- Use Super+Alt+Right-Click on the top panel, select "Delete This Panel"<br />
- The bottom panel seem to work fine as a task bar<br />
- Customization: http://askubuntu.com/questions/69576/how-to-customize-the-gnome-classic-panel<br />
- cp /usr/share/themes/Ambiance/gtk-3.0/apps/gnome-panel.css ~/.config/gtk-3.0/gtk.css <br />
<br />
Pidgin icon is hidden:<br />
It is under the Envelope icon<br />
<a href="http://askubuntu.com/questions/67312/how-do-i-enable-the-pidgin-system-tray-icon">http://askubuntu.com/questions/67312/how-do-i-enable-the-pidgin-system-tray-icon</a><br />
<br />
Configure time:<br />
<a href="http://blog.mattrudge.net/2012/02/11/custom-date-time-format-in-the-unity-tray/">http://blog.mattrudge.net/2012/02/11/custom-date-time-format-in-the-unity-tray/</a><br />
<br />
Grub: Save the last selected system for the next boot:<br />
- Open /etc/default/grub:<br />
- Change "GRUB_DEFAULT=0" to "GRUB_DEFAULT=saved"<br />
- Add "GRUB_SAVEDEFAULT=true"<br />
<br />
<br />
More links:<br />
<a href="http://www.webupd8.org/2011/10/things-to-tweak-after-installing-ubuntu.html">http://www.webupd8.org/2011/10/things-to-tweak-after-installing-ubuntu.html</a><br />
<a href="http://castrojo.tumblr.com/post/4795149014/the-power-users-guide-to-unity">http://castrojo.tumblr.com/post/4795149014/the-power-users-guide-to-unity</a><br />
<a href="http://www.techsupportalert.com/content/ubuntu-tips-and-tricks.htm">http://www.techsupportalert.com/content/ubuntu-tips-and-tricks.htm</a><br />
<a href="http://news.softpedia.com/news/Top-10-Ubuntu-11-04-Unity-Panel-Applets-208034.shtml">http://news.softpedia.com/news/Top-10-Ubuntu-11-04-Unity-Panel-Applets-208034.shtml</a> <br />
<br />Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0tag:blogger.com,1999:blog-311399571254961913.post-15181647362461483392012-07-01T23:10:00.002-07:002012-07-17T18:43:00.341-07:00Quick and easy notepad/memopad for Android: New apMemo<a href="http://4.bp.blogspot.com/-j_2e5WPSUQM/T_DzvChjYeI/AAAAAAAAGhw/NgpuKJd0uSo/s1600/apmemo_draw-write-type.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="400" src="http://4.bp.blogspot.com/-j_2e5WPSUQM/T_DzvChjYeI/AAAAAAAAGhw/NgpuKJd0uSo/s400/apmemo_draw-write-type.png" width="240" /></a>New version of <b>apMemo</b> notepad for Android is <a href="http://www.apsoftsystems.com/apmemo/new.htm">released</a>!<br />
<br />
<b>apMemo 2.0 New Features:</b>
<br />
<ul>
<li><span style="color: red;"><small>New!</small></span> Graphic and text notes together on one page;</li>
<li><span style="color: red;"><small>New!</small></span> Background can be changed without clearing the note;</li>
<li><span style="color: red;"><small>New!</small></span> Textured backgrounds;</li>
<li><span style="color: red;"><small>New!</small></span> Resizable widgets;</li>
<li><span style="color: red;"><small>New!</small></span> Support for Honeycomb and Ice Cream Sandwich (Android versions 3 and 4);</li>
<li><span style="color: red;"><small>New!</small></span> Long-press actions for the toolbar buttons;</li>
<li><span style="color: red;"><small>New!</small></span> Other improvements and stability fixes;</li>
</ul>
<br />
Existing features have been improved as well:
<br />
<ul>
<li>Easy visual selection of pen size, color, and background;</li>
<li>Quick and simple reminder time selection;</li>
<li>Note thumbnails view;</li>
<li>Share notes via Facebook, Twitter, GMail, Dropbox and other supporting applications;</li>
<li>Export note to a file.</li>
</ul>
<br />
<b>apMemo</b> is the simplest and fastest way to create quick handwritten or text notes with reminders!<br />
<br />
<br />
<br />Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0tag:blogger.com,1999:blog-311399571254961913.post-76105681216990225702012-06-17T22:36:00.000-07:002012-06-18T19:42:03.667-07:00Happy Father's Day!<span id="goog_172936124"></span><span id="goog_172936125"></span>Got a package in the mail today! :)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-VI27dRvEhrQ/T9_l7HkVx7I/AAAAAAAAGg8/It8qZf23Kw0/s1600/idad_120617_3159.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="http://3.bp.blogspot.com/-VI27dRvEhrQ/T9_l7HkVx7I/AAAAAAAAGg8/It8qZf23Kw0/s640/idad_120617_3159.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-vx4WPY7SGhY/T9_l8jAd7EI/AAAAAAAAGhE/P_yqlAvtV5Y/s1600/idad_120617_3160.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="http://2.bp.blogspot.com/-vx4WPY7SGhY/T9_l8jAd7EI/AAAAAAAAGhE/P_yqlAvtV5Y/s640/idad_120617_3160.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-4DFqJLoew20/T9_l-RGGluI/AAAAAAAAGhM/Lhv-cW83xCw/s1600/idad_120617_3161.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="http://4.bp.blogspot.com/-4DFqJLoew20/T9_l-RGGluI/AAAAAAAAGhM/Lhv-cW83xCw/s640/idad_120617_3161.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-ltmtGOyp0CE/T9_mAi184AI/AAAAAAAAGhU/Anuj3yFx0Wg/s1600/idad_120617_3165.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="http://4.bp.blogspot.com/-ltmtGOyp0CE/T9_mAi184AI/AAAAAAAAGhU/Anuj3yFx0Wg/s640/idad_120617_3165.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-rrPeN7oqCho/T9_mCjvBxjI/AAAAAAAAGhc/ZWlvVdPkWBc/s1600/idad_120617_3166.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="http://1.bp.blogspot.com/-rrPeN7oqCho/T9_mCjvBxjI/AAAAAAAAGhc/ZWlvVdPkWBc/s640/idad_120617_3166.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-vvj6kU1svMI/T9_mEhAogAI/AAAAAAAAGhk/B3q9Q6QQbxA/s1600/idad_120617_3167.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="http://2.bp.blogspot.com/-vvj6kU1svMI/T9_mEhAogAI/AAAAAAAAGhk/B3q9Q6QQbxA/s640/idad_120617_3167.jpg" width="640" /></a></div>
<br />Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0tag:blogger.com,1999:blog-311399571254961913.post-61856015222289283092012-06-14T20:42:00.001-07:002012-06-18T19:41:27.395-07:00Work as usual...<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-GiNgLFTo_V4/T9qusSNq5OI/AAAAAAAAGes/WMjJ3jdNolQ/s1600/Phones_120614.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="http://4.bp.blogspot.com/-GiNgLFTo_V4/T9qusSNq5OI/AAAAAAAAGes/WMjJ3jdNolQ/s640/Phones_120614.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<span id="goog_171431872"></span><span id="goog_171431873"></span>No, it's not a flea market. :)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-uxa8D1MJXJA/T9udYTJTKFI/AAAAAAAAGgc/WU7HtYZ84ow/s1600/Phones_120615.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="http://2.bp.blogspot.com/-uxa8D1MJXJA/T9udYTJTKFI/AAAAAAAAGgc/WU7HtYZ84ow/s640/Phones_120615.jpg" width="640" /></a></div>
<br />Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0tag:blogger.com,1999:blog-311399571254961913.post-35940541934947318182012-05-29T10:48:00.000-07:002012-05-29T10:49:40.390-07:00HTC One S phone tweaking<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-6beSm1o72bI/T8Rz5CNdTwI/AAAAAAAAGeE/XA4Ixo_nw9Q/s1600/htc-one-s.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="http://3.bp.blogspot.com/-6beSm1o72bI/T8Rz5CNdTwI/AAAAAAAAGeE/XA4Ixo_nw9Q/s320/htc-one-s.jpg" width="235" /></a></div>
I <a href="http://blog.pakhotin.com/2012/05/htc-one-s-android-phone.html">mentioned before</a> 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.<br />
<br />
So I did some research and prepared to fix all the problems at once. Below are the steps I followed.<br />
<br />
DISCLAIMER: I AM NOT RESPONSIBLE FOR ANY DAMAGE YOU MAY DO TO YOUR PHONE FOLLOWING THESE STEPS. DO IT ON YOUR OWN RISK! <br />
<br />
<b>Step 1: Unlock the bootloader</b><br />
Warning #1: This procedure may void your warranty!<br />
Warning #2: During this procedure the phone will be reset to the factory state, so backup all your data!<br />
<br />
You have to register at <a href="http://htcdev.com/">HTCDev.com</a>, and follow the procedure described there. Download their <span style="font-family: "Courier New",Courier,monospace;">fastboot</span> 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. <br />
<br />
<b>Step 2: Flash recovery ROM</b><br />
Download <a href="http://www.clockworkmod.com/rommanager">ClockworkMod recovery</a> (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:<br />
<div style="font-family: "Courier New",Courier,monospace; text-align: center;">
fastboot flash recovery recovery-clockwork-5.8.3.1-ville.img</div>
<br />
More details about flashing, working with ROMs and other hacking stuff could be found at <a href="http://forum.xda-developers.com/">XDA-developers.com</a>. It's an excellent resource with a lot of useful information, which helps to get maximum from your phone.<br />
<br />
<b>Step 2a: Make a backup</b><br />
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.<br />
<br />
<b>Step 3: Root the phone</b><br />
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!<br />
<br />
<b>Step 4: Fix the menu button</b><br />
Download the Menu_Mod.zip file from <a href="http://forum.xda-developers.com/showthread.php?p=26510916#post26510916">this post at XDA-developers</a> and flash it the same way in Recovery mode. The <a href="http://forum.xda-developers.com/showthread.php?t=1626826">thread</a> 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!<br />
<br />
<b>Step 5: Removing the bloatware</b><br />
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 <a href="https://play.google.com/store/apps/details?id=com.keramidas.TitaniumBackup">Titanium Backup</a>, 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 <a href="http://forum.xda-developers.com/showthread.php?t=1623024">here</a>. 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).<br />
<br />
<b>Step 6: Fix the multitasking issue</b><br />
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 <a href="https://play.google.com/store/apps/details?id=com.dustypixels.minfreemanager">MinFreeManager</a> from Google Play. <a href="http://www.androidcentral.com/fine-tuning-minfree-settings-improving-androids-multi-tasking">Here</a> 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.<br />
<br />
<div style="text-align: center;">
* * *</div>
<br />
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! :)<br />
<br />Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0tag:blogger.com,1999:blog-311399571254961913.post-22943556531862419972012-05-27T20:52:00.000-07:002012-07-30T23:43:06.365-07:00Making a micro-SIM card<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-OtvDjs7E6Og/T8LwdbFzhVI/AAAAAAAAGcU/ExW4th4k0B0/s1600/MicroSIM_cut.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="171" src="http://3.bp.blogspot.com/-OtvDjs7E6Og/T8LwdbFzhVI/AAAAAAAAGcU/ExW4th4k0B0/s200/MicroSIM_cut.png" width="200" /></a></div>
My <a href="http://blog.pakhotin.com/2012/05/htc-one-s-android-phone.html">new phone</a> 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.<br />
<br />
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.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-ecWmsq4q47M/T8LyEMx2_EI/AAAAAAAAGck/pXBLmOtCZ3I/s1600/microsim_120519_2055.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="297" src="http://1.bp.blogspot.com/-ecWmsq4q47M/T8LyEMx2_EI/AAAAAAAAGck/pXBLmOtCZ3I/s320/microsim_120519_2055.jpg" width="320" /></a></div>
<br />
The new card could fit into the phone, and it did not complain.<br />
<br />
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:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-7Q3z6uH3nHY/T8Lznoxo3eI/AAAAAAAAGc0/_Ix3zWFpxUc/s1600/microsim_120519_2039.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="561" src="http://3.bp.blogspot.com/-7Q3z6uH3nHY/T8Lznoxo3eI/AAAAAAAAGc0/_Ix3zWFpxUc/s640/microsim_120519_2039.jpg" width="640" /></a></div>
<br />
Put it into the phone, and ta-da! It worked!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-MzHCuFV6z48/T8L0fIvfVGI/AAAAAAAAGdE/SvmpgVobOXY/s1600/HTC-One-S_Wind.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://1.bp.blogspot.com/-MzHCuFV6z48/T8L0fIvfVGI/AAAAAAAAGdE/SvmpgVobOXY/s640/HTC-One-S_Wind.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
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.<br />
<br />Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com8tag:blogger.com,1999:blog-311399571254961913.post-77257002908854881122012-05-27T20:07:00.000-07:002012-05-28T12:20:19.990-07:00HTC One S Android phoneMy 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 <a href="http://htc.t-mobile.com/one/s-4g-phone">UMTS version of HTC One S</a>. 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.<br />
<br />
I checked <a href="http://expansys.ca/">Expansys.ca</a>, 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! <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-Ve_qajsm5qA/T8LgQG-X3oI/AAAAAAAAGbw/Q9Bt3a_qlp8/s1600/HTC-One-S-TMobile.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="369" src="http://1.bp.blogspot.com/-Ve_qajsm5qA/T8LgQG-X3oI/AAAAAAAAGbw/Q9Bt3a_qlp8/s640/HTC-One-S-TMobile.jpg" width="640" /></a></div>
<br />
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!<br />
<br />
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:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-ve4JFeecds4/T8LtnaM7PDI/AAAAAAAAGcI/81xMRKLq6-k/s1600/HTC-One-menu-button.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-ve4JFeecds4/T8LtnaM7PDI/AAAAAAAAGcI/81xMRKLq6-k/s1600/HTC-One-menu-button.png" /></a></div>
<br />
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.<br />
<br />
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? ;)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-dDrSpI2wphU/T8LymjlUmUI/AAAAAAAAGcs/LV-SYJtRLcY/s1600/HTC-One-S_120519.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="http://2.bp.blogspot.com/-dDrSpI2wphU/T8LymjlUmUI/AAAAAAAAGcs/LV-SYJtRLcY/s640/HTC-One-S_120519.jpg" width="414" /></a></div>
<br />
<br />
<br />Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0tag:blogger.com,1999:blog-311399571254961913.post-8640522355520196012012-05-26T22:28:00.000-07:002012-05-26T22:28:15.869-07:00Surviving upgrade to Ubuntu 12.04<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-Fhilsy6uD5Y/T8G4fcIu93I/AAAAAAAAGbY/ELaRgVKNxBw/s1600/Ubuntu.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-Fhilsy6uD5Y/T8G4fcIu93I/AAAAAAAAGbY/ELaRgVKNxBw/s1600/Ubuntu.png" /></a></div>
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.<br />
<br />
What a huge mistake!!!<br />
<br />
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!<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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. :)<br />
<br />
<br />Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0tag:blogger.com,1999:blog-311399571254961913.post-48843124021129559982012-04-17T14:30:00.008-07:002012-05-29T11:41:23.382-07:00Using IntelliJ IDEA for Android development<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-ac9nQdRMqgA/T8UX94td5fI/AAAAAAAAGeU/jXn6rTB_qDI/s1600/IntellijIdea.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="http://4.bp.blogspot.com/-ac9nQdRMqgA/T8UX94td5fI/AAAAAAAAGeU/jXn6rTB_qDI/s200/IntellijIdea.png" width="200" /></a></div>
<a href="http://www.eclipse.org/">Eclipse</a> is a default IDE for <a href="http://developer.android.com/sdk/installing.html">Android development</a>. 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.<br />
<br />
A while ago I was recommended to try <a href="http://www.jetbrains.com/idea/">IntelliJ IDEA</a>, and liked it much more! Its developers at JetBrains definitely kept good IDEs in mind while creating their IDEA.<br />
<br />
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.<br />
<br />
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. :)<br />
<br />
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.<br />
<br />
Prerequisites: Java SDK (you need v1.6 for Android development) and Android SDK are already downloaded and installed on your machine.<br />
<br />
All the options are in the Project Structure dialog, which opens through the main File menu.<br />
<br />
Platform Settings section - SDKs:<br />
- Add JSDK: select where Java SDK is located on your system;<br />
- Add Android SDK: browse for the android-sdk-xxx folder, choose it, then when prompted select the JDK first, then the Android target platform;<br />
<br />
Project Settings - Project:<br />
- Check the Project SDK - it should have the selected Android platform.<br />
<br />
Project Settings - Modules:<br />
- Add Android module by clicking the [+] button on the toolbar;<br />
- Press OK to apply the changes (just Apply does not work for some reason).<br />
<br />
Project Settings - Facets:<br />
- Make sure there is Android facet for your module.<br />
<br />
If you have several modules, set the proper dependencies in the Modules section.<br />
<br />
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.<br />
<br />
You are all set!Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0tag:blogger.com,1999:blog-311399571254961913.post-85331214692855979242012-03-26T19:42:00.002-07:002012-04-16T16:20:37.383-07:00T-shirts review<div class="separator" style="clear: both; text-align: center;"><a href="http://www.excellentshirt.com/index.php?route=product/search&filter_name=Six-pack" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="http://www.excellentshirt.com/image/cache/data/T-Shirts/six_pack_dark_blue_-500x500.jpg" width="200" /></a></div>Our T-shirts were officially reviewed by the <a href="http://www.best-tshirts-ever.com/six-pack-tees-from-excellentshirt">Best-TShirts-Ever</a>.<br />
<br />
One more link to our web site! :)Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0tag:blogger.com,1999:blog-311399571254961913.post-50678844906578990152012-03-12T17:37:00.023-07:002012-03-26T22:52:37.865-07:00It's Monday<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-LVM9is2llx8/T3Efv-YOeTI/AAAAAAAAFao/2Z9PGglt2y4/s1600/Monday.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="240" src="http://1.bp.blogspot.com/-LVM9is2llx8/T3Efv-YOeTI/AAAAAAAAFao/2Z9PGglt2y4/s320/Monday.jpg" width="320" /></a></div>There is a proverb in Russian: "Monday is a hard day". Today I experienced it in full extent.<br />
<br />
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!<br />
<br />
But that was only beginning.<br />
<br />
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.<br />
<br />
I hoped the problems should be over after three bad things happened, but I was wrong.<br />
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.<br />
<br />
That was the last straw! Now I am afraid to drive home - really thinking about taking a bus. :\Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0tag:blogger.com,1999:blog-311399571254961913.post-15867838510747646882012-03-05T23:20:00.017-08:002013-11-11T23:04:54.626-08:00How to clean your keyboard... using a dishwasher!<a href="http://blog.pakhotin.com/2012/03/using-mac.html">Last week</a> 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.<br />
<br />
Well, those were the only keyboards available, so I took one, which at least looked a bit newer under that layer of dirt.<br />
<br />
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.<br />
<br />
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).<br />
<br />
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.<br />
<br />
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!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-GWCOdS96oxs/T3D6X4wfKJI/AAAAAAAAFaQ/kXPzCi5vH6E/s1600/CleanKeyboard.jpg" imageanchor="1"><img border="0" height="300" src="http://1.bp.blogspot.com/-GWCOdS96oxs/T3D6X4wfKJI/AAAAAAAAFaQ/kXPzCi5vH6E/s400/CleanKeyboard.jpg" width="400" /></a></div>
Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0tag:blogger.com,1999:blog-311399571254961913.post-61929245773812261132012-03-02T15:04:00.040-08:002013-11-11T23:04:20.419-08:00Using Mac<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-r1c91eEk3OI/T3EegFZgVzI/AAAAAAAAFac/Ma3qff1cpEA/s1600/MacBookPro.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="213" src="http://4.bp.blogspot.com/-r1c91eEk3OI/T3EegFZgVzI/AAAAAAAAFac/Ma3qff1cpEA/s320/MacBookPro.jpg" width="320" /></a></div>
Recently I changed the job, and at my new work place I've got a MacBook Pro.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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!Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0tag:blogger.com,1999:blog-311399571254961913.post-34477400863844776362011-08-22T19:24:00.000-07:002011-08-24T18:14:27.355-07:00Master password in FennecLast week we finally fixed the master password <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=592772">bug 592772</a>. It had one of the longest history: 130+ comments, and 12 versions of the patch! A funny thing about it is that the final patch is actually almost the same as the very first version, except for some minor tweaks.<br />
<br />
OK, some background. The need for this functionality had arisen when we implemented support for SD card, specifically - moving the user profile to an SD card when application is moved there. It was a wanted feature, because the user profile may grow to tens of megabytes (37MB was mentioned), which is quite a lot for many phones. Mike Beltzner formulated this pretty well in <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=615519#c4">his comment</a>:<br />
<blockquote><i>While I understand that instinct, and further understand that the newer generations of Android phones are not as limited as the Nexus One and its contemporaries in terms of the internal/SD memory split, I can also tell you that as a Nexus One owner, this really does prevent me from using Fennec as intended. My choices are:<br />
- Fennec + Sync and a limited number of other applications<br />
- Fennec w/o Sync and my applications<br />
- No Fennec and my applications<br />
</i></blockquote>The feature, while helping the users to free some internal phone memory, had a big drawback - it made all the user data fully exposed and easily accessible, as the SD card uses FAT file system and doesn't have any protection. So if the card is lost or stolen, someone could get access to all personal information in the Firefox user profile, most importantly - all the stored passwords for the web sites.<br />
<br />
To avoid that the important data had to be encrypted. Desktop Firefox already has such a feature called "master password". The key*.db file in the user profile could be encrypted with the password, so when a web site login data needs to be saved, or Firefox detects it can auto-fill the login information on a site, the user is prompted to enter "the master password for the Software Security Device".<br />
<br />
The original goal of the master password bug 592772 was just to implement the same functionality - basically just have a preference, and prompt the user for a password similar way how it's done on desktop. But a simple prompt had some UX issues. It could come up several times in a row when more than one site requiring access to the password database was open, or in some specific cases, like in the bugs <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=624552">624552</a> and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=624570">624570</a>. So there came up an idea to implement a new feature, later called "auto-password". The idea was pretty simple: use the same internal master password functionality, but do not ask the user to enter the password, but rather generate it automatically, and store in the system, so the data would be protected the same way as on desktop, but without the "UX hell".<br />
<br />
I did some research on the ways how to store the generated password, and implemented a prototype, which used AuthenticationService and an Authenticator - similar way how it is done for all Android applications logging the user in like Gmail, Facebook, etc, but unlike those, stored the password locally rather than on the server. But it wasn't the best way. Apparently the current version of Android does not have any system-wide secured storage, which could be used for our purpose, so the only place to store the password was the internal application data directory. It revealed one more important issue. Our application was marked as debuggable in Android manifest file, to make debugging easier, obviously. But that flag made all application data readable, and accessible by other applications, and through USB connection. This bit was fixed in a separate bug, turning off the debuggable flag in the official builds.<br />
<br />
The unnecessary complexity of the authenticator approach implementation, where all its functionality was not really used, and some minor issues related to it (for example, our authentication service that was used only internally, was visible in the system settings, which we didn't really want) lead to a simplified approach to store the generated password in the application's SharedSettings, which, despite the name, are private to the application, and with debuggable option off, are not accessible by the others. Then there was another modification, with the password stored in a simple file inside the Firefox data directory. This was done to avoid an extra call to Java layer through Android bridge, as the latest implementation was all in the platform code.<br />
<br />
The last approach to the auto-generated master password feature combined the auto-password service and the original UI preference, to allow the security-conscious users still have their own master passwords, which were not stored anywhere on the device. The feature passed the security review, with the comments that it might be useful not only on Android, but on other systems as well, where the generated password could be securely stored in a system key ring. But later during the last code review more concerns were raised by Brian Smith, with an alternative suggestion: instead of implementing a whole new auto-password feature, which would encrypt the passwords database and store the key in internal memory, just keep that passwords database itself in the same internal memory, by splitting the user profile. This was actually discussed before, but it wasn't clear how difficult it would be to implement the profile splitting.<br />
<br />
During another security review, for the whole approach to store user profile data on the SD card, those concerns and possible ways to resolve them were discussed, and the final decision was to drop the auto-password feature, look into the profile splitting possibility, and implement the master password UI, as it was originally planned.<br />
<br />
That was the final implementation submitted, which will be included in the next release: just a master password preference, similar to the one on desktop. The auto-password feature was moved to a separate <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=678412">bug 678412</a>, with a "work-in-progress" patch attached.<br />
Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0tag:blogger.com,1999:blog-311399571254961913.post-4247826615500357092011-08-01T15:38:00.000-07:002011-08-24T18:00:48.619-07:00Mozilla blogI tried to hide from blogging about Mozilla stuff I work on, as I'm a bit shy :), but I guess I have to do it eventually. It is actually useful as a lot of information gets lost, if not recorded anywhere, so a blog should be a good place to keep that.<br />
<br />
I joined Mozilla two years ago, in July 2009, to work on Fennec. There was a plan to make a version for Symbian, and my previous experience with Symbian could help. But the focus at that time was on Windows Mobile, and as I developed for that system as well, I started working on Fennec for WM. We were almost ready for the first release, when Microsoft killed Windows Mobile in favor to the new shiny Windows Phone 7. It turned out that the new version unfortunately was not compatible with the previous ones, as it didn't have an SDK to develop apps in C++ using the underlying Windows CE, like all the previous versions including PocketPC and Windows Mobile. That's when I switched to Android, as it became our main priority.<br />
<br />
From time to time I work on the issues, which require a lot of investigation, and have a lot of questions raised. I will try to post here about those issues to have some coverage on what's happening behind the scenes.<br />
Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0tag:blogger.com,1999:blog-311399571254961913.post-89649003104264180892011-07-30T00:44:00.001-07:002012-04-16T16:21:09.325-07:00Becoming a website admin and designer...We've started a new business - unique T-shirt design!<br />
<br />
My responsibility is obviously - the web site set up, support, and maintenance. It's actually pretty interesting and somewhat new experience for me.<br />
<br />
I didn't want to start anything from scratch, because I knew there were some ready-to-use content management systems. I had a quick look at <a href="http://www.joomla.org/">Joomla</a>, did some research on <a href="http://drupal.org/">Drupal</a>. But they were too powerful and complicated, so I looked for alternatives. It turned out there are quite a lot of specialized e-commerce engines, and many of them are free. I liked the name <a href="http://www.opencart.com/">OpenCart</a>, tried it, and without much hesitation selected it as our platform. It's not too complicated and pretty usable. There are different modules and extensions available, so it was possible to customize it for our purposes.<br />
<br />
The site is now live and working! Check it out: <a href="http://www.excellentshirt.com/">www.excellentshirt.com</a><br />
<br />
Our first and my favorite design:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-JYmTj39mxcI/TlSw1wuwD4I/AAAAAAAAE_0/AAppClf_Y_A/s1600/six-pack_grey-500x500.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://2.bp.blogspot.com/-JYmTj39mxcI/TlSw1wuwD4I/AAAAAAAAE_0/AAppClf_Y_A/s320/six-pack_grey-500x500.jpg" width="320" /></a></div>Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0tag:blogger.com,1999:blog-311399571254961913.post-68003117877654639172011-04-24T10:36:00.000-07:002011-04-25T02:04:53.466-07:00New PC: Video cards swapping - IIYesterday I decided to swap the video cards back.<br /><br />Regardless of the good cooler, the 9800GT was becoming too hot. Apparently there is just not enough air and ventilation - thanks again to Dell motherboard design. The video card is positioned at the very bottom, next to the only PCI slot, so there is less than an inch space between the radiator and the bottom of the main case chamber. The optional fans of the Turbo Module barely fit there, almost touching the wires. Under heavy load the card temperature was over 100°C!<br /><br />So I decided to return the original ATI HD5670 back - it's a bit less powerful, but being newer it uses less power than 9800GT, so runs much cooler. I put the card back thinking I was just returning to the original configuration, but what a mistake! Well, the old PC didn't have any issues - Windows XP just reused the nVidia driver, I just disabled autostart of the Catalyst, which was complaining about the missing ATI card.<br /><br />Windows 7 in the new PC didn't have problems either - again, just reused the ATI driver, and I re-enabled the Catalyst autostart.<br /><br />But completely different story with Ubuntu. It just didn't boot to the GUI! The monitors stayed black and were blinking with the power indicators, which meant there was no proper signal from the video card. Booting in recovery mode and attempt to reconfigure graphics didn't help. Neither the playing with xorg.conf. I removed everything related to nVidia - no luck. Removed ATI drivers as well - nothing... Then somewhere in the logs I noticed mentioning of VMWare and some warnings. I remembered that VMWare gets pretty deeply into the system, it even compiled some kernel modules during installation. So I decided to give it a try. Found how to uninstall it (followed instructions on <a href="https://help.ubuntu.com/community/VMware/Player#Uninstalling%20VMware%20Player%20on%20Ubuntu%208.04%20LTS%20and%20Ubuntu%208.10">this page</a>: <font face="courier new">sudo vmware-installer -u vmware-player</font>), and then after more playing with recovery mode that the system finally could boot successfully into X.<br /><br />It wasn't the end though. There was no network connection! Apparently when VMWare was ununstalled, it took the network with it. More googling helped to find that "eth0" is not in /etc/network/interfaces anymore. Just added it to the first line ("auto lo eth0"), rebooted, and voilà - it worked!<br /><br />Now I have just reinstalled ATI drivers, and re-configured the multi-display mode, and finally my computer is working again. No more experiments!Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0tag:blogger.com,1999:blog-311399571254961913.post-1468057664098757312011-04-17T11:25:00.000-07:002011-04-25T00:20:57.191-07:00New PC: Video cards swappingATI HD5670, which came with my new PC, is not very powerful video card. It's better than some totally budget ones, but it's definitely at the low end. So I decided to compare it with the nVidia 9800GT, which I had in my old PC, and probably swap them. Several years ago 8800GT (which 9800GT is based on, it's basically the same) was almost on the top of the line, and according to the tests I found on Internet, it's still a bit faster than the HD5670.<br /><br />But first I wanted to replace the cooler on that 9800GT, because the original one was too loud and the card was getting pretty hot on load. Checked what NCIX had on sale, and bought this one - <a href="http://www.arctic.ac/en/p/detail?sArticle=24.%3F">Accelero S1 Rev.2 passive VGA cooler</a>:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-LmK0meW0SVM/TbR0mCuvf4I/AAAAAAAAE5E/UUfXJwNh4qc/s1600/AC-Accelero-S1_cropped.png"><img style="cursor:pointer; cursor:hand;width: 320px; height: 211px;" src="http://2.bp.blogspot.com/-LmK0meW0SVM/TbR0mCuvf4I/AAAAAAAAE5E/UUfXJwNh4qc/s320/AC-Accelero-S1_cropped.png" alt="" id="BLOGGER_PHOTO_ID_5599228433645141890" border="0"></a><br /><br />The drop in the temperature was huge. With the old cooler the GPU/Ambient temperatures were ~70°C/47°C on idle, and ~80°C/56°C on load. With the Accelero S1 they dropped down to 45°C/34°C and 68°C/43°C accordingly. And that's without fans, in complete silence! Heat pipes are very efficient!<br /><br />So, I tried both cards in two computers, ran 3DMark06 on both, and here's the result:<br /><br /><table border="1"><tbody><tr> <td><font style="font-weight:bold;">3DMark Score</font></td> <td>NVIDIA GeForce 9800 GT, 512MB</td> <td>ATI Radeon HD 5670, 1GB</td></tr><tr> <td>Old computer<br />(Intel Core 2 Duo Processor E7300 2.66 GHz)</td> <td style="text-align: center;">11101<br /></td> <td style="text-align: center;">9987<br /></td></tr><tr> <td>New computer<br />(Dell XPS 9100, Intel Core i7-930 Processor 2.8 GHz)</td> <td style="text-align: center;">12984<br /></td> <td style="text-align: center;">11452<br /></td></tr></tbody></table><br />Based on these results, I'm leaving the 9800GT in the new machine, and will see how it will work.<br /><br />Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0tag:blogger.com,1999:blog-311399571254961913.post-66555304681026122542011-04-11T23:45:00.000-07:002011-04-25T17:52:42.968-07:00New PC: Why I don't like brand named PCsI <a href="http://blog.pakhotin.com/2011/03/new-pc-need-more-hard-drives.html">was complaining about limited SATA connections</a> on Dell motherboard.<br />
<br />
Turned out I was wrong. Look at this picture - here are the available connectors:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-84H472TrbQI/TbYGCSWU0jI/AAAAAAAAE50/vIQJrmyOpLo/s1600/Dell-SATA-ports.jpg" imageanchor="1"><img border="0" height="275" src="http://2.bp.blogspot.com/-84H472TrbQI/TbYGCSWU0jI/AAAAAAAAE50/vIQJrmyOpLo/s320/Dell-SATA-ports.jpg" width="320" /></a></div><br />
Those black and blue ones at the edge of the board are used for the the HDD and DVD drives, so there was only one available. But when I was checking BIOS setup today, I noticed it lists more SATA slots. I did one more closer inspection, and finally understood what those numbers and text near the SATA ports on the motherboard mean. Those black and blue connectors are actually double ports! Right under the ones, which are visible and have cables connected, there are two more connectors, which are hidden and not noticeable from any possible angle. And even when I found them, it was very difficult to connect the SATA cables there - without seeing and with limited access.<br />
<br />
I've never seen the SATA connectors design like this! If I had a manual for the motherboard, I could figure that out earlier, but alas, seems like there is no such manual coming with Dell XPS.<br />
<br />
So, finally it looked like I could connect my other HDD. But that was a hasty conclusion. I was still unable to connect the additional drive, because the SATA power cable was not long enough. It was designed to work only for a specific hard drives position in the original XPS case - the distance between the connectors is very short. I could use one cable with three connectors to power two drives, and the second cable, even though it had three more connectors, could only be used either for the DVD drive, or for another hard drive, but not for both of them. Normally the power supplies have at least a couple of molex connectors. Even though they are not used for the HDDs these days, there are adapters for other components, like fans, special motherboards, PCIe cards. But Dell power supply does not have any, so I couldn't even use this way. I need a SATA power splitter.<br />
<br />
How many more surprises should I expect from this Dell?!?<br />
<br />
Here's a list of annoyances I had to face with this Dell:<br />
<ul><li>It is too loud<br />
<ul><li>Cheap and extremely noisy VGA cooler</li>
<li>Stock CPU cooler - noisy and not very good</li>
<li>No HDD vibration dampers </li>
</ul></li>
<li>Non-standard design of the motherboard, and no documentation for the motherboard<br />
<ul><li>A bigger and better 3rd party CPU cooler doesn't fit</li>
<li>Difficult to find and use extra SATA ports</li>
<li>Not enough fan power connectors on the motherboard</li>
<li>Only Dell front panel with non-standard USB ports can be connected (and cannot run without it)</li>
</ul></li>
<li>No molex connectors from the power supply</li>
<li>SATA power cables are designed to be used only for a specific HDD configuration</li>
<li>Not enough USB ports on the back</li>
</ul><br />
The main idea is: all the components of this Dell PC were designed for a specific configuration. The customization/upgrade/replace abilities are extremely limited. This kind of a PC is intended for the users who are not expected to do anything with it. Want to change something? Order another configuration or even another model!<br />
<br />
It is not for me for sure. I've never wanted to buy a brand name PC for myself - saw several of such machines, and every one of them used some custom components, which were difficult to customize or upgrade. This is the first time when I had to get a brand name PC, and it will be the last one!Alex Pakhotinhttp://www.blogger.com/profile/18101109321127133739noreply@blogger.com0