<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6028466520176966995</id><updated>2012-01-28T04:27:58.912+02:00</updated><category term='Security'/><category term='General'/><category term='Technology'/><category term='OpenSource'/><title type='text'>Moshe on Technology</title><subtitle type='html'>Software, technology, programming, security, open source and general thoughts.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default?start-index=101&amp;max-results=100'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>171</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-694175625727001118</id><published>2012-01-07T18:11:00.000+02:00</published><updated>2012-01-07T18:11:03.200+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>Using App.Config in IronPython</title><content type='html'>I love python very much, and as you probably already noticed, I love C# as well. I already have many libraries and utilities developed in those languages, and for me, the ability to reuse code between those languages, is a must.&lt;br /&gt;So I came to know IronPython, which is a complete Python implementation for the .NET platform, using the DLR. For most of the time, the integration between the two is a breeze. All you have to do is "clr.AddReference" your .NET assemblies, and you're good to go.&lt;br /&gt;&lt;br /&gt;Unfortunately, with more complex projects, there are some caveats. Most notably is the missing ability to load app.config (or web.config, or any other .config) files from IronPython. Without diving too much into details, the reason is the way AppDomain works in .NET. It is looking for [assembly name].config file when one is requested using the ConfigurationManager. Since IronPython code is invoked with ipy.exe, the configuration file must be called ipy.exe.config. I suppose the same goes with IronRuby as well. This is a serious limitation.&lt;br /&gt;&lt;br /&gt;Thanks to Tom E. Stephans for providing &lt;a href="http://tomestephens.com/2011/02/making-ironpython-work-overriding-the-configurationmanager/"&gt;this awesome proxy&lt;/a&gt; for the ConfigurationManager. Basically, his code injects some logic to the inner workings of the ConfigurationManager, that allows us to specify which config file to be loaded. This config file will be&amp;nbsp;seamlessly&amp;nbsp;loaded by the ConfigurationManager when needed.&lt;br /&gt;Unfortunately, Tom's code doesn't exactly compile. Probably due to some copy-paste issues he had when publishing it. So I did some minor modifications, and removed the part of the code responsible for loading custom configuration sections and uploaded it to Bitbucket, so everyone can use it. The code is &lt;a href="https://bitbucket.org/moshe.basanchig/blogsamples/src/e20f186fb8ed/ConfigurationProxy"&gt;available here&lt;/a&gt;, along with a sample usage python script.&lt;br /&gt;&lt;br /&gt;Few things to keep in mind regarding my code:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It was compiled using Mono 2.10 like this:&amp;nbsp;&lt;i&gt;mcs ConfigurationProxy.cs -t:library -r:System.Configuration&lt;/i&gt;&lt;/li&gt;&lt;li&gt;It was tested both under Mono and under MS .NET framework 4.0.&lt;/li&gt;&lt;li&gt;There's a sample config file called blogsample.config which contains a demo connection string. This configuration file is loaded in test.py and the connection string is printed.&lt;/li&gt;&lt;li&gt;Just like the ".ConnectionStrings" collection is accessed, one can access the ".AppSettings" collection.&lt;/li&gt;&lt;li&gt;Since the injection is done to the ConfigurationManager, implicit usage attempts will also work. For instance, the &lt;a href="http://subsonicproject.com/"&gt;SubSonic ORM&lt;/a&gt; which requires a connection string, will work seamlessly.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Once again, kudos to Tom for his great work. I hope you will find my corrections and sample useful.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-694175625727001118?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/694175625727001118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2012/01/using-appconfig-in-ironpython.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/694175625727001118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/694175625727001118'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2012/01/using-appconfig-in-ironpython.html' title='Using App.Config in IronPython'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-4567877618371022354</id><published>2011-10-28T12:00:00.000+02:00</published><updated>2011-10-31T09:01:37.640+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>TRouBLe is Useful</title><content type='html'>Web programmers have probably seen this a lot:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;margin-top: 10px;&lt;br /&gt;margin-right: 20px; &lt;br /&gt;margin-bottom: 10px;&lt;br /&gt;margin-left:20px; &lt;/blockquote&gt;&lt;br /&gt;The reason many programmers "need" 4 lines of code for such a simple thing, is that it's impossible to set the margin (margin is just an example, since this is also true for padding/border/...) to 20px, and then override just the top margin. But isn't there a better way?&lt;br /&gt;&lt;br /&gt;Well, there is a shortcut for the above:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;margin: 10px 20px;&lt;/blockquote&gt;&lt;br /&gt;Shorter, heh?&lt;br /&gt;The parameters for attributes such as margin, are specified in this order: Top Right Bottom Left, or TRouBLe for short. CSS parsers are smart enough to apply the last specified parameters, to those that were omitted. So in the above example, I've omitted bottom and left, so the 20px value would be applied to those as well.&lt;br /&gt;The general rule is:&lt;br /&gt;* if only one value is specified - it is used for all (top, right, bottom and left)&lt;br /&gt;* if two values were specified - the first will be used for top and bottom, and the second for left and right&lt;br /&gt;* if thee values were specified - the first will be used for the top value, the second for the left and right values, and the last for the bottom value&lt;br /&gt;If I wanted to set the margin-left to 10px, I'd have to write this "long" statement:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;margin: 10px 20px 10px 10px;&lt;/blockquote&gt;Which is still shorter than the first example above.&lt;br /&gt;Many times, the shortened&amp;nbsp;syntax can be used, and save us some typing while increasing the expressiveness of CSS attributes.&lt;br /&gt;&lt;br /&gt;EDIT: It seems I messed up a bit the order in which things are shortened. Thanks for Tomer for correcting me. I've updated the post accordingly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-4567877618371022354?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/4567877618371022354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2011/10/trouble-is-useful.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4567877618371022354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4567877618371022354'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2011/10/trouble-is-useful.html' title='TRouBLe is Useful'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-6910278568257128120</id><published>2011-10-26T21:13:00.000+02:00</published><updated>2011-10-26T21:13:42.967+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>Installed Apps Doesn't Show in Market</title><content type='html'>Today I noticed an annoying bug in the Android Market application: it showed only 3 applications under the "my apps" section in the market, even though I have over a couple of dozen installed.&lt;br /&gt;&lt;br /&gt;Rebooting the device or removing the SD card didn't help.&lt;br /&gt;Being rather new to Android, I was tempted to remove the market application, and reinstall it. But Android is much like Linux, and much less like Windows, so reinstalling an application would probably retain the old settings.&lt;br /&gt;&lt;br /&gt;And then it hit me - the settings. Why not reset those?&lt;br /&gt;&lt;br /&gt;Simply go to: settings -&amp;gt; applications -&amp;gt; manage applications -&amp;gt; market -&amp;gt; clear data&lt;br /&gt;That's it. The next time the market app launches, it will rescan the installed applications, and everything will be fine again.&lt;br /&gt;That's pretty robust, even though it's in a geeky way, since I don't expect most people to do that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-6910278568257128120?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/6910278568257128120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2011/10/installed-apps-doesnt-show-in-market.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6910278568257128120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6910278568257128120'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2011/10/installed-apps-doesnt-show-in-market.html' title='Installed Apps Doesn&apos;t Show in Market'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-4048281226023265877</id><published>2011-10-21T13:10:00.000+02:00</published><updated>2011-10-21T13:10:46.776+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>Best Windows Development Environment</title><content type='html'>I know, this one is going to sound a bit crazy, but hear me out. IMHO, the best Windows development environment is Linux.&lt;br /&gt;&lt;br /&gt;First, let me start with a less surprising statement: the best way to run a Windows installation is on a VM. This should make perfect sense to anyone who runs Windows on a daily basis, and knows that as time goes by, it simply gets slower.&lt;br /&gt;No registry or other cleaning utilities can return it to run as fast as it was the day you installed it.&lt;br /&gt;Moreover, when one wants to test a new piece of software, the VM's snapshot feature really shines.&lt;br /&gt;So, every once in a while, one can revert to the a stored snapshot, and get an almost fresh Windows installation, almost instantly.&lt;br /&gt;&lt;br /&gt;When it comes to development environments, where one rarely install tools, and the code is managed in source-control, reverting to a snapshot is even easier.&lt;br /&gt;&lt;br /&gt;My second point is: use the host environment that you feel most comfortable with. In my case, it's Linux. Specifically Ubuntu. If you prefer running a Mac or a different Windows as the VM guest, it's OK as well. But I can assure you that after giving Linux a trial period as the host OS, you'll find it the most pleasant one.&lt;br /&gt;&lt;br /&gt;Moreover, if cross platform compatibility is an issue for you, having Linux *and* Windows running simultaneously, is a great advantage and a real time saver.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-4048281226023265877?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/4048281226023265877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2011/10/best-windows-development-environment.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4048281226023265877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4048281226023265877'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2011/10/best-windows-development-environment.html' title='Best Windows Development Environment'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-436603528102444310</id><published>2011-09-25T23:53:00.000+03:00</published><updated>2011-09-25T23:53:54.424+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>C# Extension Methods</title><content type='html'>One of my favorite features in C# is Extension Methods. Let me explain why.&lt;br /&gt;&lt;br /&gt;Did it ever happen to you that you needed to add a method to a class you cannot edit, and inheritance couldn't help as well?&lt;br /&gt;This can happen in various opportunities, especially when working with libraries and SDKs that uses a certain class for its internal operations, and exposes this class to the user as well.&lt;br /&gt;&lt;br /&gt;In such cases, in languages that doesn't support extension methods, the only way to add functionality to that class, is to write a "helper" class or method, and use it.&lt;br /&gt;&lt;br /&gt;C# Provides a better way.&lt;br /&gt;Let's say you have a blogging system, and you have a blog summary page, that displays only the first 100 characters of each post, as a teaser. There could be many ways to get the shortened text, but image you could have your own String class, that provides a method that displays the entire post if it's less than 100 characters long, and displays only the first 100 characters and "..." if it is longer.&lt;br /&gt;&lt;br /&gt;Have a look at the following extension method:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #393939; font-family: 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', Monaco, monospace; font-size: 11px; line-height: 1.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;"&gt;&lt;span class="k" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #004080; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;public&lt;/span&gt; &lt;span class="k" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #004080; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;static&lt;/span&gt; &lt;span class="k" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #004080; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;class&lt;/span&gt; &lt;span class="nc" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #445588; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;StringExtension&lt;/span&gt;&lt;br /&gt;&lt;a href="" name="cl-12" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: inherit; display: block; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 3px; padding-right: 3px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;/a&gt;&lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;a href="" name="cl-13" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: inherit; display: block; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 3px; padding-right: 3px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;/a&gt;        &lt;span class="k" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #004080; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;public&lt;/span&gt; &lt;span class="k" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #004080; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;static&lt;/span&gt; &lt;span class="n" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;String&lt;/span&gt; &lt;span class="nf" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #990000; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;ShortenText&lt;/span&gt;&lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="k" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #004080; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;this&lt;/span&gt; &lt;span class="n" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;String&lt;/span&gt; &lt;span class="n" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;str&lt;/span&gt;&lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;,&lt;/span&gt; &lt;span class="kt" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #445588; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;int&lt;/span&gt; &lt;span class="n" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;length&lt;/span&gt;&lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;a href="" name="cl-14" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: inherit; display: block; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 3px; padding-right: 3px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;/a&gt;        &lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;a href="" name="cl-15" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: inherit; display: block; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 3px; padding-right: 3px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;/a&gt;                &lt;span class="k" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #004080; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;if&lt;/span&gt; &lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="n" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;str&lt;/span&gt;&lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="n" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Length&lt;/span&gt; &lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;length&lt;/span&gt;&lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;a href="" name="cl-16" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: inherit; display: block; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 3px; padding-right: 3px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;/a&gt;                &lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;a href="" name="cl-17" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: inherit; display: block; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 3px; padding-right: 3px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;/a&gt;                        &lt;span class="k" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #004080; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;return&lt;/span&gt; &lt;span class="n" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;str&lt;/span&gt;&lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="n" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Substring&lt;/span&gt;&lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="m" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #009999; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;0&lt;/span&gt;&lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;,&lt;/span&gt; &lt;span class="n" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;length&lt;/span&gt;&lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;)&lt;/span&gt; &lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;+&lt;/span&gt; &lt;span class="s" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #bb8844; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;"..."&lt;/span&gt;&lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a href="" name="cl-18" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: inherit; display: block; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 3px; padding-right: 3px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;/a&gt;                &lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;a href="" name="cl-19" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: inherit; display: block; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 3px; padding-right: 3px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;/a&gt;                &lt;span class="k" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #004080; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;return&lt;/span&gt; &lt;span class="n" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;str&lt;/span&gt;&lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;a href="" name="cl-20" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: inherit; display: block; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 3px; padding-right: 3px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;/a&gt;        &lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;a href="" name="cl-21" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: inherit; display: block; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 3px; padding-right: 3px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;/a&gt;&lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Simple. This code needs very little explanation. All it does is create a new extension method for the String class that implements the logic described above. Here's a sample usage for this new method:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #393939; font-family: 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', Monaco, monospace; font-size: 11px; line-height: 1.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;"&gt;&lt;span class="n" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Console&lt;/span&gt;&lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="n" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;WriteLine&lt;/span&gt;&lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="s" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #bb8844; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;"12345678"&lt;/span&gt;&lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="n" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;ShortenText&lt;/span&gt;&lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="m" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #009999; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;5&lt;/span&gt;&lt;span class="p" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-style: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;));&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The output of this would be "12345...", as you'd expect.&lt;br /&gt;&lt;br /&gt;The possibilities of extending built-in classes provided by C# and the various libraries, such as ASP.NET MVC, are endless. Just make sure you don't abuse it.&lt;br /&gt;&lt;br /&gt;The full source code of the sample given above is &lt;a href="https://bitbucket.org/moshe.basanchig/blogsamples/src/5492b6392a54/StringExtension.cs"&gt;available&lt;/a&gt; on my bitbucket samples &lt;a href="https://bitbucket.org/moshe.basanchig/blogsamples/src"&gt;repository&lt;/a&gt;. It compiles on Mono as well as on MS C# compiler.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-436603528102444310?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/436603528102444310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2011/09/c-extension-methods.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/436603528102444310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/436603528102444310'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2011/09/c-extension-methods.html' title='C# Extension Methods'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-5963075786430343962</id><published>2011-09-23T17:50:00.000+03:00</published><updated>2011-09-23T17:50:24.927+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>Ubuntu 11.04 and Unity</title><content type='html'>For a long time I've been a 10.10 user. Probably too long. To tell you the truth, I couldn't care less. Everything was so customized to my own needs, and everything worked perfectly.&lt;br /&gt;Moreover, since most of my development nowadays is done on a Windows box, I didn't feel the urge to try something new on Linux.&lt;br /&gt;Finally, there were so many bad reviews about Unity, and "thanks" to those I had second thoughts about replacing the desktop environment.&lt;br /&gt;&lt;br /&gt;Last week I took the "risk", and you know what? I love it!&lt;br /&gt;I had 11.04 installed both on my workstation and my laptop, and I can easily say it's one of the best Ubuntu versions I used.&lt;br /&gt;&lt;br /&gt;On my laptop, I rarely connect a mouse, and I hate touchpads. This means I use the keyboard almost exclusively. Unity seems to be adapted to this, so it provides great keyboard shortcuts. Now I need the mouse even less.&lt;br /&gt;&lt;br /&gt;On the workstation, even though I have a big screen with a "big resolution", I always try to find the best utilization for the screen space real-estate. If you ever seen a those 30" mac wide monitors that have the mac dock dragged to the left edge, you know what I'm talking about.&lt;br /&gt;Unity also knows what I'm talking about.&lt;br /&gt;&lt;br /&gt;Also, performance is great, as ever. Far better than using Windows. Ubuntu never misses this one.&lt;br /&gt;&lt;br /&gt;I wish I didn't wait so long to try Ubuntu 11.04 and Unity. On the other hand, since this version is quite mature, there's a chance I saved myself some of the glitches and bugs it had 5 months ago.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-5963075786430343962?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/5963075786430343962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2011/09/ubuntu-1104-and-unity.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5963075786430343962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5963075786430343962'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2011/09/ubuntu-1104-and-unity.html' title='Ubuntu 11.04 and Unity'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-6578501960164184743</id><published>2011-09-18T00:18:00.000+03:00</published><updated>2011-09-18T00:18:31.902+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Trello and Blogging</title><content type='html'>If you're following TechCrunch Disrupt, or have been reading the recent news from Joel Spolsky, you've probably heard by now about &lt;a href="https://trello.com/"&gt;Trello&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you haven't, let me bring you up to date. Trello is a note taking application aimed to replace ordinary to-do lists and sticky notes used in project management. Every note taken, dubbed "Card", can be much more than a sticky note, as it can contain background text, votes, embedded objects and even someone "assigned" to the card. Cards are organized in lists which are organized in boards.&lt;br /&gt;If you've ever seen agile project management techniques, such as Scrum, you'll be familiar with the board filled with columns of sticky notes, and sticky notes being able to "move" between columns. That's exactly like that.&lt;br /&gt;&lt;br /&gt;So far, in order to see what Trello is worth, I've been using it to manage ideas for this blog.&lt;br /&gt;Up until now, ideas for posts where mostly in my head, with some starred items in my inbox that contains the research I did. Now, I have a board with "Ideas", "Collecting information", "Writing", "Follow comments" and "Done" columns. Finally, my ideas are organized and I have a place save the information and even order/rank the ideas before writing posts.&lt;br /&gt;&lt;br /&gt;I can see now that I have two ideas I should be working on. If you have more ideas for stuff you want me to blog about, leave a comment, and I'll treat it when this post will reach the "Follow comments" phase.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-6578501960164184743?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/6578501960164184743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2011/09/trello-and-blogging.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6578501960164184743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6578501960164184743'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2011/09/trello-and-blogging.html' title='Trello and Blogging'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-3487431380413224446</id><published>2011-08-22T23:36:00.000+03:00</published><updated>2011-08-22T23:36:04.596+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>Home Mercurial Server</title><content type='html'>I hope I'm not the only one who had this problem:&lt;br /&gt;I've been working on some code demos and web designs and wanted to having it under source control, so I could keep track on changes, work from multiple computers and generally have a backup for everything.&lt;br /&gt;For normal projects, I guess this should be done as an open-source project on bitbucket or github, but in some cases it's simply more convenient to have the repository at home.&lt;br /&gt;&lt;br /&gt;So, I installed a Mercurial server. Want to know how?&lt;br /&gt;&lt;br /&gt;The only thing you'll need is the Mercurial installation for your favorite OS (yes, Windows included). After installing it, run&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;hg init RepoName&lt;/i&gt;&lt;/blockquote&gt;this will create a repository called RepoName under the current directory.&lt;br /&gt;For the next part, I'll assume the server is accessible only inside the home network, and there's no need to configure extra security measures. So, create a script that servers this repository inside the the repository directory:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;hg serve --config web.push_ssl=No --config "web.allow_push=*"&lt;/i&gt;&lt;/blockquote&gt;All you have to do now is to schedule this script to run on boot time.&lt;br /&gt;Now, from any machine on the network you can use commands such as:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;hg clone http://ServerName:[probably_8000]&lt;/i&gt;&lt;/blockquote&gt;to work with your new Mercurial repository.&lt;br /&gt;That's it.&lt;br /&gt;&lt;br /&gt;Having a "development server" can be very handy, as it could also hold other documents (NAS functionality), personal wiki, local deployment server, etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-3487431380413224446?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/3487431380413224446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2011/08/home-mercurial-server.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/3487431380413224446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/3487431380413224446'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2011/08/home-mercurial-server.html' title='Home Mercurial Server'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-2567418863055457690</id><published>2011-08-20T12:26:00.000+03:00</published><updated>2011-08-20T12:26:37.292+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>People Skills</title><content type='html'>I've just read this &lt;a href="http://www.charleshooper.net/blog/stop-letting-tech-people-be-socially-inept/"&gt;great post&lt;/a&gt; which I found on Hacker News, and felt sympathetic.&lt;br /&gt;For too many times in my short career I was forced to work with people that has no people skills. Those people held a programming, admin or other technical roles, which means they weren't "customer facing", so for the employer, there was no need to require people skills when hiring them.&lt;br /&gt;&lt;br /&gt;But that's a wrong call in my opinion. Even if the people in question were among the top 5% of the most professional people I met, I'd rather not work with them at all, than suffer their presence. Even if that means spending a few more days on solving some technical issues.&lt;br /&gt;&lt;br /&gt;Many things bother me with such people:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Some of them know they're so good at what their doing, and leverage their bad people skills in a way that no one would be able to learn from them. This gives them job security.&lt;/li&gt;&lt;li&gt;Some of them use the fact no one wants to communicate with them in order to get this quiet room "in the basement".&lt;/li&gt;&lt;li&gt;If there's a "dirty job" that involves communicating with customers, obviously they aren't tasked with handling it. That's an ugly way to get only the "nice" tasks.&lt;/li&gt;&lt;li&gt;They get away with ugly code, since no one wants to communicate with them and get them to beautify it or write documentation. &lt;/li&gt;&lt;/ol&gt;So yeah, I know many people don't go to work in order to socialize, but having people with zero people skills, no matter how professional they are, simply hurts the organization.&lt;br /&gt;&lt;br /&gt;When it's time for me to hire employees, be sure that having decent people skills will be a criteria.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-2567418863055457690?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/2567418863055457690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2011/08/people-skills.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2567418863055457690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2567418863055457690'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2011/08/people-skills.html' title='People Skills'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-1531975275804226607</id><published>2011-07-22T00:34:00.001+03:00</published><updated>2011-07-22T00:36:31.052+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Twitter - part 2. Android.</title><content type='html'>&lt;b&gt;Twitter&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;So my &lt;a href="http://technomosh.blogspot.com/2011/06/30-days-twitter.html"&gt;Twitter 30 days challenge&lt;/a&gt; is about to be over, and I think I'm ready to summarize it and write some conclusions:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I'm following 17 people, and have 9 followers. Only recently I began to gain an audience. Just like with blogging, it takes patience and persistence.&lt;/li&gt;&lt;li&gt;So far I made 43 tweets. I'm pretty pleased with this number.&lt;/li&gt;&lt;li&gt;Except for once or twice, all of the replies to my tweets were done on Google Buzz, which is connected to my Twitter account. That's pretty lame, and makes me want to lock both services - more on that, later.&lt;/li&gt;&lt;li&gt;Tweeting is fun. I didn't think I'd say that.&lt;/li&gt;&lt;li&gt;The TwimGo client for N900 is great. The official Twitter client for Android is just perfect. Not having a Twitter mobile client renders is useless. This could be another reason for Google Buzz failure, as it doesn't have a decent mobile client.&lt;/li&gt;&lt;li&gt;140 characters limit makes a lot of sense when posting from mobile. Longer than that is cumbersome. When posting from PC - it's too limiting. &lt;/li&gt;&lt;/ul&gt;So, am I going to keep using Twitter? For following people - yes. For replying to people - yes. For publishing stuff - probably no.&lt;br /&gt;I guess most of the stuff I publish today on Twitter, will be published to "public" or "extended circles" in Google+ instead.&lt;br /&gt;This means that my short "romance" with Twitter will probably end soon. While it's a lot of fun, it provides little gain compared to Google+. Perhaps had I joined 2 years ago, I'd stick to it until I know my followers would follow me to Google+.&lt;br /&gt;It doesn't mean I'm going to generate too much noise in Google+ either, since I believe posts that complains about the Israeli heat will probably be published only to "Friends".&lt;br /&gt;&lt;br /&gt;As a final note for this topic: I just removed the Google Buzz tab from my GMail and disconnected all of the accounts associated with it (Twitter, Google Reader, this blog). Since I never bother looking at the Buzz tab in Google+, this means I will ignore everything going on in there. I don't see the point of having a place where I need to follow people's comments on stuff published in other places. Comments for this blog should go here. Comments for Google+ should go there.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Android&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This week was a happy and sad week in terms of mobile devices. Not sad as in tears, but somewhat sad. After 10 years of owning 5 different Nokia devices, I switched to a brand new &lt;a href="http://www.samsungmobile.co.il/%D7%98%D7%9C%D7%A4%D7%95%D7%A0%D7%99%D7%9D_%D7%A1%D7%9C%D7%95%D7%9C%D7%A8%D7%99%D7%99%D7%9D/samsung_Galaxy%20S%20II.aspx#_%D7%AA%D7%9B%D7%95%D7%A0%D7%95%D7%AA"&gt;SGS2&lt;/a&gt; running Android Gingerbread. My last Nokia device was the N900, which is by far the geekiest toy I ever owned. No other smartphone can be tinkered by modifying things under /etc, and get updates using apt-get. A truly open-source device.&lt;br /&gt;&lt;br /&gt;In the past few days I had very little time to dig into Android. They say it's Linux. IMHO, it's barely noticeable. No glibc, different filesystem structure, etc. I learned about odex, kernel versions and other fun stuff that will surely waste (in a fun way) many hours of my time in the near future. Can't wait.&lt;br /&gt;&lt;br /&gt;P.S - if you want to follow me on Google+, you can use &lt;a href="http://gplus.to/mosh"&gt;gplus.to/mosh&lt;/a&gt;. I don't know how long this link will last, though I hope forever.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-1531975275804226607?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/1531975275804226607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2011/07/twitter-part-2-android.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/1531975275804226607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/1531975275804226607'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2011/07/twitter-part-2-android.html' title='Twitter - part 2. Android.'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-1911731387981110528</id><published>2011-07-10T23:44:00.000+03:00</published><updated>2011-07-10T23:44:37.348+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>When the Safety Net Fails</title><content type='html'>It's been quite some time since my sysadmin/DBA skills were put to test. Usually, when they do, it means something bad has happened.&lt;br /&gt;&lt;br /&gt;Recently, a server I'm responsible for, suffered some a catastrophe in the form of a power outage. Usually, when such things happen, and the UPS (if such exists) fails, one is still relatively safe, since corruptions to the data itself will be handled by the RAID. This means that if one HDD fails - you can pull it out and push in another - and everyone's happy.&lt;br /&gt;&lt;br /&gt;Not my case. In the last power outage something far worse has happened - the RAID controller died. As you may know, with many RAID controllers this means long nights of data recovery, since rebuilding the RAID will cause initialization of the disks, which means total loss.&lt;br /&gt;&lt;br /&gt;This is the kind of the events no one is planning for in terms of redundancy. The only redundancy possible is a second server in a cluster configuration, but it doesn't solve exactly this problem, and has its costs. Backup is another form of "redundancy".&lt;br /&gt;&lt;br /&gt;So, the component that was supposed to save us in case of failures - failed us.&lt;br /&gt;Luckily, with some witchcraft, we managed to reconstruct the RAID, losing only 1 of the logical drives. That drive had to be restored from backup. Yet, that was the easier thing to do, as another drive, containing the DB, appeared to be alright, while it actually hid a far worse problem - corruptions in the DB. Did I already mention it's good to have backups?&lt;br /&gt;&lt;br /&gt;My conclusions were also applied on my home equipments - have a detached (as in "doesn't require power 24/7") backup, and get yourself a good UPS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-1911731387981110528?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/1911731387981110528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2011/07/when-safety-net-fails.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/1911731387981110528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/1911731387981110528'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2011/07/when-safety-net-fails.html' title='When the Safety Net Fails'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-8148169326720523188</id><published>2011-07-03T20:13:00.000+03:00</published><updated>2011-07-03T20:13:46.207+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>Why I Love C# and Mono?</title><content type='html'>Let the comments in the code do the talking.&lt;br /&gt;-------------------- &lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;&lt;br /&gt;public class Iter&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class Book&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //short way to declare a property:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; public string Title { get; set; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; public string Author { get; set; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void Main(string[] args)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // implicit type, yet still a strong type:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var books = new List&amp;lt;Book&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // inline initialization:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; new Book { Title = "Book1", Author = "Moshe" },&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; new Book { Title = "Book2", Author = "NotMoshe" }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // closure, lambda expression:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; books.ForEach(book =&amp;gt; Console.WriteLine(book.Title));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;--------------------&lt;br /&gt;Did you know C# has all of those cool features? &lt;br /&gt;This is why I think that even if you're not going to write code in C#, you should get familiar with it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-8148169326720523188?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/8148169326720523188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2011/07/why-i-love-c-and-mono.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/8148169326720523188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/8148169326720523188'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2011/07/why-i-love-c-and-mono.html' title='Why I Love C# and Mono?'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-7079996513183761036</id><published>2011-06-25T13:46:00.000+03:00</published><updated>2011-06-25T13:46:20.332+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>30 Days. Twitter.</title><content type='html'>A while ago I started considering doing those 30-days challenges. The benefits are obvious, and the fact they're published gives motivation to actually stick to the plan.&lt;br /&gt;So, I already have several such challenges in mind, and some were already started. For example, taking the stairs instead of the elevator in the building I'm living in. I'm on the 4th floor, so it is a "free exercise".&lt;br /&gt;&lt;br /&gt;Another thing I had in mind for a while now, is using twitter. It happens to me every day: There's some new technology I want to blog about, but when I start thinking about the actual post, I realize it would take me no more than 2 lines. For example: I installed Firefox 5, and thinks it's great.&lt;br /&gt;So instead, I opened a twitter account (@&lt;a href="http://twitter.com/technomosh"&gt;technomosh&lt;/a&gt;), and I'm planning to post those short musings there. Hopefully people will follow me, and discussions would develop.&lt;br /&gt;&lt;br /&gt;What does this have to do with 30 days challenge? Simple. Basically, up until now, I wasn't a big believer in Twitter/Identi.ca/Buzz/etc. So my first instinct is to ditch the Twitter account a second after I opened it. Instead, I just installed the wonderful &lt;a href="http://twimgo.substanceofcode.com/"&gt;TwimGo&lt;/a&gt; on my N900, so it would be easier for me to post some tweets. Hopefully, in 30 days I'll know whether Twitter helped me in getting those musings off my head, or didn't.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-7079996513183761036?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/7079996513183761036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2011/06/30-days-twitter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/7079996513183761036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/7079996513183761036'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2011/06/30-days-twitter.html' title='30 Days. Twitter.'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-8077927246561145301</id><published>2011-05-30T11:18:00.000+03:00</published><updated>2011-05-30T11:18:19.925+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>A Quick Productivity Tip for Windows Users</title><content type='html'>As you may recall, I'm a big fan of &lt;a href="http://technomosh.blogspot.com/2010/09/keyboard-is-faster.html"&gt;keyboard shortcuts&lt;/a&gt;, and generally prefer those over using a mouse.&lt;br /&gt;&lt;br /&gt;Still, there are keyboard shortcuts that are not comfortable, especially those that require the control/alt key in combination with a F key. For instance, Alt+F4. The reason for this is that one must lift at least of on his hands from the keyboard in order to use this combo.&lt;br /&gt;&lt;br /&gt;Luckily, someone at Redmond thinks like me, and in Windows 7 (didn't test on other versions of Windows) one can use Ctrl+W to close the current explorer (the file management tool) window. Just like in your favorite browser and preferred IDE.&lt;br /&gt;&lt;br /&gt;Too bad that in order to edit the current location, one still needs to use Ctrl+F4. I'd expect Ctrl+L to work. Anybody from MS reading this?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-8077927246561145301?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/8077927246561145301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2011/05/quick-productivity-tip-for-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/8077927246561145301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/8077927246561145301'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2011/05/quick-productivity-tip-for-windows.html' title='A Quick Productivity Tip for Windows Users'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-6780726968626662540</id><published>2011-04-13T21:17:00.000+03:00</published><updated>2011-04-13T21:17:22.392+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>Needed: Ruby/Rails Developers in Israel</title><content type='html'>I just read Ido's &lt;a href="http://idkn.wordpress.com/2011/04/13/wanted-ruby-developers-in-israel/"&gt;great post&lt;/a&gt;, and couldn't stop myself from writing a response post.&lt;br /&gt;&lt;br /&gt;Basically, what we have in Israel is a chicken-and-an-egg problem. Why? because there will be no Rails programmers if the market (=big # of companies) would require it, and no company would shift to Rails development if there would be no developers to make it do that.&lt;br /&gt;&lt;br /&gt;The problem starts in the way developers are "born" in Israel. They are either:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;become developers during their service in the IDF - no Rails there.&lt;/li&gt;&lt;li&gt;become developers after a relevant academic degree - AFAIK, no Rails there either.&lt;/li&gt;&lt;li&gt;become developers in different ways, most of those would try and learn technologies which are required by the market. The remaining few that would bother learning Rails (or Django) are probably those who also read this blog.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;I think that in the US market, especially in the Silicon Valley, this is not the case. Developers there are educated differently and are much more likely to be exposed to Rails. The only Rails developer I know - learned it while working in the Valley.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's another one for you: how many Israeli web-hosting companies do you know that supports Rails? How many for PHP/Java/.NET?&lt;/div&gt;&lt;div&gt;So, even if I'd try and develop a Rails application for the local market, I'd have to host it abroad, which is a shame.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A while back I did a &lt;a href="http://technomosh.blogspot.com/2010/11/web-development-frameworks-survey.html"&gt;short survey&lt;/a&gt; regarding the buzz around Rails development and other web frameworks. Check out the replies. How many chose Rails?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finally, I must admit that I'm no better. I had a chance to choose Rails recently, but didn't. Sorry, I couldn't find others whom I could hire if needed.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-6780726968626662540?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/6780726968626662540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2011/04/needed-rubyrails-developers-in-israel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6780726968626662540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6780726968626662540'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2011/04/needed-rubyrails-developers-in-israel.html' title='Needed: Ruby/Rails Developers in Israel'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-2358996214683931373</id><published>2011-04-04T15:32:00.000+03:00</published><updated>2011-04-04T15:32:50.138+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>.NET MembershipProvider with MySQL</title><content type='html'>If you're a .NET developer (Mono or MS, doesn't matter) and an OSS enthusiast, then you're probably using the MembershipProvider provided by MySQL instead of the default MS provider for MS-SQL. The MySQL MembershipProvider comes bundled within the MySQL Connector for .NET.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In certain configurations, one can expect various bugs related to the MySQL Connector, especially with the latest version of MySQL Server and/or Windows and/or IIS. The most annoying thing about such bugs is that they don't introduce themselves on a development machine (different web-server, different OS, etc.).&lt;br /&gt;&lt;br /&gt;My latest bug involved getting NULL for Membership.GetUser calls, even for logged in users. The bug&amp;nbsp; would occur inconsistently, which made stuff quite hard to debug.&lt;br /&gt;The solution? simple - always use the latest version of the MySQL Connector.&lt;br /&gt;&lt;br /&gt;This is why I always plan the first-time production deployment to take a few days. You can never tell what will go wrong.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-2358996214683931373?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/2358996214683931373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2011/04/net-membershipprovider-with-mysql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2358996214683931373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2358996214683931373'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2011/04/net-membershipprovider-with-mysql.html' title='.NET MembershipProvider with MySQL'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-2199696322520399025</id><published>2011-02-24T14:21:00.002+02:00</published><updated>2011-02-24T16:52:57.514+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>Nokia, What Went Wrong?</title><content type='html'>I've been using the &lt;a href="http://maemo.nokia.com/n900/"&gt;Nokia N900&lt;/a&gt; for a week now, and it made me wonder: how comes there are no more Maemo based devices out there, and how comes Nokia's CEO states they're standing on a &lt;a href="http://blogs.wsj.com/tech-europe/2011/02/09/full-text-nokia-ceo-stephen-elops-burning-platform-memo/"&gt;burning platform&lt;/a&gt;?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The N900 hardware is great, yet nowadays it doesn't stand out. Other companies produce hardware with the same quality. It's the software that makes all the difference.&lt;/div&gt;&lt;div&gt;The &lt;a href="http://en.wikipedia.org/wiki/Maemo"&gt;Maemo&lt;/a&gt; platform should appeal to every nerd and every software developer, as it is based on Debian, and porting applications to it is so simple.&lt;/div&gt;&lt;div&gt;As a result, it is capable of running some truly amazing applications, such as Firefox (including addons) and games that were ported from the PC.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've set up a dual boot with Android, so I could compare stuff, and access applications that aren't available for Maemo. And although there are quirks in the Android (&lt;a href="http://www.nitdroid.com/index.php?title=NITDroid_project"&gt;NITDroid&lt;/a&gt;) port, it's successful in providing the full Android experience. And you know what? I don't use it. There's no point in booting into Android when everything can be easily done with Maemo, and sometimes even better (like having a full, real, browser).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The two apps I do miss, though, are Shazam and Waze, and I believe that had Nokia continued developing the Maemo platform, ports of those apps would've become available as well.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Some of the best things I find in the device are:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Integrated IM/VoIP with Skype/GTalk/MSN/FreeTelecom/Jabber/etc.&lt;/li&gt;&lt;li&gt;USB Host.&lt;/li&gt;&lt;li&gt;Really useful desktop gadgets, and not plain icons that represents apps.&lt;/li&gt;&lt;li&gt;DLNA.&lt;/li&gt;&lt;li&gt;apt-get.&lt;/li&gt;&lt;li&gt;A full, real, browser. Renders everything exactly the way the desktop Firefox does, including flash.&lt;/li&gt;&lt;li&gt;QWERTY keyboard.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;and the list goes on...&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So my question to Nokia: why did you stop developing this platform?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-2199696322520399025?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/2199696322520399025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2011/02/nokia-what-went-wrong.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2199696322520399025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2199696322520399025'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2011/02/nokia-what-went-wrong.html' title='Nokia, What Went Wrong?'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-183800771427038199</id><published>2011-02-06T15:53:00.002+02:00</published><updated>2011-02-06T17:16:09.908+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>Sometimes IE/FF renders fine, and Chrome doesn't</title><content type='html'>Twitter style post (125 characters, not including this header):&lt;br /&gt;&lt;br /&gt;After two hours of head banging on a bug in my HTML/CSS being rendered differently in Chrome, it appears it was a Chrome bug.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-183800771427038199?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/183800771427038199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2011/02/sometimes-ieff-renders-fine-and-chrome.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/183800771427038199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/183800771427038199'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2011/02/sometimes-ieff-renders-fine-and-chrome.html' title='Sometimes IE/FF renders fine, and Chrome doesn&apos;t'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-330048560722198073</id><published>2011-01-14T13:33:00.005+02:00</published><updated>2011-01-14T14:03:49.136+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>JavaScript Implementation In Different Browsers</title><content type='html'>In Hebrew, when counting or describing objects, it matters whether the object is considered as male or female. A table is male, while a television is female. As far as I know, this rule applies to Russian and other languages as well.&lt;br /&gt;What's nice about humans is that if they use the wrong form, like a female form for a table, people around them would still understand what they're talking about. Although some might think that the language is ruined. That's OK.&lt;br /&gt;&lt;br /&gt;When it comes to programming languages, things are different. Computer languages are supposed to be considered as an exact science, thus, if one not using the syntax correctly, the code won't execute.&lt;br /&gt;&lt;br /&gt;Or so we'd like to think.&lt;br /&gt;&lt;br /&gt;Consider this loop in JavaScript:&lt;br /&gt;&lt;blockquote&gt;var i = 0;&lt;br /&gt;do {&lt;br /&gt;    i++;&lt;br /&gt;} while(i&lt;2);&lt;br /&gt;alert("done:"+i);&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;As you might expect, it would popup an alert box with "done:2" as the message. This would work on any JavaScript implementation I'm aware of.&lt;br /&gt;Now, let's make a tiny difference (like using the female form in Hebrew, which is only a bit different than the male form):&lt;br /&gt;&lt;blockquote&gt;var i = 0;&lt;br /&gt;do {&lt;br /&gt;    i++;&lt;br /&gt;}; while(i&lt;2);&lt;br /&gt;alert("done:"+i);&lt;/blockquote&gt;&lt;br /&gt;What was changed? Notice the semicolon (;) before the "while" statement. Try this using your favorite browser. If you get "done:2" as before, I urge you to replace your favorite browser immediately.&lt;br /&gt;This piece of code shouldn't work. It has a syntax error. The semicolon is "unexpected".&lt;br /&gt;&lt;br /&gt;Internet Explorer ignores that, and the code works as before. Other browsers (Firefox, Chrome) would halt the script execution.&lt;br /&gt;&lt;br /&gt;I'm willing to forgive when people don't follow the Hebrew syntax down to the last rule, but when it comes to code - I'm unforgiving. Moreover, I'm unforgiving to the guys that implemented a "fuzzy" interpreter for a programming languages. This is supposed to be an exact science.&lt;br /&gt;&lt;br /&gt;Let me give you another example. In this case, I'm not sure with which implementation I agree:&lt;br /&gt;&lt;blockquote&gt;alert([1, 2, 3, ].length);&lt;br /&gt;alert([1, , 2, 3].length);&lt;/blockquote&gt;&lt;br /&gt;Firefox and Chrome would print "3" and then "4", while Internet Explorer would print "4" twice. Basically, each array has an "empty" (undefined) element, so their length is supposed to be the same. But it appears that Firefox and Chrome would drop that element if it is the last one in the array.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-330048560722198073?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/330048560722198073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2011/01/javascript-implementation-in-different.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/330048560722198073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/330048560722198073'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2011/01/javascript-implementation-in-different.html' title='JavaScript Implementation In Different Browsers'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-6087139775883145408</id><published>2011-01-09T12:22:00.003+02:00</published><updated>2011-01-11T09:36:14.148+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>The Difference Between DIV and SPAN</title><content type='html'>Every now and then I see people wonder about the difference between the DIV HTML tag, and SPAN. Sometimes, people do some trial and error with the two before deciding which fits better for the problem at hand.&lt;br /&gt;&lt;br /&gt;So I decided it would be a good idea to clarify this issue.&lt;br /&gt;The DIV element is a "block" element. This means it occupies a full block when rendered, which also means that by default the browser will render a new line before and after rendering the DIV element. SPAN, on the other hand, is rendered inline. This makes SPAN perfect for formatting text which is part of a paragraph.&lt;br /&gt;&lt;br /&gt;Want to see the difference? Create an HTML file containing the below code, and run it in a browser:&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;p&amp;gt;Here goes for span: &amp;lt;span style="color:red" &amp;gt;hello&amp;lt;/span&amp;gt; world&amp;lt;/p&amp;gt;&lt;br /&gt;&amp;lt;p&amp;gt;Here goes for div: &amp;lt;div style="color:red"&amp;gt;hello&amp;lt;/div&amp;gt; world&amp;lt;/p&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;And if you're lazy, this is how it looks like:&lt;br /&gt;&lt;p&gt;Here goes for span: &lt;span style="color:red;"&gt;hello&lt;/span&gt; world&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Here goes for div: &lt;/p&gt;&lt;div style="color: red;"&gt;hello&lt;/div&gt; world&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Makes sense, right?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-6087139775883145408?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/6087139775883145408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2011/01/difference-between-div-and-span.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6087139775883145408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6087139775883145408'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2011/01/difference-between-div-and-span.html' title='The Difference Between DIV and SPAN'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-8827330598313752299</id><published>2010-12-31T16:44:00.004+02:00</published><updated>2011-01-02T11:30:38.036+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Free Telecom Reviewed</title><content type='html'>I guess that by now you've all heard about &lt;a href="http://www.free.net.il/"&gt;Free Telecom&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I've been using their SIP services for a while, and thought it would be nice to share my experience with it before things would change in 2011.&lt;br /&gt;&lt;br /&gt;So first, I'm an Orange customer, so in order to get the Free Telecom client to work, I need to choose the "IL Orange Internet" access point, as the "3G Portal" access point uses a proxy which blocks non-HTTP traffic.&lt;br /&gt;&lt;br /&gt;The client is a bit buggy, but works most of the time, and doesn't seem to drain the battery (compared to other VoIP clients which supports SIP, such as Fring). The SMS UI is nice, and even a bit more useful than the built-in client in my Nokia N95 8GB.&lt;br /&gt;&lt;br /&gt;As for call quality: most of the time, when calls are done over WiFi or in places with good 3G reception, the quality is just fine. I'd say it's better than VoIP quality provided by other clients. But, when the 3G signal slightly drop, the call quality drops considerably.&lt;br /&gt;I can't wait to discover whether the quality and service that could be achieved by Nokia's built-in client, outperforms FT's client quality.&lt;br /&gt;&lt;br /&gt;The prices are great, and are far cheaper than my plan in Orange. But, keep in mind, it requires a data plan to work out of the range of a WiFi router. So when trying to calculate the total price of a call, one should also consider the price of the data plan.&lt;br /&gt;&lt;br /&gt;I guess that things would indeed change in 2011, as Free Telecom got the license to provide MVNO, and this marks the beginning of a new era in mobile communication in Israel.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;EDIT: While writing this post, it appears there's an outage with the FT service. I wasn't able to connect to it for a few hours. This isn't not the first time I see this happens, yet it is not very common.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-8827330598313752299?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/8827330598313752299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/12/free-telecom-reviews.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/8827330598313752299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/8827330598313752299'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/12/free-telecom-reviews.html' title='Free Telecom Reviewed'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-1515645029300636082</id><published>2010-12-18T11:00:00.002+02:00</published><updated>2010-12-18T11:09:48.206+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>A burnt fuse</title><content type='html'>Last week's storm has caused more than a few damages around the country. I saw in the news that some people's cars got smashed by trees, and other people's houses got flooded.&lt;br /&gt;&lt;br /&gt;For me, the damage was smaller: My subwoofer died. Or so I thought.&lt;br /&gt;Even though my important power outlets are protected with lightning (electricity peaks) protectors, my subwoofer got damaged after a few hours in which the electricity in my home was unstable.&lt;br /&gt;&lt;br /&gt;So I thought "here goes an expensive subwoofer". But I was wrong. A few friends brought to my attention that it is most likely that the subwoofer has a burnt fuse, and insisted that I can replace it by myself. So I tried.&lt;br /&gt;&lt;br /&gt;Want to know how? Simple. Have a look at this &lt;a href="http://ask.creative.com/wwimages/speakers/fusecomp_big.jpg"&gt;picture&lt;/a&gt;. You can see that straight under the power socket, there's a small plastic box which contains a fuse. It comes out easily, with the assistance of a screwdriver, and apparently contains a spare fuse. Would you believe it? A spare fuse?&lt;br /&gt;&lt;br /&gt;Amazing. It was up and running in a minute.&lt;br /&gt;For the next time there's gonna be a stormy weather in our little country, I'm going to disconnect that subwoofer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-1515645029300636082?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/1515645029300636082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/12/burnt-fuse.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/1515645029300636082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/1515645029300636082'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/12/burnt-fuse.html' title='A burnt fuse'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-2434058208341814069</id><published>2010-12-06T19:55:00.002+02:00</published><updated>2010-12-06T20:08:14.155+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>Firefox Memory Consumption</title><content type='html'>Lately I read that people complain about Firefox consuming huge amounts of memory, a thing that supposedly happens due to memory leaks. Many such posts claims Chrome behaves much better with memory.&lt;br /&gt;&lt;br /&gt;Well, my experience is a bit different. First, I'm a huge Chrome (and Chromium) fan. I like Chrome's interface, speed, ease of extensions development and its security features (soon, a sandbox for Adobe Flash). But, if there's one thing I don't like about it is memory consumption. Using the latest stable version, opening few tabs with Google's own applications (GMail, Reader, Docs) can easily get the browser to consume 500MB on my PC. Firefox, with only two add-ons installed: Firebug and AdBlock, uses less than 200MB for the same set of sites.&lt;br /&gt;&lt;br /&gt;It is true that if one leaves Firefox opens for a few consecutive days, it'll eventually consume all of the RAM installed, but this is not the case for me, as I close the browser at least once a day.&lt;br /&gt;&lt;br /&gt;Perhaps the fact that I use the 64bit version of the browsers makes the difference. Perhaps its the fact I have only two add-ons installed on Firefox. I don't know. But I don't complain about Firefox's memory consumption, as it is better for me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-2434058208341814069?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/2434058208341814069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/12/firefox-memory-consumption.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2434058208341814069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2434058208341814069'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/12/firefox-memory-consumption.html' title='Firefox Memory Consumption'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-5447736854140992038</id><published>2010-11-28T18:23:00.003+02:00</published><updated>2010-11-28T18:36:09.609+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Web Development Frameworks - The Survey</title><content type='html'>Usually, When I want to publish a survey, I do so on my &lt;a href="http://www.google.com/profiles/moshe.basanchig#buzz"&gt;Buzz&lt;/a&gt; stream. But this time it's different, as I want the broader exposure this blog has to offer.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the past few years I got to develop web applications using various frameworks:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;JSP using both IBM WebSphere and Oracle JDeveloper, utilizing things such as EJB and struts.&lt;/li&gt;&lt;li&gt;Oracle ApEx.&lt;/li&gt;&lt;li&gt;ASP (yes, the original one).&lt;/li&gt;&lt;li&gt;ASP.NET using both Web Forms (yuk) and ASP.NET MVC (yay).&lt;/li&gt;&lt;li&gt;Django.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;I know my list misses two big ones: PHP and Ruby on Rails. But that's not the issue.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;It seems to me, just by reading web development blogs, that PHP, Django (or other Python based frameworks) and Rails has most of the web developers' minds. BUT, when I ask people "what framework are you using", I usually get either "ASP.NET" or "JSP". So perhaps I don't know enough people, or perhaps the web development community in Israel isn't connected to the trends. Or perhaps the "trends" aren't trends at all, rather just buzzwords being used.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I can't tell.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So this post is a survey. Please comment which web development framework are you using or used for the last project you had to develop.&lt;/div&gt;&lt;div&gt;Should the number of responses grow large, I'll publish a post summarizing the findings.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-5447736854140992038?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/5447736854140992038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/11/web-development-frameworks-survey.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5447736854140992038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5447736854140992038'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/11/web-development-frameworks-survey.html' title='Web Development Frameworks - The Survey'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-6982359042078474318</id><published>2010-11-28T18:07:00.002+02:00</published><updated>2010-11-28T18:16:24.121+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Leaving the Cable Company</title><content type='html'>For some time now I think: why am I paying for the cable company?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Most of the stuff I watch comes from the web, or comes for free. I'm willing to pay reasonable prices for the rest (VOD), but I find the cable company prices exaggerated.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yet, I couldn't find a good alternative, until I saw &lt;a href="http://anona.tv/"&gt;Anona TV&lt;/a&gt; yesterday. A single product that doesn't cost a fortune, provides DTT, a streamer (I already own a &lt;a href="http://www.popcornhour.com"&gt;Popcorn Hour&lt;/a&gt; device), and has the ability to order VOD shows. Should they over come geographical restrictions (the ability to watch Hulu only in the US), it's going to be a real blast.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unfortunately, I'm not part of the beta, so I cannot provide a real review of this, and whether it provides the goods, but it does look promising. If anyone knows a way to get into this beta, or knows a different company offering a similar solution, I'd love to hear about it.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-6982359042078474318?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/6982359042078474318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/11/leaving-cable-company.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6982359042078474318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6982359042078474318'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/11/leaving-cable-company.html' title='Leaving the Cable Company'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-7910345273408337719</id><published>2010-11-21T22:33:00.002+02:00</published><updated>2010-11-21T22:38:58.132+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Switching ISP</title><content type='html'>So finally, after I complained about this topic &lt;a href="http://technomosh.blogspot.com/2009/03/isp-traffic-shaping.html"&gt;over&lt;/a&gt; and &lt;a href="http://technomosh.blogspot.com/2009/04/isp-traffic-shaping-cont.html"&gt;over&lt;/a&gt; again, I finally switched from 012 to 018 as my ISP.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Few hours now, and I'm happy. I tried various protocols over various ports, and all seems to work perfectly well. And the price is better, too.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Just a minor thing that I also mentioned to their tech support: their site doesn't provide the configuration details needed in order to set-up the connection alone. Thanks to &lt;a href="http://israblog.nana10.co.il/blogread.asp?blog=352535&amp;amp;blogcode=10620153"&gt;this guy&lt;/a&gt; I found this missing piece of information, which was the L2TP gateway: lns.018.net.il&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hope this would help to all of you who wish to make the switch.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-7910345273408337719?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/7910345273408337719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/11/switching-isp.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/7910345273408337719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/7910345273408337719'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/11/switching-isp.html' title='Switching ISP'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-4987112948402099111</id><published>2010-11-21T16:15:00.002+02:00</published><updated>2010-11-21T16:24:42.427+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><title type='text'>Nice Exploitation Technique In PDF Files</title><content type='html'>&lt;div&gt;Warning - security related post. Stay clear if you feel disgusted from Windows Internals and Security.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;A friend of mine just posted a &lt;a href="http://labs.m86security.com/2010/11/whos-looking-for-eggs-in-your-pdf/"&gt;great piece&lt;/a&gt; about a clever shellcode technique called egghunting. If you're into this kind of stuff, I recommend reading it.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Also, if anyone is interested in some more details about the Adobe Acrobat Reader vulnerability described in the above post, please leave a comment, and I'll dedicate a separate post for that.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-4987112948402099111?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/4987112948402099111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/11/nice-exploitation-technique-in-pdf.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4987112948402099111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4987112948402099111'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/11/nice-exploitation-technique-in-pdf.html' title='Nice Exploitation Technique In PDF Files'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-2051563245896173256</id><published>2010-11-17T13:21:00.002+02:00</published><updated>2010-11-17T13:35:48.301+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>No Signal</title><content type='html'>So the Linkin Park &lt;a href="http://www.ynet.co.il/articles/0,7340,L-3985130,00.html"&gt;concert&lt;/a&gt; was &lt;a href="http://www.mako.co.il/music-Magazine/reviews/Article-513f2d75fd35c21006.htm&amp;amp;sCh=3d385dd2dd5d4110&amp;amp;pId=1080044444"&gt;excellent&lt;/a&gt;. But I wanted to tell you about this two days ago, when I was there. Not now.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It appears that if 14,000 people gather around in the same park, none of them gets a cellular signal. Probably because the cellular towers around suffers from congestion. Not being able to handle the load, the cellular operators actually lose money. I bet that many fans like myself wanted to Tweet/Buzz/LiveBlog/SMS/Video-chat/whatever during the concert, but couldn't.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I wonder whether mobile cell-towers exists, and if they do - why don't cellular operators station those near crowded places when needed.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-2051563245896173256?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/2051563245896173256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/11/no-signal.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2051563245896173256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2051563245896173256'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/11/no-signal.html' title='No Signal'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-206190605374443275</id><published>2010-11-07T10:19:00.002+02:00</published><updated>2010-11-07T10:26:23.290+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>Build Errors With SubSonic</title><content type='html'>When programming in C# (MS or Mono, it doesn't matter), and the need for an ORM framework arise, I turn to SubSonic. I enjoy using this framework very much, as it is fast and intuitive, and free (as in speech).&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So if you're like me, and you use SubSonic for your model layer, here's an advice: don't name any of your database columns/tables with C# keywords. For example: if you have a DB column named "private", you're gonna have problems.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When building a SubSonic project that doesn't follow the above advice, one would probably get tons of "Expected class, delegate, enum, interface, or struct" in Structs.cs. Don't say I didn't warn you.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-206190605374443275?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/206190605374443275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/11/build-errors-with-subsonic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/206190605374443275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/206190605374443275'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/11/build-errors-with-subsonic.html' title='Build Errors With SubSonic'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-2718001702968608013</id><published>2010-11-04T18:56:00.003+02:00</published><updated>2010-11-04T19:06:05.736+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Wireless, Is It Dangerous?</title><content type='html'>Just a while ago I &lt;a href="http://technomosh.blogspot.com/2010/10/going-cordless.html"&gt;posted&lt;/a&gt; about the fun of going cordless, and the benefits it bring to my work environment: much less clutter.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Today I finally got my &lt;a href="http://europe.nokia.com/find-products/accessories/all-accessories/headsets/bluetooth-stereo-headsets/bh-503"&gt;BH-503&lt;/a&gt; bluetooth headset from DealExtreme, and boy do I enjoy it. I use GTalk and Skype A LOT, and not being tied to a microphone makes life better. Sound quality is also very good, and it gets along just fine with my eye-glasses (not a trivial thing with other headsets).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So what's the problem?&lt;/div&gt;&lt;div&gt;The 2.4GHz spectrum near my desk is awfully crowded: wireless mouse, keyboard, WiFi router and two bluetooth devices (smartphone and headset). This gets me thinking: could this be dangerous?&lt;/div&gt;&lt;div&gt;All of the above products came with a disclaimer saying it is perfectly safe to use them, and none of them generates a bad kind of radiation or something. And still, just because I cannot see all those "waves" in the air, I'm a little bit disturbed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What do you think?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;See you all on the Linkin Park concert soon :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-2718001702968608013?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/2718001702968608013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/11/wireless-is-it-dangerous.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2718001702968608013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2718001702968608013'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/11/wireless-is-it-dangerous.html' title='Wireless, Is It Dangerous?'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-3849045657231377333</id><published>2010-10-19T12:02:00.002+02:00</published><updated>2010-10-19T12:08:04.051+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Delete Old Log Files On Windows</title><content type='html'>When administrating Windows hosts I always stumble upon stuff which I imagined should be simple, yet proves complex.&lt;div&gt;I recall I used to write a Perl script in order to delete log files which are older than X days. Today I found out that Windows servers (XP is not a server, so this doesn't work on XP) has this nice "forfiles" command that assists in doing that in a one-liner, as one could've expect.&lt;/div&gt;&lt;div&gt;Have a look &lt;a href="http://thebackroomtech.com/2007/12/07/howto-automatically-remove-files-older-than-%E2%80%98x%E2%80%99-days-part-ii/"&gt;here&lt;/a&gt;. This works like a charm&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-3849045657231377333?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/3849045657231377333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/10/delete-old-log-files-on-windows.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/3849045657231377333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/3849045657231377333'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/10/delete-old-log-files-on-windows.html' title='Delete Old Log Files On Windows'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-1483151292487914057</id><published>2010-10-06T00:22:00.002+02:00</published><updated>2010-10-06T01:13:15.702+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Going Cordless</title><content type='html'>My home PC/workstation has almost become my primary PC. I get to use it for pure work for about 30-40 hours a week. This is why the design of my home workspace has become more important for me than before.&lt;div&gt;I think that people who work with me knows I usually work in a well designed workspace, in which everything is nice and comfortable. The monitor is in the right size, the keyboard is placed in the right place, headphones are available at hand, the desktop (of the real desk) is clean, etc.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ever since I work more at home, I noticed stuff is not as comfortable as I'm used to from my workplace. After some time I finally realized what bothers me, and made the adjustments:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;The correct distance from the monitor. I noticed that I'm actually sitting too far from my monitor, and from the desk as well. Sitting correctly forces me to sit with a "straight" back, not using the arm support of the chair, and strain my eyes less. The monitor should be about arm-reach away.&lt;/li&gt;&lt;li&gt;My desk is now way cleaner.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Cords&lt;/b&gt;. For a good reason this is the title of this post. I had tons of cords everywhere. I have so many devices on my desk and around it, that I got out of free USB connections (I have 8 slots). So I decided to go cordless. A bluetooth dongle and a USB hub did the trick. Now, I have a USB hub sitting on my desk, already with different types of cables connected (mini-USB, micro-USB, etc.), ready for devices to be inserted at need. No more USB extension cords. No more bending over to the PC in order to connect something. The next two bullets are about getting rid of non-USB cords.&lt;/li&gt;&lt;li&gt;I love my laptop keyboard very much, and hate standard PC keyboards. I even &lt;a href="http://www.google.com/buzz/105339658161602178195/5cQnnfCWmus/Heres-a-short-Buzz-survey-I-guess-that-most-of-you"&gt;posted a survey&lt;/a&gt; about it a while ago. After a search for a keyboard I'd like, and something cordless, I eventually settled on &lt;a href="http://www.microsoft.com/hardware/mouseandkeyboard/ProductDetails.aspx?pid=116"&gt;MS Wireless Desktop 3000&lt;/a&gt;. The mouse is big and solid, and not some toy-ish mouse, and the keyboard is soft and ergonomic and also reminds me of my laptop keyboard. I don't care about the rest of the functionality provided. The USB dongle required is tiny, and doesn't need an "eye" within the range of the keyboard, like other wireless keyboards. This is a big plus, since it doesn't require any cord to be stretched from the PC to the desk.&lt;/li&gt;&lt;li&gt;Bluetooth headset. I hate my current headset. It has a cable that splits to the green and pink input jacks on the soundcard (speakers and microphone), and I can't stand up during work, to stretch myself, without accidentally pulling the cable. Now I await a DealExtreme delivery of &lt;a href="http://europe.nokia.com/find-products/accessories/all-accessories/headsets/bluetooth-stereo-headsets/bh-503"&gt;Nokia BH-503&lt;/a&gt;, so I could go cordless in this field as well.&lt;/li&gt;&lt;li&gt;Finally, a good, fast, WiFi router (supports N spec) is installed, so whenever I want to get away from the wires and the noise, and sit in &lt;a href="http://www.google.com/buzz/105339658161602178195/XjRUqKv16YF/Speaking-about-concentration-theres-one-definite"&gt;my porch&lt;/a&gt; - I can.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-1483151292487914057?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/1483151292487914057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/10/going-cordless.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/1483151292487914057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/1483151292487914057'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/10/going-cordless.html' title='Going Cordless'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-5718281654963727258</id><published>2010-10-01T17:14:00.002+02:00</published><updated>2010-10-01T17:30:34.583+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Get Things Done</title><content type='html'>Recently I felt a huge decrease in my productivity. I noticed I'm trying to work on too many things at once, and not achieving anything. Moreover, I had to deal with a lot of pressure at work, while filling in the job of 2-3 people at once, while trying to cope with helping younger teammates to solve their own problems.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Actually, being distracted by teammates' questions can be a huge set back for productivity, as it breaks concentration when they approach you, and after 15 minutes, when I'm finally back in the zone, they break it again.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So I published this &lt;a href="http://www.google.com/buzz/105339658161602178195/B7MHmEBuKYN/Time-for-a-short-buzz-survey-How-do-you-stay"&gt;short survey&lt;/a&gt; on Buzz (which is a great tool for surveys) asking what other people do in order to stay concentrated and get things done.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The obvious answers were already known and implemented by me: put the headphones on, get away from everybody, etc.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Other answers were to manage a TODO list, and close any application that might distract you (GMail, RSS reader, IM, etc.). Even though I had those things in my mind for a while, I decided it's time to give it a go.&lt;/div&gt;&lt;div&gt;Boy was I surprised. My productivity peaked back to the top.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now I allow myself to chat with people and "clear" my RSS list only after completing tasks. Every new task I get, and not only work related, is written down instead of being "managed" in my head. The reduction of tasks "managed" in my head really helps, and whenever I finish doing something, I revert to the list and mark something as DONE. The feeling is great, and there's a bonus: chatting or reading interesting blogs.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The TODO list is managed in a very simple manner: a Google Doc. And when I'm not near a computer: via my Nokia's task list, which is later sync'd to the Google Doc.&lt;/div&gt;&lt;div&gt;Another bonus: having everything managed, helps dealing with unpredictable tasks (aka BALTAM in Hebrew), since being distracted wastes less time when trying to get back on track. The proof for the system being successful is that ever since I started using is, I have more time to blog :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-5718281654963727258?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/5718281654963727258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/10/get-things-done.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5718281654963727258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5718281654963727258'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/10/get-things-done.html' title='Get Things Done'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-6598772845269066859</id><published>2010-09-25T15:58:00.002+02:00</published><updated>2010-09-25T16:48:07.040+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Keyboard is Faster</title><content type='html'>Do you know this guy that uses only VIM? Did he already told you he uses VIM because you can achieve everything using just the keyboard? No?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At the times I'm not at home/office, or at the times I want to watch the &lt;a href="http://www.google.com/buzz/105339658161602178195/XjRUqKv16YF/Speaking-about-concentration-theres-one-definite"&gt;beautiful sunsets&lt;/a&gt; from my porch, I work using my laptop, instead of a regular PC. While I like the &lt;a href="http://www.google.com/buzz/105339658161602178195/5cQnnfCWmus/Heres-a-short-Buzz-survey-I-guess-that-most-of-you"&gt;laptop keyboard&lt;/a&gt; far better than a regular keyboard, I hate the touch-pad. It's just not usable.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So whenever I work with my laptop, I get to learn some new keyboard shortcuts, since it is the only thing that keeps me sane.&lt;/div&gt;&lt;div&gt;Recently things got a lot better, since I started using the keyboard shortcuts provided by Google's products, especially GMail and Reader.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;While GMail keyboard shortcuts requires you to turn them on via the settings, you get those for free in Reader. If you can't remember a shortcut, simply press "?", and you'll get a nice popup reminding you whatever there is you need to know.&lt;/div&gt;&lt;div&gt;What I like best in the combinations they chose, is that they remind me the shortcuts of UNIX utilities (yes, VIM included). I guess this was intended, and I'm thankful for that.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-6598772845269066859?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/6598772845269066859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/09/keyboard-is-faster.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6598772845269066859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6598772845269066859'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/09/keyboard-is-faster.html' title='Keyboard is Faster'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-6732040260688429909</id><published>2010-09-09T18:49:00.003+03:00</published><updated>2010-09-09T19:07:10.889+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>So What's On Your Reading List</title><content type='html'>I had this post in my mind of quite some time, but couldn't find the time to write it. Good thing there are holidays.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finding great people for hire is difficult. More than once an employer would be looking for people which are interested in what they do, and not just good at it. Such people would usually be more passionate at work, and work harder and better that others.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One technique not many employers are utilizing, is asking what's on the RSS reading list of the potential employee. Come to think about it, it's a great way to see what the person is passionate about.&lt;/div&gt;&lt;div&gt;It doesn't mean that if one goes to an interview at some company that does media streaming, should read media-streaming blogs. But if the person is going to be a programmer, and happens to be reading Coding Horror, that's a great plus.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A thing I like very much in my current workplace (M86 Security) is that we have a must-read reading list. That means that every team member receives an OPML file on the first day on the job that contains stuff that he must read on a daily basis.&lt;/div&gt;&lt;div&gt;This helps turning the team members into pro's, and will certainly help the company and our future careers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-6732040260688429909?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/6732040260688429909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/09/so-whats-on-your-reading-list.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6732040260688429909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6732040260688429909'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/09/so-whats-on-your-reading-list.html' title='So What&apos;s On Your Reading List'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-6593193320003423745</id><published>2010-09-07T15:20:00.003+03:00</published><updated>2010-09-07T15:29:16.097+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>Working With ToR In Python</title><content type='html'>I bet I'm not the first one who ever needed to write a script that downloads something via ToR.&lt;div&gt;Apparently, there isn't much information regarding how to request a new identity or how to use the ToR proxy in Python. So here's a gift from me to the world.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First, while not necessary, I always use a new ToR identity prior to download something through the ToR network. The code looks like:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;import socket&lt;/div&gt;&lt;div&gt;&lt;div&gt;def renewTorIdentity():&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;success = False&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;s = socket.socket()&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;s.connect(('localhost', 9051))&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;s.send("AUTHENTICATE\r\n")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;resp = s.recv(1024)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;if resp.startswith('250'):&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;s.send("signal NEWNYM\r\n")&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;resp2 = s.recv(1024)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;if resp.startswith('250'):&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;success = True&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;return success&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That would work assuming "authentication" is set to none in the Vidalia control panel.&lt;/div&gt;&lt;div&gt;After having a new identity, downloading a file is really simple, as Vidalia comes bundled with privoxy configured on port 8118. Here's a sample code for downloading something:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;import urllib2&lt;/div&gt;&lt;div&gt;url = "http://something-to-download"&lt;/div&gt;&lt;div&gt;&lt;div&gt;proxy_support = urllib2.ProxyHandler({"http" : "127.0.0.1:8118"})&lt;/div&gt;&lt;div&gt;opener = urllib2.build_opener(proxy_support)&lt;/div&gt;&lt;/div&gt;&lt;div&gt;opener.addheaders = [('User-agent', 'Mozilla/5.0')]&lt;/div&gt;&lt;div&gt;response = opener.open(url).read()&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;That's it. Simple.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-6593193320003423745?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/6593193320003423745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/09/working-with-tor-in-python.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6593193320003423745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6593193320003423745'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/09/working-with-tor-in-python.html' title='Working With ToR In Python'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-3734204870121790605</id><published>2010-09-01T21:59:00.003+03:00</published><updated>2010-09-01T22:15:35.981+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Blog Day 2010</title><content type='html'>After missing it last year, and in one day delay this year, I'm &lt;a href="http://technomosh.blogspot.com/2008/08/my-blog-day.html"&gt;celebrating&lt;/a&gt; today the &lt;a href="http://www.blogday.org/"&gt;blog day&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So here is my list of recommended blogs, not ordered by any specific order:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://tirania.org/blog/index.html"&gt;Miguel De Icaza&lt;/a&gt; - While it is popular to hate MS technologies, I do think mono is a great thing and its founder a very smart person.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.paulgraham.com/"&gt;Paul Graham&lt;/a&gt; - The father of Y-Combinator. While not exactly a blog, this one is really interesting and insightful, especially to would-be entrepreneurs.&lt;/li&gt;&lt;li&gt;&lt;a href="http://observationsbythedoc.blogspot.com/"&gt;Doc's blog&lt;/a&gt; - Did it ever happen to you that you met someone with much to contribute to the world (in terms of blogging, but not only), that just didn't reach their potential (yet)? Well, I hope that this post will make Doc to publish more of his clever insights and musings.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.startuplessonslearned.com/"&gt;Lessons Learned&lt;/a&gt; - Yet another must read for would-be entrepreneurs. Nothing I can add here.&lt;/li&gt;&lt;li&gt;&lt;a href="http://guym.co.il/"&gt;ZuLL&lt;/a&gt; - Well, I can't deny the fact I'm part of the security industry in Israel, and Guy writes about interesting stuff.&lt;/li&gt;&lt;/ul&gt;Still, looking a bit back, it seems I &lt;a href="http://technomosh.blogspot.com/2010/04/sparsing-my-reading-list.html"&gt;removed&lt;/a&gt; more blogs from my reading list, than I added. I really hope I'll come across new and better ones this year, so I'll have novel things to recommend on next year.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-3734204870121790605?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/3734204870121790605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/09/blog-day-2010.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/3734204870121790605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/3734204870121790605'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/09/blog-day-2010.html' title='Blog Day 2010'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-7926097720734578671</id><published>2010-08-14T10:44:00.003+03:00</published><updated>2010-08-14T11:49:42.499+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>My 5 Cents On Oracle vs Google</title><content type='html'>This seems to be the hottest topic in the past two days: Oracle sues Google over some JVM patents.&lt;br /&gt;Long story short: When Sun GPL'd Java, it did so only for the standard JVM. The mobile version requires every mobile device vendor to license (=pay Sun) its usage.&lt;br /&gt;So Nokia paid, and so did others, but Google wanted more. Google wanted the standard JVM. And here starts the problems: the standard JVM license doesn't allow a company to create a superset (nor a sunset) of the JVM. What does that mean? That each JVM must pass Sun's testing kit that verifies the newly created JVM behaves just like Sun's.&lt;br /&gt;&lt;br /&gt;So instead of settling for the standard JVM, or license the ME, Google decided to create their own JVM. Only it is not a JVM, rather a superset of it. But that's forbidden, so Google solved it quite cleverly - they created a totally different VM. The Dalvik VM isn't bytecode compatible with Sun's, and implements parts of the JVM that would have never pass Sun's tests. In order for developers to migrate from one VM to another, the code must be either recompiled or use a special tool that converts the bytecode.&lt;br /&gt;&lt;br /&gt;Now that Oracle owns Sun, Oracle does what's good for Oracle, which means pursue their patents. I bet they're expecting Google to pay some ransom in order to keep this story from exploding, and scare developers back to iPhone development. But if Google would do so, it'll give Oracle a case to actually pursue every mobile phone vendor that uses Android, and it'll be very bad for Google.&lt;br /&gt;&lt;br /&gt;Some suggest Google would opt to use a different VM, such as Mono, but I seriously doubt it. Not only because C# sounds like "Microsoft .NET" (a thing which I completely disagree with), but because developers are expecting them to keep the same language they use today, so they won't need to learn a new language and slow down their development cycle, even for a little while.&lt;br /&gt;&lt;br /&gt;This does raise another issue: the Maemo, Meego and other Linux-based mobile OSes can theoretically run the standard JVM, but Oracle won't allow it, since it wants mobile devices to use the ME (this is where the money is). Does this mean we can expect to see Java on those devices? Or could Mono be the answer here?&lt;br /&gt;&lt;br /&gt;As for those people asking "why would Sun/Oracle charge only for the JVM ME usage, and not for the other versions", here's what I think: A good software company would like to make the developer's life as easy and cheap as possible. So the JVM on the desktop (the development machine) is free, and so does for the server (for web applications). The price of the ME rolls over to the end-user, which is best for developers. For comparison, both Apple and MS charge high prices on both ends.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-7926097720734578671?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/7926097720734578671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/08/my-5-cents-on-oracle-vs-google.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/7926097720734578671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/7926097720734578671'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/08/my-5-cents-on-oracle-vs-google.html' title='My 5 Cents On Oracle vs Google'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-4929843329485872576</id><published>2010-07-26T14:26:00.003+03:00</published><updated>2010-07-26T14:31:54.655+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>M86 Security Is Hiring</title><content type='html'>Just in case you missed my Buzz feed and the official job offering in LinkedIn, here it is: M86 Security (formerly Finjan) is hiring in Israel. The company is looking for Security Researchers, Software Engineer and Testing Engineers.&lt;br /&gt;&lt;br /&gt;You can go over the &lt;a href="http://www.m86security.com/company/careers.asp"&gt;job description&lt;/a&gt; in the official web site.&lt;br /&gt;&lt;br /&gt;In case you are interested in more details or just want to apply for one of the jobs, you can contact me.&lt;br /&gt;&lt;br /&gt;Good luck.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-4929843329485872576?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/4929843329485872576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/07/m86-security-is-hiring.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4929843329485872576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4929843329485872576'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/07/m86-security-is-hiring.html' title='M86 Security Is Hiring'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-2777524924679632727</id><published>2010-07-24T10:50:00.003+03:00</published><updated>2010-07-24T11:14:59.626+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>Browsers in my toolbox</title><content type='html'>Like with other products, the web browsers market is full with flame wars. Many people claim they use browser X, and that this is the best browser ever, and everyone should use it.&lt;br /&gt;&lt;br /&gt;For me this is not the case. As a developer and a heavy user i use at least two different browsers every day. I cannot choose a winner when comparing them, and cannot give up on any. Both are a MUST for me.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Google Chrome/Chromium&lt;/span&gt;&lt;br /&gt;I like Chrome because it is &lt;a href="http://www.youtube.com/watch?v=nCgQDjiotG0"&gt;lightning fast&lt;/a&gt;, lightweight (loads in a sec), works perfectly smooth on a weak laptop (and its battery) and it is also safer (process isolation, less bugs) and more stable than any other browser. Most of my web surfing is done on Chrome.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Firefox&lt;/span&gt;&lt;br /&gt;For me, Firefox isn't a fox, but rather a horse. It carries the real heavy load of my web development. Tons of mature web extensions makes my life much easier when developing stuff. Examples for useful extensions would be &lt;a href="http://getfirebug.com/"&gt;FireBug&lt;/a&gt; and &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/125/"&gt;SwitchProxy&lt;/a&gt;. Also, I love the &lt;a href="http://techcrunch.com/2010/07/23/firefox-tab-candy/"&gt;directions&lt;/a&gt; this browser is headed to.&lt;br /&gt;&lt;br /&gt;For me, this richness of those two browsers is great, and I'd love to keep using them both, without having to choose a winner.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-2777524924679632727?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/2777524924679632727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/07/browsers-in-my-toolbox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2777524924679632727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2777524924679632727'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/07/browsers-in-my-toolbox.html' title='Browsers in my toolbox'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-2621540136501770917</id><published>2010-07-15T18:52:00.003+03:00</published><updated>2010-07-15T19:01:21.372+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>A small issue with Google Docs</title><content type='html'>Here's something interesting that happened to me last week. A friend of mine has shared with me a folder from his Google Docs. Like with other shared folder, I was supposed to see it under "folders shared with me", but I didn't. Instead, it showed me a "No folders shared with you" message and when we both edited a doc, we saw one another as "anonymousXXXX".&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So from where does the problem coming from, and how to solve it? Simple. Apparently, he shared the folder with a Google Group which I'm a member in, and not directly with me, and Google Docs doesn't make the connection. The solution is simple - have people shared folders directly with you.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-2621540136501770917?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/2621540136501770917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/07/small-issue-with-google-docs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2621540136501770917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2621540136501770917'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/07/small-issue-with-google-docs.html' title='A small issue with Google Docs'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-7525329934590352630</id><published>2010-06-26T22:09:00.002+03:00</published><updated>2010-06-26T22:15:03.399+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Italy</title><content type='html'>After a very busy period, me and my wife had been in a honeymoon in Italy.&lt;div&gt;What can I say, Italy is beautiful. We've seen many the kinds of scenery that Italy has to offer: Dangerous roads that leads to mountain passes, amazing lakes (such that make great desktop backgrounds), castles and churches, the endless fields of Tuscany, Venice and much more.&lt;/div&gt;&lt;div&gt;The only caveat with such a trip is that one must get back to work now... :(&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-7525329934590352630?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/7525329934590352630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/06/italy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/7525329934590352630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/7525329934590352630'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/06/italy.html' title='Italy'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-442733255997184186</id><published>2010-04-25T18:38:00.003+03:00</published><updated>2010-04-25T19:00:23.511+03:00</updated><title type='text'>Ask Me, But cc:everybody</title><content type='html'>Every now and then one of my friends asks me a question which I'd prefer to respond to publicly. What does that mean? It means I think that others could benefit from the answer to the question as well.&lt;br /&gt;&lt;br /&gt;Up until now there were several ways to do so:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Answer the question in private, and answer it again every time someone else would ask it.&lt;/li&gt;&lt;li&gt; Write the entire question and answer story in this blog.&lt;/li&gt;&lt;li&gt;Use some service such as Google Buzz for the entire conversation.&lt;/li&gt;&lt;/ol&gt;None of these solutions really fits the need. Now, a friend of mine created this simple, yet brilliant, application, called &lt;a href="http://cceverybody.com/"&gt;CC:Everybody&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The idea is simple: you can send me an email to &lt;a href="http://cceverybody.com/Mosh"&gt;Mosh at CCEverybody.com&lt;/a&gt;, and if I choose to reply to it, the answer appears publicly in the site. Also, I can publish mails I already have in my mailbox to CC:Everybody without that first step.&lt;br /&gt;&lt;br /&gt;There's a short video on the site which explains exactly how this service works.&lt;br /&gt;So now, if any of you guys want to ask me again why do I think Mercurial is better than SVN, you're welcome, just remember to address my CCEverybody account.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-442733255997184186?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/442733255997184186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/04/ask-me-but-cceverybody.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/442733255997184186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/442733255997184186'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/04/ask-me-but-cceverybody.html' title='Ask Me, But cc:everybody'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-4144228703895953424</id><published>2010-04-13T22:52:00.002+03:00</published><updated>2010-04-13T23:13:30.670+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Getting PS3 games without bankrupting</title><content type='html'>It is a well known fact that PlayStation 3 games in Israel costs a fortune. This is probably the reason why there are so many few PS3 consoles in Israel compared to other consoles which can be cracked and run copied games. Of course the last claim is only an estimate of mine, but take a look around you and tell me if you feel otherwise.&lt;br /&gt;&lt;br /&gt;Take for example one of the more popular games for all of the consoles and the PC: Assassin's Creed 2 (and try to forget the long DRM debate around it). Most stores sell it at a &lt;a href="http://www.bug.co.il/prodtxt.asp?id=8128&amp;amp;perur=2&amp;amp;t=11&amp;amp;c=515"&gt;crazy price&lt;/a&gt; of over 400 NIS. That's over 110$ for a game which costs about 50-60$ in the rest of the world. About 100% more.&lt;br /&gt;&lt;br /&gt;Finally, I was able to find a decent store in Israel that sells games at sane prices: &lt;a href="http://www.pcgames.co.il/Default.aspx"&gt;PCGames&lt;/a&gt;. They sell AC2 at &lt;a href="http://www.pcgames.co.il/ps3-Assassin%60s_Creed_2-12521.html?isFromCat=1&amp;amp;Tmp=0&amp;amp;PN=1"&gt;250 NIS&lt;/a&gt;, which is roughly 65$. What a difference! AC2 is not an exception. You can go through their inventory and see. Almost half the price on all games.&lt;br /&gt;&lt;br /&gt;So I ordered myself AC2 and God of War 3 at a price that in other stores would get me only one game, PLUS, there was a free delivery straight to my home/office via a courier. How awesome is that?&lt;br /&gt;&lt;br /&gt;Obviously, I recommend everyone to buy games only at stores that gives fair prices, and don't take 100% "interest" just because they can.&lt;br /&gt;Oh, and I also recommend AC2. Don't buy it for PC because of the awful DRM engine, instead get it for your console. It is a great game.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-4144228703895953424?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/4144228703895953424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/04/getting-ps3-games-without-bankrupting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4144228703895953424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4144228703895953424'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/04/getting-ps3-games-without-bankrupting.html' title='Getting PS3 games without bankrupting'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-1712643693201889805</id><published>2010-04-13T17:01:00.002+03:00</published><updated>2010-04-13T17:19:57.877+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Bezeq Customer? Check Your Internet Speed</title><content type='html'>In our little country, people are already used to get bad service from the big media providers (TV, ISP, cellphone, etc.). Here's a story.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My wife's parents live in a moshav in the Galilee area. For a few years now they have been paying for a 2.5Mbps Internet connection both to Bezeq and to the ISP. A few weeks ago I noticed that Israeli sites loads pretty slow, so I did a speed test. Unsurprisingly, I found out the the connection was 750kbps.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Upset, we've called Bezeq. After doing some tests they declared that the line in the moshav doesn't support the 2.5Mbps connection speed, and this is the reason the result returns 750kbps.&lt;/div&gt;&lt;div&gt;So we asked the representative (actually, more than one) over the phone "why would they sell a 2.5Mbps service in places where it's not even supported". Bezeq's answer was evasive, to say the least. Moreover, they asked why do we complain only now when the situation is like that for years (?!). For years. So Bezeq knows the 2.5Mbps isn't supported, and was never supported, and yet keeps selling the service.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A money refund was given for the past few months (since February), and that's it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Actually, this is the second time I encounter a similar issue. About a year ago I noticed at my brother's apartment that the phone line is a bit noisy (the apartment is in a city near Tel Aviv). So I did a speed test and found out that while he's paying for 4Mbps, he receives 1.5Mbps. The technician over the phone said that we're right and that someone will come and replace the phone wiring in the building. Yet again, Bezeq knew (from remote) that the speed being paid for isn't available, and yet kept charging for the higher speed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My advice to you: If you're a Bezeq ADSL customer - Check your Internet connection speed.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-1712643693201889805?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/1712643693201889805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/04/bezeq-customer-check-your-internet.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/1712643693201889805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/1712643693201889805'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/04/bezeq-customer-check-your-internet.html' title='Bezeq Customer? Check Your Internet Speed'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-6951558348404972775</id><published>2010-04-01T21:04:00.002+03:00</published><updated>2010-04-01T21:14:08.318+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Sparsing my reading list</title><content type='html'>Here's a phenomena you all know: you search the web for some info or answers regarding some issues you have. While doing so, you come across a blog that looks interesting and that provides the answer you seek. After wondering around in that blog you decide to add it to your RSS aggregator.&lt;br /&gt;&lt;br /&gt;Few months later, you try to read the stuff queued in your reading list, and don't understand why is it that you have a "1000+" label saying you're gonna spend your entire day sorting it out.&lt;br /&gt;&lt;br /&gt;Some of the blogs you're subscribed to are no longer relevant to you anymore. Others has changed direction and now you don't find them interesting. There are other cases as well.&lt;br /&gt;This is a good time to use the &lt;span style="font-weight: bold;"&gt;unsubscribe&lt;/span&gt; feature of the RSS aggregator.&lt;br /&gt;&lt;br /&gt;This is exactly what I do today. I no longer need to follow all of those KDE related blogs. I don't develop anything for KDE anymore, and I barely use it.&lt;br /&gt;&lt;br /&gt;The "&lt;a href="http://www.holesinthenet.co.il/"&gt;holes in the net blog&lt;/a&gt;" ceased from being interesting. Now it's just full of marketing stuff and social media topics.&lt;br /&gt;Other subscriptions will be removed as well. Finally, I can focus on what's important.&lt;br /&gt;&lt;br /&gt;But hey, don't unsubscribe from this blog, OK?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-6951558348404972775?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/6951558348404972775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/04/sparsing-my-reading-list.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6951558348404972775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6951558348404972775'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/04/sparsing-my-reading-list.html' title='Sparsing my reading list'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-9168138023842592500</id><published>2010-03-24T23:33:00.002+02:00</published><updated>2010-03-24T23:50:51.647+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Stuff that annoyed me this week</title><content type='html'>I know it's not nice to write a blog post which is full of complaints, but every once in a while we all need to take out some steam. So no long prolog needed:&lt;div&gt;&lt;ol&gt;&lt;li&gt;I simply hate the Windows Vista/Seven shutdown menu. At least once a week I put my computer into sleep instead of rebooting, or vice versa. Other variations occur as well. What were they thinking?&lt;/li&gt;&lt;li&gt;In the &lt;a href="http://technomosh.blogspot.com/2010/03/issues-with-transmission-and.html"&gt;previous post&lt;/a&gt; I mentioned the fact that upgrading isn't always good, and some trouble might occur, even if the newer version is considered "stable". In my life and work I get to use every OS out there, and that includes Windows XP and Windows 7. A few weeks ago both of them got an upgraded NVidia driver. Grrr. After days of irregular blue screens I was able to trace the issue to the drivers, and revert them to a previous version (thanks, &lt;a href="http://www.guru3d.com/category/driversweeper/"&gt;Driver Sweeper&lt;/a&gt;). BTW, instead of trying to figure out Windows' minidump (those files created after a BSOD), I found a great tool called &lt;a href="http://www.raymond.cc/blog/archives/2009/01/17/analyzing-windows-crash-dump-or-minidump-with-whocrashed/"&gt;WhoCrashed&lt;/a&gt;. I get to use WinDBG too much in my work, so not having to use it at home in order to parse those minidumps was really nice.&lt;/li&gt;&lt;li&gt;What's with the electric power stability in my living area? I think that about once or twice a week there's a power outage. Some parts of my house are already protected by power stabilizers, I guess now is the time to protect the rest.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Epilog: I just ordered a kick ass 50" FullHD screen. It should arrive sometime next week. It should fit well with some of the equipment I already have in my living room. So the finale of this post is happy. :)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-9168138023842592500?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/9168138023842592500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/03/stuff-that-annoyed-me-this-week.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/9168138023842592500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/9168138023842592500'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/03/stuff-that-annoyed-me-this-week.html' title='Stuff that annoyed me this week'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-5399020516343710299</id><published>2010-03-24T00:06:00.002+02:00</published><updated>2010-03-24T00:18:52.070+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Issues with Transmission and PopcornHour</title><content type='html'>Not a long time ago I've upgraded my PCH A110 firmware to the latest version. Also, I've upgraded the Transmission (bittorrent) client to version 1.91 (and later on to 1.92). Ever since those upgrades, I had issues with torrents: every few hours or so the Transmission client decided it should "verify" the torrent and the downloaded data. This process consumes a considerable amount of time, which slows down torrents download time to crawl.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The best solution I found so far was to downgrade the Transmission client back to version 1.76 using the NMT CSI. Now everything works perfectly, thought the new feature of 1.9X are missing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Just like every other piece of software: upgrade doesn't mean you're getting a better product. Sometime it means you're part of the testing of the newer version. Nonetheless, I'd be happy to install the next version when it comes out.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-5399020516343710299?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/5399020516343710299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/03/issues-with-transmission-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5399020516343710299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5399020516343710299'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/03/issues-with-transmission-and.html' title='Issues with Transmission and PopcornHour'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-1553204158163732611</id><published>2010-03-05T16:14:00.002+02:00</published><updated>2010-03-05T16:27:20.215+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Stay sharp, get offline</title><content type='html'>Often I find myself being too lazy when trying to solve an issue, so I copy-paste the error message or type the error description into Google, and press "Search". For over 90% of the problems, that's enough.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sometimes I think that in order to improve my skills, I'm better off taking the old-school way, and dig for the solution all by myself. This means finding the source of the problem and the solution without any Internet access. This would usually require a bigger understanding of the system and problem in question.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After doing so, there's a great feeling of accomplishment, and it's fun to publish the solution on the blog, StackOverflow or other sites.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The always-on Internet has changed our lives, as it made us both smarter and dumber at the same time. What do you say? Would you try and get back, even only once in a while, to solve problems without the Internet?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-1553204158163732611?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/1553204158163732611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/03/stay-sharp-get-offline.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/1553204158163732611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/1553204158163732611'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/03/stay-sharp-get-offline.html' title='Stay sharp, get offline'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-7814665186066967352</id><published>2010-02-25T13:43:00.002+02:00</published><updated>2010-02-25T13:47:36.393+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Cannot debug ASP.NET in Visual Studio</title><content type='html'>Today I stumbled upon a curious bug while developing some ASP.NET code using Visual Studio 2005: the debugger didn't work. What "didn't work" means? It completely ignored the breakpoints within the code.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After messing around with this issue for a while, I discovered that the issue is actually with IE8 (?!). If there was an instance of IE8 running prior to the debugging process, the breakpoints will be ignored.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Solution: close the IE8 window, and press F5 again in Visual Studio. Viola, now the breakpoints break.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-7814665186066967352?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/7814665186066967352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/02/cannot-debug-aspnet-in-visual-studio.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/7814665186066967352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/7814665186066967352'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/02/cannot-debug-aspnet-in-visual-studio.html' title='Cannot debug ASP.NET in Visual Studio'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-945514464390105692</id><published>2010-02-19T12:44:00.003+02:00</published><updated>2010-02-19T12:57:06.718+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Remote Assistant</title><content type='html'>I mentioned in the &lt;a href="http://technomosh.blogspot.com/2010/02/issues-wasting-my-time.html"&gt;previous post&lt;/a&gt; that my parent's PC was broken, and that I had to put quite a few hours to get it back to normal working state.&lt;div&gt;This isn't the first time that I've provided support for their PC or the PC of some other family member of mine, and probably not the last. I guess every geek finds himself as the "family tech support".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When my brother's computer breaks down, I usually start a remote desktop session using the IM client, and solve the issue. Now, I want to have the same ability with my parents, only this time it must be done with zero interaction on their side. I want to be able to call my mom, and tell her to turn on the PC. That's it. No confirmation dialogs, no chat and no nothing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is why I installed on their PC the free version of &lt;a href="https://secure.logmein.com/US/home.aspx"&gt;LogMeIn&lt;/a&gt;. It starts as a service, supports wake-up-on-LAN and doesn't require any router configuration. Problem is that the user experience on my end isn't very good. Performance lag even on a 2.5Mbps line. Maybe it's a price I have to pay, or maybe there are better services which does the same and I'm not aware of.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A final tip for this post: most non-techie-parents will do just fine with a limited computer account (when using Windows/Linux). There really isn't a good reason for them to use a privileged account just for browsing the web and using Skype.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-945514464390105692?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/945514464390105692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/02/remote-assistant.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/945514464390105692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/945514464390105692'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/02/remote-assistant.html' title='Remote Assistant'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-6786011227356106607</id><published>2010-02-14T23:38:00.002+02:00</published><updated>2010-02-14T23:48:01.152+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Issues wasting my time</title><content type='html'>First and foremost, since I set the integration feature between Google Buzz and my Blogger account, I wonder whether this post will also appear in my Buzz stream (for those who follow me). If so, readers have the ability to choose whether they want to use simple RSS/Atom following using a feed aggregator, or following via Buzz using whatever UI Google/3rd-parties are going to come up with.&lt;br /&gt;&lt;br /&gt;Enough said about that, I'm wasting my evening trying to fix my parents' PC. It's 3.5 yrs old, but already behaves as if it's six. By now, it appears the DVD-RW drive is broken, one memory stick is corrupted, there are bad sectors on the HDD, and the NVidia graphics card is also misbehaving. Thankfully, I set-up on this computer a partition with Ubuntu a long time ago (now it's 8.10), and it became very valuable, as it provides memtest86+ and other tools which were used to diagnose all of those issues. Too bad most are hardware issues that cannot be easily fixed like software issues.&lt;br /&gt;&lt;br /&gt;Other than that, I spent a few hours tagging all of the faces in my Picasa, so I can easily find pictures of people. The "People" feature in Picasa is very neat and works impressively well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-6786011227356106607?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/6786011227356106607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/02/issues-wasting-my-time.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6786011227356106607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6786011227356106607'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/02/issues-wasting-my-time.html' title='Issues wasting my time'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-5578882432964093967</id><published>2010-01-01T18:24:00.002+02:00</published><updated>2010-01-01T18:35:16.102+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Places to get infected</title><content type='html'>When it comes to humans, people might get infected in a virus while it is carried over the air. This means that there are places which are more susceptible for infections then the others, due to being crowded or contain many ill people.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;With computer viruses, the situation is a little different. Put an infected computer near a "healthy" computer, and nothing will happen.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Today I was at the photo-printing shop with my disk-on-key. Nothing special, as we all print photos this way nowadays. When I got back home my DoK contained 7 new unrecognized .exe files, and an "autorun.inf" file. Hmmm... I don't remember putting those there. A quick virus scan, and viola, 7 torjans/droppers/viruses found their way to the DoK in the few minutes it was mounted at the computer at the photo-printing shop. Good thing I'm safe, but I guess many other get infected after printing their photos in this store. Ouch.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-5578882432964093967?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/5578882432964093967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2010/01/places-to-get-infected.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5578882432964093967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5578882432964093967'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2010/01/places-to-get-infected.html' title='Places to get infected'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-8259298463335654926</id><published>2009-12-15T12:49:00.003+02:00</published><updated>2009-12-15T12:55:12.112+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>ADO.NET and Connection Timeouts</title><content type='html'>Today I've written some code at work which is connecting to a SQL Server DB via C# code. The code is executing some heavy SQL transactions, so it is supposed to take a while before it completes its tasks.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Knowing this, I've set the "Connection Timeout" correctly on the connection string, to a big enough number, so my connection won't timeout during the execution of the query.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Setting this option seem to be ineffective in some cases, as my code kept getting kicked with a "Connection Timeout" exception. After over 30 minutes of digging around I finally found the culprit. It seems that SqlCommand objects doesn't inherit the timeout configuration from the connection string, rather they have their own 30 seconds timeout default. So in order to overcome this, one should set "command.CommandTimeout=...".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Still didn't find any explanation for this behavior that would convince me it is rational.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-8259298463335654926?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/8259298463335654926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/12/adonet-and-connection-timeouts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/8259298463335654926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/8259298463335654926'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/12/adonet-and-connection-timeouts.html' title='ADO.NET and Connection Timeouts'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-5502838797028609940</id><published>2009-12-14T00:17:00.002+02:00</published><updated>2009-12-14T00:21:05.380+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Adium failing to connect to GTalk solved</title><content type='html'>Every once in a while a different IM client is giving me a hard time to connect to the Google Talk service. Empathy, Pidgin, Adium, you-name-it.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For all other services, an upgrade, or re-adding the account solves the issue. With Adium, this seems to be consistent.&lt;/div&gt;&lt;div&gt;Not anymore.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In order to have Adium connect to GTalk correctly, open the account preferences, and in the "options" tab, change the port to 80 (the default is 5222). Leave none of the check boxes checked. And that's it. Adium now connects to GTalk perfectly.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-5502838797028609940?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/5502838797028609940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/12/adium-failing-to-connect-to-gtalk.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5502838797028609940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5502838797028609940'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/12/adium-failing-to-connect-to-gtalk.html' title='Adium failing to connect to GTalk solved'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-5615790291539770462</id><published>2009-11-30T23:33:00.002+02:00</published><updated>2009-11-30T23:56:54.252+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Anti-Social Networking - Part 2</title><content type='html'>In the&lt;a href="http://technomosh.blogspot.com/2009/07/anti-social-networking.html"&gt; previous time&lt;/a&gt; I wrote about this topic, the main issue was people using social networks and how little they really know about their "friends". This time I want to argue something a bit more extreme: people are knowingly becoming more distant when choosing such network as a way of communication, rather than becoming closer.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'll explain.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In my last birthday I was a little insulted by friends not calling to wish me a happy birthday. It's not that such people are not my friends anymore, it's just that they offloaded some of their knowledge about their friends to some on-line database, so it's a little bit easier on their heads. The same thing happened when we stopped memorizing phone numbers of our dearest, simply because it is stored on a SIM card, and it's easier that way. The problem here was that only people which are members at the same database (e.g facebook) could one keep information about. So people forget birthday dates.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I thought "oh, OK, I don't have a facebook account, so people forget about me". Just this week I considered opening an account, and the strangest thing happened: a friend who's active on facebook had a birthday and told me how insulted he was that most of his friends didn't bother calling him and wish him a happy birthday. It's not that they forget, It's just that they preferred leaving him a short message on facebook: "happy birthday". Being easier than sending an SMS message, leaving a message on facebook seems to be even more insulting.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So instead of enriching this friend's social life, he feels facebook has degraded those. His main dilemma right after seeing all those messages was whether to reply to each and every one, or not. And what to do with those written on the wall?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Is this the case for everybody on social networks? I don't know.&lt;/div&gt;&lt;div&gt;Is there a reason people leave such messages and don't do real social activity (such as calling)? I believe that yes, there is. It is faster, cheaper and doesn't require any human interaction.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm still pessimistic thing will get any better before they'll get worse.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-5615790291539770462?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/5615790291539770462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/11/anti-social-networking-part-2.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5615790291539770462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5615790291539770462'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/11/anti-social-networking-part-2.html' title='Anti-Social Networking - Part 2'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-4514364351537089659</id><published>2009-11-21T20:23:00.002+02:00</published><updated>2009-11-21T20:41:16.152+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>ChromeOS first impression</title><content type='html'>Since this is the hot topic of the day, and I too was curious about this OS, I decided to give it a shot.&lt;br /&gt;So I downloaded that torrent that everyone seems to download, and attached the virtual disk to a VM under VirtualBox.&lt;br /&gt;&lt;br /&gt;My feelings about this OS are mixed. It seems to accomplish its main goal: an OS which is capable of running a browser, and nothing but the browser. The browser is good (Chrome), and renders sites with flash and other complexities correctly. But Hebrew isn't rendered well, or even not at all. This would become a major drawback if I want to further test it, because I read mail and RSS feeds in Hebrew, and without those, the OS isn't useful at all.&lt;br /&gt;&lt;br /&gt;The jail-ing mechanism of the OS works as expected. Although I did only a very short test, it seems to be impossible to break the jail. This is great in terms of security. But then again, if I had root access to the OS, I could've installed Hebrew support...&lt;br /&gt;My bet is that soon more security researchers will dig for Chrome (the browser) bugs, and utilize it to gain local access (for whatever it's worth, as the OS isn't intended to run from a HDD).&lt;br /&gt;&lt;br /&gt;While I agree that some netbooks users are using netbooks purely for browsing the web, I don't think Google has any advantage over the competitors. It is possible to create a stripped down disto of Linux that does just that (hey, that's what ChromeOS is all about), and I bet someone at Microsoft is playing with creating a stripped down version of Windows that does exactly the same. Boot time in both cases can be reduced considerably, and a security jail can be created as well. The advantage of such solution will be the support for a wider range of hardware and maybe even local storage, should it be necessary.&lt;br /&gt;&lt;br /&gt;Finally, with the iPhone OS, maemo, Android, ChromeOS and the other new OSes from the past 3 years, it seems we're entering the age of ad-hoc OSes. I wonder how good the communication between those will be.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-4514364351537089659?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/4514364351537089659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/11/chromeos-first-impression.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4514364351537089659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4514364351537089659'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/11/chromeos-first-impression.html' title='ChromeOS first impression'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-4339243801072270371</id><published>2009-11-11T18:34:00.003+02:00</published><updated>2009-11-11T18:43:56.218+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>Using Wubi without torrent</title><content type='html'>&lt;a href="http://wubi-installer.org/"&gt;Wubi&lt;/a&gt; is a great way to test Linux (any Ubuntu variant) without having to mess with partitioning the disk or changing the boot loader. I recommend it to anyone who wishes to take the first steps into Linux, and afraid to jump to the deep water.&lt;br /&gt;&lt;br /&gt;Other than that, Wubi is also perfect for people who cannot repartition their HDD for whatever reason it may be. Also, since it adds an entry to the "add/remove programs" control panel, it is easy to get rid of the installation if one finds it disappointing or want to proceed to the next level of installing Linux on a real partition.&lt;br /&gt;&lt;br /&gt;When using Wubi, the installer will attempt to download the installation media using the bittorrent protocol. This might be a problem if you're using a network which doesn't allow torrents to be downloaded. This is the case with some corporate networks and with ISPs that block torrent traffic. In these cases, it is still possible to use Wubi, without having to download a torrent.&lt;br /&gt;&lt;br /&gt;To do this, one needs to download the Ubuntu (again, any variant would do) installation media, or rip it from a CD/DVD, and have the ISO file in the same folder as the Wubi executable. Now, when running Wubi, it would recognize the ISO file, and skip the download all together. Since it is possible to download or rip the ISO without the bittorrent protocol, the problem is solved.&lt;br /&gt;&lt;br /&gt;Enjoy your new Linux installation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-4339243801072270371?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/4339243801072270371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/11/using-wubi-without-torrent.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4339243801072270371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4339243801072270371'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/11/using-wubi-without-torrent.html' title='Using Wubi without torrent'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-4684495902825331828</id><published>2009-11-09T00:11:00.002+02:00</published><updated>2009-11-21T17:50:46.250+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Media Streaming</title><content type='html'>As I might have mentioned before, I'm the proud owner of a &lt;a href="http://www.popcornhour.com/onlinestore/index.php?pluginoption=productinfo&amp;amp;item_id=6"&gt;PopcornHour A110&lt;/a&gt;. Having such a device in the living room reminds me of the excitement of the first portable MP3 player I had.&lt;br /&gt;&lt;br /&gt;Besides the awesomeness of being able to stream everything to my TV, it is possible to configure the A110 to do other cool stuff. Here's a list of my recommendation:&lt;br /&gt;&lt;br /&gt;1. Using the Community Software Installer for NMT, it is possible to install additional software on the A110. Since the OS is NMT (which is Unix-like) and it runs a PHP-enabled web server, almost everyone can write additional software for the A110. I recommend adding a SSH-server and the transmission bittorrent client. The torrent client can be managed remotely via port 9091. This means that once these services are installed, the A110 becomes a full fledged downloading machine, and not just a mere streamer.&lt;br /&gt;&lt;br /&gt;2. Using a media jukebox software, such as YAMJ, gives the second power-boost to the device. It adds amazingly looking menus with movie posters, plot summaries and other information. Also, if configured correctly, it'll pull Hebrew subtitles automatically (!!!), which is a great bonus.&lt;br /&gt;&lt;br /&gt;3. The A110 has a service which makes it a UPnP server. This means it can stream media to other devices at home, such as a gaming console or a laptop. So the streaming works both ways.&lt;br /&gt;&lt;br /&gt;The setup in my house didn't give me the option of having an Ethernet cable between my router (which is in a different room, along with the PC) and the A110. Drilling or passing thru tunnels in the walls wasn't an option either. Since using the Wifi dongle isn't very much recommended, I decided to put a 802.11n access point in the living room. This tiny device does a great job, even when streaming HD content, and the A110 believes it is connected to a wired network, which is easier to manage. Initial configuration of the AP was a little annoying, though.&lt;br /&gt;&lt;br /&gt;Should any of the reader be interested in further information of my setup, I'll be glad to share it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-4684495902825331828?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/4684495902825331828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/11/media-streaming.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4684495902825331828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4684495902825331828'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/11/media-streaming.html' title='Media Streaming'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-2971666741981898339</id><published>2009-11-08T11:37:00.006+02:00</published><updated>2009-11-09T00:10:11.332+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>OS updates</title><content type='html'>&lt;span style="font-weight: bold;font-size:100%;" &gt;Ubuntu&lt;/span&gt;&lt;br /&gt;This weekend I finally found the time to upgrade one of my Ubuntu machines to 9.10. The upgrade went perfectly well, and the system indeed seem to boot way faster. Also, the enhanced look is great. Finally, this is the first release not giving me hard time with the 64bit flash player and Firefox. This means that sound can be played back simultaneously inside the browser and by external app without any issues.&lt;br /&gt;&lt;br /&gt;Edit: while writing this post I noticed that the new version is way faster when it comes to filesystems and opening files. My pictures on an NTFS partition load considerably faster.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Windows 7&lt;/span&gt;&lt;br /&gt;Things with 64bit Windows 7 are a little less stable. My HP DeskJet driver completely crashes the printer spooler whenever printed to. Disabling the spooler causes the entire desktop (explorer) to crash (!!!).&lt;br /&gt;So to avoid replacing my printer just to use Windows, I thought I should give a shot to "XP Mode". Surprsingly - it worked. The funny thing is the "XP Mode" installation screen, which includes a funny typo (see below). For the English speakers, it says "The installation program will &lt;span style="font-weight: bold;"&gt;reduce&lt;/span&gt; Windows XP mode on your computer". Well, typos happen. Even for those with gigantic QA departments...&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5Wi398FvLGg/SvdA5sh8-8I/AAAAAAAAA9I/j3enPxN1nso/s1600-h/typo.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_5Wi398FvLGg/SvdA5sh8-8I/AAAAAAAAA9I/j3enPxN1nso/s320/typo.png" alt="" id="BLOGGER_PHOTO_ID_5401857638004489154" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-2971666741981898339?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/2971666741981898339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/11/os-updates.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2971666741981898339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2971666741981898339'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/11/os-updates.html' title='OS updates'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5Wi398FvLGg/SvdA5sh8-8I/AAAAAAAAA9I/j3enPxN1nso/s72-c/typo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-1380545969690823519</id><published>2009-10-25T18:20:00.003+02:00</published><updated>2009-10-25T18:33:00.215+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Surfing on waves</title><content type='html'>Yesterday I got my Google Wave invitation. Of course I immediately signed-in and started digging around. Actually, there isn't much to see, especially since I have only 6 contacts there, and I'm in real contact with only 2 of them. That's not enough people to "wave" with, so I send some invites to some more people which requested invites before, and didn't get them. It appears that the invite process is taking a few days, so I'm still quite alone there.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway, along with this other person, I started checking out all of those features promised in the intro video. Many features aren't implemented yet, which makes the experience very incomplete. Most importantly, I was hoping to publish this post from Google Wave, but the plug-in simply does nothing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After a few hours of blipping, we got this one giant wave, which is very much not readable, and there's no way of understanding what's going on within. The fact you can post replies in the middle and anywhere else makes it very difficult to follow. Also, you must use&lt;a href="http://lifehacker.com/5376138/google-wave-101"&gt; keyboard shortcuts&lt;/a&gt; if you really want an uncrippled experience.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finally, I can say that while I am excited to be part of this beta, I think this platform isn't revolutionary. It's a nicer way to have email (like GMail interface is better than Outlook), and an awful way to do IM. Perhaps when the plugins would work it'll be better.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-1380545969690823519?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/1380545969690823519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/10/surfing-on-waves.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/1380545969690823519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/1380545969690823519'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/10/surfing-on-waves.html' title='Surfing on waves'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-8121560824487980010</id><published>2009-10-18T22:10:00.003+02:00</published><updated>2009-10-18T22:17:22.546+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Connected Home</title><content type='html'>Right now I'm sitting in the living room, with my laptop, writing these lines and having some background tabs in the browser which stream some TED talks and YouTube videos. Girlfriend is near the PC, streaming some Internet radio while searching the web for stuff. My cellphone (Nokia N95) is connected over the WiFi and runs &lt;a href="http://technomosh.blogspot.com/2009/10/sms-will-die.html"&gt;fring&lt;/a&gt; and occasionally some other apps which requires Internet access. The popcorn hour (a topic for another post) is on, pulling some software from the net as well. Everything works perfectly smooth. I have an Internet-enabled home. Wait, where do I find a WiFi-supporting toaster?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-8121560824487980010?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/8121560824487980010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/10/connected-home.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/8121560824487980010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/8121560824487980010'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/10/connected-home.html' title='Connected Home'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-5887461225223713644</id><published>2009-10-08T13:08:00.003+02:00</published><updated>2009-10-08T13:26:56.063+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Do you trust your AntiVirus?</title><content type='html'>I know the topic of "how crappy signature based AVs are" is already beaten, and there are thousands of other posts about it, but I had to give it my own perspective.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But first, I guess you are running an OS which leaves you no choice but having an AV running. Otherwise, you're probably reading this for fun and knowledge, which is even better.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-0658"&gt;vulnerability&lt;/a&gt; I'll be discussing about is quite old now (8 months), and is about the way Adobe Acrobat Reader parses PDF files with JBIG streams within. You can read an &lt;a href="http://vrt-sourcefire.blogspot.com/2009/02/have-nice-weekend-pdf-love.html"&gt;analysis&lt;/a&gt; of the vulnerability in other places. Since this isn't a new vulnerability, you'd guess that by now AV products would be able to block it well. You guess wrong.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've taken a sample which is generally blocked by most AV products, and did a little modification to the 5th byte in the stream. The modification left the 6th bit on, so the file is still malicious. Now have a look at the first picture below - only 1 AV caught it as malicious.&lt;/div&gt;&lt;div&gt;Let's make another modification and change some few more bits, still leaving the 6th bit on... drum roll... not even a single AV did the job (second picture below). The file has passed and could potentially exploit the unsuspecting user who believes that having a decent AV would keep him safe.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5Wi398FvLGg/Ss3Lbd379GI/AAAAAAAAA78/WAqVgnCZAjE/s1600-h/1of40.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 230px; height: 320px;" src="http://4.bp.blogspot.com/_5Wi398FvLGg/Ss3Lbd379GI/AAAAAAAAA78/WAqVgnCZAjE/s320/1of40.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5390188001768502370" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_5Wi398FvLGg/Ss3LbqcPc_I/AAAAAAAAA8E/qQ6TZdgVLZM/s1600-h/0of40.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 215px; height: 320px;" src="http://1.bp.blogspot.com/_5Wi398FvLGg/Ss3LbqcPc_I/AAAAAAAAA8E/qQ6TZdgVLZM/s320/0of40.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5390188005142000626" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-5887461225223713644?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/5887461225223713644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/10/do-you-trust-your-antivirus.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5887461225223713644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5887461225223713644'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/10/do-you-trust-your-antivirus.html' title='Do you trust your AntiVirus?'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5Wi398FvLGg/Ss3Lbd379GI/AAAAAAAAA78/WAqVgnCZAjE/s72-c/1of40.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-5765087172578742100</id><published>2009-10-07T22:12:00.002+02:00</published><updated>2009-10-07T22:17:24.800+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Improving impression in job interviews - Part 2</title><content type='html'>Only recently I &lt;a href="http://technomosh.blogspot.com/2009/09/improving-impression-in-job-interviews.html"&gt;discussed&lt;/a&gt; about the possibility of improving the impression at job interviews using credit you earn in online activities. Now it gets another approval. Today Jeff Atwood &lt;a href="http://blog.stackoverflow.com/2009/10/introducing-stack-overflow-careers/"&gt;declared &lt;/a&gt;some sort of integration between &lt;a href="http://stackoverflow.com/"&gt;StackOverflow&lt;/a&gt; and one's CV. This is another way for a potential employer to get a better understanding about just how good you are, even before you get to the interview.&lt;div&gt;Having a respectful StackOverflow/SuperUser/ServerFault account might prove itself useful the next time you look for a job.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-5765087172578742100?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/5765087172578742100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/10/improving-impression-in-job-interviews.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5765087172578742100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5765087172578742100'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/10/improving-impression-in-job-interviews.html' title='Improving impression in job interviews - Part 2'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-4176289953442626018</id><published>2009-10-06T21:45:00.003+02:00</published><updated>2009-10-07T19:30:14.249+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><title type='text'>Respect</title><content type='html'>Usually I don't publish stuff I do at work in this blog, since we have a different blog for that, and most of the stuff doesn't justify re-writing or there's nothing I can elaborate.&lt;br /&gt;This time it is different, since &lt;a href="http://www.schneier.com/blog"&gt;Bruce Schneier&lt;/a&gt; has &lt;a href="http://www.schneier.com/blog/archives/2009/10/malware_that_fo.html"&gt;quoted&lt;/a&gt; us, which is something that's considered as a great respect in the security community.&lt;br /&gt;&lt;br /&gt;The URLZone trojan is very sophisticated, since it fakes the displayed balance in the bank site, so the end user could never tell the money was stolen. Also, the trojan uses the current opened session to the bank, so it doesn't need to send the account credentials nowhere.&lt;br /&gt;&lt;br /&gt;If you like to read a great technical analysis of this trojan, you can find it in our &lt;a href="http://www.finjan.com/MCRCblog.aspx?EntryId=2345"&gt;blog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-4176289953442626018?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/4176289953442626018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/10/respect.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4176289953442626018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4176289953442626018'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/10/respect.html' title='Respect'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-6451098019252339842</id><published>2009-10-03T21:23:00.002+02:00</published><updated>2009-10-03T21:55:33.883+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>The SMS will die</title><content type='html'>For sometime now I've been using &lt;a href="http://www.fring.com/"&gt;fring&lt;/a&gt; on my Nokia smartphone to communicate with my IM buddies. I can tell it is very convenient, and VoIP quality for both Skype and GoogleTalk is excellent.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Since most 3G subscribers today also pay for a data plan (which basically means - Internet traffic), applications such as fring would become more and more popular. Leaving it on for the entire month, just for texting, wouldn't drain even the most basic data plan. Using it for some VoIP calls would push the bandwidth usage and might bring it to the limit. Even so, using SkypeOut or GoogleTalk instead of long distance calls would make the price of a larger data plan quite reasonable.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I believe that eventually everyone would be connected to their IM service(s) while using a mobile device, and would use it for text messages. This would probably mean that the SMS would die, as it wouldn't make sense anymore to pay (even if it is only few cents) for 140 chars anymore.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-6451098019252339842?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/6451098019252339842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/10/sms-will-die.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6451098019252339842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6451098019252339842'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/10/sms-will-die.html' title='The SMS will die'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-4343684774709005958</id><published>2009-09-29T10:58:00.004+02:00</published><updated>2009-09-29T11:09:51.200+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>Remote control Ubuntu and Hebrew</title><content type='html'>I guess most of you already know the ability to turn on the "remote desktop" feature in Ubuntu, which basically allows you to remote control the desktop using the VNC protocol (Ubuntu/Gnome uses vino-server for that).&lt;br /&gt;&lt;br /&gt;Some people, including me, are used to have problems when it comes to keyboard layout switching using this configuration. This means that under some circumstances (especially when remote controlling using Windows), you cannot switch between keyboard layouts, and thus cannot type in Hebrew or other languages.&lt;br /&gt;&lt;br /&gt;Most solutions on the net include modifying some configuration files manually. Since I'm always looking for cleaner solutions, I continued digging, and found out that using the latest UltraVNC client solved this issue. You can use it and switch keyboard layouts freely.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-4343684774709005958?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/4343684774709005958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/09/remote-control-ubuntu-and-hebrew.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4343684774709005958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4343684774709005958'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/09/remote-control-ubuntu-and-hebrew.html' title='Remote control Ubuntu and Hebrew'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-2385244026791793375</id><published>2009-09-26T16:29:00.002+03:00</published><updated>2009-09-26T16:42:15.253+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>Improving impression in job interviews</title><content type='html'>My C.V includes this line saying I'm involved with Open-Source software development. Most interviewers even asked me about this, and about which projects I engaged. Not even a single one had questioned for the reason. I guess this is obvious that one is passionate about the profession if he/she has  a software hobby on the side, and especially if it is pure contribution which doesn't bring any profit. So I recommend all of you one of the two:&lt;div&gt;&lt;ol&gt;&lt;li&gt;If you're engaged with the FOSS community, and contribute in &lt;b&gt;any&lt;/b&gt; way, even if it is testing or translations, you should brag about it in your C.V.&lt;/li&gt;&lt;li&gt;If you're not engaged with the FOSS community, and looking for a hobby (which doesn't necessary takes a lot of time), you should look for a piece of software you like and use, be it a torrent client, chat client, the tiniest usability app - and see what you can do to improve it. Maybe start by reporting bugs and/or try to fix them, or simply add a translation to your native language.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Recently it seems employers are getting even more ways of telling how good programmer you are, without even asking you questions or bringing you to an interview. Take for example &lt;a href="http://trollim.com/"&gt;Trollim&lt;/a&gt;, which ultimately allows you to get a rank which says just how good you are. Or take &lt;a href="http://code.google.com/codejam/"&gt;Google Code Jam&lt;/a&gt;, which doesn't "rank" you, but says something about you if you participate and advance. Specifying to your would-be-employer that you have participated in such activities, shows something about you and your passion to the profession. Think about it.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-2385244026791793375?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/2385244026791793375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/09/improving-impression-in-job-interviews.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2385244026791793375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2385244026791793375'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/09/improving-impression-in-job-interviews.html' title='Improving impression in job interviews'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-5889735060728540857</id><published>2009-09-11T00:34:00.002+03:00</published><updated>2009-09-11T00:38:19.588+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Heating up</title><content type='html'>Since I have a special place in my heart to Oracle and its products, I thought I'd share with you &lt;a href="http://www.oracle.com/features/suncustomers.html"&gt;an ad Oracle has published today&lt;/a&gt;. This as is supposed to make Sun customers feel better after Sun was purchased by Oracle.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I didn't see that coming, an ad which directly challenges IBM to compete with Oracle. Also, Ellison's confidence is admirable. Looking forward to see how it evolves.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-5889735060728540857?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/5889735060728540857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/09/heating-up.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5889735060728540857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5889735060728540857'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/09/heating-up.html' title='Heating up'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-2547060772533450447</id><published>2009-09-08T12:30:00.003+03:00</published><updated>2009-09-08T12:32:05.604+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>FUD</title><content type='html'>Read &lt;a href="http://www.neowin.net/news/main/09/09/07/microsoft-internal-slideshow-for-retailers-targets-linux"&gt;this&lt;/a&gt; on neowin today.&lt;div&gt;Well, they do have to give the retailers something to argue about with a potential customer, but at least get the facts right.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-2547060772533450447?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/2547060772533450447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/09/fud.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2547060772533450447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2547060772533450447'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/09/fud.html' title='FUD'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-3409489145651836969</id><published>2009-09-02T19:41:00.003+03:00</published><updated>2009-09-02T19:54:14.523+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Becoming number 1</title><content type='html'>Recently I stumbled upon this &lt;a href="http://blog.businessofsoftware.org/2009/09/joel-spolskys-talk-at-business-of-software-2008-on-being-number-one.html"&gt;great lecture&lt;/a&gt; by Joel Spolsky.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There's a part at the beginning where he demonstrates how Windows behaves when he wants to upload a picture taken using a digital camera to the web. This is very much true, and us, computer people, can know that only by seeing somebody else having this bad experience. In my case, all I have to do is see what my mom succeeds in doing alone, and in what actions she fails and require my help.&lt;/div&gt;&lt;div&gt;Every now and than I consider moving her from the much-giving-trouble XP she uses now, to a different environment, which would support her better, and make my life easier. Problem is no matter which move it'll be (except than a newer Windows), it'll force her to give up on IE, which is still required every now and than by some Israeli web sites she visits.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-3409489145651836969?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/3409489145651836969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/09/becoming-number-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/3409489145651836969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/3409489145651836969'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/09/becoming-number-1.html' title='Becoming number 1'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-7019796900996609526</id><published>2009-08-28T01:36:00.002+03:00</published><updated>2009-08-28T01:51:17.139+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>Media Center connectivity with Nokia N95</title><content type='html'>If you are a lucky owner of a Nokia N95 or other advanced N-series device, you should know your device supports the &lt;a href="http://en.wikipedia.org/wiki/Digital_Living_Network_Alliance"&gt;DLNA &lt;/a&gt;protocol. This protocol is basically an extension to the well known UPnP, which was designed for media devices, such as media centers, gaming consoles, DVDs, and yes, multimedia smartphones.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Since the Symbian menu hierarchy is rather complicated, I challenge you to find on your own the "Home Media" application, and lunch it. After the wizard completes, you should be able to share media files (pics, videos and music) between other devices you might have, and the mobile phone.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This way, If you have a PS3, just let it scan for network devices, and see how it finds the mobile phone and displays its contents. It can even stream music from it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After I managed to successfully play files from my N95 on my Windows Media Center and play files from the PC on the device (requires Windows Media Player 11), I decided I should try my favorite Media Center software - Elisa. Since Elisa is DLNA compatible, and is open-source, I had thought this one is gonna be an easy task. So I was wrong. I am yet to crack this thing. For some reason, Elisa refuses to see other devices, and doesn't display the N95. As far as I can tell, no one has succeeded yet in doing so.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So as I was about to give up, I decided to put Apple's FrontRow to the test. Nada. Doesn't work as well. So I'm stuck with Windows software.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now that you know your N-series device has such an amazing capabilities, please go on and try to make it work with Elisa or a different open-source Media Center software. I would really love to see this one working.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-7019796900996609526?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/7019796900996609526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/08/media-center-connectivity-with-nokia.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/7019796900996609526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/7019796900996609526'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/08/media-center-connectivity-with-nokia.html' title='Media Center connectivity with Nokia N95'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-412982880731781978</id><published>2009-08-26T11:49:00.002+03:00</published><updated>2009-08-26T11:59:11.647+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Israel becoming a Mac country?</title><content type='html'>Judging by the amount of media coverage Apple's products gets in the Israeli blogsphere and media lately, one could think that most computers in Israel actually carry the bitten Apple logo.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And I'm not even talking about the iPhone, which is going to flood the cellular market here. Estimates say that by next year, 15% of mobile devices will be iPhones.&lt;/div&gt;&lt;div&gt;Since we're a land of hackers, this means many more OS X installations will be done, as the development tools runs exclusively on OS X.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But look at how many articles there's out there about the next version of OS X, the pricing, estimates about features and arrival date to Israel, etc. Since when does anybody in Israel care about Mac so much?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Maybe this is part of the move of Israel becoming another star on the American flag - just like Americans favors the Mac, so will the Israeli. Time will tell.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-412982880731781978?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/412982880731781978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/08/israel-becoming-mac-country.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/412982880731781978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/412982880731781978'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/08/israel-becoming-mac-country.html' title='Israel becoming a Mac country?'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-4177025309107453125</id><published>2009-08-13T20:35:00.002+03:00</published><updated>2009-08-13T20:44:11.918+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>How to get rid of the pesky Windows Error Reporting popups</title><content type='html'>Today at work I've been developing something to automate part of my Windows malware analysis routine (so many malware for Windows, one gotta automate it). Problem is the code isn't perfect, and malware causes many kinds of corner cases. So for every few hundred files, it crashes with the annoying Windows send/don't-send dialog (or the simple error reporting's OK/Cancel dialog).&lt;br /&gt;&lt;br /&gt;When running this over thousands of files at a time, this could be really annoying, especially if I go and do something else in the mean while, so there's no one to close the dialog.&lt;br /&gt;&lt;br /&gt;After digging around, I found &lt;a href="http://www.johanneshuebner.com/en/clickoff.shtml"&gt;this gem&lt;/a&gt;. A tool called ClickOff that automatically responds for dialogs, and can fill up forms, etc. I configured it to close the Windows error dialog, and now everything works smoothly without me having to watch over it.&lt;br /&gt;&lt;br /&gt;I guess Windows operations weren't made to be script-ed or automated, so one has to use 3rd party tools to overcome this. Maybe this is why Administrators hate Windows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-4177025309107453125?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/4177025309107453125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/08/how-to-get-rid-of-pesky-windows-error.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4177025309107453125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4177025309107453125'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/08/how-to-get-rid-of-pesky-windows-error.html' title='How to get rid of the pesky Windows Error Reporting popups'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-6416148775031526697</id><published>2009-08-12T11:24:00.002+03:00</published><updated>2009-08-12T11:31:42.735+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Amazing social engineering technique</title><content type='html'>Yesterday, a collegue of mine (and a friend) published &lt;a href="http://www.finjan.com/MCRCblog.aspx?EntryId=2317"&gt;this post&lt;/a&gt; on Finjan's blog.&lt;div&gt;I won't dig into the details, you can read it there. What amazes me is how great the social engineering and SEO techniques used by Koobface are, and how effective it is.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finally, it is quite rare to read a detailed explanation which covers the attack from A to Z.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-6416148775031526697?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/6416148775031526697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/08/amazing-social-engineering-technique.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6416148775031526697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6416148775031526697'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/08/amazing-social-engineering-technique.html' title='Amazing social engineering technique'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-7401866706055376021</id><published>2009-08-06T19:58:00.002+03:00</published><updated>2009-08-06T20:05:25.524+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Obvious message that reduces motivation</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5Wi398FvLGg/SnsMEFao6BI/AAAAAAAAA5k/nP_r69QWLwo/s1600-h/skype.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 260px; height: 320px;" src="http://2.bp.blogspot.com/_5Wi398FvLGg/SnsMEFao6BI/AAAAAAAAA5k/nP_r69QWLwo/s320/skype.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5366896645254998034" /&gt;&lt;/a&gt;Today I noticed that Skype offers me to upgrade from version 3 to version 4. I know this isn't very new, yet I didn't upgrade so far since I don't like the new UI.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now I noticed this message in the upgrade offer: "...keep all your contacts and settings".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What? If I couldn't keep my contacts and settings between upgrades, I would have never used Skype! My requirement to keep such things is so obvious, that the fact the message is presented makes one worried: if the message wasn't displayed, would it mean my contacts will be lost forever???&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-7401866706055376021?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/7401866706055376021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/08/obvious-message-that-reduces-motivation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/7401866706055376021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/7401866706055376021'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/08/obvious-message-that-reduces-motivation.html' title='Obvious message that reduces motivation'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5Wi398FvLGg/SnsMEFao6BI/AAAAAAAAA5k/nP_r69QWLwo/s72-c/skype.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-8466480853786838711</id><published>2009-08-04T22:47:00.002+03:00</published><updated>2009-08-04T22:54:24.780+03:00</updated><title type='text'>You snooze, you lose</title><content type='html'>Two days ago, we've found something really nice at work, which is worth blogging about. So we wrote down a draft and started the &lt;a href="http://technomosh.blogspot.com/2008/11/professional-blogging.html"&gt;long workflow&lt;/a&gt; of getting it approved. By the time we were about to finish, we found out someone else has already &lt;a href="http://www.f-secure.com/weblog/archives/00001743.html"&gt;wrote about it&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We missed the chance to be the first to publish about this issue only by few hours. But as I mentioned before, professional blogging makes one much slower and less dynamic.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-8466480853786838711?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/8466480853786838711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/08/you-snooze-you-lose.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/8466480853786838711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/8466480853786838711'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/08/you-snooze-you-lose.html' title='You snooze, you lose'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-2021937122258026874</id><published>2009-08-01T23:00:00.003+03:00</published><updated>2009-08-01T23:08:59.620+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Computing MD5 sum in Python</title><content type='html'>So, you're writing some Python code which requires computation of an MD5 sum of a given input file. Don't worry, it's quite easy. Following are two ways to achieve this.&lt;br /&gt;&lt;br /&gt;Method one: compute the MD5 sum using Python's APIs:&lt;br /&gt;&lt;blockquote&gt;infile = open("filename", 'rb')&lt;br /&gt;content = infile.read()&lt;br /&gt;infile.close()&lt;br /&gt;m = hashlib.md5() # don't forget to "import hashlib"&lt;br /&gt;m.update(content)&lt;br /&gt;md5 = m.hexdigest() # now the md5 variable contains the MD5 sum&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;Method two: using the OS command `md5` on Linux, or the Windows command line utility available for download:&lt;br /&gt;&lt;blockquote&gt;p = subprocess.Popen("md5 " + "filename", shell = True, stdout=subprocess.PIPE) # don't forget to "import subprocess"&lt;br /&gt;md5 = p.stdout.readline().split() # now the md5 variable contains the MD5 sum&lt;br /&gt;p.wait() # some clean up&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;That all folks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-2021937122258026874?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/2021937122258026874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/08/computing-md5-sum-in-python.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2021937122258026874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2021937122258026874'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/08/computing-md5-sum-in-python.html' title='Computing MD5 sum in Python'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-6349050729313590139</id><published>2009-07-26T23:01:00.004+03:00</published><updated>2009-07-27T09:13:44.873+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Awkward WPA2 Issue</title><content type='html'>Yesterday I was at my brother's, trying to fix a WiFi problem he had for the past six months. The problem existed ever since I set up the wireless network at his house, which probably says something about me :(.&lt;br /&gt;&lt;br /&gt;Anyway, the problem is like that: the network works fine with the PC connected to it via cable, and with our Nokia smartphones connected to it via WiFi. Also, a PS3 device is connected wirelessly.&lt;br /&gt;The only device not working properly is a Dell laptop. The laptop was able to connect to the network after a long time, and then only web browsing worked. No instant messenger, no e-mail, no file-sharing. Only the web, and quite slow.&lt;br /&gt;&lt;br /&gt;I eliminated the possibility the problem is around open ports and/or port forwarding, after messing with it for about an hour or so. I also noticed some things started working once I disabled the Windows firewall.&lt;br /&gt;Also, everything worked perfectly when the firewall was on, and we used a neighbor's unsecured wireless network.&lt;br /&gt;&lt;br /&gt;Then it hit me that the problem might be in the network security. After few minutes I had everything working perfectly: changed the security setting from WPA2 to WPA, and that's it!&lt;br /&gt;&lt;br /&gt;I hate to think that some problems are &lt;a href="http://sysadmintales.blogspot.com/2007/12/gotta-have-faith.html"&gt;voodoo problems&lt;/a&gt;, but this one had all the symptoms. Until today I found out this is a well known issue with Dell laptops. Someone I consider an expert explained:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;You can try and upgrade the driver. But it doesn't always work.&lt;/li&gt;&lt;li&gt;You can reduce security to WPA, but that, as we all know, means the network is hack-able.&lt;/li&gt;&lt;li&gt;You can use an external WiFi NIC.&lt;/li&gt;&lt;/ol&gt;Too bad I didn't know it on the first place. Considering the situation, I'll leave the network with WPA security and hope for the best.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-6349050729313590139?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/6349050729313590139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/07/awkward-wpa2-issue.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6349050729313590139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6349050729313590139'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/07/awkward-wpa2-issue.html' title='Awkward WPA2 Issue'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-2277620684522806181</id><published>2009-07-20T22:47:00.002+03:00</published><updated>2009-07-20T22:57:43.426+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Why reboot, why?</title><content type='html'>My goal for last Sunday was: be able to talk in Skype and/or other VoIP clients without being "cabled" to my PC. Connecting my Nokia N95 wireless-ly will be a bonus.&lt;br /&gt;&lt;br /&gt;So I bought a Bluetooth adapter, and decided to use the BT headset I used with my cell phone. Compare the installation process between different OSes:&lt;br /&gt;&lt;br /&gt;Windows: Connected BT adapter. Windows driver automatically installed. Added BT software. Reboot. Upgraded BT software. Reboot. Paired BT headset. Launched Skype. Skype BT add-on installed. Reboot. Upgraded Nokia PC Suite. Reboot. Everything works.&lt;br /&gt;&lt;br /&gt;OS X: Connected BT adapter. Paired BT headset. Launched Skype. Installed Nokia Mac software. Paired Nokia. Everything works.&lt;br /&gt;&lt;br /&gt;All of those reboots took me a lot of time, so I didn't manage yet to test it on Linux. Rumor says I'll need some special software like in Windows (making the BT headset function as an audio I/O device), so I might update about it when done. Even though, I don't expect any reboots to take place.&lt;br /&gt;&lt;br /&gt;Why on earth did I have to reboot that much?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-2277620684522806181?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/2277620684522806181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/07/why-reboot-why.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2277620684522806181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2277620684522806181'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/07/why-reboot-why.html' title='Why reboot, why?'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-6412997908162757695</id><published>2009-07-18T23:39:00.003+03:00</published><updated>2009-07-19T23:45:27.602+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><title type='text'>Viruses In Linux</title><content type='html'>Many Linux users, and non-Linux users, believe Linux is a virus-free OS.&lt;br /&gt;Other believe that even if a virus hits a Linux machine, the impact would be little, as it runs without root privileges.&lt;br /&gt;&lt;br /&gt;So the shocking news are: both wrong. Linux distros has bugs and vulnerabilities which can be exploited for malicious activities. Such can include remote-control trojans, rootkits, data-theft, and so on. Those viruses gains root access without the user's acknowledgment.&lt;br /&gt;&lt;br /&gt;Recently I found at work a server hosting tons of Linux viruses, with the source code, which exploits recent kernels used in modern distros. &lt;a href="http://www.virustotal.com/analisis/cdb4bbcee02eafaa3d2acae827b53b4f4a4e680e8987e996472967702fe60583-1245753967"&gt;Here&lt;/a&gt; are &lt;a href="http://www.virustotal.com/analisis/5e440444f93a5ab3f5b945e8bc57b7ee9713b0617d67862014e6616b4dbb0a75-1245754162"&gt;few&lt;/a&gt; &lt;a href="http://www.virustotal.com/analisis/69cdfc3e06397a79deeb22be174317c9fddb8907f7a29200528489324838fd42-1245754291"&gt;examples&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I don't want to raise any panic. Linux is still way safer than Windows. So does OS X. This is mostly due to the fact those OSes are far less popular on the desktop. Also, updates are released faster, and thanks to package management, installed regardless which piece of software is vulnerable.&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;img src="http://www.blogger.com/img/blank.gif" alt="Link" class="gl_link" border="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-6412997908162757695?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/6412997908162757695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/07/viruses-in-linux.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6412997908162757695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6412997908162757695'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/07/viruses-in-linux.html' title='Viruses In Linux'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-5829593068772554533</id><published>2009-07-18T23:16:00.004+03:00</published><updated>2009-07-21T00:30:24.658+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Anti-Social Networking</title><content type='html'>I admit: the only social network I'm taking part of is LinkedIn. I don't like twitter, because I don't feel the urge to talk into the void. I don't use facebook, because I'm not looking for a date. The list goes on...&lt;br /&gt;&lt;br /&gt;One side effect I noticed about social networks, facebook specifically, is the fact they encourage anti-social behavior. I'll explain. In the past few months two of my friends (which are not related to one another) got back from a long trip abroad, and found new jobs. Some mutual friends of mine were able to tell me the details about the pictures uploaded to facebook, and the job title of those that came back. But that's it. Nothing else. Most of them didn't consider calling or meeting and get the details about the trips or the jobs. In my opinion, this is what matter most. Seeing someone's pictures is one thing, but listening to the experience and the stories around the trip is entirely different.&lt;br /&gt;&lt;br /&gt;So those who gets updated through somebody's profile might think they know the person in question, but in fact, they know nothing.&lt;br /&gt;&lt;br /&gt;Other side effect is the fact some people are relying too much on those networks as the means of communication and the primary source of knowledge about those they are connected to. Others, rely on the network's updates about people's status, birthdays, couple-state (single, with a g/f or b/f, married, ...), etc. too much. No updates - no knowledge.&lt;br /&gt;&lt;br /&gt;The sad ending of this post is the fact I don't think things are going to change for the better. We'll rely more and more on technology to do our tasks, including social tasks, and our brains will become degenerated.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-5829593068772554533?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/5829593068772554533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/07/anti-social-networking.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5829593068772554533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5829593068772554533'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/07/anti-social-networking.html' title='Anti-Social Networking'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-4939195459829424399</id><published>2009-07-13T20:56:00.003+03:00</published><updated>2009-07-13T21:03:40.796+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSource'/><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Ireland. Tags</title><content type='html'>First, allow me to apologize for not updating my blog in a while. I have a good reason for that: I just got back from Ireland. Wanna see? &lt;a href="http://picasaweb.google.com/moshe.basanchig/Ireland"&gt;Here&lt;/a&gt;.&lt;br /&gt;Ireland is a great place for a trip, and I would highly recommend it. Perhaps I'll dedicate a post about things to do and things not to do there.&lt;br /&gt;&lt;br /&gt;Second, starting from this post, I'm adding labels to the posts. "OpenSource" will naturally be about open-source software. "General" has nothing to do with anything else except my life and musings (such as a post about Ireland). "Technology" - well, enough said...&lt;br /&gt;If I understand correctly, readers could choose to subscribe to specific labels only. I'd still prefer you'll read everything I write, but hey, that's up to you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-4939195459829424399?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/4939195459829424399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/07/ireland-tags.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4939195459829424399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4939195459829424399'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/07/ireland-tags.html' title='Ireland. Tags'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-5959786094800435165</id><published>2009-06-17T21:27:00.002+03:00</published><updated>2009-06-17T21:37:23.454+03:00</updated><title type='text'>OS X oddities</title><content type='html'>This one is not FOSS related, so some readers might wanna skip it.&lt;br /&gt;&lt;br /&gt;I noticed two interesting oddities with Mac OS X this week:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;When I used Skype, the call used to drop every few minutes. It seems that turning the automatic time synchronization (via NTP) off, solves the problem. Usually, this would have been called &lt;a href="http://sysadmintales.blogspot.com/2007/12/gotta-have-faith.html"&gt;voodoo&lt;/a&gt;. Apparently OS X, just like MS Windows, became quite a bloated OS, so such bugs pop every once in a while, where a reasonable explanation isn't in the horizon.&lt;/li&gt;&lt;li&gt;For downloading torrents under OS X, I use Transmission. I had good experience with the Linux version, so it was my first choice. Apparently, it is capable of reaching my full internet connection speed, even during the hours my ISP &lt;a href="http://technomosh.blogspot.com/2009/03/isp-traffic-shaping.html"&gt;throttles&lt;/a&gt; traffic. I still don't know how this trick is achieved, so I'll dig into it once I'll get the chance.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-5959786094800435165?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/5959786094800435165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/06/os-x-oddities.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5959786094800435165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5959786094800435165'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/06/os-x-oddities.html' title='OS X oddities'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-3872350945894500065</id><published>2009-06-05T16:45:00.002+03:00</published><updated>2009-06-05T16:57:34.733+03:00</updated><title type='text'>Malware toolkits</title><content type='html'>It's been a while since I last &lt;a href="http://technomosh.blogspot.com/2009/01/illusion-of-being-protected.html"&gt;published&lt;/a&gt; here something related to my work. There are few reasons for that, such as some of my work-posts are more of marketing than pure technical achievements.&lt;br /&gt;&lt;br /&gt;Anyway, some of you, my readers, had asked me to link here to some of the more technical stuff we do, or explain how a full-blown over-the-internet-attack works. So here are two posts I published in the past few months, demonstrating malware toolkits. Should this post's responses include more specific questions about toolkits, I'll try to answer them in following posts.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.finjan.com/MCRCblog.aspx?EntryId=2213"&gt;LuckySploit&lt;/a&gt;. This one describes one of the most sohpisticated attacks out there. It is very much oriented to avoid anti-virus products during the infection process. Moreover, the fact this toolkit uses encryption is really impressive.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.finjan.com/MCRCblog.aspx?EntryId=2266"&gt;Unique Pack&lt;/a&gt;. The funny case with this one is the fact Firefox users weren't vulnerable to this specific attack (Firefox has some vulnerabilities, so keep it updated at all time).&lt;/li&gt;&lt;/ol&gt;Now I must add the fact that using Linux and/or Firefox doesn't mean one is protected, although it really increases your chances to stay clear. Keep your software updated.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-3872350945894500065?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/3872350945894500065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/06/malware-toolkits.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/3872350945894500065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/3872350945894500065'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/06/malware-toolkits.html' title='Malware toolkits'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-8752725511909636032</id><published>2009-06-03T21:57:00.002+03:00</published><updated>2009-06-03T22:15:51.686+03:00</updated><title type='text'>Hello (mobile) World</title><content type='html'>Yesterday I've completed my first Android application. One can read about mobile platforms all over the place these days, as the competition between them heats up. So I decided to give it a shot.&lt;br /&gt;&lt;br /&gt;This is not my first attempt to write a mobile application, as about a year ago I've written some Python apps for Symbian. Moreover, few weeks ago I've written a simple application for the iPhone. This puts me in a position where I've tried coding for most of the popular mobile platforms, except RIM and Windows Mobile.&lt;br /&gt;&lt;br /&gt;Quite surprisingly, mobile development environment has reached maturitiy. This manifests in the existance of visual development tools (drag-n'-drop controls), debuggers, code completion, etc. Not having such tools as my day-to-day development (I mainly use vi and notepad++) isn't a big deal, but for mobile development this is a must. The complexity of creating an application is just too big, and reminds me of the first days of J2EE development - tons of XML files, source files, resources, etc.&lt;br /&gt;&lt;br /&gt;This also means I got to try Objective-C, as this is the language for iPhone development. I really don't understand why would Apple insist on that language, with such great alternatives.&lt;br /&gt;&lt;br /&gt;I expect we'll see even better ways to develop mobile applications, and such applications would take greater market share, as the lines between the desktop and the mobile starts fading away.&lt;br /&gt;&lt;br /&gt;Addition: If I had the means, I would have written something for OpenMoko as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-8752725511909636032?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/8752725511909636032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/06/hello-mobile-world.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/8752725511909636032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/8752725511909636032'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/06/hello-mobile-world.html' title='Hello (mobile) World'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-162258112587836028</id><published>2009-06-03T20:17:00.002+03:00</published><updated>2009-06-03T20:21:10.412+03:00</updated><title type='text'>Japanese is actually a sysadmin language</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5Wi398FvLGg/SiawxupNjgI/AAAAAAAAAr4/rx0fhvupckU/s1600-h/japanese.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 176px;" src="http://4.bp.blogspot.com/_5Wi398FvLGg/SiawxupNjgI/AAAAAAAAAr4/rx0fhvupckU/s320/japanese.png" alt="" id="BLOGGER_PHOTO_ID_5343152376302636546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Got this one today by mail. Quite funny.&lt;br /&gt;If you don't get it - enlarge the image.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-162258112587836028?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/162258112587836028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/06/japanese-is-actually-sysadmin-language.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/162258112587836028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/162258112587836028'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/06/japanese-is-actually-sysadmin-language.html' title='Japanese is actually a sysadmin language'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5Wi398FvLGg/SiawxupNjgI/AAAAAAAAAr4/rx0fhvupckU/s72-c/japanese.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-4504328668383758840</id><published>2009-05-28T17:46:00.002+03:00</published><updated>2009-05-28T18:28:21.267+03:00</updated><title type='text'>Security, UI and things between</title><content type='html'>I'm not sure when exactly that happened, but it seems I got myself a name of someone who truly hates Microsoft. For instance, yesterday a friend of mine was really shocked to hear some good criticism from me regarding Windows 7. Some of you may be surprised to read this, but I do not hate Microsoft. I have friends working for Microsoft, and I myself once considered a position there.&lt;br /&gt;&lt;br /&gt;Yesterday, a friend of mine, who's using IE7 on Windows XP was infected with &lt;a href="http://www.virustotal.com/analisis/f7c1a7033860feb93c0b9abd047c381236b1d724f9500fe9e3dfa175ee010cbf-1243262151"&gt;some virus&lt;/a&gt;. It's low detection rates by AV products, suggests it's a rather new one. Luckily enough, I recommend people (including this friend) which are using Windows for some reason, to install Avira AntiVirus, as my profession taught  me it is better (most of the time) from the others.&lt;br /&gt;Having used some useful tricks I learned at work, and the handy &lt;a href="http://www.threatexpert.com/report.aspx?md5=9fce0b0f08b26a98682093c32773f676"&gt;ThreatExpert&lt;/a&gt;, we were able to clean the infection and restore the computer to a healthy state.&lt;br /&gt;&lt;br /&gt;After the virus issue was solved, we began quite a long conversation, which lasted today's entire morning and noon, about how the infection was done in the first place, how it could have been avoided, and what measures can be taken to prevent future cases. We both agreed that popular products, such as Windows, Internet Explorer, Adobe Acrobat Reader, and the likes, are much more prone to be trageted by attackers, and this is why much more exploits exists out there to these products. Firefox is no different, in the past few years it gained huge popularity, and to some estimates it controls over 30% of the browsers market - not a number that could be easily ignored. Firefox, as well, is targeted by cyber criminals, and we see many attempts to push malware through its holes. Nonetheless, Firefox's vulnerabilities, once discovered, are handled much quicker than IE's, a fact making it much less exposed to cyber attacks.&lt;br /&gt;&lt;br /&gt;So after many persuasions, the friend agreed to install Firefox and use it exclusively for an entire week. Had Firefox failed to supply the goods, he'll try Google's Chrome or Opera.&lt;br /&gt;Soon after he started browsing the web using Firefox, I started getting complaints:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Firefox is slower than IE. I said he should remove any old Firefox remains he might have, and install it freshly.&lt;/li&gt;&lt;li&gt;A web site isn't working properly. Not giving a clue why. After I checked the issue, it seemed he missed the Flash add-on. Awkward, as the browser was supposed to say something is wrong. New version of the Flash player was installed - and everything works.&lt;/li&gt;&lt;li&gt;No apply button in the settings dialog.&lt;/li&gt;&lt;/ul&gt;What? Wait a second... what was that last point? No apply button?&lt;br /&gt;It never occurred to me that the Windows version of Firefox differs from the one installed on my Ubuntu. Go and have a look at your settings dialog. If you're using Ubuntu (I guess this applies to other Linux-es as well), your settings dialog would include a Close button, and a Help button. Every modification you make, is immediately applied. If you're using Windows, You'd have a OK button, and a Cancel button, but indeed no Apply button. This means that if you make several modifications, you can't easily undo only the last of them. A bug regarding this issue exists ever since 2003, but it doesn't seem to go nowhere.&lt;br /&gt;&lt;br /&gt;Maybe Windows users are used to lame UI.&lt;br /&gt;&lt;br /&gt;I won't even start about arguing that using a different OS, and a different software stack would solve the entire issue on the first place. But what I heard is a professional user willing to live with virus threats, lame UI, the need to upgrade software manually, accept downtime, and tons of other issues, for reasons I don't fully understand.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-4504328668383758840?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/4504328668383758840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/05/security-ui-and-things-between.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4504328668383758840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4504328668383758840'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/05/security-ui-and-things-between.html' title='Security, UI and things between'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-3723549169073369734</id><published>2009-05-26T00:07:00.003+03:00</published><updated>2009-05-26T00:36:25.466+03:00</updated><title type='text'>Various musings about productivity</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Zero Inbox&lt;/span&gt;&lt;br /&gt;I've known the term "&lt;a href="http://www.43folders.com/izero"&gt;Zero Inbox&lt;/a&gt;" for quite some time, and without really intending to do so, I used to follow that idea. Only recently I found myself flooded with email in my inbox, some of it sent by myself, and I really felt confused. What am I supposed to do now? With what shall I begin?&lt;br /&gt;This can become quite a burden, until everything is back in order. E.g. This blog post was in my head for about two months, but only now I got to the draft I sent myself.&lt;br /&gt;Conclusion: overwhelmed inbox reduces productivity.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sleepiness&lt;/span&gt;&lt;br /&gt;I don't really understand in human physiology, but I noticed something strange about myself: I'm used to sleep between 7-8 hours at night, and this keeps my highly active during the entire day. But it really does depend on when these sleeping hours begin: the earlier, the better. This means sleeping between 00:00-08:00 feels much better than sleeping between 02:00-10:00.&lt;br /&gt;Conclusion: sleeping 8 hours doesn't guarantee productivity. It is only a requirement.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Cubicles&lt;/span&gt;&lt;br /&gt;I wish I had worked at Fog Creek, just because they have &lt;a href="picasaweb.google.com/spolsky/FogCreekSNewOffice"&gt;amazing&lt;/a&gt; office space. Instead, my workspace is a cubicle. I know for a fact it is bigger and better equipped than other cubicles out there, but still it holds most of the disadvantages of cubicles. It's like software companies aren't aware to the fact programmers productivity is directly affected by their ability to concentrate for long periods of time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Music&lt;/span&gt;&lt;br /&gt;Different tasks and different moods require different music. Each task has its own music which helps getting into the &lt;a href="http://en.wikipedia.org/wiki/Flow_%28psychology%29"&gt;zone&lt;/a&gt;. This is why I have various different genres in my &lt;a href="http://www.deezer.com"&gt;deezer&lt;/a&gt; playlists. Music is one tool to solve issues caused due to working in cubicles.&lt;br /&gt;&lt;br /&gt;Many things has effect on our productivity, and it is difficult to manage them all. Sometimes we're more productive than in other times, but it is always impotant to be aware of that, and they to improve.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-3723549169073369734?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/3723549169073369734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/05/various-musings-about-productivity.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/3723549169073369734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/3723549169073369734'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/05/various-musings-about-productivity.html' title='Various musings about productivity'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-2099911050785357848</id><published>2009-05-14T21:46:00.000+03:00</published><updated>2009-05-14T22:02:02.695+03:00</updated><title type='text'>Hello Mac</title><content type='html'>As I've &lt;a href="http://technomosh.blogspot.com/2009/01/another-day-another-os.html"&gt;written before&lt;/a&gt;, I always had the passion of installing and messing around with different OSes. Having VMs is fun. Moving from single boot to dual boot to multi boot is even more.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My current victim is Mac OS 10.5.5. Actually these lines are written from within the Safari browser running on that OS. A friend of mine told me he moved from Windows to Linux because it was more fun, and moved from Linux to Mac because things are simpler and everything just works.&lt;/div&gt;&lt;div&gt;After using the Mac OS for two days I really don't get it. Things don't just work. If you're used to something different (say Windows or Linux), you'll need some time to adjust to the interface and to the whereabouts of applications and other stuff.&lt;/div&gt;&lt;div&gt;I guess what all those Mac users are so proud about is not their super-easy super-strong OS, but the very well-done integration between the hardware and the software. Having limited choice between the available hardware (which is also very expensive in Israel), makes the OS design much simpler and easier. No quirks about some obscure WiFi or RAID adapters. All the drivers you need are supplied with the OS, and the OS is built to put this hardware to good use.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Didn't have the chance to go over all of the applications bundled with the OS (time-machine, spotlight, i[Placeholder], etc.), so I can't judge it fully. I think I'll be smarter once I'll be able to compile my first Objective-C "Hello, World!", so I'll be able to compare what's in this OS for developers.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-2099911050785357848?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/2099911050785357848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/05/hello-mac.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2099911050785357848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2099911050785357848'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/05/hello-mac.html' title='Hello Mac'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-5156674398334846702</id><published>2009-05-05T20:25:00.002+03:00</published><updated>2009-05-05T20:39:39.465+03:00</updated><title type='text'>ISP traffic shaping - cont. (2)</title><content type='html'>Still &lt;a href="http://technomosh.blogspot.com/2009/04/isp-traffic-shaping-cont.html"&gt;continuing &lt;/a&gt;my &lt;a href="http://technomosh.blogspot.com/2009/03/isp-traffic-shaping.html"&gt;posts &lt;/a&gt;about Israeli ISPs which perform traffic shaping without admitting it. This time: does a certain ISP &lt;span style="font-weight: bold;"&gt;encourage piracy&lt;/span&gt;?&lt;br /&gt;&lt;br /&gt;I must admit it - I consider myself as a PC gamer (the only real reason to have Windows installed). Generally, computer and console games in Israel are expensive. Too expensive. A while ago I became familiar with a cool service from Valve: &lt;a href="http://store.steampowered.com/about/"&gt;steam&lt;/a&gt;. I believe this service is the right direction of gaming companies, so they could survive the on-going piracy in the field.&lt;br /&gt;&lt;br /&gt;Now check out &lt;a href="https://support.steampowered.com/kb_article.php?ref=1456-EUDN-2493"&gt;this &lt;/a&gt;forum question in steam. You read it right, 012 is known to be blocking steam and games traffic. I checked it, and it is true. Without firewall or anything else to disturb steam, it simply can't connect steam servers to update itself.&lt;br /&gt;&lt;br /&gt;Whether this is done on purpose or by ignorance doesn't matter. 012's customers are left without the option to use steam. So a customer which wouldn't afford itself the 3x price of the store, might turn to the less legal option... everybody loses.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-5156674398334846702?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/5156674398334846702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/05/isp-traffic-shaping-cont-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5156674398334846702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5156674398334846702'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/05/isp-traffic-shaping-cont-2.html' title='ISP traffic shaping - cont. (2)'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-8984870557584330533</id><published>2009-05-01T11:49:00.002+03:00</published><updated>2009-05-01T11:54:45.570+03:00</updated><title type='text'>Helping sysadmins</title><content type='html'>Ever since I worked as a sysadmin, I was waiting for something like &lt;a href="http://blog.stackoverflow.com/2009/04/server-fault-private-beta-begins/"&gt;serverfault&lt;/a&gt; to come out. This is a sister-site for stackoverflow, which I have blogged about before. Last night I logged in for the first time to serverfault, entered my OpenID (based on my blogger account), and my profile was converted from stackoverflow. Now I already own the first badge there.&lt;br /&gt;&lt;br /&gt;Sorry for the short post, I hope I'll get back to blogging soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-8984870557584330533?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/8984870557584330533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/05/helping-sysadmins.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/8984870557584330533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/8984870557584330533'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/05/helping-sysadmins.html' title='Helping sysadmins'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-6234130690878283513</id><published>2009-04-10T23:19:00.002+03:00</published><updated>2009-04-10T23:43:58.821+03:00</updated><title type='text'>ISP traffic shaping - cont.</title><content type='html'>Thought it might be a good idea to update you regarding latest developments and research results since the &lt;a href="http://technomosh.blogspot.com/2009/03/isp-traffic-shaping.html"&gt;previous post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I've been trying the 1.9 beta of uTorrent (available for Windows, runs perfectly under Wine on Linux), since I heard it supports &lt;a href="http://en.wikipedia.org/wiki/Micro_Transport_Protocol"&gt;uTP&lt;/a&gt;. The reason uTP is important, is because it is believed that ISPs aren't "shaping" this sort of traffic. The experiment seems to be progressing well, as download speeds increased, but still not perfect - not everyone uses uTP-enabled torrent client. But still, now my computer downloads from other computers accross the world, at high speeds, using the new protocol.&lt;br /&gt;&lt;br /&gt;So there are few problems which still keeps me from getting my full bendwidth:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;No open-source implementation of the protocol - slower adoptation.&lt;/li&gt;&lt;li&gt;Few closed clients are implementing the protocol, and are still in beta - slower adoptation.&lt;/li&gt;&lt;li&gt;ISP still "shapes" other protocols. Annoying.&lt;/li&gt;&lt;li&gt;Future problem: will the ISP "shape" uTP?&lt;/li&gt;&lt;/ol&gt;Happy passover.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-6234130690878283513?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/6234130690878283513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/04/isp-traffic-shaping-cont.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6234130690878283513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6234130690878283513'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/04/isp-traffic-shaping-cont.html' title='ISP traffic shaping - cont.'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-2774355064629452667</id><published>2009-04-01T15:02:00.002+03:00</published><updated>2009-04-01T15:09:27.791+03:00</updated><title type='text'>Conficker coming to Linux</title><content type='html'>I guess that by now you've all read about the latest threat over Windows-running PCs - the Conficker worm. So far Conficker had shown some very impressive capabilities, both in infecting innocent machines, and in evading AV products and other security measures.&lt;div&gt;Today I found at work a Conficker mutation which affects Linux-running computers. Currently it seems to be targeting only specific, debian-based, distros, such as &lt;a href="http://technomosh.blogspot.com/2008/12/change-is-not-always-welcome-or-needed.html"&gt;Ubuntu&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;Users of older versions of Ubuntu (7.10 and below) are protected due to usage of older kernel.&lt;/div&gt;&lt;div&gt;Everyone who uses newer versions, hurry up and downgrade, or install a more secure and solid OS such as &lt;a href="http://en.wikipedia.org/wiki/Windows_Me"&gt;Windows Millenium Edition&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-2774355064629452667?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/2774355064629452667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/04/conficker-coming-to-linux.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2774355064629452667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2774355064629452667'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/04/conficker-coming-to-linux.html' title='Conficker coming to Linux'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-6217530698434749232</id><published>2009-03-14T13:35:00.003+02:00</published><updated>2009-03-14T20:28:09.971+02:00</updated><title type='text'>ISP traffic shaping</title><content type='html'>As I've &lt;a href="http://technomosh.blogspot.com/2009/01/telco-in-israel-and-dirty-tricks.html"&gt;written &lt;/a&gt;before, I'm using file-sharing every now and than, to download a new version of my Linux distro (and other distros for testing), or to download a TV show which doesn't show in Israel, or I cannot watch by other means. Also, as you may all know, the best way to do so, is using a torrent client, such as Transmission, uTorrent, Vuze, etc.&lt;br /&gt;&lt;br /&gt;It seems ISPs in Israel (and probably world wide) are playing a double-game. Their first interest is to sell us as much bandwidth as possible. Only recently a new commercial went on-air telling us how much more music and movies can be downloaded if one would double their bandwidth. On the other hand - it seems some ISPs are doing traffic shaping.&lt;br /&gt;&lt;br /&gt;Me and a friend of mine are both subscribers of a large ISP, which has the word "gold" in its name, and we are quite sick and tired of this. After doing some thorough tests, we came to a conclusion that torrent traffic is being limited during most of the day. In those hours, the torrent would download at full throttle only from clients subscribed to the same (our) ISP. As for the rest - download rate was roughly 1KBPS. At about 2AM, the limitation is removed, and all of a sudden those same clients started sending data at blazingly fast rates, which lasted until morning.&lt;br /&gt;&lt;br /&gt;What bothers me more is the fact there's no transparency regarding traffic shaping. If I'm being limited - I want to know about it. Some uses are legitimate, and consumers must be aware for those limitations. Moreover, what if other services are "shaped" as well, such as the bandwidth-consuming youtube? I like watching youtube videos at HD, and don't want those to be choppy (and I noticed they sometimes do).&lt;br /&gt;&lt;br /&gt;So what do you think? Is your ISP shaping your traffic? Also - what can be done about it?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-6217530698434749232?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/6217530698434749232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/03/isp-traffic-shaping.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6217530698434749232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/6217530698434749232'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/03/isp-traffic-shaping.html' title='ISP traffic shaping'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-3032545296754537947</id><published>2009-03-04T18:45:00.002+02:00</published><updated>2009-03-04T18:48:11.410+02:00</updated><title type='text'>IE8 optional in Windows 7</title><content type='html'>Is &lt;a href="http://www.neowin.net/news/main/09/03/04/internet-explorer-is-now-an-optional-feature-in-windows-7"&gt;this&lt;/a&gt; true? If so, it doesn't mention how could one install a different browser (so you have to use IE8 to download another browser). Interesting.&lt;div&gt;Either way - this is a good step toward making Windows a safer OS.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-3032545296754537947?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/3032545296754537947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/03/ie8-optional-in-windows-7.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/3032545296754537947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/3032545296754537947'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/03/ie8-optional-in-windows-7.html' title='IE8 optional in Windows 7'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-2917499957008220945</id><published>2009-02-25T22:02:00.002+02:00</published><updated>2009-02-25T22:16:01.048+02:00</updated><title type='text'>What matters in a web browser</title><content type='html'>I've been installing variety of browsers ever since there were browsers to choose from. I like playing with them, comparing them, and just have them lying around.&lt;br /&gt;&lt;br /&gt;Today I've installed Safari 4 beta. What can I say, the Apple dudes delivered what they had promised - a blazingly fast browser, slick UI, and it has the coolness atmosphere that surrounds Apple products. Actually, it feels like the fastest browser I've ever used. Moreover, Hebrew support is great, and many problematic Israeli websites are loaded as perfect as they load on MS's browser - only way faster.&lt;br /&gt;So I played with the cover-flow interface, browsed some heavy websites - and closed it. I don't think I'll get back to it anytime soon (unless for finding some vulnerabilities within). Why?&lt;br /&gt;It seems that since its 0.9 version, I always got back to Firefox after trying different browsers. Chrome was the only browser that stole me for an entire week. Why?&lt;br /&gt;&lt;br /&gt;I know the answer. Although it is not the prettiest, not the fastest, nor the best supported browser - it has a HUGE community. And what does this community bring? Free (as in freedom and as in beer) add-ons. Without my ad-block, foxmarks, Firebug, proxy-switcher, screengrab, themes, etc. I'm totally lost. Those add-ons really make the difference! The Internet looks and behaves differently (in a bad manner) without them. So no matter what the other company will bring out the the factory - that browser doesn't stand a chance until it starts supporting FF's add-ons. This reminds a little the hold MS has on the desktop applications - one is so familiar and comfortable with them, that making a switch could be a hard decision.&lt;br /&gt;&lt;br /&gt;So what add-ons do you have on your fox?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-2917499957008220945?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/2917499957008220945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/02/what-matters-in-web-browser.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2917499957008220945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/2917499957008220945'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/02/what-matters-in-web-browser.html' title='What matters in a web browser'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-5406512988462837567</id><published>2009-02-15T22:19:00.002+02:00</published><updated>2009-02-15T22:21:16.157+02:00</updated><title type='text'>Lunix is Soviet</title><content type='html'>&lt;a href="http://www.adequacy.org/stories/2001.12.2.42056.2147.html"&gt;This one&lt;/a&gt; is simply hilarious. As much as it's old, it's still funny. Not sure whether the writer was joking or is a complete idiot.&lt;br /&gt;And what king of a parent will you be?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-5406512988462837567?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/5406512988462837567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/02/lunix-is-soviet.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5406512988462837567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/5406512988462837567'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/02/lunix-is-soviet.html' title='Lunix is Soviet'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-4737070917748938843</id><published>2009-02-14T19:11:00.002+02:00</published><updated>2009-02-14T19:37:24.077+02:00</updated><title type='text'>Giving a hint</title><content type='html'>Every major DB I know supports some sort of "hinting" mechanism. What is it and why is it needed?&lt;br /&gt;&lt;br /&gt;When a DB compiles a SQL query in order to execute it, it also decides about the best way to execute that query: which data to fetch first, which indexes are to be used, how to perform joins, how many rows to retrieve, etc. The quality of these decisions has major impact over the performance of the query.&lt;br /&gt;As part of this process, a component usually known as the optimizer is running. This component is required for the construction of the execution plan, and sometimes it takes "drastic" measures, such as rewriting the query so that WHERE conditions would be executed in a different order.&lt;br /&gt;Over the years RDBMS providers had put a lot of effort in order to achieve the best possible optimizer. In the course of time it started using statistics (based on ranking mechanisms and previous queries). But before that happened, each RDBMS provided an extension to the query syntax (SQL) so the developer could provide some hint to the optimizer about how he thinks the query should be executed. As the years went by, providers started recommending to avoid those hints, as the optimizer usually did a better job.&lt;br /&gt;&lt;br /&gt;I hadn't seen a good optimizer hint for some years now, until this week. I was trying to improve some query in MS SQL Server which lasted forever, and involved an external data source. After I was about to give up and rewrite the code, I decided to give it one last chance. Digging in the execution plans I realized MS's optimizer did awful job in executing the query, so I check their hint syntax. My addition to the code was "OPTION (hash join)", and viola, the query completed within few seconds. Impressive improvement.&lt;br /&gt;&lt;br /&gt;Improving the query (by better building it) will always be better than adding a hint, but when all else fails, this might be the only solution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-4737070917748938843?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/4737070917748938843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/02/giving-hint.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4737070917748938843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/4737070917748938843'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/02/giving-hint.html' title='Giving a hint'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6028466520176966995.post-1776161683545250874</id><published>2009-02-07T23:23:00.002+02:00</published><updated>2009-02-08T00:06:56.427+02:00</updated><title type='text'>Personal [Different] Taste</title><content type='html'>Recently I noticed I tend to disagree with many reviews I read or opinions I hear. Here are some examples:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I like playing "Need for speed: Undercover". I think it's a good game, which reminds me "Most Wanted" very much. Every single review I read about this game, and EA's strategy of the entire series, is very negative. I do agree the previous game (ProStreet) was a complete waste of money (yeah, I have an original DVD), but the new one is pure fun.&lt;/li&gt;&lt;li&gt;Since I'm talking about games - I hate "Dead Space" and "Fallout 3".  These were considered some of the top games of 2008 by most gaming-review sites. What can I say? I think they're horrible.&lt;/li&gt;&lt;li&gt;I like KDE 4.2. I noticed that every time Linus' is switching his desktop, I switch the other way around. And not by purpose.&lt;/li&gt;&lt;/ul&gt;Also, it seems I have quite different opinions than some of my friends when it comes to movies, music, politics, you-name-it.&lt;br /&gt;Good thing that in all of those fields we are not bound to some monopoly corporation, so we can choose what we like according to our personal taste.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6028466520176966995-1776161683545250874?l=technomosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technomosh.blogspot.com/feeds/1776161683545250874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://technomosh.blogspot.com/2009/02/personal-different-taste.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/1776161683545250874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6028466520176966995/posts/default/1776161683545250874'/><link rel='alternate' type='text/html' href='http://technomosh.blogspot.com/2009/02/personal-different-taste.html' title='Personal [Different] Taste'/><author><name>Moshe Basanchig</name><uri>https://profiles.google.com/105339658161602178195</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-Uy-1WLIYf1E/AAAAAAAAAAI/AAAAAAAABWc/1xSA3e2akqk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
