<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;D0cGSHY-eCp7ImA9WhBVGUo.&quot;"><id>tag:blogger.com,1999:blog-2679033943941403050</id><updated>2013-04-26T14:17:09.850+03:00</updated><category term="linux" /><category term="screen" /><category term="me" /><category term="proxy" /><category term="loop" /><category term="gunicorn" /><category term="ics" /><category term="security" /><category term="programming" /><category term="tablet" /><category term="tmux" /><category term="passwords" /><category term="tutorial" /><category term="asus" /><category term="ssh" /><category term="algorithm" /><category term="bash" /><category term="blog" /><category term="flask" /><category term="prime" /><category term="bashing" /><category term="editor" /><category term="Vim" /><category term="android" /><category term="for" /><category term="terminal" /><category term="quick" /><category term="shell" /><category term="python" /><category term="nginx" /><category term="netbook" /><category term="bits" /><category term="zsh" /><category term="session" /><category term="windows" /><category term="transformer" /><category term="review" /><category term="laptop" /><category term="hp" /><title>BetaBlog</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.jackleo.info/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.jackleo.info/" /><author><name>Domantas Jackūnas</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-ITtwCKbxxXs/AAAAAAAAAAI/AAAAAAAABL8/su-QBXXCDbY/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/JackleoBetaBlog" /><feedburner:info uri="jackleobetablog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nc/3.0/" /><entry gd:etag="W/&quot;CUcMQ38yeCp7ImA9WhBTEk4.&quot;"><id>tag:blogger.com,1999:blog-2679033943941403050.post-1519464092319496633</id><published>2013-02-07T12:22:00.000+02:00</published><updated>2013-02-07T12:31:22.190+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-07T12:31:22.190+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="netbook" /><category scheme="http://www.blogger.com/atom/ns#" term="laptop" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="hp" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><category scheme="http://www.blogger.com/atom/ns#" term="review" /><category scheme="http://www.blogger.com/atom/ns#" term="bashing" /><title>Heath Points of Hewlett Packard and the Review of HP Envy dv6</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-UyoqAQg6mtY/UROBdRliXmI/AAAAAAAABC8/l6k7rGrgXWk/s1600/71PhjKakkHL._AA1500_.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="550" src="http://2.bp.blogspot.com/-UyoqAQg6mtY/UROBdRliXmI/AAAAAAAABC8/l6k7rGrgXWk/s400/71PhjKakkHL._AA1500_.jpg" width="550" /&gt;&lt;/a&gt;&lt;/div&gt;
Most of my friends are&amp;nbsp;somewhat&amp;nbsp;IT related,&amp;nbsp;&amp;nbsp;and most of them have horrible opinion when it comes to HP. This is due to the fact that most of them know at least few friends that owned or they owned themselves HP laptop and it broke in horrible ways.&lt;br /&gt;
For starters friend of mine had HP laptop that&amp;nbsp;constantly&amp;nbsp;overheated so he had to remove bottom cover for HDD/RAM/WiFi and carry around something to lift the bottom so the laptop would get air to cool itself. His girlfriend had HP laptop and it's graphics card was repaired few times by&amp;nbsp;warranty&amp;nbsp;and died because of the same reason. My other friend had HP laptop, it corpus around the hinges broke in half a year. My mother had laptop for work that was painfully slow. I probably could name few more, but you get the point. Horror stories are all around.&lt;br /&gt;
So it happened that I was planing to buy ASUS laptop that I was looking at for a very long time, but on the last moment shit went down and I had to buy anything that works if possible - as cheap as possible. Sure I wanted something that could work with some 3D graphics and&amp;nbsp;wouldn't&amp;nbsp;lag on OS itself, maybe play some games, so bare with me it was not the &lt;i&gt;cheapest&lt;/i&gt; laptop. But I got it with discount as well as 3 year&amp;nbsp;warranty.&lt;br /&gt;
So in the end I let myself for and adventure buying HP Envy dv6.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;h3&gt;
The Horror&lt;/h3&gt;
The unboxing was not pleasant. When I powered on the computer - I've noticed that only&amp;nbsp;English&amp;nbsp;power plug is added. I do believe it's a fault of seller not manufacturer. It was just a step "O.K. Here we go...". Around the screen there was protectors from fingerprints. All around the damn unit including on&amp;nbsp;hinges&amp;nbsp;where it's really hard to remove. There was also one on the grill bellow the monitor (purely decorative I believe). Those are made of plastic and left side is 0.5 mm too long (right side is stuck perfectly) so it just slightly out of the&amp;nbsp;in-cut&amp;nbsp;for it. Also on the left side there was this bit that does not stick and helps you to remove the protector. I've started pulling on that and the whole grill started to come off. At this point I was thinking how/when I'll return the unit.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Surprise, Surprise&amp;nbsp;&lt;/h3&gt;
When turned on everything went smoothly. Windows 8 activation (about Windows 8 - it will be another topic), UEFI disabling, Ubuntu installation besides Windows 8... Maybe too smoothly. It was one of the easiest laptop setups I've done. I was&amp;nbsp;especially surprised when I turned on Ubuntu. Everything works. Sure the Laptop comes with nVidia geforce gt 630M - this means Optimus Prime stomping on your dual screen... But to my surprise VGA connector is not bound to the nVidia. Dual screen true VGA works fine. The only downsides are that brightness changing takes big steps so it's not as smooth as in Windows, but hey - in last laptop (emachines) the&amp;nbsp;back-light&amp;nbsp;was completely not working and would light only when direct command would be sent out.&lt;br /&gt;
To install Ubuntu along side Windows 8 just follow this guide -&amp;nbsp;http://askubuntu.com/a/228069/8825&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
What I don't Like&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The screen. It's same old 1366x768. I do agree with Linus on this topic and I believe 1080p should be the smallest standard. It's one of the better screens on this resolution, but just because it's not 1080p - I hate it.&lt;/li&gt;
&lt;li&gt;Around the monitor there is a rubber protector that sticks our something like 1 mm. It feels when touched horrible, but to the eye, it is not as bad as it sounds.&lt;/li&gt;
&lt;li&gt;Indicators. Well more lack of them. There is WiFi indicator on WiFi/F12 button. There is CapsLock indicator on CapsLock. There is power indicator on power button as well on back of the lid (illuminated HP logo). Aaaand thats it. FFS at least they could have put NumLock indicator. Also there is no HDD indicator witch means you will not be able to know if your computer is counting&amp;nbsp;sheep&amp;nbsp;or hard at work with HDD.&lt;/li&gt;
&lt;li&gt;WiFi and Bluetooth is a combo card, witch means you cannot turn off one without other. This means that I have always running hidden bluetooth.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
Things I like&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Sound. It comes with Beats Audio (tm) and&amp;nbsp;supposedly&amp;nbsp;has subwoofer on the bottom. Hard to say if it&amp;nbsp;contributes&amp;nbsp;that much, but I can listen music without headphones on this one.&lt;/li&gt;
&lt;li&gt;Insides. Intel i7, nVidia geforce GT 630M, 8 Gigs of RAM, 1TB HDD makes quite a show. The only things that I would like to change is bit faster HDD since this one is 5200 RPM. Also since I already had 16 Gigs of 1600 Mhz CL 10 RAM - I changed those, but the ones that come are decent enough.&lt;/li&gt;
&lt;li&gt;When changing RAM I've noticed that everything is&amp;nbsp;accessible&amp;nbsp;removing single panel and that panel is hold by single screw. No&amp;nbsp;warranty stickers on it ether, so you can upgrade your laptop without a fuss.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
Things that are "Meh"&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Keyboard. It's comfortable - old apple style keyboard, but there is small gap between the spacing and the keys so stuff can go under the keys. It might be hard to clean.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
Back to HP&lt;/h3&gt;
So all in all I had quite uncomfortable start, but after that it exceeded my expectations. My brother right now has HP ProBook as well. He's working with quite demanding software and it handles it well. No breaking, not scratches, no heating. Nothing. Also I gave him my stock RAM's (8 Gigs) and holy fuck. This is how you change ProBook RAM:&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="300" src="https://www.youtube.com/embed/emp0yFMtHCc?feature=player_detailpage" width="550"&gt;&lt;/iframe&gt;&lt;/center&gt;
&lt;br /&gt;
No screws. Why the hell not every laptop is this way?! Take a note that it also opens up fan for easy cleaning. This is just perfect...&lt;br /&gt;
So all in all it went better than expected. Well see how it will last. I'll post updates if something happens.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=itPmER72z74:P6OAX-ZjOIA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=itPmER72z74:P6OAX-ZjOIA:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?i=itPmER72z74:P6OAX-ZjOIA:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=itPmER72z74:P6OAX-ZjOIA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=itPmER72z74:P6OAX-ZjOIA:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JackleoBetaBlog/~4/itPmER72z74" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jackleo.info/feeds/1519464092319496633/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.jackleo.info/2013/02/heath-points-of-hewlett-packard-and.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/1519464092319496633?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/1519464092319496633?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JackleoBetaBlog/~3/itPmER72z74/heath-points-of-hewlett-packard-and.html" title="Heath Points of Hewlett Packard and the Review of HP Envy dv6" /><author><name>Domantas Jackūnas</name><uri>https://plus.google.com/108376953135167752994</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-ITtwCKbxxXs/AAAAAAAAAAI/AAAAAAAABL8/su-QBXXCDbY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-UyoqAQg6mtY/UROBdRliXmI/AAAAAAAABC8/l6k7rGrgXWk/s72-c/71PhjKakkHL._AA1500_.jpg" height="72" width="72" /><thr:total>0</thr:total><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://blog.jackleo.info/2013/02/heath-points-of-hewlett-packard-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUCRHsycSp7ImA9WhNaFU4.&quot;"><id>tag:blogger.com,1999:blog-2679033943941403050.post-1621746367296476772</id><published>2013-01-30T11:31:00.000+02:00</published><updated>2013-01-30T11:31:05.599+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-01-30T11:31:05.599+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="quick" /><category scheme="http://www.blogger.com/atom/ns#" term="screen" /><category scheme="http://www.blogger.com/atom/ns#" term="tmux" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="ssh" /><category scheme="http://www.blogger.com/atom/ns#" term="session" /><category scheme="http://www.blogger.com/atom/ns#" term="terminal" /><title>Quick Bits #2 - Terminal tutoring</title><content type="html">Recently I've&amp;nbsp;commented&amp;nbsp;this on one of the G+ threads, so decided to put it on the &lt;strike&gt;paper&lt;/strike&gt;&amp;nbsp;internet. There is these tools - terminal multiplexers. Most commonly known is &lt;a href="http://linux.die.net/man/1/screen"&gt;Screen&lt;/a&gt;. Another, a lot younger one is &lt;a href="http://tmux.sourceforge.net/"&gt;Tmux&lt;/a&gt;, oh there is also wrapper for these called Byobu for Ubuntu, but that's a little bit off topic. They share a lot in common, and have some differences as well. Best comparison is here -&amp;nbsp;&lt;a href="https://www.wikivs.com/wiki/Screen_vs_tmux"&gt;https://www.wikivs.com/wiki/Screen_vs_tmux&lt;/a&gt;.&lt;br /&gt;In short - these programs allows to run multiple terminals in single session, allows to leave it running and continue latter on. If you're doing a lot of work via ssh, most probably you already use one of such multiplexers.&lt;br /&gt;One of great features is session sharing (both of them have it). Session sharing will allow to multiple users enter text/commands and view same outputs and inputs. At least in screen (not sure on tmux yet) there is a problem - when you share a session, and it&amp;nbsp;contains&amp;nbsp;multiple terminal instances - all connected users needs to switch to that terminal&amp;nbsp;manually. So the easiest solution is to run screen within a screen (no screenception pun intended) or mix screen and tmux, whatever works, personally I like mixing screen and tmux since by default they use different keys ^a and ^b... In such case only the bottom layer&amp;nbsp;&amp;nbsp;(first screen/tmux)&amp;nbsp;will need to share the session while top layer (second one) will just display output for all users, meaning that if one will switch terminal it will be switched for all. So far it seems to me to be the best way to introduce to code/configs and terminal based tools.&lt;br /&gt;&lt;br /&gt;To share screen session (what I personally used) -&amp;nbsp;&lt;a href="http://serverfault.com/questions/336594/share-screen-session-with-users-in-the-same-group-linux"&gt;http://serverfault.com/questions/336594/share-screen-session-with-users-in-the-same-group-linux&lt;/a&gt;&lt;br /&gt;For Tmux -&amp;nbsp;&lt;a href="http://readystate4.com/2011/01/02/sharing-remote-terminal-session-between-two-users-with-tmux/"&gt;http://readystate4.com/2011/01/02/sharing-remote-terminal-session-between-two-users-with-tmux/&lt;/a&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=UwwNwk5UhMc:FDQxJN3QAp0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=UwwNwk5UhMc:FDQxJN3QAp0:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?i=UwwNwk5UhMc:FDQxJN3QAp0:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=UwwNwk5UhMc:FDQxJN3QAp0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=UwwNwk5UhMc:FDQxJN3QAp0:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JackleoBetaBlog/~4/UwwNwk5UhMc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jackleo.info/feeds/1621746367296476772/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.jackleo.info/2013/01/quick-bits-2-terminal-tutoring.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/1621746367296476772?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/1621746367296476772?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JackleoBetaBlog/~3/UwwNwk5UhMc/quick-bits-2-terminal-tutoring.html" title="Quick Bits #2 - Terminal tutoring" /><author><name>Domantas Jackūnas</name><uri>https://plus.google.com/108376953135167752994</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-ITtwCKbxxXs/AAAAAAAAAAI/AAAAAAAABL8/su-QBXXCDbY/s512-c/photo.jpg" /></author><thr:total>0</thr:total><georss:featurename>Vilnius, Lietuvos Respublika</georss:featurename><georss:point>54.6871555 25.279651400000034</georss:point><georss:box>54.393537 24.634204400000034 54.980774000000004 25.925098400000035</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://blog.jackleo.info/2013/01/quick-bits-2-terminal-tutoring.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4NQnk4eip7ImA9WhNWFE0.&quot;"><id>tag:blogger.com,1999:blog-2679033943941403050.post-3413998066549945766</id><published>2012-12-13T14:16:00.002+02:00</published><updated>2012-12-13T14:16:33.732+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-12-13T14:16:33.732+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="bits" /><category scheme="http://www.blogger.com/atom/ns#" term="quick" /><category scheme="http://www.blogger.com/atom/ns#" term="nginx" /><category scheme="http://www.blogger.com/atom/ns#" term="ssh" /><category scheme="http://www.blogger.com/atom/ns#" term="session" /><category scheme="http://www.blogger.com/atom/ns#" term="proxy" /><title>Quick Bits #1 - Nginx proxy</title><content type="html">I've been developing social games for over a year now for most of the time I had simply open ports to my laptop at office. Also our office has domain. So&amp;nbsp;inside&amp;nbsp;of social apps I have set iframe url as myofficedomain.com:&amp;lt;myport&amp;gt;. This is&amp;nbsp;convenient&amp;nbsp;only when working inside office. Sometimes shit happens and you have to help/work from home and if you want to load the same app within laptop on different network - you're shit out of luck. You have to get outgoing domain for that, network you're in might require port-forwarding that cannot be changed and so on. So I found the easiest solution for that is to setup proxy to witch you could ssh from any machine and use it as gateway for your social apps.&lt;br /&gt;
&lt;br /&gt;
This brings few good things. You don't need port (for example new vk.com payment system&amp;nbsp;disallows&amp;nbsp;to use links with ports in payment system). You don't need change iframe urls within apps since sometimes that can become annoying since it might require confirmation true emal or even worse - phone, also sometimes these notifications lags quite a bit and it's dead time waiting.&lt;br /&gt;
&lt;br /&gt;
So all you need to do is to get a server that has your soon-to-be-proxy domain pointing to it and Nginx installed in it.&lt;br /&gt;
&lt;br /&gt;
You need to setup Nginx vhost as displayed:&lt;br /&gt;
&lt;pre style="background: #0d0d0d; color: #dde6cf;"&gt;server {
    listen 80;
    server_name myawesomeproxydomain.com;

    location / {
        proxy_pass        http://127.0.0.1:5000;
        proxy_set_header  Host &lt;span style="color: #596380;"&gt;$host&lt;/span&gt;;
        proxy_set_header  X-Real-IP &lt;span style="color: #596380;"&gt;$remote_addr&lt;/span&gt;;
        proxy_set_header  X-Forwarded-For &lt;span style="color: #596380;"&gt;$proxy_add_x_forwarded_for&lt;/span&gt;;
    }
}&lt;/pre&gt;
This will proxy all requests that will come to your domain to localhost:5000&lt;br /&gt;
&lt;br /&gt;
Sure on the server nothing runs on localhost:5000 (sure you can change the port) so we need now to setup proxy from your machine to the server. It's simple as connecting to the server. SSH has -R attribute that will setup reverse proxy. Or as manual writes:&lt;br /&gt;
&lt;pre style="background: #0d0d0d; color: #dde6cf;"&gt;     -R [bind_address:]port:host:hostport
             Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.  This works by allocating a socket to listen to port on the remote side, and whenever a connection is made to this port, the
             connection is forwarded over the secure channel, and a connection is made to host port hostport from the local machine.

             Port forwardings can also be specified in the configuration file.  Privileged ports can be forwarded only when logging in as root on the remote machine.  IPv6 addresses can be specified by enclosing the address in square braces.

             By default, the listening socket on the server will be bound to the loopback interface only.  This may be overridden by specifying a bind_address.  An empty bind_address, or the address ‘*’, indicates that the remote socket should listen on all
             interfaces.  Specifying a remote bind_address will only succeed if the server's GatewayPorts option is enabled (see sshd_config(5)).

             If the port argument is ‘0’, the listen port will be dynamically allocated on the server and reported to the client at run time.  When used together with -O forward the allocated port will be printed to the standard output.&lt;/pre&gt;
So it's as easy as opening SSH connection with such command line:&lt;br /&gt;
&lt;pre style="background: #0d0d0d; color: #dde6cf;"&gt;ssh -R 127.0.0.1:5000:127.0.0.1:8000 proxyuser@yourawesomeserver.com
&lt;/pre&gt;
So if you run your project in localhost:8000 it will&amp;nbsp;receive&amp;nbsp;everything that comes to proxy domain.&lt;br /&gt;&lt;br /&gt;Another good thing to do here is to increase life time of a SSH session. This can be done on both sides - server and your local machine. I suggest to do it on your local machine. Simply edit /etc/ssh/ssh_config if you're in Linux and add ServerAliveInterval 60 this will send each 60 seconds a packet to the server to mention that the user is still around.&lt;br /&gt;&lt;br /&gt;SSH session fix is taken from here:&amp;nbsp;&lt;a href="http://ocaoimh.ie/2008/12/10/how-to-fix-ssh-timeout-problems/"&gt;http://ocaoimh.ie/2008/12/10/how-to-fix-ssh-timeout-problems/&lt;/a&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=kBn-9h-WqhI:kX0ubOsFN70:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=kBn-9h-WqhI:kX0ubOsFN70:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?i=kBn-9h-WqhI:kX0ubOsFN70:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=kBn-9h-WqhI:kX0ubOsFN70:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=kBn-9h-WqhI:kX0ubOsFN70:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JackleoBetaBlog/~4/kBn-9h-WqhI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jackleo.info/feeds/3413998066549945766/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.jackleo.info/2012/12/quick-bits-1-nginx-proxy.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/3413998066549945766?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/3413998066549945766?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JackleoBetaBlog/~3/kBn-9h-WqhI/quick-bits-1-nginx-proxy.html" title="Quick Bits #1 - Nginx proxy" /><author><name>Domantas Jackūnas</name><uri>https://plus.google.com/108376953135167752994</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-ITtwCKbxxXs/AAAAAAAAAAI/AAAAAAAABL8/su-QBXXCDbY/s512-c/photo.jpg" /></author><thr:total>0</thr:total><georss:featurename>Vilnius, Lithuania</georss:featurename><georss:point>54.6871555 25.2796514</georss:point><georss:box>54.5402995 24.963794399999998 54.8340115 25.5955084</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://blog.jackleo.info/2012/12/quick-bits-1-nginx-proxy.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4CQHY9fyp7ImA9WhNSEE8.&quot;"><id>tag:blogger.com,1999:blog-2679033943941403050.post-1658433319198382717</id><published>2012-10-24T00:14:00.000+03:00</published><updated>2012-10-24T00:32:41.867+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-10-24T00:32:41.867+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><category scheme="http://www.blogger.com/atom/ns#" term="flask" /><category scheme="http://www.blogger.com/atom/ns#" term="gunicorn" /><title>Flask With Green Pony. Part #1 - Putting Damn Pony into the Cage.</title><content type="html">So I&amp;nbsp;figured&amp;nbsp;to share some evening battle stories. Maybe it will help someone while fighting against their own demons and zombies via Google jails.&lt;br /&gt;
&lt;br /&gt;
TL;DR - scroll to the bottom.&lt;br /&gt;
&lt;br /&gt;
Right now I'm fighting &lt;a href="http://gunicorn.org/"&gt;Gunicorn&lt;/a&gt; - a green nifty WSGY server. It's not the best. But I like it. Buzz off.&lt;br /&gt;
The situation is this. I'm developing quite big flask app. The reasons that made me choose flask over others was that I'm for sure going to use SQLAlchemy and flask has some nifty plugins. For me Django without it's ORM seems bit pointless. So I figured to take something smaller and build on top of it.&lt;br /&gt;
&lt;br /&gt;
One of my friends always says how he's used to start big and just remove stuff he don't need. As I saw him using snippets that was exactly what he did. Vim combo&amp;nbsp;results&amp;nbsp;in huge snippet and then a third of that is deleted. I have quite&amp;nbsp;opposite&amp;nbsp;plan of actions. Start small, but clean and then build up. Sure I see advantage in his approach that you don't need to remember/find that much stuff. Anyways. Flask.&lt;br /&gt;
&lt;br /&gt;
Flask has some issues. Devs loves to put everything in single file. That pisses me off. I like&amp;nbsp;hierarchical clean structures. Also Flask just adores global variables. I would suggest to find a room for those two [flask and global variables], but hey who I am to judge?&lt;br /&gt;
&lt;br /&gt;
So the idea is that I have Flask app that is developed by my&amp;nbsp;standards&amp;nbsp;meaning that there is startup scripts,&amp;nbsp;management&amp;nbsp;commands, soon to be plug-in modules, clean settings for app. Yeah. More or less lighter Django with more litter in the code. But it's MINE. Buzz off.&lt;br /&gt;
&lt;br /&gt;
So&amp;nbsp;challenge&amp;nbsp;is to run my fat-ass Flask app with gunicorn. What Flask docs has to offer?&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://flask.pocoo.org/docs/deploying/wsgi-standalone/#gunicorn"&gt;http://flask.pocoo.org/docs/deploying/wsgi-standalone/#gunicorn&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
myproject:app? that's what?.. Method? setup.py has possibility to add global console scripts (terminal global scrips per say) that uses package:method declaration. But this does not work in my case if I give it main method. I wish... So what Google has to offer?&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.capsunlock.net/2011/04/running-flask-with-gunicorn.html"&gt;http://www.capsunlock.net/2011/04/running-flask-with-gunicorn.html&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://community.webfaction.com/questions/7229/nginxgunicornflask-setup"&gt;http://community.webfaction.com/questions/7229/nginxgunicornflask-setup&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://samrat.me/blog/2012/05/flask-nginx-gunicornon-a-vagrant-box/"&gt;http://samrat.me/blog/2012/05/flask-nginx-gunicornon-a-vagrant-box/&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://wirtel.be/posts/en/2011/02/24/nginx_gunicorn_flask/"&gt;http://wirtel.be/posts/en/2011/02/24/nginx_gunicorn_flask/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
So it expects global variable once again. Great. But then again what's the point of it? I don't want to always run my app with $ gunicorn &amp;lt;stupid_miles_long_path&amp;gt;/main:app &amp;lt;crap-ton of properties&amp;gt;&lt;br /&gt;
I want to make it that I just could run MyApp within terminal and give few SIMPLE arguments&amp;nbsp;and everything would be fine. So I want to implement gunicorn directly to my app. Most of the internet here is useless, all you can find is how to proxy with nginx to $ gunicorn main:app&lt;br /&gt;
&lt;br /&gt;
Here is the golden link:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://damianzaremba.co.uk/2012/08/running-a-wsgi-app-via-gunicorn-from-python/"&gt;http://damianzaremba.co.uk/2012/08/running-a-wsgi-app-via-gunicorn-from-python/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
It's almost right. Few fixes - main file is not main.wsgi in most projects, it's proper *.py and there is few problems. Last line of MyCustomApplication class.&lt;br /&gt;
&lt;br /&gt;
If you look at util file&amp;nbsp;&lt;a href="https://github.com/benoitc/gunicorn/blob/master/gunicorn/util.py#L275"&gt;https://github.com/benoitc/gunicorn/blob/master/gunicorn/util.py#L275&lt;/a&gt;&amp;nbsp;you'll find that it tries to extract app file from string (you're giving it string - what do you expect). If you're doing this directly from app - you have everything on your finger tips - why the hell you would want to get file from same folder try to parse it's name and then fail. Yep. It leads to error of booting workers. Something similar to -&lt;br /&gt;
&lt;a href="https://github.com/benoitc/gunicorn/issues/338"&gt;https://github.com/benoitc/gunicorn/issues/338&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
If you're doing everything cleanly - it will simply wont find THE app. And it's easy to fix it. Instead of calling utg.import() simply import your global variable from&amp;nbsp;whatever&amp;nbsp;you placed it and return THE app.&lt;br /&gt;
&lt;br /&gt;
Oh also I added ProxyFix. Not sure if I need it. In most google places it was added so I would&amp;nbsp;assume&amp;nbsp;it's a good thing.&lt;br /&gt;
&lt;span style="font-family: monospace; font-size: 13px; line-height: 18px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;
So here is that custom extra class. I named it Server:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background: #0d0d0d; color: #dde6cf;"&gt;from gunicorn.app.base import Application

from werkzeug.contrib.fixers import ProxyFix

from MyApp import app


&lt;span style="color: #9ebf60;"&gt;class&lt;/span&gt; &lt;span style="color: #6078bf;"&gt;Server&lt;/span&gt;(&lt;span style="font-style: italic;"&gt;Application&lt;/span&gt;):
    &lt;span style="color: #805978;"&gt;'''
    Custom Gunicorn Application
    '''&lt;/span&gt;

    &lt;span style="color: #9ebf60;"&gt;def&lt;/span&gt; &lt;span style="color: #6078bf;"&gt;&lt;span style="color: #8a4b66;"&gt;__init__&lt;/span&gt;&lt;/span&gt;(&lt;span style="color: #596380;"&gt;self&lt;/span&gt;, &lt;span style="color: #596380;"&gt;options&lt;/span&gt;={}):
        &lt;span style="color: #805978;"&gt;'''__init__ method

        Load the base config and assign some core attributes.
        '''&lt;/span&gt;
        self.usage = &lt;span style="color: #a8885a;"&gt;None&lt;/span&gt;
        self.callable = &lt;span style="color: #a8885a;"&gt;None&lt;/span&gt;
        self.options = options
        self.do_load_config()

    &lt;span style="color: #9ebf60;"&gt;def&lt;/span&gt; &lt;span style="color: #6078bf;"&gt;init&lt;/span&gt;(&lt;span style="color: #596380;"&gt;self&lt;/span&gt;, *&lt;span style="color: #596380;"&gt;args&lt;/span&gt;):
        &lt;span style="color: #805978;"&gt;'''init method

        Takes our custom options from self.options and creates a config
        dict which specifies custom settings.
        '''&lt;/span&gt;
        cfg = {}
        for k, v &lt;span style="color: #728059;"&gt;in&lt;/span&gt; self.options.items():
            if k.lower() &lt;span style="color: #728059;"&gt;in&lt;/span&gt; self.cfg.settings &lt;span style="color: #728059;"&gt;and&lt;/span&gt; v &lt;span style="color: #728059;"&gt;is&lt;/span&gt; &lt;span style="color: #728059;"&gt;not&lt;/span&gt; &lt;span style="color: #a8885a;"&gt;None&lt;/span&gt;:
                cfg[k.lower()] = v
        return cfg

    &lt;span style="color: #9ebf60;"&gt;def&lt;/span&gt; &lt;span style="color: #6078bf;"&gt;load&lt;/span&gt;(&lt;span style="color: #596380;"&gt;self&lt;/span&gt;):
        &lt;span style="color: #805978;"&gt;'''load method

        Imports our application and returns it to be run.
        '''&lt;/span&gt;
        app.wsgi_app = ProxyFix(app.wsgi_app)
        return app&lt;/pre&gt;
&lt;br /&gt;
And this is how my part of main:main looked with flask running:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background: #0d0d0d; color: #dde6cf;"&gt;&lt;span style="color: #9ebf60;"&gt;def&lt;/span&gt; &lt;span style="color: #6078bf;"&gt;main&lt;/span&gt;():
    startup()

    app.secret_key = settings.SECRET
    app.run(
        &lt;span style="color: #596380;"&gt;host&lt;/span&gt;=settings.ARGS[&lt;span style="color: #805978;"&gt;'--host'&lt;/span&gt;],
        &lt;span style="color: #596380;"&gt;port&lt;/span&gt;=&lt;span style="color: #8a4b66;"&gt;int&lt;/span&gt;(settings.ARGS[&lt;span style="color: #805978;"&gt;'--port'&lt;/span&gt;]),
        &lt;span style="color: #596380;"&gt;debug&lt;/span&gt;=settings.DEBUG,
    )
&lt;/pre&gt;
&lt;br /&gt;
And this is how it looks now:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background: #0d0d0d; color: #dde6cf;"&gt;&lt;span style="color: #9ebf60;"&gt;def&lt;/span&gt; &lt;span style="color: #6078bf;"&gt;main&lt;/span&gt;():
    startup()

    app.secret_key = settings.SECRET
    Server({
        &lt;span style="color: #805978;"&gt;'bind'&lt;/span&gt;: &lt;span style="color: #805978;"&gt;'&lt;span style="color: #a8885a;"&gt;%s&lt;/span&gt;:&lt;span style="color: #a8885a;"&gt;%s&lt;/span&gt;'&lt;/span&gt; % (settings.ARGS[&lt;span style="color: #805978;"&gt;'--host'&lt;/span&gt;], settings.ARGS[&lt;span style="color: #805978;"&gt;'--port'&lt;/span&gt;]),
        &lt;span style="color: #805978;"&gt;'debug'&lt;/span&gt;: settings.DEBUG,
        &lt;span style="color: #805978;"&gt;'worker_class'&lt;/span&gt;: &lt;span style="color: #805978;"&gt;'gevent'&lt;/span&gt;,
        &lt;span style="color: #805978;"&gt;'workers'&lt;/span&gt;: numCPUs() * &lt;span style="color: #a8885a;"&gt;2&lt;/span&gt; + &lt;span style="color: #a8885a;"&gt;1&lt;/span&gt;,
    }).run()
&lt;/pre&gt;
&lt;br /&gt;
Sure main has right now access to numCPUs() method and sure Server is imported. numCPUs() method can be found in previously mentioned link -&amp;nbsp;&lt;a href="http://www.capsunlock.net/2011/04/running-flask-with-gunicorn.html"&gt;http://www.capsunlock.net/2011/04/running-flask-with-gunicorn.html&lt;/a&gt;&lt;br /&gt;
Also my app uses &lt;a href="http://docopt.org/"&gt;docopt&lt;/a&gt;, so I just removed __doc__ string from examples here.&lt;br /&gt;
&lt;br /&gt;
I still right now have some issues - it seems gunicorn ignores my debug option. Demonizer suicides. But that's for another evening.&lt;br /&gt;
&lt;br /&gt;
Over and out.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=2lTgULid_cA:vRmKvYmVzWo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=2lTgULid_cA:vRmKvYmVzWo:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?i=2lTgULid_cA:vRmKvYmVzWo:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=2lTgULid_cA:vRmKvYmVzWo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=2lTgULid_cA:vRmKvYmVzWo:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JackleoBetaBlog/~4/2lTgULid_cA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jackleo.info/feeds/1658433319198382717/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.jackleo.info/2012/10/flask-with-green-pony-part-1-putting.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/1658433319198382717?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/1658433319198382717?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JackleoBetaBlog/~3/2lTgULid_cA/flask-with-green-pony-part-1-putting.html" title="Flask With Green Pony. Part #1 - Putting Damn Pony into the Cage." /><author><name>Domantas Jackūnas</name><uri>https://plus.google.com/108376953135167752994</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-ITtwCKbxxXs/AAAAAAAAAAI/AAAAAAAABL8/su-QBXXCDbY/s512-c/photo.jpg" /></author><thr:total>0</thr:total><georss:featurename>Vilnius, Lithuania.</georss:featurename><georss:point>54.6893865 25.2800243</georss:point><georss:box>53.4961725 22.7531688 55.882600499999995 27.8068798</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://blog.jackleo.info/2012/10/flask-with-green-pony-part-1-putting.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUNSX88fSp7ImA9WhNaFUk.&quot;"><id>tag:blogger.com,1999:blog-2679033943941403050.post-4757606752874051479</id><published>2012-09-09T18:25:00.000+03:00</published><updated>2013-01-30T12:38:18.175+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-01-30T12:38:18.175+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="netbook" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="asus" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><category scheme="http://www.blogger.com/atom/ns#" term="review" /><category scheme="http://www.blogger.com/atom/ns#" term="bashing" /><title>Asus EEE X101CH Review</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-mWaF5deSsH0/UEylmOheBLI/AAAAAAAAA-c/suLa8e7IJiQ/s1600/P_500.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-mWaF5deSsH0/UEylmOheBLI/AAAAAAAAA-c/suLa8e7IJiQ/s320/P_500.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
For quite I while I have to fix, update and maintain this little netbook. Although it's not mine - I've used it for quite a while and feel comfortable writing this review.&lt;br /&gt;
&lt;h3&gt;
The Outside&lt;/h3&gt;
It's meant to be cheep. Plastic only. However it means that it's light. Just a bit over 1 Kg with charger in your bag. So don't expect anything special, it's meant just to do it's job and it does it quite well.&lt;br /&gt;
&lt;br /&gt;
Keyboard is&amp;nbsp;surprisingly&amp;nbsp;comfy. Touch pad is incorporated to plastic cover. With this one I had few problems, but about that latter on. It has full size HDMI connection, VGA, 2xUSB 2.0 LAN, Audio connections and Card Reader. That's it.&lt;br /&gt;
&lt;br /&gt;
Screen is reasonable -&amp;nbsp;10.1 inch&amp;nbsp;LED Backlight WSVGA (1024x600) screen. It's not glossy, colorful and sharp enough that it&amp;nbsp;wouldn't&amp;nbsp;strain your eyes.&lt;br /&gt;
&lt;br /&gt;
All in all - it's good&amp;nbsp;enough&amp;nbsp;that it wouldn't bother you.&lt;br /&gt;
&lt;h3&gt;
The Inside&lt;/h3&gt;
This one is a bit tricky. Sure it has standard Intel Atom N2600 Dual Core processor and a gigabyte of RAM. 320Gb HDD, 0.3 Mp front camera, single (quite bad) speaker, &amp;nbsp;WLAN, Bluetooth... Nothing special until you touch operating system... Here goes my rant...&lt;br /&gt;
&lt;br /&gt;
It is suggested to be used with Windows 7. What a load of bullshit that is. First touch pad drivers... Non of both types of drivers provided by Asus does not work and it's better to leave it as is after installing Windows. One of those makes&amp;nbsp;touch-pad&amp;nbsp;unusable other simply does nothing. Great.&lt;br /&gt;
&lt;br /&gt;
Secondly it has only a gig of RAM, immedeatly&amp;nbsp;at least&amp;nbsp;half of it is occupied by Windows. So if you want to write a document while opening 3 or so tabs of chrome while listening for music in the meantime - you gonna have a bad time... You cannot upgrade RAM since it's stuck right to the&amp;nbsp;motherboard&amp;nbsp;and does not have SO-DIMM.&lt;br /&gt;
&lt;br /&gt;
I'm not sure ether it's fault of Windows since it does not have swap space and tendency to ran out of memory or ether it's problem with overheating, but netbook tends to freeze up from time to time (also it gets hot) when under heavier loads. It's really&amp;nbsp;annoying&amp;nbsp;and it's a huge problem. On this alone I would not&amp;nbsp;recommend&amp;nbsp;buying this one, but only if you cannot live without windows.&lt;br /&gt;
&lt;br /&gt;
Yep. Linux to the rescue! Linux did had a problem with this laptop since Linux did not&amp;nbsp;sported&amp;nbsp;Intel GMA 3600 graphics (this netbook Intel Atom uses these). So you got 800x600 resolution only, or something&amp;nbsp;similarly&amp;nbsp;small, but since release of Linux Kernel 3.4.2 it works fine. So newest batch of Linux distributions will work better and better with this laptop. Currently I've installed Ubuntu 12.04 and 3.4.2 Linux Kernel and it works fine. Sure Battery wont hold as long, brightness settings does not work yet as well, YouTube video lags a bit too (from time to time), but hey, at least it does not freeze up for a minute once per 5 minutes and can multitask. Ubuntu 12.10 already contains this Kernel update as far as I know, so there wont be any need for addition fiddling with Linux Kernels very soon. Also running Linux makes it faster and more responsive. And no more - "you [pathetic human being] need TouchPad Drivers" popups again!&lt;br /&gt;
&lt;h3&gt;
All in All&lt;/h3&gt;
It's small little netbook, probably will be on sale for very low price in official retailer shops since Asus is killing eee netbook series due to tablet invasion for small portable devices. If you do need something like that and you're&amp;nbsp;comfortable&amp;nbsp;with Linux I would really&amp;nbsp;suggest&amp;nbsp;grabbing&amp;nbsp;one just because of low price it could end up. Otherwise if you do need windows and you do need exactly netbook, I would suggest to avoid this model.&lt;br /&gt;
&lt;h3&gt;
Update&lt;/h3&gt;
&lt;div&gt;
So it seems that Ubuntu 12.10 will not boot at all since there is a bug that requires to blacklist that particular GMA chipset. So far the best is to run 12.04 with 3.4.2 kernel. At least that works. More info here:&amp;nbsp;&lt;a href="http://linuxrepository.blogspot.com/2012/09/how-to-install-linux-342-quantal-kernel.html"&gt;http://linuxrepository.blogspot.com/2012/09/how-to-install-linux-342-quantal-kernel.html&lt;/a&gt;&lt;/div&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=bNF-PcHJiBQ:LIg9fM19tns:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=bNF-PcHJiBQ:LIg9fM19tns:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?i=bNF-PcHJiBQ:LIg9fM19tns:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=bNF-PcHJiBQ:LIg9fM19tns:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=bNF-PcHJiBQ:LIg9fM19tns:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JackleoBetaBlog/~4/bNF-PcHJiBQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jackleo.info/feeds/4757606752874051479/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.jackleo.info/2012/09/asus-eee-x101ch-review.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/4757606752874051479?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/4757606752874051479?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JackleoBetaBlog/~3/bNF-PcHJiBQ/asus-eee-x101ch-review.html" title="Asus EEE X101CH Review" /><author><name>Domantas Jackūnas</name><uri>https://plus.google.com/108376953135167752994</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-ITtwCKbxxXs/AAAAAAAAAAI/AAAAAAAABL8/su-QBXXCDbY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-mWaF5deSsH0/UEylmOheBLI/AAAAAAAAA-c/suLa8e7IJiQ/s72-c/P_500.jpg" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Vilniaus, Lietuva</georss:featurename><georss:point>54.6893865 25.2800243</georss:point><georss:box>54.542542 24.9641673 54.836231 25.595881300000002</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://blog.jackleo.info/2012/09/asus-eee-x101ch-review.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QER3c_fyp7ImA9WhJUEks.&quot;"><id>tag:blogger.com,1999:blog-2679033943941403050.post-1232210479967687</id><published>2012-09-09T14:14:00.001+03:00</published><updated>2012-09-10T11:21:46.947+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-10T11:21:46.947+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="transformer" /><category scheme="http://www.blogger.com/atom/ns#" term="prime" /><category scheme="http://www.blogger.com/atom/ns#" term="tablet" /><category scheme="http://www.blogger.com/atom/ns#" term="ics" /><category scheme="http://www.blogger.com/atom/ns#" term="asus" /><category scheme="http://www.blogger.com/atom/ns#" term="review" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><category scheme="http://www.blogger.com/atom/ns#" term="bashing" /><title>Asus Transformer Prime Revisited or Bashing The Prime</title><content type="html">I should keep my&amp;nbsp;promises... I haven't found any time to do any blogging, or I was too lazy. Who knows... Anyways this is my retaliation. As promised Asus transformer review revisited! If you haven't seen last review - &lt;a href="http://blog.jackleo.info/2012/03/asus-transformer-prime-and-android-ics.html"&gt;look here&lt;/a&gt;.&lt;br /&gt;
&lt;h3&gt;
The Bad&lt;/h3&gt;
&lt;br /&gt;
WiFi... I've mentioned that WiFi is not the&amp;nbsp;strongest&amp;nbsp;point of this tablet. It's still true. Range wise it's OK...ish. But the main problem with it is speed.&amp;nbsp;Downloading&amp;nbsp;larger files suffers from quite a speed loss. I can't tell the exact figures since it depends on place and WiFi spot, but I've ran into situations where cheap eee&amp;nbsp;net-book&amp;nbsp;downloads up to 4x times faster. For regular usage it's fine, just for larger files you will feel lack of speed.&lt;br /&gt;
&lt;br /&gt;
Battery life is amazing. I love it. Problems appear when you ran out of battery. There is two stages of battery death. When it does not turn on, but displays an empty battery if trying. And another stage is when it does nothing at all. On first stage it takes somewhere up to 15 mins of charging time till you'll be able to turn it on. On second stage it takes up to half an hour of charging. It sometimes becomes really&amp;nbsp;annoying. For example&amp;nbsp;if you're not using tablet for few days or a week and just want to watch a movie in little time you got.&lt;br /&gt;
&lt;br /&gt;
It's bit on the heavy side. While reading a book or playing a game it may become a bit uncomfortable. It's not a big deal but...&lt;br /&gt;
&lt;h3&gt;
The Ugly&lt;/h3&gt;
Brushed&amp;nbsp;aluminium finish does look good, and I can't see any scratches on it. Fingerprints don't shine on it ether (the screen is still a magnet for them). However it gathers fat from finger prints and then dusts so that might look a bit ugly. It's still quite easy to clean it though, but it's not as easy to maintain shiny as some plastics.&lt;br /&gt;
OK i'm nitpicking here, but my point is that it looks really good only if it's clean therefore it requires regular cleaning of all surfaces.&lt;br /&gt;
&lt;br /&gt;
Opening keyboard a bit too wide and pushing on it a bit makes a gap in the keyboard dock back side. I does not break just makes a little gap that is closed easily with little push. It's just a tiny bit annoying.&lt;br /&gt;
&lt;br /&gt;
Although I was worried about audio jack connection, it turned out fine. However micro-HDMI connection turned out to be fiddly. It will loose connection from time to time if you're moving tablet. So it might not be the best option for presentations if you want to have tablet in your hands and connected via micro-HDMI. I have to point out that it won't happen randomly, so for connecting to TV and watching movies/YouTube there are no problems.&lt;br /&gt;
&lt;h3&gt;
The Weird&lt;/h3&gt;
Physical keyboard is only good in so few languages. If your native language is English or one of few supported that it's fine for you, but for me it sucks. I can't reply to the most of the emails, I get uncomfortable when using IRC or other chatting programs... The only option is to use non standard on-screen keyboard. It does work, but leaving out physical keyboard in spots where it would be most useful is a bummer to say the least. Sure I could write using only&amp;nbsp;standard&amp;nbsp;characters, but I feel like a retard by doing that.&lt;br /&gt;
It is possible to solve this issue with &lt;a href="https://play.google.com/store/apps/details?id=com.apedroid.hwkeyboardhelper"&gt;external apps&lt;/a&gt;&amp;nbsp;apparently.&amp;nbsp; Also incoming Jelly Bean update might &lt;a href="http://code.google.com/p/android/issues/detail?id=17119"&gt;contain cure for this issue&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
If I'm trying to watch a better quality movie on my TV via HDMI connection... First of all most of such movies won't be playable by default player. Sure it's a minor complain since there is so much to choose from. However most players stops playing those movies after 3-15 mins randomly. It's due to&amp;nbsp;software&amp;nbsp;decoders as far as I know and only few support hardware decoders well enough to be usable. So I ended up using &lt;a href="https://play.google.com/store/apps/details?id=com.bsplayer.bspandroid.free"&gt;BSPlayer&lt;/a&gt;. So don't rush to purchase any of the player apps and test those before buying if you need one.&lt;br /&gt;
&lt;h3&gt;
Round up&lt;/h3&gt;
These are the main bad point I've seen so far. I still think it's awesome tablet and worth it's price, just it's not as perfect as someone may portray it. Sure new model is already out there, but if you get chance to get this one for cheap, I would say it's a good deal.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=Zkf_YGpMb54:52uHU1O22js:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=Zkf_YGpMb54:52uHU1O22js:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?i=Zkf_YGpMb54:52uHU1O22js:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=Zkf_YGpMb54:52uHU1O22js:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=Zkf_YGpMb54:52uHU1O22js:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JackleoBetaBlog/~4/Zkf_YGpMb54" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jackleo.info/feeds/1232210479967687/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.jackleo.info/2012/09/asus-transformer-prime-revisited-or.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/1232210479967687?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/1232210479967687?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JackleoBetaBlog/~3/Zkf_YGpMb54/asus-transformer-prime-revisited-or.html" title="Asus Transformer Prime Revisited or Bashing The Prime" /><author><name>Domantas Jackūnas</name><uri>https://plus.google.com/108376953135167752994</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-ITtwCKbxxXs/AAAAAAAAAAI/AAAAAAAABL8/su-QBXXCDbY/s512-c/photo.jpg" /></author><thr:total>0</thr:total><georss:featurename>Vilniaus, Lietuva</georss:featurename><georss:point>54.6893865 25.2800243</georss:point><georss:box>54.542542 24.9641673 54.836231 25.595881300000002</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://blog.jackleo.info/2012/09/asus-transformer-prime-revisited-or.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MHRnYyfCp7ImA9WhJUEUU.&quot;"><id>tag:blogger.com,1999:blog-2679033943941403050.post-3431888618206010533</id><published>2012-03-12T18:15:00.000+02:00</published><updated>2012-09-09T14:17:17.894+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-09T14:17:17.894+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="transformer" /><category scheme="http://www.blogger.com/atom/ns#" term="prime" /><category scheme="http://www.blogger.com/atom/ns#" term="tablet" /><category scheme="http://www.blogger.com/atom/ns#" term="ics" /><category scheme="http://www.blogger.com/atom/ns#" term="asus" /><category scheme="http://www.blogger.com/atom/ns#" term="review" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title>Asus Transformer Prime and Android ICS first impressions</title><content type="html">&lt;span id="internal-source-marker_0.7106045428663492"&gt;&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;I've recevied Asus Transformer Prime just few days back and these are my initial impressions. In case you thinking about buying one you probably allready saw bunch of reviews on youtube, so I'll try to sum up my afterthoughts. Display cons and pros. I hope it will help someone to decide.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-pf2G1pLX6BY/T14kIVsFcjI/AAAAAAAAA3A/W1i87zqFRTI/s1600/ASUS-Transformer-Prime.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-pf2G1pLX6BY/T14kIVsFcjI/AAAAAAAAA3A/W1i87zqFRTI/s1600/ASUS-Transformer-Prime.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Just keep in mind that this is additional info that I trow into the wild. It is something that was unexpected for me after all those reviews I've seen and have red.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span style="font-size: large;"&gt;TL;DR&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;If you like Android - it is awesome. In other case, whatever I'll tell you - you won't care, so buzz off.&lt;/span&gt;&lt;br /&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt;&lt;span style="white-space: pre-wrap;"&gt;If you do have a chance - wait for next generation. Having in mind how much Prime got better compared to it's precesessor, next one should be awesome. However if you need a tablet right now - it is so far the best tablet experience I had so far. Sure I can compare only to Samsung Galaxy Tab 10.1 and iPad, but damn this one is good.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="vertical-align: baseline;"&gt;&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span style="font-size: large;"&gt;Bad&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: 16px; white-space: pre-wrap;"&gt;&lt;b&gt;Grey color looks purple&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Prime is available in two collors - silver and grey, atleast these two collors are being written on specification in shops I've looked at. Silver looks like elephant tusk (yellowish white) and grey model looks dark purple... Nowhere near grey. Not that I would care that mutch about collor, but still it would be nice to be happy about it. For now I can say my purple model is &lt;strike&gt;a bit ugly&lt;/strike&gt; OK (after living with it few days).&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="white-space: pre-wrap;"&gt;Brushed aluminium looks like pre-&lt;/span&gt;&lt;/b&gt;&lt;span style="white-space: pre-wrap;"&gt;&lt;b&gt;scratched&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Prime is also proud about it's metal "spun" finish. It looks as if someone would scratch it in circular motion, nothing special. Sure usualy you will find brushed aluminium to be done in straight lines, but the visual effect of this is just too small to be worth bragging so much about it.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 16px; white-space: pre-wrap;"&gt;&lt;b&gt;Connection protectors - one time deal&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Most of the connection slots are protected by soft plastic plugs that are quite hard to pull out. Also they are perfect parts to loose. So that is what I sugest you - just pull it out if you need that port and forget the plug...&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 16px; white-space: pre-wrap;"&gt;Sloped edge connectors&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-WDX5ub60JA0/T14VgNSN6DI/AAAAAAAAA08/Rhgs4Np1ORE/s1600/IMAG0019.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="377" src="http://2.bp.blogspot.com/-WDX5ub60JA0/T14VgNSN6DI/AAAAAAAAA08/Rhgs4Np1ORE/s640/IMAG0019.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style="font-size: 16px; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Tablet has sloping edges that give smooth finish. It sure looks nice, but sticking in headphone jack will mean that on the shorter side of the connector - will stick out ~3-4mm in my case. It applies to most of the connectors, yet the most problematick might be jack one since with uncarefull actions you might damage both the plug annd the socket although build quality seems to be strong.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 16px; white-space: pre-wrap;"&gt;&lt;b&gt;Noise when music app is paused&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="vertical-align: baseline;"&gt;&lt;span style="white-space: pre-wrap;"&gt;Sometimes when &lt;/span&gt;&lt;strike style="font-size: 16px; font-weight: normal; white-space: pre-wrap;"&gt;music&lt;/strike&gt;&lt;span style="white-space: pre-wrap;"&gt; app that uses sound channel is paused/muted I can hear noise in my headphones. It may be due to connector, but having in mind that I've used my headphones on numerous devices and this is the first one to have white-noise i'm blaming jack socket or the software.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 16px; white-space: pre-wrap;"&gt;&lt;b&gt;Fingerprints&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;It is litteraly fingerprint maget. Although fingerprints are not that visible but they also are a bit harder to clean than from other devices (I'm talking abouth both - the screen and metal finish).&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 16px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;span style="font-size: 16px; white-space: pre-wrap;"&gt;&lt;b&gt;Heavy&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;As from tablet I would like that It would be bit lighter. Adding keyboard means the unit will weight over a kilo.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;b style="font-size: 16px; white-space: pre-wrap;"&gt;No Linux support&lt;/b&gt;&lt;br /&gt;
&lt;span style="vertical-align: baseline;"&gt;&lt;span style="white-space: pre-wrap;"&gt;Asus putted in some really nice apps for syncing, remote desktom and even streaming, yet non of those work under Linux. Pity.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="white-space: pre-wrap;"&gt;Lousy mono speaker&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="vertical-align: baseline;"&gt;&lt;span style="white-space: pre-wrap;"&gt;Although Asus claims that they added stereo speakers, in reality there is only one. And after making some stereo tests it's clearly mono one, just maybe with seperated mid and low sound channels (doubt it). Also some people are angry that they putted in just where right handed people are holding tablet it self thus covering the speakers, but I think this is better decision that putting it on a side in other place (with exception of top/bottom center). Why? Covering grills disturbs the sound waves making them spread to any dirrection available so if you're not holding it firmly you might feel "stereo" effect. If you're on a dock, then it's totaly mono. On the right side only. Yup. It's like a youtube video just with right channel. After some time it becomes painfull to listen. I have to mention that quality of the speaker it self is actually good. It's just that it is mono and placement could be better.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 16px; white-space: pre-wrap;"&gt;&lt;b&gt;No F row&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-P7qX-UcsOtM/T14Uyk7my6I/AAAAAAAAA0U/Wl1yPEfymaI/s1600/IMG_20120309_172619.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://1.bp.blogspot.com/-P7qX-UcsOtM/T14Uyk7my6I/AAAAAAAAA0U/Wl1yPEfymaI/s640/IMG_20120309_172619.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-size: 16px; white-space: pre-wrap;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Keyboard dock does not have F row keys. Yes Android does not need it, but if you connect to a remote machine via rdp/vnc/ssh you only will be able to access those true the screen if app will allow it. I think it would be an wesome if prime dock would have those accessible with fn+shortcut key.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;b style="font-size: 16px; white-space: pre-wrap;"&gt;Random reboots&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;I've witnesed few random reboots. 4 so far.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;b style="font-size: 16px; white-space: pre-wrap;"&gt;App refresh on keyboard plug/unplug&lt;/b&gt;&lt;br /&gt;
&lt;span style="vertical-align: baseline;"&gt;&lt;span style="white-space: pre-wrap;"&gt;If you're whatching youtube video on full-screen or playng game, after connecting/disconnecting dock - app will be refreshed restarting the game or reloading youtube video. Annoying.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 16px; white-space: pre-wrap;"&gt;&lt;b&gt;Slippery bottom&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Although dock has rubber feets, it is quite slippery when opened since only front feet touches the surface and back ones are raised by hinge so pushing it from the table is not that hard. When closed it's quite steady.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 16px; white-space: pre-wrap;"&gt;&lt;b&gt;Only few languages for dock&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;There is not a lot to say more. Samsung clearly does care a bit more that Asus about adding other keyboard layouts. And remmember that on-screen keyboard layout might be customized with additional apps while dock cannot. Atleast it is my initial impression, I hope I'm wrong.&lt;/span&gt;&lt;br /&gt;
&lt;b style="font-family: inherit; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b style="font-family: inherit; white-space: pre-wrap;"&gt;Box contains&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: inherit; white-space: pre-wrap;"&gt;There were literally charger and USB to proprietary connector. Oh and a wiper. That's it. I hoped to get more gadgets by it. Mini HDMI to HDMI converter maybe? Although I must say it was known to me. Still, this is a field where they can do better.&lt;/span&gt;&lt;br /&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span style="font-size: large;"&gt;Good&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: 16px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;span style="font-size: 16px; white-space: pre-wrap;"&gt;&lt;b&gt;Aluminium&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;It is covered in cold and nice aluminium (with exception of front side of tablet). It mght be negative thing for some, but I do really love it.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;b style="font-size: 16px; white-space: pre-wrap;"&gt;No heating&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Because of aluminium ability to transfer heat, even on high loads or charging, it remains cold. The only part that gets hot is the charger it self.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 16px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;span style="font-size: 16px; white-space: pre-wrap;"&gt;&lt;b&gt;Screen&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-zmAzs0TiLBo/T14UyoWCUnI/AAAAAAAAA0U/vgb4zZ8rpjw/s1600/Screenshot_2012-03-09-22-16-13.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/-zmAzs0TiLBo/T14UyoWCUnI/AAAAAAAAA0U/vgb4zZ8rpjw/s640/Screenshot_2012-03-09-22-16-13.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-size: 16px; white-space: pre-wrap;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style="vertical-align: baseline;"&gt;&lt;span style="white-space: pre-wrap;"&gt;Every single review I've looked at commented how good the screen was yet some mentioned - "hey there are some problems with wifi, but you already know it!". Sure regarding the tablet it is one of the main features and boy oh boy it is good. Sure iPad3 now offers cosmical resolution, but i doubt if you need that much on such small screen. The only thing that would be cool is better resolution output true HDMI (maybe it does, haven't tested it yet) besides that I doubt that you would see a difference on the screen. Maybe. Anyway, screen is gorgeous. Crystal clear, bright and sharp.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;b style="font-size: 16px; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b style="font-size: 16px; white-space: pre-wrap;"&gt;Build quality&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;You feel that it is premium product. No squeeking, no wobling... Apple once was famous because of quality. This goes on the same road.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-size: 16px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;b&gt;Keyboard/dock advantage&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="vertical-align: baseline;"&gt;&lt;span style="white-space: pre-wrap;"&gt;Keyboard is as in the regullar notebook, reminds me Apple MacBook. Personally - quite comfortable having in mind that I'm holding it on my knees. Sure after long time of typing your hands might start to hurt, but it a common problem with all the notebooks.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;b style="font-size: 16px; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b style="font-size: 16px; white-space: pre-wrap;"&gt;CPU power&lt;/b&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-vAPqKmRz3os/T14Uysc02OI/AAAAAAAAA0U/oaaBHfR2dk4/s1600/Screenshot_2012-03-09-22-42-44.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/-vAPqKmRz3os/T14Uysc02OI/AAAAAAAAA0U/oaaBHfR2dk4/s640/Screenshot_2012-03-09-22-42-44.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b style="font-size: 16px; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/b&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;As with all Androids from time to time you will ran into rare studdering, but besides that it is the soothest expirience so far even with quite a few apps running.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;b style="white-space: pre-wrap;"&gt;Sound true headphones&lt;/b&gt;&lt;br /&gt;
&lt;span style="vertical-align: baseline;"&gt;&lt;span style="white-space: pre-wrap;"&gt;Although speaker on the tabled is a shame - sound comming true headphones is astounding. I haven't got a portable device with such hight quality in years. Besides that bug of noise on paused songs, there are no white-noise in the background while playing and music is crisp and ritch. I know that it is my new favorite device for music listening.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 16px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;span style="font-size: 16px; white-space: pre-wrap;"&gt;&lt;b&gt;1080p playback&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-Zw8xmzuNYfg/T14aOTsdhSI/AAAAAAAAA2o/g6uRQdhZ4w8/s1600/Screenshot_2012-03-10-13-06-05.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/-Zw8xmzuNYfg/T14aOTsdhSI/AAAAAAAAA2o/g6uRQdhZ4w8/s640/Screenshot_2012-03-10-13-06-05.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-size: 16px; white-space: pre-wrap;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style="white-space: pre-wrap;"&gt;Default video played does not understand all the types of videos, but MX player does understand quite a lot of them. Also VLC is coming to town... And if Prime understands the codecs - it can playback 1080p. Great!&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b style="font-size: 16px; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b style="font-size: 16px; white-space: pre-wrap;"&gt;Battery life&lt;/b&gt;&lt;/div&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;That is another ace of prime. Dock contains another battery extending battery life. &lt;strike&gt;So far I unloaded doc's battery within 6-7 hours so I don't know yet how long tablet battery will last.&lt;/strike&gt; Having a dock  means that at most you will need to charge it once a day. At most. For me it lasted ~14 hours or so of constant usage on a single charge.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 16px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;span style="font-size: 16px; white-space: pre-wrap;"&gt;&lt;b&gt;Initial app set&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-__wb7jmaJC4/T14UyooJH3I/AAAAAAAAA0U/mNltqrRytss/s1600/Screenshot_2012-03-09-22-38-39.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/-__wb7jmaJC4/T14UyooJH3I/AAAAAAAAA0U/mNltqrRytss/s640/Screenshot_2012-03-09-22-38-39.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-size: 16px; white-space: pre-wrap;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;I own HTC Desire Z that by default contains a crap ton of apps that I don't need. Facebook, Amazon MP3 Store and so on. Also I cannot delete them and that annoys me. On this tablet on the other hand, I havent found a totaly uselless app. Maybe some news readers are not as needed but besides that there are ton of really good apps. Polaris office syncs with google docs and is perfect for Android, file manager is also really easy and nice to use. Asus really thought about what to stick in instead of trowing in what brings money.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: 16px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;b&gt;Wifi&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="vertical-align: baseline;"&gt;&lt;span style="white-space: pre-wrap;"&gt;In quite a few reviews it mentioned wifi problems, that wifi signal is weak due to aluminium backplate. To be honest, I can't see that happening. My laptop has quite bad wifi and phone (since it is a small device) has one even worse. I h&lt;span style="font-family: inherit;"&gt;oped that this one would have atleast same strength antenna as my phone, yet it has almost as strong as my laptop, if not the same. So I really cannot say that wifi signal is that weak. Because of that many negative reviews I can say it is a good thing since I underestimated it.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;b&gt;Mini HDMI connection.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="white-space: pre-wrap;"&gt;I'm looking forward to test it out.&lt;/span&gt;&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span style="font-size: large;"&gt;Conclusion&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;strike&gt;Latter on (after a month or so) I'll try to post an update about this thus making it a proper review&lt;/strike&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: inherit; vertical-align: baseline; white-space: pre-wrap;"&gt;I have updated only a little of this one, but I've finally have written &lt;a href="http://blog.jackleo.info/2012/09/asus-transformer-prime-revisited-or.html"&gt;follow-up here&lt;/a&gt;.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit; white-space: pre-wrap;"&gt;Despite all that nagging with negative things so far it is worth this status:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: 16px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-ASTu-UUwx1Y/T14Xi1crHpI/AAAAAAAAA1U/JSLOgsy2JvU/s1600/1726009-shut_up_and_take_my_money_super.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-ASTu-UUwx1Y/T14Xi1crHpI/AAAAAAAAA1U/JSLOgsy2JvU/s1600/1726009-shut_up_and_take_my_money_super.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=1AoZsSqGmG4:6DMULV0GZ_U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=1AoZsSqGmG4:6DMULV0GZ_U:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?i=1AoZsSqGmG4:6DMULV0GZ_U:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=1AoZsSqGmG4:6DMULV0GZ_U:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=1AoZsSqGmG4:6DMULV0GZ_U:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JackleoBetaBlog/~4/1AoZsSqGmG4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jackleo.info/feeds/3431888618206010533/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.jackleo.info/2012/03/asus-transformer-prime-and-android-ics.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/3431888618206010533?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/3431888618206010533?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JackleoBetaBlog/~3/1AoZsSqGmG4/asus-transformer-prime-and-android-ics.html" title="Asus Transformer Prime and Android ICS first impressions" /><author><name>Domantas Jackūnas</name><uri>https://plus.google.com/108376953135167752994</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-ITtwCKbxxXs/AAAAAAAAAAI/AAAAAAAABL8/su-QBXXCDbY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-pf2G1pLX6BY/T14kIVsFcjI/AAAAAAAAA3A/W1i87zqFRTI/s72-c/ASUS-Transformer-Prime.jpg" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Vilnius</georss:featurename><georss:point>54.6893865 25.2800243</georss:point><georss:box>54.542542 24.9641673 54.836231 25.595881300000002</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://blog.jackleo.info/2012/03/asus-transformer-prime-and-android-ics.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIGRnY9eSp7ImA9WhVTGUo.&quot;"><id>tag:blogger.com,1999:blog-2679033943941403050.post-5792571862843203505</id><published>2012-03-05T19:39:00.002+02:00</published><updated>2012-03-05T20:35:27.861+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-05T20:35:27.861+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="loop" /><category scheme="http://www.blogger.com/atom/ns#" term="for" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="python" /><title>IT Window - For Loop</title><content type="html">&lt;span style="font-size: large;"&gt;WTF?&lt;/span&gt;&lt;br /&gt;
IT Window is a new series of articles special for younger people who are "into computers". I have a friend who is learning programming and looking over to "big boys" tools, and sure he have some questions, those still occurs even after reading tutorial or two. Here is the place where I step in and try to help him by writing these articles. Sure samples could be done better, but I try to use as simple format as possible avoiding one liners.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Wikipedia&lt;/span&gt;&lt;br /&gt;
In computer science a for loop is a programming language statement which allows code to be repeatedly executed. A for loop is classified as an iteration statement.&lt;br /&gt;
Unlike many other kinds of loops, such as the while loop, the for loop is often distinguished by an explicit loop counter or loop variable. This allows the body of the for loop (the code that is being repeatedly executed) to know about the sequencing of each iteration. For loops are also typically used when the number of iterations is known before entering the loop. For loops are shorthand way to make loops when the number of iterations is known, as a for loop can be written as a while loop.&lt;br /&gt;
The name for loop comes from the English word for, which is used as the keyword in most programming languages to introduce a for loop. The loop body is executed "for" the given values of the loop variable, though this is more explicit in the ALGOL version of the statement, in which a list of possible values and/or increments can be specified.
In FORTRAN and PL/I though, the keyword DO is used and it is called a do loop, but it is otherwise identical to the for loop described here.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://en.wikipedia.org/wiki/For_loop"&gt;http://en.wikipedia.org/wiki/For_loop&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Simple&lt;/span&gt;&lt;br /&gt;
For loop is a method/function that runs for certain time - for 5 minutes, for 5 times, for 5 objects, etc. During each cycle it usually contains value that changes each time.
Lets show it using pseudo-code. Lets say we have 4 friends and we want to give each a number from 1 to 10, without a loop it would look something like this:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;Step to friend #1
    give him a number 1
Step to friend #2
    give him a number bigger than last one by 1
Step to friend #3
    give him a number bigger than last one by 1
Step to friend #4
    give him a number bigger than last one by 1&lt;/code&gt;&lt;/pre&gt;
Already see repeating part? so with for loop we could do that:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt; For each friend
    Give number bigger than previous&lt;/code&gt;&lt;/pre&gt;
OK different situation - lets say we have two numbers (2 and 100) and we want to find even numbers between those two. No I won't write pseudo-code without a loop (that would be just spamming), but if we would use for loop:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;For each number starting with 2 ending with 100
    if its even
        shout "EVEN!"
    else
        shout "D'OH!"&lt;/code&gt;&lt;/pre&gt;
So each time (each number or loop) we would take the same variable that contains new number and look if its even or not, if its even we shout "EVEN!" if not - we shout "D'OH!".&lt;br /&gt;
&lt;br /&gt;
And our third and final situation - lets say we have unknown number of apples, some are yellow, some are red and some are green. We want to count each color. In our mind it's simple task, just look at each apple and count different colors. With for cycle we do the same:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;For each apple
    look at the color
    add +1 to that color&lt;/code&gt;&lt;/pre&gt;
After this we would have 3 values each representing different color and count.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Python&lt;/span&gt;&lt;br /&gt;
Now lets do the same in real programming language - Python!&lt;br /&gt;
&lt;br /&gt;
For our first case - firstly define our list of friends and base number:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;friend_list = [['John', 0], ['Tom', 0], ['Billy', 0], ['Harry', 0]]
number = 0&lt;/code&gt;&lt;/pre&gt;
Now lets do the loop:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;for friend in friend_list:
    number += 1
    friend[1] = number&lt;/code&gt;&lt;/pre&gt;
Have in mind that Python starts counting from 0, so second element in list is reached with array key 1 not 2. So now if we would run:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;print friend_list&lt;/code&gt;&lt;/pre&gt;
We get:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;[['John', 1], ['Tom', 2], ['Billy', 3], ['Harry', 4]]&lt;/code&gt;&lt;/pre&gt;
Now lets do the second case:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;for number in range(2, 100):
    if number % 2 == 0:
        print number, 'is even'
    else:
        print number, 'is odd'&lt;/code&gt;&lt;/pre&gt;
Yep, to go from one number to another just use range(), easy eh? OK now the final one. Lets define our apples and colors:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;apples = ['yellow', 'green', 'red', 'yellow', 'red', 'red']
green, red, yellow = 0, 0, 0 # All colors have 0 value&lt;/code&gt;&lt;/pre&gt;
Now simple for loop:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;for apple in apples:
    if apple == 'yellow':
        yellow += 1
    if apple == 'red':
        red += 1
    if apple == 'green':
        green += 1&lt;/code&gt;&lt;/pre&gt;
So final result is:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;print 'yellow = ', yellow, ' red = ', red, ' green = ', green&lt;/code&gt;&lt;/pre&gt;
And we sure get:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;yellow = 2  red = 3  green = 1&lt;/code&gt;&lt;/pre&gt;
More about For loop in Python - &lt;a href="http://wiki.python.org/moin/ForLoop"&gt;http://wiki.python.org/moin/ForLoop&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Notes&lt;/span&gt;&lt;br /&gt;
In most more basic languages such as Pascal we would need to know how many elements there are in the array therefore #1 and #3 samples are different since in #3 we don't know the number of apples, yet in Python it's not a problem. In other languages we firstly would count elements in the array using some libs or hold a number somewhere to determine count of data inside an array.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=PdejvioUK0M:GC5mOua_aYI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=PdejvioUK0M:GC5mOua_aYI:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?i=PdejvioUK0M:GC5mOua_aYI:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=PdejvioUK0M:GC5mOua_aYI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=PdejvioUK0M:GC5mOua_aYI:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JackleoBetaBlog/~4/PdejvioUK0M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jackleo.info/feeds/5792571862843203505/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.jackleo.info/2012/03/it-window-for-loop.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/5792571862843203505?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/5792571862843203505?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JackleoBetaBlog/~3/PdejvioUK0M/it-window-for-loop.html" title="IT Window - For Loop" /><author><name>Domantas Jackūnas</name><uri>https://plus.google.com/108376953135167752994</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-ITtwCKbxxXs/AAAAAAAAAAI/AAAAAAAABL8/su-QBXXCDbY/s512-c/photo.jpg" /></author><thr:total>0</thr:total><georss:featurename>Vilniaus</georss:featurename><georss:point>54.6893865 25.2800243</georss:point><georss:box>54.542542 24.9641673 54.836231 25.595881300000002</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://blog.jackleo.info/2012/03/it-window-for-loop.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MFQ3wzeip7ImA9WhVTGUs.&quot;"><id>tag:blogger.com,1999:blog-2679033943941403050.post-7813098074648692856</id><published>2012-02-23T00:01:00.001+02:00</published><updated>2012-03-05T19:43:32.282+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-05T19:43:32.282+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="zsh" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="bash" /><category scheme="http://www.blogger.com/atom/ns#" term="terminal" /><category scheme="http://www.blogger.com/atom/ns#" term="shell" /><title>Stop Bashing on Linux Terminal and Start Using Zsh</title><content type="html">&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Zsh? Bash? Dude... WTF?&lt;/span&gt;&lt;br /&gt;
If you are new to the Linux world or haven't really been into it you might have seen or heard of such scary program - Terminal. It's basically a window to the past when everything was not ran true nice graphical user interface (GUI), but rather true text inputs or ASCII looking ugly programs. Remember Windows XP or older Windows installations? That's what we call ncurses looks. Sure I must say/write that most of the programs that use ncurses looks a lot better so sorry if I made someone angry by this comparison...&lt;br /&gt;
&lt;br /&gt;
Anyway back to the point... So people uses this window to the past to use some sort of&amp;nbsp;command&amp;nbsp;line tools or &amp;nbsp;programs and the tool that understands those calls and runs proper programs inside that window is ussually bash... Or as I now will propose - Zsh. Why this matters? Terminal can do stuff a lot faster since typing is faster than point and click also it's distraction free and easy on your resources. Really!&amp;nbsp;Therefore most of Linux wolfs heavily uses terminal.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Perfection lies in simplicity&lt;/span&gt;&lt;br /&gt;
If so - Zsh if far from perfect. Yet small and simple parts of it brings it so much closer. If you tried Zsh before, you probably haven't noticed a huge difference to the bash, also you might think that bash has better integration to current Linux distributions (better looking prompts), but under certain point of customization it becomes insignificant what integration is done for the distribution you are using and if you like personalizing stuff as much as possible, you will like Zsh.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;So just change bash to Zsh?&lt;/span&gt;&lt;br /&gt;
No. Zsh alone is pretty boring (just as bash is), unless you at the end of the line of geekyness and you don't like what others has to offer, or you just don't care about using terminal.&lt;br /&gt;
So the magical pack is called "Oh My Zsh!", it just trows a pile of configs on top of Zsh, and allows you to change anything you like.&lt;br /&gt;
It adds multiple aliases (for e.a. sudo==_) and allows to use themes. Sure it also brings full configuration for Zsh after which you are able to navigate in terminal easier.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Give me samples!&lt;/span&gt;&lt;br /&gt;
O.K. For example if you previously executed 'vi foo' and then 'ls ~', after pressing up arrow you will be given command 'ls ~' just like in bash, but if you would start typing 'vi' and press up, it would give only those history results that starts with 'vi'. Cool eh?&lt;br /&gt;
&lt;br /&gt;
Some more. If in your $HOME directory you have a file 'Documents', and you would start typing 'doc', press &amp;lt;TAB&amp;gt; - it would autocomplete to 'Document' fixing the first letter, sure having in mind if there would not be any documents/files starting with 'doc'. Remember in Linux capital and non-capital letters are different.&lt;br /&gt;
&lt;br /&gt;
All of this was just Zsh, but combining yih "Oh My Zsh" you get good looking and smooth terminal experience. Why I say so? Because that magic pack also adds some aliases that fixes your common mistakes. For e.a. if you miss 'cd' at the beginning of command and you would just type folder name it would automatically go to that directory.&lt;br /&gt;
&lt;br /&gt;
Or for example have you ever typed 'sl' instead of 'ls'? It also fixes that (sorry steam&amp;nbsp;locomotive&amp;nbsp;fans). &lt;br /&gt;
&lt;br /&gt;
For more complicated mistypes ('emaxs' instead of 'emacs') in case when Zsh would not find 'emaxs' executable it would ask if you mistyped 'emaxs' and would like to fix it to 'emacs' [Y/N]? Now thats really neat.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Thats it? Bash have awesome configs too!&lt;/span&gt;&lt;br /&gt;
At first those things looks small, but latter on they become so important that you will stick Zsh in every single of your machines, believe me...&lt;br /&gt;
&lt;br /&gt;
Also one of now my favorite Zsh features is globbing.&lt;br /&gt;
&lt;br /&gt;
Usually if you use wildcard '*' in a command you probably referring to every single file in (lets say) current directory, Zsh allows to use '**/*' that means not only every file in current directory but also all the files within folders that are in current directory. And to objection to your -R comment, just have in mind that not all tools (especially&amp;nbsp;small ones) have support for&amp;nbsp;recursion.&lt;br /&gt;
&lt;br /&gt;
As with wildcard (*) you can use full patters with this. '**/*.py' will find all .py files.&lt;br /&gt;
&lt;br /&gt;
Zsh has really good regular expression engine build in so finding files for commands is really easy.&lt;br /&gt;
&lt;br /&gt;
It can also give you files modified within past 24 hours or with certain permissions just out of a simple shell, completely replacing 'find' and pipes (|).&lt;br /&gt;
&lt;br /&gt;
All of it is nicely covered here by Stanford university: &lt;a href="http://openclassroom.stanford.edu/MainFolder/VideoPage.php?course=PracticalUnix&amp;amp;video=zsh-globbing&amp;amp;speed=100"&gt;http://openclassroom.stanford.edu/MainFolder/VideoPage.php?course=PracticalUnix&amp;amp;video=zsh-globbing&amp;amp;speed=100&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;So How to Install This?&lt;/span&gt;&lt;br /&gt;
Simple, just install Zsh (It should be available on most of major/alive distribution within standard packages). Then install git if you don't have it.&lt;br /&gt;
&lt;br /&gt;
Finally follow instructions on&amp;nbsp;&lt;a href="https://github.com/robbyrussell/oh-my-zsh"&gt;https://github.com/robbyrussell/oh-my-zsh&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
P.S. I do trust automated installer option - it works.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Anything else?&lt;/span&gt;&lt;br /&gt;
Just look at the Oh my zsh wiki (first link above). Also you might look up Zsh reddit community at&amp;nbsp;&lt;a href="http://reddit.com/r/zsh"&gt;http://reddit.com/r/zsh&lt;/a&gt;&amp;nbsp;besides that - just give it a week or so, you'll like it.&lt;br /&gt;
&lt;br /&gt;
Also as&amp;nbsp;suggested&amp;nbsp;by &lt;a class="cs2K7c qk xs" href="https://plus.google.com/108956878818216492486" oid="108956878818216492486" rel="nofollow" style="background-color: white; color: #3366cc; cursor: pointer; font-family: arial, sans-serif; font-size: 13px; line-height: 18px; text-decoration: none;"&gt;Alexander&lt;/a&gt;&amp;nbsp;these links are also worth checking out if you're&amp;nbsp;interested&amp;nbsp;in scripting:&lt;br /&gt;
&lt;a href="http://www.linux-mag.com/id/1079/"&gt;http://www.linux-mag.com/id/1079/&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://grml.org/zsh/zsh-lovers.html"&gt;http://grml.org/zsh/zsh-lovers.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Happy usage, Over and Out.&lt;br /&gt;
JackLeo&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=1v61V2FF4sc:sNrnY_CUCFg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=1v61V2FF4sc:sNrnY_CUCFg:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?i=1v61V2FF4sc:sNrnY_CUCFg:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=1v61V2FF4sc:sNrnY_CUCFg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=1v61V2FF4sc:sNrnY_CUCFg:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JackleoBetaBlog/~4/1v61V2FF4sc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jackleo.info/feeds/7813098074648692856/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.jackleo.info/2012/02/stop-bashing-on-linux-terminal-and.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/7813098074648692856?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/7813098074648692856?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JackleoBetaBlog/~3/1v61V2FF4sc/stop-bashing-on-linux-terminal-and.html" title="Stop Bashing on Linux Terminal and Start Using Zsh" /><author><name>Domantas Jackūnas</name><uri>https://plus.google.com/108376953135167752994</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-ITtwCKbxxXs/AAAAAAAAAAI/AAAAAAAABL8/su-QBXXCDbY/s512-c/photo.jpg" /></author><thr:total>0</thr:total><georss:featurename>Vilnius, Lithuania</georss:featurename><georss:point>54.6893865 25.2800243</georss:point><georss:box>54.542542 24.9641673 54.836231 25.595881300000002</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://blog.jackleo.info/2012/02/stop-bashing-on-linux-terminal-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQHQH47fyp7ImA9WhRaGUk.&quot;"><id>tag:blogger.com,1999:blog-2679033943941403050.post-7544360319689389303</id><published>2012-02-14T20:34:00.003+02:00</published><updated>2012-02-23T00:05:31.007+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-23T00:05:31.007+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Vim" /><category scheme="http://www.blogger.com/atom/ns#" term="editor" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>My valentine day's post for Vim</title><content type="html">&lt;span style="font-size: large;"&gt;WTF is Vim?&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
From vim.org:&lt;/div&gt;
&lt;div&gt;
&lt;blockquote class="tr_bq"&gt;
Vim is a highly configurable text &lt;b&gt;editor&lt;/b&gt; built to enable efficient text &lt;b&gt;editing&lt;/b&gt;. It is an improved version of the vi &lt;b&gt;editor&lt;/b&gt; distributed with most UNIX systems.&lt;br /&gt;
Vim is often called a "programmer's &lt;b&gt;editor&lt;/b&gt;," and so useful for programming that many consider it an entire&amp;nbsp;&lt;abbr title="integrated
development environment"&gt;IDE&lt;/abbr&gt;. It's not just for programmers, though. Vim is perfect for all kinds of text &lt;b&gt;editing&lt;/b&gt;, from composing email to &lt;b&gt;editing&lt;/b&gt; configuration files.&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;
Asides the official/commercial crap it's a&amp;nbsp;minimalistic&amp;nbsp;&lt;b&gt;editor&lt;/b&gt;&amp;nbsp;meant&amp;nbsp;for text &lt;b&gt;editing&lt;/b&gt;. It has a totally different&amp;nbsp;approach to &lt;b&gt;editing&lt;/b&gt; so it takes some time&amp;nbsp;learn it. Yet it is&amp;nbsp;impossible&amp;nbsp;to completely master it. Why? Because it has almost infinite ways to be customized and there will always be a something that you forgot/did not knew about it. Despite that it is really small.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-size: large;"&gt;Why do people use it?&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
Vim&amp;nbsp;usually&amp;nbsp;comes with all major Linux distributions (or&amp;nbsp;at least&amp;nbsp;Vi - older and even smaller version of Vim). So it means that if you ssh to a server - you probably will find Vim to &lt;b&gt;edit&lt;/b&gt; files/configs with.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
It's cross platform so you can have same &lt;b&gt;editor&lt;/b&gt; (with mostly same configuration and same look and feel) in your Linux server, Mac home box and Windows&amp;nbsp;work-desk.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Since it has&amp;nbsp;crap-tons&amp;nbsp;of plugins - it can be extended to change IDE.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-size: large;"&gt;Options&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
As mentioned before - it has crap-tons &amp;nbsp;of plugins so you can end up most of the arguments with - "there is a plugin for that". Sure with the exception of image processing. That's left for Emacs.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Also if you don't like cmd/terminal apps there is GUI versions of vim as well, but&amp;nbsp;primarily&amp;nbsp;I concentrate on Terminal version, because I'm geek like that. Sure there is even different spins of Vim (pre-configured Vim's) or easy Vim (evim), but I tend to ignore those as well, because in the end you will end up with your own version of Vim anyways...&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-size: large;"&gt;But IDE is made for development of &amp;lt;insert programming language here&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
Yes. And it works as a charm. Some of the IDE's can handle even few languages, but what happens if you need to &lt;b&gt;edit&lt;/b&gt; just a config file? Using same IDE would be overkill. Just to load damn thing would take a&amp;nbsp;considerable&amp;nbsp;amount&amp;nbsp;of time. So you would load up tiny text &lt;b&gt;editor&lt;/b&gt; of some sort (just for that [sometimes edit a config file] learning Vim is not worth your time since you would just drop in, make changes and get out).&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
But what happens when you enter that tiny &lt;b&gt;editor&lt;/b&gt;? Suddenly it becomes harder to navigate, there is no auto-completion, no tags, no manual shortcuts or what not.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Yes I am aware that you can config gedit or other small &lt;b&gt;editor&lt;/b&gt; to do quick tasks, but I'm trying to make a point so shut up. Also you cannot use gedit in Linux server. If you can - this means you have GUI there and that means that you're doing the whole server wrong - it's not windows. Back to the point.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
IDE is meant for specific task. Like a screwdriver for a screw or hammer for the nail. But when it comes to different&amp;nbsp;situations&amp;nbsp;either&amp;nbsp;you have to spend a lot of time reconfiguring damn thing or you will do a sloppy job using the very same IDE. Sure hammered in screw will hold, but one day you might end up screwing a nail...&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-size: large;"&gt;Whole academic world uses Emacs!&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
That's not entirely true. Yes Emacs is a lot more popular in academic world and I know few&amp;nbsp;professors&amp;nbsp;who use it, also database&amp;nbsp;Stanford&amp;nbsp;online courses was recorded while professor was using Emacs. Yet if you would look at system administrators - Vim is a lot more popular there as well so 1-1.&lt;br /&gt;
&lt;br /&gt;
Jokes&amp;nbsp;aside&amp;nbsp;Emacs is a great tool to create text. Yet I personally don't like it's ideology. It&amp;nbsp;tries&amp;nbsp;to become&amp;nbsp;everything at one. Need an extra terminal window - here Emacs terminal. Want to see that picture - here you go. Want to watch that film sure!? So Emacs tries to be your OS and change tools that is meant for&amp;nbsp;specific&amp;nbsp;tasks to make things more "unite". That's why there is a joke that Emacs is a great OS, yet it lacks decent text &lt;b&gt;editor&lt;/b&gt; and I have to say it is soo true. So if you need complete and easy package for doing anything - Emacs way to go. But If you leave films for tools such as VLC and in search for tool to &lt;b&gt;edit&lt;/b&gt; text - Vim is way to go.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-size: large;"&gt;My story&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
Why I use Vim - simple. I always fancied that hacker style desktops with tons of text and ncurses GUI's, also I love Linux and do web development - this means I have sometimes to do &lt;b&gt;editing&lt;/b&gt;/configuration in servers and I wanted a tool that would be the same in everywhere. Oh and Ubuntu server (I started my Linux career there) have Vi pre-installed.&lt;br /&gt;
&lt;br /&gt;
I've used to use&amp;nbsp;heavily&amp;nbsp;configured Gedit, yet it felt lame. Potential of an &lt;b&gt;editor&lt;/b&gt;&amp;nbsp;ended up quickly... At my first Job I tried to use IDE as a "professional" developer (net-beans) yet it also did not stick. It loaded slowly, felt bulky and boring stuff taken too much screen space. It distracted me and was pain to configure/personalize. Since I knew basic usage of Vim - I started to use it more and more&amp;nbsp;especially&amp;nbsp;when few&amp;nbsp;colleges&amp;nbsp;were using it as well, they helped me to move along and showed plugin magic. Now I&amp;nbsp;wouldn't&amp;nbsp;change it to any IDE.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;So, WTF is Vim?&lt;/span&gt;&lt;br /&gt;
It's an &lt;b&gt;editor&lt;/b&gt;. Primarily - a code/configuration file&amp;nbsp;&lt;b&gt;editor&lt;/b&gt;. If you would&amp;nbsp;monitor&amp;nbsp;what you're doing with a text, you would see that most of the time you're changing text not creating it. And by changing I mean moving or&amp;nbsp;modifying&amp;nbsp;text. That's why Vim has 3 modes. To insert text (you do that the least amount of time), to manipulate text (normal mode) and to highlight text for easier bulk manipulation of it. It is build in mind that moving around has to be simple and efficient, that change text should be easy and comfortable.&lt;br /&gt;
&lt;br /&gt;
That's why academics prefer Emacs - they are creating texts, not &lt;b&gt;editing&lt;/b&gt; them and that's the same reasoning why system administrators prefer Vim - they're changing aka &lt;b&gt;editing&lt;/b&gt; config files, not creating those.&lt;br /&gt;
&lt;br /&gt;
Development is also primarily consist of existing projects support or development - extending the same project and thus requires mainly to &lt;b&gt;edit&lt;/b&gt; the code not to create it.&lt;br /&gt;
&lt;br /&gt;
Don't get me wrong by &lt;b&gt;edit&lt;/b&gt; I mean also extend it and all those fancy features for auto-completion&amp;nbsp;and syntax checking is included. As I mentioned - "there is plugin for that". Think with a bit more open mindset when reading this.&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Final notes&lt;/span&gt;&lt;br /&gt;
I had this article/post/blah in mind for over a couple of months and just now I decided to put it finally on bits, probably kilobytes... (wanted to say paper but damn that's internet)...&lt;br /&gt;
&lt;br /&gt;
The main idea is that Vim is great tool for anything you trow at it. It might not be as easy to learn and it might make you mentally ill by using "hjkl" everywhere but it is worth it.&lt;br /&gt;
&lt;br /&gt;
Some people will love it, some will hate it. So choose your own weapon for work. If you're still reading this and not writing an angry comment - it might be just for you. Otherwise I will not even bother to give a suggestion since you're not reading and you&amp;nbsp;already&amp;nbsp;have an editor you (probably) love.&lt;br /&gt;
&lt;br /&gt;
So it happens that today is Valentines day and this is how show my love to my weapon of choice. Now it's time to go home and show some love to a person I&amp;nbsp;truly&amp;nbsp;love, so I'm leaving you here with your thoughts. If you will be patient enough you will find more articles about Vim here, yet I cannot promise when it might happen or how many of these [articles] you will have to skip until mentioning Vim again.&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=eij5GiBW-ow:6-FfjgU9azY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=eij5GiBW-ow:6-FfjgU9azY:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?i=eij5GiBW-ow:6-FfjgU9azY:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=eij5GiBW-ow:6-FfjgU9azY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=eij5GiBW-ow:6-FfjgU9azY:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JackleoBetaBlog/~4/eij5GiBW-ow" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jackleo.info/feeds/7544360319689389303/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.jackleo.info/2012/02/my-valentine-days-post-for-vim.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/7544360319689389303?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/7544360319689389303?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JackleoBetaBlog/~3/eij5GiBW-ow/my-valentine-days-post-for-vim.html" title="My valentine day's post for Vim" /><author><name>Domantas Jackūnas</name><uri>https://plus.google.com/108376953135167752994</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-ITtwCKbxxXs/AAAAAAAAAAI/AAAAAAAABL8/su-QBXXCDbY/s512-c/photo.jpg" /></author><thr:total>0</thr:total><georss:featurename>Vilnius</georss:featurename><georss:point>54.6893865 25.2800243</georss:point><georss:box>54.542542 24.9641673 54.836231 25.595881300000002</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://blog.jackleo.info/2012/02/my-valentine-days-post-for-vim.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04GQ344fyp7ImA9WhVSFUs.&quot;"><id>tag:blogger.com,1999:blog-2679033943941403050.post-421937672503413785</id><published>2012-02-07T22:08:00.000+02:00</published><updated>2012-03-12T18:32:02.037+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-12T18:32:02.037+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="passwords" /><category scheme="http://www.blogger.com/atom/ns#" term="algorithm" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>Algorithmic passwords</title><content type="html">&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="line-height: 20px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; font-size: 14px; text-align: center;"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="font-size: 14px;"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-bdxFVgII4bg/T14k8AD4XlI/AAAAAAAAA3I/Zskeo0LS4yI/s1600/password_strength.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="519" src="http://2.bp.blogspot.com/-bdxFVgII4bg/T14k8AD4XlI/AAAAAAAAA3I/Zskeo0LS4yI/s640/password_strength.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-size: large;"&gt;What?! Why?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Usually we use a string for a password that we memorize it. Making a random string does help if someone tries to read while you're typing or in case of someone tries to guess it. Besides... It's pretty much useless. As shown, longer passwords are more secure, yet easy to read (steal). My old password was 11 symbols long and easy to memorize. I thought it was good and rather hard to breach. I haven't thought of other problem. What if your password would be lost because of the website, not you? Sure some may say - use few passwords! Yet again if top tear password would be breach, it could be tried for as important things and... Fuck! Or if your email password is breached most of the websites allows recovery of password using simple email form... Shit happens bro!&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-size: large;"&gt;What's the cure?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Instead of memorizing string, memorize an algorithm. If you're familiar with MD5 you may know about salting. MD5 takes a value and returns unique for that value string. Salting adds extra characters to a final string in predetermined way (not exactly, it's just a example). This makes same string have different value of MD5 than it would get in another machine so thus making brute force cracking a lot harder when salt is unknown. The final result of such algorithm is always a unique password for each service and no additional memorizing required. Its easier than it sounds.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-size: large;"&gt;Samples&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;I suggest to take a peace of paper and write down a series of test cases:&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;foo&lt;br /&gt;bar&lt;br /&gt;foobar&lt;br /&gt;se7en&lt;br /&gt;localhost&lt;br /&gt;123654&lt;br /&gt;a&lt;br /&gt;google.com&lt;br /&gt;apps.facebook.com&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Now write down salt you might use. For example birth date last numbers and first letters of your favorite poem:&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;1950-01-15 =&amp;gt; 015&lt;br /&gt;Roses are red Violets are blue =&amp;gt; RarVab&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Now come up with an algorithm. In this example lets say we will take a number of letters inside service name (apps.facebook.com =&amp;gt; facebook) then we add last number from salt.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;After this we will take first 3 letters from salt and first capitalized letter from domain.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Then we will write first and second number from our salt and if service has even number of letters we write capitalized last letter else non-capitalized second to last.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Now we end up with last three letters from salt.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Now look what kind of passwords we get:&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;foo =&amp;gt; 35RarF01oVab&lt;br /&gt;bar =&amp;gt; 35RarB01aVab&lt;br /&gt;foobar =&amp;gt; 65RarF01RVab&lt;br /&gt;se7en =&amp;gt; 55RarS01eVab&lt;br /&gt;localhost =&amp;gt; 95RarL01sVab&lt;br /&gt;123654 =&amp;gt; 65Rar1014Vab&lt;br /&gt;a =&amp;gt; 15RarA01aVab&lt;br /&gt;google.com =&amp;gt; 65RarG01EVab&lt;br /&gt;apps.facebook.com =&amp;gt; 85RarF01KVab&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"&gt;But what if I forget?!&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Chose salt that you won't forget. Also you may use some sort of written formula. For example in this case &amp;lt;C&amp;gt;&amp;lt;Snl&amp;gt;&amp;lt;Ss1&amp;gt;&amp;lt;C1&amp;gt;&amp;lt;Snf2&amp;gt;&amp;lt;eCl/sl&amp;gt;&amp;lt;Ssl&amp;gt;. If someone would read this for a moment he will definitely wont get WTF is that or especially what it means to you. While you would just read it in such manner:&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&amp;lt;C&amp;gt; - count of letters in service name&lt;br /&gt;
&amp;lt;Snl&amp;gt; - salt number last character&lt;br /&gt;
&amp;lt;Ss1&amp;gt; - Salt string first part&lt;br /&gt;
&amp;lt;C1&amp;gt; - capitalized first letter od servce name&lt;br /&gt;
&amp;lt;Snf2&amp;gt; - salt number first 2 numbers&lt;br /&gt;
&amp;lt;eCl/sl&amp;gt; - if even then capitalized last letter or else second to last letter&lt;br /&gt;
&amp;lt;Ssl&amp;gt; - salt string last part&lt;/blockquote&gt;
&lt;div&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"&gt;This looks so hard...&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;After writing these tests I already memorized it. Sure password entering will take to get used to, but after a while you will start to solve this algorithm in a split of a second just like you did multiplication table in school. Just remember - double password fields is your best friends! Yes for this you do need a certain mindset but if you still reading this you probably got it. Just remember this is only an example. Algorithm might be anything you like. Take your current password and trow in some characters from service and this will help a ton in automated attack scenario witch is the most common.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"&gt;Why the hell you need this?&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;I raised this question all the time I thought about using algorithm instead of string. Today I got a letter with title: "ACTION REQUIRED - Password issue on djangopackages.com". Here main point of this email:&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;ACTION REQUIRED - If you use the same password on djangopackages.com&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;as you use on other sites, you should change all of your passwords.&lt;/span&gt;&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;[Full disclosure: &amp;nbsp;We were alerted that some account information was&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;publicly exposed. There have been no reported incidents of passwords&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;being stolen. We have corrected this error, but as a precautionary&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;measure are moving to OAUTH, so that we don't store your password at&lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;all.]&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;No I'm not mad about this on djangopackages, It might happened to anyone. At least they got the dignity to inform its users unlikely some huge companies, moreover it forced me to use algorithmic passwords.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"&gt;Notes&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Image source: http://xkcd.com/936/&lt;/span&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=UWCOM6xEHN4:g3f8H4DukPs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=UWCOM6xEHN4:g3f8H4DukPs:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?i=UWCOM6xEHN4:g3f8H4DukPs:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=UWCOM6xEHN4:g3f8H4DukPs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=UWCOM6xEHN4:g3f8H4DukPs:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JackleoBetaBlog/~4/UWCOM6xEHN4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jackleo.info/feeds/421937672503413785/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.jackleo.info/2012/02/algorithmic-passwords.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/421937672503413785?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/421937672503413785?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JackleoBetaBlog/~3/UWCOM6xEHN4/algorithmic-passwords.html" title="Algorithmic passwords" /><author><name>Domantas Jackūnas</name><uri>https://plus.google.com/108376953135167752994</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-ITtwCKbxxXs/AAAAAAAAAAI/AAAAAAAABL8/su-QBXXCDbY/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-bdxFVgII4bg/T14k8AD4XlI/AAAAAAAAA3I/Zskeo0LS4yI/s72-c/password_strength.png" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Vilniaus</georss:featurename><georss:point>54.6893865 25.2800243</georss:point><georss:box>54.542542 24.9641673 54.836231 25.595881300000002</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://blog.jackleo.info/2012/02/algorithmic-passwords.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYEQXo6cSp7ImA9WhRbFkk.&quot;"><id>tag:blogger.com,1999:blog-2679033943941403050.post-2021225607748745900</id><published>2012-02-07T21:31:00.000+02:00</published><updated>2012-02-07T21:31:40.419+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-07T21:31:40.419+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="blog" /><category scheme="http://www.blogger.com/atom/ns#" term="me" /><title>Fresh start</title><content type="html">Hi, it's me again.&lt;br /&gt;
&lt;br /&gt;
So it happens that now I'm on blogger. Why? Mainly due to integration with Google services as well as my server being development battle ground.&lt;br /&gt;
&lt;br /&gt;
I got bored just messing up with Django simple and primitive blog so started looking at the other areas thus making blog in quite bad state as well as being unpractical. Maybe when things go better I'll perfect it and run it once again. For now - blogger it is.&lt;br /&gt;
&lt;br /&gt;
I'm going to import my old post latter on.&lt;br /&gt;
&lt;br /&gt;
Over and out - JackLeo.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=_NOkOKduDMg:czSmi-6Kay4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=_NOkOKduDMg:czSmi-6Kay4:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?i=_NOkOKduDMg:czSmi-6Kay4:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=_NOkOKduDMg:czSmi-6Kay4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JackleoBetaBlog?a=_NOkOKduDMg:czSmi-6Kay4:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JackleoBetaBlog?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JackleoBetaBlog/~4/_NOkOKduDMg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jackleo.info/feeds/2021225607748745900/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.jackleo.info/2012/02/fresh-start.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/2021225607748745900?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2679033943941403050/posts/default/2021225607748745900?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JackleoBetaBlog/~3/_NOkOKduDMg/fresh-start.html" title="Fresh start" /><author><name>Domantas Jackūnas</name><uri>https://plus.google.com/108376953135167752994</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-ITtwCKbxxXs/AAAAAAAAAAI/AAAAAAAABL8/su-QBXXCDbY/s512-c/photo.jpg" /></author><thr:total>0</thr:total><georss:featurename>Vilnius</georss:featurename><georss:point>54.6893865 25.2800243</georss:point><georss:box>54.542542 24.9641673 54.836231 25.595881300000002</georss:box><gd:extendedProperty name="commentSource" value="1" /><gd:extendedProperty name="commentModerationMode" value="FILTERED_POSTMOD" /><feedburner:origLink>http://blog.jackleo.info/2012/02/fresh-start.html</feedburner:origLink></entry></feed>
