tag:blogger.com,1999:blog-65574579488019608422024-03-14T06:54:22.549+01:00IT-TacticsApproaches to long-term IT-solutionsMartin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.comBlogger125125tag:blogger.com,1999:blog-6557457948801960842.post-86041298243701348902018-02-05T23:36:00.000+01:002018-02-05T23:50:39.908+01:00The "Java is dying" tale<span class=" UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody">And there was it again... - somebody (in a Java group - strange enough) told that Java is dying. Uff! - I hear this for years now - and it gets annoying to
hear or read this again and again (of course of the people who don't like - or
simply don't know Java).</span></span></span><br />
<br />
<span class=" UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody">Nevertheless, Java ranks within top 3
programming languages on whatever index you look!</span></span></span><br />
<ul>
<li><span class=" UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody"><a class="" dir="ltr" href="https://l.facebook.com/l.php?u=https%3A%2F%2Fwww.tiobe.com%2Ftiobe-index%2F&h=ATNofboYT08qrnDpXtlkEM1A73cbF7wlk2eaHtemVAONEQN8KS8RLeLQlV8M4oTGpP_-OGW22rTdL3SE-x92MyRVa4vT_espSfX8EFiwhHF96dPL9gUADUnXjQsT7qGMOgWH" rel="nofollow" target="_blank">https://www.tiobe.com/tiobe-index/</a></span></span></span></li>
<li><span class=" UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody"><a class="" dir="ltr" href="https://l.facebook.com/l.php?u=http%3A%2F%2Fredmonk.com%2Fsogrady%2F2017%2F06%2F08%2Flanguage-rankings-6-17%2F&h=ATNfKrkKR3bKzTIloOMCq7horbUivY_uONQLfRuez-ikcKeTrJPIm-TzjwbrdWRoE6lZy31BEmas3GZeLH2QoiaIA65jWPpD0PkrhDxCSoKRenktFN5AltNaKF6yyhLW7SpY" rel="nofollow" target="_blank">http://redmonk.com/sog.../2017/06/08/language-rankings-6-17/</a></span></span></span></li>
<li><span class=" UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody"><a class="" dir="ltr" href="https://l.facebook.com/l.php?u=http%3A%2F%2Fpypl.github.io%2FPYPL.html&h=ATNPcNpgkCixHW6Z6_g_jA2g-f0qDt1_UuXraxfYp2TAA2WWGh4rbZ8XG1yKXtAzeUTT-aNSL-ddvAXVPO8bVgJIxZS2vZ5EoZni6glWTD0enPXfylJU2BaCYUqlTOnpkSjg" rel="nofollow" target="_blank">http://pypl.github.io/PYPL.html</a></span></span></span></li>
<li><span class=" UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody"><a class="" dir="ltr" href="https://l.facebook.com/l.php?u=https%3A%2F%2Finsights.stackoverflow.com%2Fsurvey%2F2017&h=ATOdjzESQr2gBrDkwiDGLglbAulvoQ35IpFW2CqzP52VOgNkkl50wMVSczBNCqwXfs5da5eVhpsOohtGWH5Y_Pjizab1_T4OOaenAevNG6lsOQS-C1A-Z4mIhQP8hrVCtJ58" rel="nofollow" target="_blank">https://insights.stackoverflow.com/survey/2017</a></span></span></span></li>
<li><span class=" UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody"><a class="" dir="ltr" href="https://l.facebook.com/l.php?u=http%3A%2F%2Fwww.codingdojo.com%2Fblog%2F9-most-in-demand-programming-languages-of-2017%2F&h=ATP5xAtmpetUWbEVeEWBtncwq1pVg7RKFXjVsz1chFz9DGXzoSppFblN-dJ6gtjjWf_K6Rv68QkG_80IoZ6GBe5O5KR5h-AO1sKiYFxam1FcETYyhYYczCJabvOuiC7EsGuv" rel="nofollow" target="_blank">http://www.codingdojo.com/.../9-most-in-demand.../</a></span></span></span></li>
<li><span class=" UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody"><a class="" dir="ltr" href="https://l.facebook.com/l.php?u=https%3A%2F%2Fblog.newrelic.com%2F2017%2F10%2F09%2Fpopular-programming-languages-2017%2F&h=ATNWC7y0x9dm9v3fqYr-ntWmAmT_PCTg5B8dOxMHuwauzvsVkCGeD2TvwKlMkJEKw77OenJ5BDSs-Bhxka53knMhv2T_K38qsErKLsDWQIMTvfIj0RAdrBrWclhycS2a_TCS" rel="nofollow" target="_blank">https://blog.newrelic.com/.../popular-programming.../</a></span></span></span></li>
<li><span class=" UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody"><a class="" dir="ltr" href="https://l.facebook.com/l.php?u=https%3A%2F%2Foctoverse.github.com%2F&h=ATNb7aeYkFaJvwXjnGwvcMtuUxcsYWP53l_YOm3_X0lHwV5_8fHBV_S-R3lw_5zlJbbxgoN1eJBC6Bv_BifFyad1azLugvNMwXQ37u0R5hhIJzvcEwLvwZE0M6tEyUNjnYNi" rel="nofollow" target="_blank">https://octoverse.github.com/</a></span></span></span></li>
<li><span class=" UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody"><a class="" dir="ltr" href="https://l.facebook.com/l.php?u=https%3A%2F%2Fspectrum.ieee.org%2Fcomputing%2Fsoftware%2Fthe-2017-top-programming-languages&h=ATP6Yq-SWHYw6B0Q8cz38aYlFFni6wtLFnsMrgex1wwI4iJt3Fe5H41-cyBfT9wlR3zabd9h6j-rYtdkJMhMnKqfOhKjbdiTA1X8vr7MkmfP6EmEIWPCwupuLTWgG2m7aUtF" rel="nofollow" target="_blank">https://spectrum.ieee.org/.../the-2017-top-programming...</a></span></span></span></li>
</ul>
<span class=" UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody">But probably
you should also consider, where you live, because there are statistics
over countries which shows that most important language depends on
country - e.g. here:<br /><a class="" dir="ltr" href="https://l.facebook.com/l.php?u=https%3A%2F%2Fblog.hackerrank.com%2Fwhich-country-would-win-in-the-programming-olympics%2F&h=ATP9SDBaQm6OGOkhliMDtXO3FXXpgPok9kK1mUh6u-L_Y-2muo6VL5HQ3RIG50RbIhTziFsidfHwSJOL4KRpfCPNPwauyyTu3ZsJpa-Ltvt3o7vxqXrBvE7pDqnX0UIqB2pj" rel="nofollow" target="_blank">https://blog.hackerrank.com/which-country-would-win-in.../</a> (Java is there first for Poland, Python for Hong Kong for example).</span></span></span><br />
<span class=" UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody"><br />Oh - this article (even if older) already talks about the Java is dying tale: <a class="" dir="ltr" href="https://l.facebook.com/l.php?u=https%3A%2F%2Fjaxenter.com%2Fjava-slippery-slope-downward-trend-133843.html&h=ATPHnjCPzN44HgFCa_xnuHQBadICKyQtrjeY3xG8S05Vji-x4AkQ1wqUJobmMpYV2aBAsMDRzf79WamsyOBmm1VgXlfnt0ZQCXYkguB5-qK81SrwGdmljR1f5754GGg_ypBt" rel="nofollow" target="_blank">https://jaxenter.com/java-slippery-slope-downward-trend...</a></span></span></span><br />
<br />
What makes Java still a very important language and still very attracting for newbies, is the wide field of usage - from desktop over web and not finished at mobile development. Especially when searching for a first language to learn which can be used to do it all.<br />
<br />
<span class=" UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody">Another fact is, that there are many open jobs (at least here in Austria) for Java Developers at the moment - so knowing Java currently helps if you need a new job...</span></span></span><br />
<span class=" UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody"><br /></span></span></span>
<span class=" UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody">Related posts: <a href="https://it-tactics.blogspot.co.at/2018/02/the-programming-language-discussion.html" target="_blank">The programming language discussion</a>, <a href="http://it-tactics.blogspot.co.at/2015/07/java-vs-netc.html" target="_blank">Java vs .net/C#</a>, <a href="http://it-tactics.blogspot.co.at/2012/04/choosing-programming-language.html" target="_blank">Choosing a programming language</a>, <a href="http://it-tactics.blogspot.co.at/2008/09/programming-language.html" target="_blank">The programming language</a>, <a href="http://it-tactics.blogspot.co.at/2010/06/popular-java-myths.html" target="_blank">Popular Java myths</a>.</span></span></span>Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com2tag:blogger.com,1999:blog-6557457948801960842.post-11174894809740212022018-02-05T23:16:00.001+01:002020-12-20T17:22:09.901+01:00The programming language discussion<span class="UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody">And there it is again - the programming language discussion - Not a single developer forum or group that does not have it at least once every month.</span></span></span><br />
<span class="UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody"><br /></span></span></span>
<span class="UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody">Don't
get my wrong, there are many good programming languages out there many
are worth to be learned. Although I learned many through the years, I
know very well that <span style="color: red;"><b>one cannot be expert in a lot of languages</b></span>. <span style="color: red;"><b>You can
only be an expert in that what you use often.</b></span> </span></span></span><br />
<br />
<span class="UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody">Sometimes I need to look
into old VB Classic code and after a while I am back into it - but not
coding in the same speed as back then when I used it on a daily basis
just because of the fact, that I don't remember well all the libraries
and their functions I wrote back then.</span></span></span><br />
<br />
<span class="UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody">When the programming language discussion comes up, the arguments are about what is the "<b>best</b>" programming language or what is the most "<b>widely used</b>" language. But I consider this being secondary priorities.</span></span></span><br />
<span class="UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody"><br /></span></span></span>
<span style="color: red;"><b><span class="UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody">Learning a programming language is an investment!</span></span></span></b></span><br />
<span class="UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody"><br /></span></span></span>
<span class="UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody">You need to consider, what are your needs and learn what will bring the best return on investment for you!</span></span></span><br />
<span class="UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody"><br /></span></span></span>
<span class="UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody">I found the following strategy being very useful:</span></span></span><br />
<span class="UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody"><span style="color: red;"><b>Have one primary programming language</b></span> - or at maximum two - that you know very well and basically can be used to solve all your programming needs (batch tool, server daemon, desktop application, web application and mobile application in best case). Then have <span style="color: red;"><b>2 or 3 programming languages</b></span> that you can use <span style="color: red;"><b>for particular needs in special cases</b></span> where your primary language is not so good at.</span></span></span><br />
<span class="UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody"><br /></span></span></span>
<b><span class="UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody">Choose wisely the programming languages you learn!</span></span></span></b><br />
<span class="UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody"><br /></span></span></span>
<span class="UFICommentActorAndBody"><span data-ft="{"tn":"K"}"><span class="UFICommentBody">Related posts: <a href="https://it-tactics.blogspot.co.at/2012/04/choosing-programming-language.html" target="_blank">Choosing a programming language</a>, <a href="http://it-tactics.blogspot.co.at/2008/09/programming-language.html" target="_blank">The programming language</a>, <a href="http://it-tactics.blogspot.co.at/2008/11/ide-and-libraries.html" target="_blank">The IDE and the libraries</a>, <a href="https://it-tactics.blogspot.co.at/2018/02/the-java-is-dying-tale.html" target="_blank">The "Java is dying" tale</a>.</span></span></span>Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com0tag:blogger.com,1999:blog-6557457948801960842.post-41503676863984230172015-07-23T01:29:00.001+02:002020-12-20T17:22:45.834+01:00Java vs .net/C#Visual Basic Classic was my primary programming language for many years. A pretty amount of years ago when Microsoft announced the end-of-life of Visual Basic Classic (one of the last statements regarding VB6 see <a href="http://msdn.microsoft.com/en-us/vstudio/ms788708.aspx">http://msdn.microsoft.com/en-us/vstudio/ms788708.aspx</a>) I took a first look at .net and C# as it seemed to be the most logical next step. I was deeply disappointed by the first versions of <a href="http://en.wikipedia.org/wiki/.NET_Framework" target="_blank">.net</a> and <a href="http://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29" target="_blank">C#</a> (it was v1.1 if I remember correctly - it was so full of bugs and terrible slow). The next shock for me was the absence of any migration path for the existing VB classic projects. So switching to .net would have been a total restart. I really wondered about that step of Microsoft because pretty every software vendor knows that a hard cut in backward compatibility of software comes with the danger that customers start taking a broader look around to competitors.<br />
<br />
Due to the fact that I already had switched from <a href="http://en.wikipedia.org/wiki/Windows" target="_blank">Windows</a> to <a href="http://en.wikipedia.org/wiki/Linux" target="_blank">Linux</a> at home at that time, I thought by myself, that this would be the opportunity to learn a completely new langauge which is platform agnostic and enables me to write applications that run on both environments. Using a computer I can't program (the Linux box at home) was a horrible situation for me.<br />
<br />
About a year later, after several evaluation phases and another attempt with C# to give it a second chance, I <b>decided to go for <a href="http://en.wikipedia.org/wiki/Java_%28programming_language%29" target="_blank">Java</a></b> with <b>two core advantages</b> (apart from the language specific reasons):<br />
<ol>
<li><b>Develop once and run the binary anywhere</b> - on <a href="http://en.wikipedia.org/wiki/Windows" target="_blank">Windows</a>, <a href="http://en.wikipedia.org/wiki/Linux" target="_blank">Linux</a> or even <a href="https://en.wikipedia.org/wiki/Mac_OS" target="_blank">Mac</a>.<br />Yes, I know the critics, that Java or other attempts following the "write once, run anywhere" paradigm do not deliver this promise (see comments on Wikipedia to <a href="https://en.wikipedia.org/wiki/Cross-platform#Challenges_to_cross-platform_development" target="_blank">cross-plattform development</a> for example). Now, years later and after a few applications developed (commandline, server, Swing rich clients) my experience is very good. Of course if your development machine runs Windows and you use Windows API exits or use <a href="https://com4j.java.net/tutorial.html" target="_blank">com4j</a>, <a href="http://j-interop.org/" target="_blank">J-Interop</a> or <a href="http://sourceforge.net/projects/jacob-project/" target="_blank">JACOB</a> to interact with a Windows-only COM component then you will have problems running it on Linux or Mac. For example: I have developed a Swing application that worked flawlessly on Mac even although I did not have any possibility to test it (I do not have a Mac). I was used to get problems with windows only applications just trying them on a new version of Windows! Of course I also had some compatibility issues e.g. when stripping invalid characters from filenames (different characters are allowed and not allowed on the two systems) or checking if a file is still accessed (there is no windows-like file locking on Linux) - but these are differences in architecture of the operating systems and that can be handled. You can develop for many platforms also using C++ for example but then you need at least one instance of each operating system at your fingertips to do the compiling work.<br /> </li>
<li><b>Reduce dependencies</b><br />You already run a risk choosing a programming language. You have a learning curve and invest into know-how, library development and maybe also buy some external components - not to speak about the related tools you learn to master (IDE, packaging, deployment, ...). But this is mainly your own risk. The even bigger risk is for the customer using your application when it is not plattform agnostic. I have seen companies trying to migrate a few servers to Linux and were stuck because of software running on Windows only. You don't know which operating system survive for the longer time. With a platform agnostic solution you just don't care. <span style="color: red;"><b>It's a matter of flexibility.</b></span></li>
</ol>
I can see further advantages, like choice of <a href="https://en.wikipedia.org/wiki/Integrated_development_environment" target="_blank">IDE</a> or missing licensing issues (Visual Studio license usually provided by the employer and when you leave you have to find a new sponsor).<br />
<br />
Having now the <a href="https://de.wikipedia.org/wiki/Kategorie:Java-IDE" target="_blank">choice between several IDEs</a> I first used <a href="http://www.eclipse.org/" target="_blank">Eclipse</a> (free) and moved to <a href="https://netbeans.org/" target="_blank">NetBeans</a> later on (also free). The book, which was most helpful for me in learning Java (<a href="http://openbook.galileocomputing.de/javainsel/" target="_blank">Javainsel</a>) was and is very good (sorry folks, it's german).<br />
<br />
The biggest advantage of Java - being platform independent - also is the biggest obstacle in a (still) Windows centric (business) world: To ensure plattform independency (as I explained above) means, that you should only use and do stuff that is available everywhere - or you need to implement to different solutions. <b>The resulting problem is: How to deal with the Windows specific stuff?</b><br />
<br />
My solution to this problem is in the first place to not use OS specific exists or use calls to Windows-only stuff. For applications that need to integrate with Windows stuff I try to keep the OS dependent part small (e.g. a VBScript) and let it communicate with the Java program via commandline, over the net or by saving files to watched folders. For example: To get the active window title under Windows the Windows API is a possible way to go while on Linux there is a commandline tool called wmctrl which can do the same. So under Windows you would write a small Windows program that uses Windows API to to get the title of the current window. Probably the easiest way is to write an <a href="https://www.autoitscript.com/site/autoit/" target="_blank">AutoIt</a> script which has a prepared function for this and let it return the Window information in the same way as the wmctrl program does on stdout. Your program then - depending on the OS it is running (you can find that out during runtime) - calls either the one or the other commandline tool grabbing stdout of the called program. <span style="color: red;"><b>So it is recommended, that you try to reduce the OS dependent parts to a minimum and split your application into components</b></span> - and the smaller OS specific part finally needs to be developed twice or three times.<br />
<br />
It was and is one of the core arguments of those developers on Microsoft (.net and C#) that they are bound to Windows anyway because they deal with so many other Windows-components. Yes, this is partly true and I do still a lot of Windows-specific VB scripting. But I always think in components and so there are several opportunities to write parts in a platform agnostic way. Even if it is not yet totally platform independent - later there is less work when an OS migration is needed. If you look at the trends of the last years, you can see one big related trend: decoupling or <b>"loose coupling" of components (from COM and DCOM to SOAP and REST)</b>. Lately I read more and more about "Micro services" which - frankly spoken - is just a form of component oriented design. Anyway, that nowadays makes it possible to have processes on different operating systems written in totally different programming languages talking to each other.<br />
<br />
In the meantime I also improved my C# knowledge a little and developed a few smaller
things in C# where it did not really made sense to do it in Java. There are a few people dealing with both languages. Interestingly those people criticizing Java most are usually those who don't know Java and have never ever looked into something else but the Windows world.<br />
<br />
Although Microsoft had the chance to create a "better" Java by learning from it, they did many things worse in my opinion. Many say that the .net libraries are better organized than the Java ones. I do not know the .net libraries very well yet, but I tend to agree. On the other hand there are a many characteristics where I prefer the Java way, for example:<br />
<ul>
<li>Properties (C#) vs Getter and Setter methods (Java)</li>
<li>Delegates (C#) vs Passing interface implementations (Java)</li>
<li>sealed methods+readonly variables (C#) vs final - one word that says it all in both cases (Java)</li>
<li>Missing checked exceptions in C# - a Microsoft guy once told me that checked exceptions produce just bloated code and therefore something like this does not exist in .net. Well folks, it is about error handling - something, Microsoft may not care a lot about ;-).</li>
<li>Ă„hem, want to talk about GUI development? - Windows forms or WPF? - Both seem to be unfinished I did not figure out yet, which of those will remain unsupported sooner. At least silverlight is dead... - I went for Windows forms so far and even for a quite simple GUI I was stuck with the shitty TreeView and a double-click-issue - <a href="https://social.msdn.microsoft.com/Forums/windows/en-US/9d717ce0-ec6b-4758-a357-6bb55591f956/possible-bug-in-net-treeview-treenode-checked-state-inconsistent?forum=winforms" target="_blank">bug report from 2009</a> and not fixed yet...</li>
</ul>
In general Java is easier and simpler (less language constructs - not the libraries) in my opinion, but sometimes there might be more code for the same thing, but who cares? - It is important at the end, that you don't refuse touching again your code from a year ago (not to speak about the code of others ;-) ).<br />
<br />
I will continue to do a increase my C# knowhow, but I'll be always more confident when I can open up NetBeans again and working on a component in Java.<br />
<br />
See also: <a href="http://it-tactics.blogspot.co.at/2008/09/programming-language.html" target="_blank">The programming language</a>, <a href="http://it-tactics.blogspot.co.at/2012/04/choosing-programming-language.html" target="_blank">Choosing a programming language</a>, <a href="http://it-tactics.blogspot.co.at/2010/06/popular-java-myths.html" target="_blank">Popular Java myths</a>.Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com0tag:blogger.com,1999:blog-6557457948801960842.post-7079560212655366442014-09-25T23:46:00.000+02:002014-09-25T23:46:06.703+02:00IT ball and chainAfter a very intensive year (which means a lot of work and a minor amount of sleep) at least I have been on vacation a few weeks this summer (in chunks). For two weeks I totally abstained to use a computer. I only used the smart phone from time to time for a phone call or checking mail / searching something in the internet (in total not more than approximately 2 hours) or reading the news. That has (again) increased my awareness that a computer does not always increase the quality of your life. Coming home I experienced some of the <b>biggest annoyances of IT</b>:<br />
<ul>
<li><b>Maintenance work</b></li>
<ul>
<li>System and application updates - they take a lot of time and attention (e.g. permission check on Android during application updates).</li>
<li>Declutter and free space on drives (to download pictures from the camera to the computer in my case) or on Dropbox to get the pictures uploaded that my wife took with the smart phone.</li>
<li>Delete spam or less interesting emails.</li>
<li>Make secondary manual backups.</li>
<li>Fix hardware defects (change old-age harddisks etc).<br /> </li>
</ul>
<li><b>Trouble-Shooting</b><br />Be it end-user support or administrative support. Errors may happen during updates, some passwords might be expired while you have been away for too long without logging in, some features (after an update) suddenly not working any more as you expected or - after not using for a while - you might not remember well how to accomplish a task seldom needed.<br /> </li>
<li><b>React to changes in IT world</b><br />In my case during the updates on my mobile devices I have seen that many applications do want new permissions regarding device ids and call information. So the first action was abort a lot of updates and search the internet for possible reasons and for options to restrict this alarming trend against privacy. Lately there were plenty of news causing administrators to take action, like the <a href="http://en.wikipedia.org/wiki/Heartbleed" target="_blank">SSL heartbleed bug</a> or other alarming information, e.g. leaked by <a href="http://en.wikipedia.org/wiki/Whistleblower" target="_blank">whistle blowers</a> (like <a href="http://en.wikipedia.org/wiki/Edward_Snowden" target="_blank">Edward Snowden</a>). Not to speak of more long-term changes like technology shifts (those do not happen just during a single vacation, but while reviewing the past year you might notice a trend that needs to be evaluated).</li>
</ul>
The longest-running tasks during my vacation were washing dishes (no dishwasher in the rented appartment), sweeping and disemboweling fish (take out guts) as well as brushing away the fish scales (adhesive bonded onto the wall), but none of them took longer than 45 minutes. Last weekend I tydied up the storage room in about an hour. In my IT work I can be very happy if something can be done under an hour.<br />
<br />
And now take the annoyances mentioned above and multiply with the amount of devices you have... - I fear the time, when even my washing maschine needs to download updates
and doing reboots before it can start washing - super annoying...<br />
<br />
As a child, one of the main reasons why I got fascinated by the computers, was the fact, that it can help you making a lot of tasks faster and more efficient. Nowadays you have to <span style="color: #cc0000;"><b>pay attention that</b></span> the total cost of ownership with <b><span style="color: #cc0000;">maintenance work together with the velocity of change does not outweigh the benefit of the automation.</span></b><br /><br />Related post: <a href="http://it-tactics.blogspot.com/2013/01/the-truth-about-software.html" target="_blank">The truth about software</a>.<br />
<span style="background-color: red;"><b></b></span><br />
<span style="background-color: red;"><b><span style="background-color: #cc0000;"></span></b></span>Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com0tag:blogger.com,1999:blog-6557457948801960842.post-58522783627234950942014-06-20T09:39:00.000+02:002014-06-20T09:41:37.847+02:00Dropbox Icon missing in UbuntuOn <b>Ubuntu 12.04 as well as 14.04</b> with recent versions of compiz, dropbox or whatever other module the <b>Dropbox icon may be missing</b> in the upper right corner (system tray) after login.<br />
<br />
This is <b>in general just an annoyance because Dropbox is still running</b> in background (you can check this by opening your Dropbox folder and you will see the checkmark icons and the dropbox context menu entry when right-clicking a file - which are only visible when Dropbox is running).<br />
<br />
However, I found several forum and blog posts mentioning that<br />
<blockquote class="tr_bq">
<pre style="text-align: justify;"><code>sudo apt-get install libappindicator1</code></pre>
</blockquote>
solves the issue or<br />
<blockquote class="tr_bq">
<pre><code>sudo apt-get install nautilus-dropbox</code></pre>
</blockquote>
solves it. I already had libappindicator1 However in reality the latter is obsolete as the nautilus integration is no separate thing any more. So both did not solve the issue for me.<br />
<br />
I solved it permanently only by writing a short shell script (which i put into /opt directory):
<pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> #!/bin/bash
sleep 60s
dropbox stop && dropbox start -i &
</code></pre>
(mark as executable) and then click on the Ubuntu button on the left upper corner, type "startup" and there add an entry to call that start that shell script /opt/dropboxrestart.sh.Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com1tag:blogger.com,1999:blog-6557457948801960842.post-91813381150349098512014-01-07T00:26:00.000+01:002014-01-07T00:26:28.934+01:00Reinventing the wheelThere are three kind of developers when it comes to library use:<br />
<ol>
<li>Those who <b>extensively use existing stuff</b> to avoid reinventing the wheel, </li>
<li>those who do <b>code the stuff on their own</b> and try to reduce as many of the external dependencies as possible and</li>
<li>those who do the easy stuff on their own and <b>only for big topics</b> (like PDF or MS Office file handling etc) they <b>use existing libraries</b>.</li>
</ol>
If you want to avoid reinventing the wheel completely then you will end up with a lot of library dependencies which often even do not fit well together (just think of the many different java logger frameworks available).<br />
<br />
<span style="color: red;"><b>Neither the first nor the second extreme will bring the optimum result - at least not when you think long-term.</b></span><br />
<br />
For example I was using <a href="http://ini4j.sourceforge.net/" target="_blank">ini4j</a> to load inifiles (because I was under pressure) but later I noticed that the sections are internally stored in a way that you can not rely on getting them loaded back in the proper order. For the project where I was using it, order of the sections previously wasn't really relevant (that's why I didn't either recognize that ini4j was mixing them up occassionally), but then things changed and now order of some sections is relevant. So I had to change the underlying library. I took the chance to implement the inifile handling on my own. Why? Would I have been the developer of that library I could have changed the internal implementation who the sections are loaded in an instant. Without being really involved into the project I would have needed to read into the foreign source code (which unfortunately is always more difficult than reading your own code - if you did it well) and doing code changes that hopefully will not be rejected by the project owner (loosing it again with the next patch). I would have done this probably, if it wasn't urgent and if inifile handling wouldn't be such a core thing for me (I deal a lot with inifile style files).<br />
<br />
And here it comes to a related topic:<br />
You can get your <b>code being written almost everywhere around the world</b>, but the important questions are: If you need a fix or an enhancement,<br />
<ul>
<li>do you have a <b>chance for direct communication</b> with the developers (or how many levels of communication are in between)?</li>
<li><b>how fast</b> can you get what you need?</li>
</ul>
Of course, when using a big library that is widely used you may get a very good and stable code base, but bigger changes will not be easy to get quickly.<br />
<br />
<span style="color: red;"><b>I have seen it plenty of times, that having the full source code available at hand is the only guarantee to get fixes or enhancements in time when you need them!</b></span><br />
<br />
And there is another related topic: <b>Progress</b><br />
<b>Sometimes it makes pretty good sense to reinvent the wheel</b> - and indeed if you look at the wheel itself, it has been reinvented (or at least adapted) many times and looks very different depending on the core usage and environment. For IT or source code this means that for instance the same stuff must be programmed again and again when you change programming language or when newer and better technologies can only bring benefit when you partly rewrite the application.<br />
<br />
I write this because often the thought of reinventing the wheel is labeled so negatively. Rewriting code parts or writing them yourself instead of using an external foreign library can make really good sense!<br />
<br />
Related post: <a href="http://it-tactics.blogspot.com/2009/03/bronze-age-of-it.html" target="_blank">Bronze age of IT</a>.Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com0tag:blogger.com,1999:blog-6557457948801960842.post-70052821868493570052013-10-15T01:34:00.002+02:002013-10-15T01:39:14.450+02:00IT DependenciesLately at a customer I got introduced to an application written by an employee which should be replaced. There were some special features that have been implemented for the exact needs of the company. After a while I began to wonder why they want to replace it. I thought by myself: "What could be better than an application written exactly for their needs by a person who is actually in that company for a long time now?"<br />
<br />
Finally at the end of the meeting after the others left, I asked the project manager at the company what the real reason is that they want to replace that program. The answer was: They <span style="color: red;"><b>want to get rid of dependency of that piece of individual software development and dependency of a particular person.</b></span> They want to use a standard software.<br />
<br />
While this sounds quite reasonable, I want to clear-up potential misunderstandings:<br />
<ol>
<li><span style="color: red;"><b>Even betting on the biggest companies and their products does not save you from the risk of software being discontinued</b></span> or services shutting down.<br />For example here is a <a href="http://en.wikipedia.org/wiki/Category:Discontinued_Microsoft_software" target="_blank">list of software products discontinued by Microsoft</a>. And this does not seem to be a complete list because from the first look I already miss the Visual Basic Classic which is also dead (and I have A LOT of experience with that which will be dead know-how in a few years).<br /> </li>
<li>Even the largest company-group sends you <span style="color: red;"><b>individuals that do the work</b></span> and guess what: In most bigger IT projects (even when using standard-software) you usually end up with an individually customized piece of software and often with several project specific extensions. And <span style="color: red;"><b>who knows best your system? - The one who has done it!</b></span> Change the person and the person needs time to analyse and get into it.<br /> </li>
<li>As time goes by most companies, <span style="color: red;"><b>when they start to buy external know-how or services, they begin to loose control</b></span>. To reduce dependency you would need the source code, the know-how and the access. One effect of extreme outsourcing often comes with loosing your privacy and security.</li>
</ol>
<span style="color: red;"><b>So by switching to a standard product it is not very likely that you are reducing dependency.</b></span> Often you save internal IT manpower for other things but you trade it for dependency or for privacy. Paying a developer for permanently being ready for implementing your business needs may not be the cheapest solution but you get flexibility and often reduce communication flows.<br />
<br />
For many very tiny companies it might be perfectly ok, accepting the dependency from external services when they don't have to bother about their server-backup etc then. And so privacy is also traded (e.g. free web service for providing your personal data).<br />
<br />
<span style="color: red;"><b>It is a matter of your values, your priorities, your time and budget etc. if you better have a server in-house or use some online-service in the web.</b></span><br />
<br />
So what can you do?<br />
<ul>
<li>Be aware of your values </li>
<li>Be aware of your business focus</li>
<li>Be aware of your (human) resources</li>
<li>Remove resolvable dependencies<br />which means: Prefer forward-looking software products and plattform-agnostic open-source software over more limited alternatives.</li>
<li>Distribute work and risk (e.g. have an external partner helping you but also have an internal administrator/developer who can do the work).</li>
</ul>
Related posts: <a href="http://it-tactics.blogspot.com/2013/09/priceless-developers.html" target="_blank">Priceless Developers</a>, <a href="http://it-tactics.blogspot.com/2013/08/surveillance-privacy-nsa-prism-and.html" target="_blank">Surveillance, Privacy (NSA, PRISM, ...) and encryption</a>, <a href="http://it-tactics.blogspot.com/2013/01/the-truth-about-software.html" target="_blank">The truth about software</a>.Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com0tag:blogger.com,1999:blog-6557457948801960842.post-48970625251060445322013-10-12T10:09:00.001+02:002013-10-12T10:13:35.377+02:00LibreOffice v4.1.* and Ubuntu 12.04 Unity-IntegrationAs I use Ubuntu on my productive work+private machine, I prefer to use stable versions - so I switched to use <a href="http://en.wikipedia.org/wiki/Long-term_support" target="_blank">LTS versions</a> only. However, for LibreOffice I have enabled the LibreOffice repository using<br />
<br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;"># Adding repository for getting most current LibreOffice</span> <span style="font-family: "Courier New",Courier,monospace;"># (taken from https://wiki.ubuntu.com/LibreOffice)</span><span style="font-family: "Courier New",Courier,monospace;"></span> <span style="font-family: "Courier New",Courier,monospace;">add-apt-repository -y ppa:libreoffice/ppa</span></blockquote>
That slurps the current LibreOffice release into my Ubuntu 12.04 LTS stream of updates (the poor Windows users don't have an idea of such a comfort).<br />
<br />
The reason for this was mainly to get the latest additions for Microsoft Office formats support (Microsoft is still good in their attempt to squeeze people into staying with MS Office).<br />
<br />
Unfortunately with LibreOffice v4.1.* a unity-related problem (users of other flavors of Ubuntu can stop reading here) was introduced that has not been addressed yet by the Ubuntu folks - at least not for 12.04 LTS:<br />
<br />
When opening several documents in Writer, Calc etc the windows are not grouped to a single Unity icon. <br />
<br />
As you might know from earlier posts I like the Unity desktop very much (and it also has become very stable) and so I am very glad for the workaround that has been posted to the according bug report at <a href="https://bugs.launchpad.net/bamf/+bug/1026426">https://bugs.launchpad.net/bamf/+bug/1026426</a> (<a href="https://bugs.launchpad.net/bamf/+bug/1026426/comments/166" target="_blank">comment #166</a> by Marco Trevisan) which is just one command in the terminal window:<br />
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">sudo sed '/StartupWMClas</span><br />
<div id="yui_3_10_3_1_1381562392444_3194">
<wbr></wbr><span style="font-family: "Courier New",Courier,monospace;">s=.*/d' -i /usr/share/</span><wbr></wbr><span style="font-family: "Courier New",Courier,monospace;">applications/</span><wbr></wbr><span style="font-family: "Courier New",Courier,monospace;">libreoffice-</span><wbr></wbr><span style="font-family: "Courier New",Courier,monospace;">*.desktop</span></div>
</blockquote>
(all one line).<br />
<br />
Problem solved, thank you very much, Marco!<br />
<br />
Related posts: <a href="http://it-tactics.blogspot.com/2011/05/openoffice-and-libreoffice-starts-slow.html" target="_blank">Open Office and Libre Office starts slow</a>, <a href="http://it-tactics.blogspot.com/2011/09/normaldot-in-openoffice-or-libreoffice.html" target="_blank">Normal.dot in OpenOffice or LibreOffice</a>, <a href="http://it-tactics.blogspot.com/2011/09/default-paper-size-in-open-office.html" target="_blank">Default Paper Size in Open Office</a>.Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com2tag:blogger.com,1999:blog-6557457948801960842.post-16860087051669356552013-10-04T14:44:00.001+02:002013-10-04T14:44:48.737+02:00Maintaining multiple CalendarsWhile I have to put the Outlook Calendar entries into the office calendar I do have my own private calender on Google that I share with my wife and vice versa. I want my wife to know when I am at customers or in foreign countries. That enables her to make appointments for us without the need to call me several times a day.<br />
<br />
There are two problems:<br />
<ol>
<li>And this is a general problem of the crappy Outlook*): With version 2007 or 2010 they changed the style how invitations are sent and this means: When on an Android phone for example or you do not allow HTML display in your mails due to security reasons <b>you don't see the Outlook appointment information on your phone or mail-client.</b> Both is given in my case.<br /> </li>
<li>I need to <b>create each work-related calendar entry twice</b> - once in the Outlook Office 2010 calendar and one on my Google calendar.</li>
</ol>
<br />
<b>Solution for problem 1:</b> Install <a href="https://play.google.com/store/apps/details?id=com.marhinri.invitationproc" target="_blank">Invitation Processor Pro</a>
on your Android device as unfortunately by default Microsoft Outlook
inviations cannot be processed by Android (while gmail invitations and those sent with <a href="http://www.mozilla.org/en-US/thunderbird/" target="_blank">Thunderbird</a>+<a href="http://www.mozilla.org/projects/calendar/lightning/" target="_blank">Lightning</a> which
are also distributed as .ics file are displayed fine so this is not a general problem with event invitation mails). Say thanks to Microsoft.<br />
<br />
<b>Solution for problem 2:</b> I thought of several possible solutions, but a) I am not using the Desktop Outlook at all (so all Outlook plugins for syncing calendars are irrelevant for me) and b) I do not want extra hosting for calendar syncing. You might be in a similar annoying situation so here is another still a little annoying, but acceptable way:<br />
<ol>
<li><b>Create two rules via Outlook web access 2010:</b><br />a) Forward all mails of type meeting request to your private gmail address:<br /><div class="wrapperdiv" id="wrpdv" style="overflow: auto;">
<div class="RuleDetailsPanel" id="ctl00_ResultPanePlaceHolder_detailPaneContent">
<span style="font-family: "Courier New",Courier,monospace;"><span class="RuleDetailsPanel_RuleName" id="ctl00_ResultPanePlaceHolder_detailPaneContent_lblTitle">Rule Name: Forward event invitation</span></span><br />
<div id="ctl00_ResultPanePlaceHolder_detailPaneContent_divCondition">
<span style="font-family: "Courier New",Courier,monospace;"><span class="RuleDetailsPanel_SectionHeader" id="ctl00_ResultPanePlaceHolder_detailPaneContent_divCondition_header">After the message arrives and...</span></span><br />
<div class="RuleDetailsPanel_Description" id="ctl00_ResultPanePlaceHolder_detailPaneContent_divCondition_description">
<span style="font-family: "Courier New",Courier,monospace;">the message is Meeting Request.<br />And my name is in the To or Cc box</span></div>
</div>
<div id="ctl00_ResultPanePlaceHolder_detailPaneContent_divAction">
<span style="font-family: "Courier New",Courier,monospace;"><span class="RuleDetailsPanel_SectionHeader" id="ctl00_ResultPanePlaceHolder_detailPaneContent_divAction_header">Do the following...</span></span><br />
<div class="RuleDetailsPanel_Description" id="ctl00_ResultPanePlaceHolder_detailPaneContent_divAction_description">
<span style="font-family: "Courier New",Courier,monospace;">forward the message to 'you@gmail.com'</span></div>
</div>
</div>
<span style="font-family: "Courier New",Courier,monospace;">
</span></div>
and<br />b) Delete your own meeting responses from yourself (confirming events on GMail side):<br /><div class="wrapperdiv" id="wrpdv" style="overflow: auto;">
<div class="RuleDetailsPanel" id="ctl00_ResultPanePlaceHolder_detailPaneContent">
<span style="font-family: "Courier New",Courier,monospace;"><span class="RuleDetailsPanel_RuleName" id="ctl00_ResultPanePlaceHolder_detailPaneContent_lblTitle">Rule Name: Meeting response from Google Calendar</span></span><span class="RuleDetailsPanel_RuleName" id="ctl00_ResultPanePlaceHolder_detailPaneContent_lblTitle"></span><br />
<div id="ctl00_ResultPanePlaceHolder_detailPaneContent_divCondition">
<span style="font-family: "Courier New",Courier,monospace;"><span class="RuleDetailsPanel_SectionHeader" id="ctl00_ResultPanePlaceHolder_detailPaneContent_divCondition_header">After the message arrives and...</span></span><br />
<div class="RuleDetailsPanel_Description" id="ctl00_ResultPanePlaceHolder_detailPaneContent_divCondition_description">
<span style="font-family: "Courier New",Courier,monospace;">the message was received from 'calendar-notification@google.com'<br />And the message is Meeting Response.<br />And the message includes specific words in the subject '(YourFirstName YourLastName)'</span></div>
</div>
<div id="ctl00_ResultPanePlaceHolder_detailPaneContent_divAction">
<span style="font-family: "Courier New",Courier,monospace;"><span class="RuleDetailsPanel_SectionHeader" id="ctl00_ResultPanePlaceHolder_detailPaneContent_divAction_header">Do the following...</span></span><br />
<div class="RuleDetailsPanel_Description" id="ctl00_ResultPanePlaceHolder_detailPaneContent_divAction_description">
<span style="font-family: "Courier New",Courier,monospace;">delete the message<br />And stop processing more rules on this message</span></div>
</div>
</div>
<span style="font-family: "Courier New",Courier,monospace;">
</span></div>
</li>
<li><b>Use Outlook (web-access) 2010 to confirm appointment requests</b> (at work for me the 90% case). <b>When creating appointments</b> on your own then <b>invite yourself</b> (your private or your work email address).</li>
</ol>
And the good thing when solving problem 2 this way: You also solve problem 1 as GMail is able to display the invitation details (date and time) even for the .ics files originating from Outlook. I installed the Invitation Processor Pro anyway to see the event details also when currently in <a href="https://play.google.com/store/apps/details?id=com.fsck.k9" target="_blank">K-9 Mail</a> on Android.<br />
<br />
There are four different use cases:<br />
<ol>
<li>Co-Worker sends me a meeting request:<br />=> I confirm in the same way using Outlook web access 2010 and GMail. This way I have to confirm two times, but don't have to recreate the appointment twice manually (and using wrong dates or times) so I can be sure they match. And just to see it in GMail I don't even have to respond to the meeting request because on arrival in GMail I can see it in Google Calendar.<br /> </li>
<li>I have to create a private appointment:<br />=> I simply create this event in my private Google Calendar.<br /> </li>
<li>I have to create a work appointment that is completely irrelevant to my private time planning (maybe just a time blocker or reminder):<br />=> Just create this event in my office Calendar (using Outlook Web access).<br /> </li>
<li>I have to create a work related appointment:<br />=> Create the appointment in my private calendar and invite myself (send invitation to my work/office email address) and<br />=> confirm the incoming message with the Outlook web access.<br />OR<br />=> Create the calendar entry in Outlook web access calendar and invite myself (send invitation to private email-address) and<br />=> Confirm invitation in GMail.</li>
</ol>
The remaining little annoyance with this solution is: As I usually use <a href="http://www.mozilla.org/en-US/thunderbird/" target="_blank">Thunderbird</a> to access my Microsoft Exchange Mail account from the office, I need to switch to Outlook web access for confirming meeting requests.<br />
<br />
Related posts: <a href="http://it-tactics.blogspot.com/2011/09/outlook-calendar-meetings.html" target="_blank">Outlook Calendar Meetings</a>, <a href="http://it-tactics.blogspot.com/2011/07/outlook-2010-meeting-requests.html" target="_blank">Outlook 2010 Meeting Requests</a>, <a href="http://it-tactics.blogspot.com/2011/04/thunderbird-and-outlook-global-address.html" target="_blank">Thunderbird and the Outlook global address book</a>.<ol>
</ol>
Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com0tag:blogger.com,1999:blog-6557457948801960842.post-46723316511889550312013-09-25T23:33:00.000+02:002013-10-15T01:42:17.270+02:00Priceless DevelopersWhen I get contacted by headhunters they are usually <b>searching either for a developer or for a consultant</b> and there is an interesting observation which I do see confirmed when I read forums or talk to friends:<br />
<br />
Companies are willing to pay much more for a consultant than for a developer.<br />
<br />
I am both - developer and consultant - and I can tell you: <span style="color: red;"><b>The best consultant cannot solve the issues that have been introduced by bad programming and software design mistakes.</b></span> In a software company the whole business <i><u>depends</u></i> on the quality of the software released to the customers.<br />
<br />
Only in very rare cases in my consultant role I have access to the source code of the base products in use at the customer. My daily job includes customizing bricks of software and tying them together. Of course this often means writing code on my own to make everything work together. So I am dealing a lot with APIs of software products.<br />
<br />
<span style="color: red;"><b>During implementation of projects the vast majority of time goes into dealing with bugs, unfinished features and bad software design (or a software design that simply does not fit the needs)!</b></span> And is pretty irrelevant which software product I am thinking of, it's the same everywhere. It would be better if I could focus on the customer needs and on building solutions instead.<br />
<br />
There are people who have the opinion that most problems are just organisational problems or can be solved on the organizational level. I do not really agree with this. Of course, in most companies there is room for improving the organisation, but a software flaw should not be the reason for implementing workarounds on the organisational level.<br />
<br />
Software vendors and their customers depend on stable, secure - good quality software. Those, who are building the software, often are poorly paid. Most of my ex-class-mates stopped the programming work completely in the meantime. In the same time I do not know any software vendor having enough good quality programmers. Instead bug lists are only getting longer over time. Really strange.<br />
<br />
Related post: <a href="http://it-tactics.blogspot.com/2013/10/it-dependencies.html" target="_blank">IT Dependencies</a>. Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com0tag:blogger.com,1999:blog-6557457948801960842.post-21220732766966487222013-08-22T23:55:00.001+02:002013-10-15T01:41:50.846+02:00Surveillance, privacy (NSA, PRISM, ...) and encryptionIt's been now a while that the "whistle-blower" <a href="http://en.wikipedia.org/wiki/Edward_Snowden" target="_blank">Edward Snowden</a> caused heated discussions about the <a href="http://en.wikipedia.org/wiki/National_Security_Agency" target="_blank">NSA</a> and it's PRISM program. Privacy since then got a big issue for many.<br />
<br />
Some of my friends consider to close down their Facebook accounts, their Google Accounts and think of refusing many other internet activity.<br />
<br />
That could be a good idea - if you want to have more spare time with your children, your family or your hobby - but to avoid being spied out they ignore a root problem:<br />
<ul>
<li><span style="color: red;"><b>Most of them use Windows: As long as you are using Windows and that machine somehow is connected to the internet you are at risk.</b></span> As long as there is a feature in the operating system kernel to harvest your data that can be done already before encryption happens. Linux is Open Source and can be checked by everybody who understands the programming language (C). And indeed nations are interested in having an operating system that is secure so even the NSA has contributed code to Linux (<a href="http://en.wikipedia.org/wiki/Security-Enhanced_Linux" target="_blank">SELinux</a>). They want to spy out others but they are not interested in getting spied out themselves by others. ;-)<br /> <span style="color: red;"><b><br /></b></span></li>
<li><span style="color: red;"><b>They don't refuse email: EMail is like sending a post card. Everybody (postman or IT guy) that sits between the sender and the receipient can see the content/text of the letter/mail.</b></span><br />OK: Now, the more informed people are not thinking of using <a href="http://en.wikipedia.org/wiki/Pgp_encryption" target="_blank">PGP</a>. They usually find out after a while that while I can help them setting up their PGP encryption they need to have their peers also having the required software. While it is very easy to get started using PGP in <a href="http://www.mozilla.org/de/thunderbird/" target="_blank">Thunderbird</a> using <a href="https://addons.mozilla.org/en-US/thunderbird/addon/enigmail/" target="_blank">enigmail</a> it might get a little more difficult to get <a href="http://www.gpg4win.de/index.html" target="_blank">Gpg4win</a> to run smoothly not to talk about webmail <your favourite product here>. Oh, on Android you can use <a href="https://play.google.com/store/apps/details?id=com.fsck.k9&hl=en" target="_blank">K-9 Mail</a> and <a href="https://play.google.com/store/apps/details?id=org.thialfihar.android.apg&hl=en" target="_blank">APG</a> to send and read encrypted mails on the go.<br />Apart from that even less people know that using PGP only the email content is encrypted, but not the header information like sender, recipient or subject. So when sending private encrypted mail it makes sense using a nonsense subject like "Thank you for the fish" ;-).</li>
</ul>
In many cases it is not a practical short-term solution to ditch Windows completely and switch to Thunderbird + encrypt all your mails. And you should also stop using your mobile phone (you can be tracked not only via GPS but also via antenna mast your mobile phone connects to). But as long as you don't do that and also do not encrypt any other data that you have saved somewhere in the cloud, it is quite irrelevant if you close down some of those accounts. Sincerely: Are you writing serious stuff in Facebook or Twitter that may really hurt your privacy if it would be made public for everybody?<br />
<br />
<span style="color: red;"><b>There is always a tradeoff in having security and so is in having privacy. To avoid beeing hacked you can close down as many ports and sites as you want, but in the same time you loose access to features that might boost your productivity.</b></span> We can be private and secure but then you wouldn't be able to use the benefits that the technical solutions offer.<br />
<br />
Related posts: <a href="http://it-tactics.blogspot.co.at/2010/08/pros-and-cons-of-cloud-solutions.html" target="_blank">Pros and cons of cloud solutions</a>, <a href="http://it-tactics.blogspot.co.at/2010/08/administrator-ethics.html" target="_blank">Administrator ethics</a>, <a href="http://it-tactics.blogspot.co.at/2009/02/social-networking-sites.html" target="_blank">Social networking sites</a>, <a href="http://it-tactics.blogspot.co.at/2009/08/your-holy-machine.html" target="_blank">Your holy machine</a>, <a href="http://it-tactics.blogspot.com/2013/10/it-dependencies.html" target="_blank">IT Dependencies</a>. Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com4tag:blogger.com,1999:blog-6557457948801960842.post-25989686251209664312013-07-23T09:59:00.002+02:002013-07-23T10:00:21.845+02:00What the Tech Industry Has Learned from Linus TorvaldsLately I often suppressed my gut feeling in some technical issues.<br />
<br />
Finally I stumbled over a video that completely supports my gut feelings:<br />
<br />
Jim Zemlin, boss of Linus Torvalds is talking about the lessons learned working with Linux:<br />
<div class="yt" id="watch-headline-title" style="padding-bottom: 8px;">
<a href="https://www.youtube.com/watch?v=7XTHdcmjenI" target="_blank"> What the Tech Industry Has Learned from Linus Torvalds: Jim Zemlin at TEDxConcordiaUPortland</a> </div>
<br />
Lesson 1: Don't dream big<br />
Lesson 2: Give It away<br />
Lesson 3: Don't have a plan<br />
Lesson 4: You don't always have to be niceMartin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com0tag:blogger.com,1999:blog-6557457948801960842.post-12782512039147266472013-05-23T00:21:00.002+02:002013-05-23T00:22:56.932+02:00Why RSS Feeds and alternatives to Google ReaderWhen reading about <a href="http://googleblog.blogspot.com/2013/03/a-second-spring-of-cleaning.html" target="_blank">Google Reader closing down on 1. July</a>, I was in panic because to stay on top of the news (mostly IT specific news in my case), I was depending on Google Reader. I was depending on Google Reader because I am depending on <a href="http://en.wikipedia.org/wiki/Rss_feed" target="_blank">RSS feeds</a>.<br />
<br />
Google writes (in the article linked above):<br />
<blockquote class="tr_bq">
<span style="font-family: Georgia,"Times New Roman",serif;"><i>"While the product has a loyal following, over the years usage has declined. So, on July 1, 2013, we will retire Google Reader.</i></span>"</blockquote>
I would never have imagined a decline of use in RSS (and I assume that the decline of Google Reader usage also means a decline in using RSS in general because it is very hard to find good alternatives for Google Reader). And therefore before diving into the alternatives I want to - no, I need to - go into the advantages of using RSS feeds first. And although there are plenty of articles about Google Reader alternatives out there, it was very hard for me to find the proper substitute and this is the reason why I decided to write yet another article about this topic.<br />
<br />
<u>The <b>reasons</b> why I am <b>depending on RSS</b>:</u><br />
<ul>
<li><b><span style="color: red;">Knowledge is power</span></b><br />Information overflow is a problem these days. Recently I was asked (again) why one should - in these days - foster information overflow even more by opening even more channels where the too much of information rushes in.<br />Information (as long it is not misleading or wrong) can be a life changer. You want samples? Think of a company investing in technology that is about to be obsolete (like <a href="http://www.digitalspy.co.uk/tech/news/a399621/adobe-flash-player-removed-from-google-play.html" target="_blank">Adobe flash</a>) loosing a lot of time and money investing into the wrong product, think of a friend who found his spouse over the internet, think of going on a cheap vacation not knowing about risk of war in the appropriate country. Oh and another example I have experienced already several times: I get informed by RSS feed about food that gets withdrawn from market because polluted or containing toxic bacteria and strangely I sometimes see them on sale in the supermarket the day after I've read the article. Who has the knowledge has the edge over the others!<br /><span style="color: red;"><b>The problem is not the information, the challenge is the appropriate filtering of information! And RSS feeds help!</b></span><br /> <b><br /></b></li>
<li><b>Time and information</b><br />I do not have the time to visit each single website or blog providing (probably) interesting information. Many sites and blogs do publish very important or very interesting information - from time to time.<br /> </li>
<li><b>More efficient scrolling through articles</b><br />Many sites do publish a lot of information, but I am interested only in a few articles, so searching through many articles to find one or two interesting ones is annoying. An RSS reader (be it through the web or a local application) allows more efficient scrolling through articles.<br /> </li>
<li><b>Different user interfaces of websites and blogs</b><br />Different sites have different GUI (graphical user interface) and different layout. Visiting the sites one by one also implies being familiar with many different user interface styles. Many of them are not very efficient or it is difficult to find the information.<br /> </li>
<li><b>Ads, bulk and other time and space wasters</b><br />Even if you use an ad blocker in your browser often big graphics already consume a third of your screen distracting from the core information. Not only because of big graphics, but also because of many third-party service-sites (like Disqus, Facebook, Twitter, Adthis, Sharebar, ...) that are integrated on websites/blogs those sites take longer to load and having you to wait for the content that ... maybe then isn't so interesting today (while tomorrow may show a very interesting story that makes it worth waiting).</li>
</ul>
<br />
<u>The <b>reasons</b> why I was using <b>Google Reader</b> (= the <span style="color: red;"><b>5 core requirements</b></span> of the substitute):</u><br />
<ol>
<li><span style="color: red;"><b>In-Sync-View on the Laptop/Web and on the mobile device</b></span> (so what I've
already seen on my mobile phone did not get presented when reading news
on my laptop - one of the most important features for me).</li>
<li><span style="color: red;"><b>List view option for feeds</b></span> - I hate the hyped square interface. I want to read from top to bottom - that's it.</li>
<li><span style="color: red;"><b>Simple and efficient user interface</b></span> for dealing with the news fast. </li>
<li><span style="color: red;"><b>Fast and reliable</b></span> feed loading.</li>
<li><span style="color: red;"><b>Nearly identical user interfaces on the web and on the mobile device</b></span> - or at least not lacking core functionality.<span style="color: red;"><b> </b></span>(Mobile device in my case is Android, Mac and iPhone users, when reading this article, Apple-only alternatives are left out here). </li>
</ol>
Reasons 1 and 2 are a must have for me, but found that not having 3 and 4 can also drive me mad in minutes. So, now you are understanding the focus I had while choosing the alternative, here are my proposals:<br />
<ul>
<li><a href="http://www.feedly.com/" target="_blank"><b>Feedly</b></a><br />Feedly was the first alternative I got aware of and I observed it was the first alternative where the masses took refuge. However, I wondered if it will continue to work after Google Reader shutdown as it seemed to be just a front-end for Google Reader. Indeed they were (or are still while writing this) relying on Google Reader but developed a new backend on their own - see comments <a href="http://bloggingwithamy.com/will-feedly-still-work/" target="_blank">here</a>. Not sure if the transition will work flawlessly and if the performance can be kept due to massive increase in amount of users. While I also find it one of the best alternatives, I am not as convinced as most of the others.<br /><u>Pros:</u> Many features, mobile app (for Android, iOS, Kindle), similar GUI, laptop stays in sync with mobile app.<br /><u>Cons:</u> Needs a plugin for Firefox (why the hack?), No mobile interface via browser only, even no https connection, Don't see how many articles still left to scroll through (no scrollbar) on mobile app. When I want to share an article link via K-9 mail (or other mail app than GMail) from within Feedly it does not transfer the article title as email-subject which is quite annoying. Further it restarts accidentally when returning from another app back to feedly (e.g. browser view - does not happen always) which is even more annoying.<br /> </li>
<li><b><a href="http://www.netvibes.com/" target="_blank">netvibes</a></b> (= <a href="http://www.bloglines.com/" target="_blank">Bloglines</a> - same GUI, same login)<br /><u>Pros:</u>
Clean, simple and compact web interface, additional widgets in addition
to rss feeds. Also looks ok and is usable on mobile device in browser
being very, very similar to Google Reader - but only with default
browser and Dolphin (Firefox and Opera Mini displayed it totally
different and it was total crap). Videos are displayed directly in the
article detail view.<br /><u>Cons:</u> No dedicated mobile client and
using some browsers (in particular Firefox and Opera Mini) you get
complete crap. Due to mobile app missing, it does not offer any enhanced
features via menu button (normal browser menu displayed). Limited share
options given (Mail, even multiple clients plus Twitter and Facebook).<br /> </li>
<li><b><a href="http://rssly.de/" target="_blank">RSSly</a></b><br />Seems to use Tiny-Tiny-RSS (which you can also install on your own server, if you have enough permissions there - see below).<br /><u>Pros:</u> Many features, mobile app, similar GUI on laptop and mobile phone, laptop stays in sync with mobile app, display in browser on mobile device is also very good (Dolphin and Firefox - which is seldom - see below), many features including list of not responding feeds or feeds that seem abandoned as well as filter settings to filter out spam posts.<br /><u>Cons:</u> It took me a good while to find out, how articles are marked as read on the mobile device. It does not work automatically, but when you do it manually it had unexpected effects until I found out, that doing it on the first page marks the first 30 entries as read and on the last page it marks the complete feed as read. On the mobile device I have cannot switch between show all articles or only unread of a feed. And RSSly seems to load feeds respond to article clicks a little slower than Feedly. I could also not get it to display article title only without abstract on mobile device.<br /> </li>
<li><b><a href="http://feedafever.com/" target="_blank">Fever°</a></b><br />This is not free and no hosted service. You can buy it for about 30$/23€ and host it on your webserver. I took the risk and bought it. Installation was very easy. I only had to temporarily disable PHP securiy settings on admin interface on my hosters website for my page (for the time of installation and activation).<br /><u>Pros:</u> This is then yours, no risk of the next RSS service closing down. Clean interface, some extra features (kindling and sparks) to make your RSS experience even more efficient.<br /><u>Cons:</u> You need a web server with PHP support for it. If you don't have a web host with your domain then you cannot use this. Mobile client meltdown for Android still missing some features and available only for Android 4.0 and later. Refresh of feeds is not done in background (you can cron it but in my hosting case I can only cron it once in the night) and I experienced it also to be slow.<br /> </li>
<li><b><a href="http://theoldreader.com/" target="_blank">The Old Reader</a></b><br /><u>Pros:</u> HTTPS connection supported. Simple - no other clutter than plain RSS feeds. Few but clean settings, you will be familiar with it fast.<br /><u>Cons:</u> No mobile client (yet). When importing my feeds it queued me up after 12 other users. This makes me worry if they have enough servers to have my feeds stay on top of the news. Although they say that their mobile web interface is good, I had already troubles logging in from my smaller phone (small screen) and categories were completely missing and similar issues here when using Firefox or Opera Mini (complete crap is the result).</li>
</ul>
<br />
What I also looked at but excluded from closer investigation and why:<br />
<ul>
<li><a href="http://www.pulse.me/" target="_blank">Pulse</a><br />Pulse has a mobile client but no simple list view of the news feeds - they always use the squares or rectangulars and I am never sure about the direction into which to read. Also I could not find a button to set a feed to completely read. So this lacks a lot of important switches in my opinion.<br /> </li>
<li><a href="http://www.newsblur.com/" target="_blank">NewsBlur</a><br />Free version has limits which I already exceed when importing my current feeds from Google Reader.<br /> </li>
<li><a href="http://mocharoll.com/" target="_blank">Mocharoll (=former Blogroll)</a><br />Failed importing my RSS feeds from Google Reader (took a very long time and I then gave up first. Looking back later it had imported my feeds but I had no chance to switch to list mode instead of the square view. And in general configuration options are not really existing. Also refreshing problems - so didn't look either how it behaves on the mobile device.<br /> </li>
<li><a href="http://www.feederator.org/" target="_blank">Feederator</a><br />Looked similar to netvibes or TheOldReader, but could not find a method for importing opml files or my Google Reader feeds.<br /> </li>
<li><a href="http://goodnoows.com/" target="_blank">Good Noows</a><br />Looked nice on my laptop, but mobile view again awful (does not wrap around text. On the laptop I also had problems getting a complete feed beeing set to read. At least it supports https connection (not all of the online services do).<br /> </li>
<li><a href="http://tt-rss.org/redmine/projects/tt-rss/wiki" target="_blank">Tiny-Tiny-RSS</a><br />As for Fever, TT-RSS is not a hosted server. It is free, but you have to install it on your own server. I could not test it because it said that it requires open_basedir turned on which seems to be disabled by my host.<br /> </li>
<li><a href="http://www.commafeed.com/" target="_blank">CommaFeed</a><br />Looks simple but already on Dolphin sucks in display (too small but when you zoom into it, display gets mangeled.<br /> </li>
<li><a href="http://flipboard.com/" target="_blank">Flipboard</a><br />Mobile app only - no sync-view between mobile app and laptop.<br /> </li>
<li><a href="http://home.gna.org/feed2imap/" target="_blank">Feed2Imap</a><br />Self-hosted solution, so requires your own server and then forwards RSS news items as mails into an IMAP account. I am not sure, if my hoster supports ruby and I did not want to introduce another protocol (RSS->Mail) where again something can go wrong.<br /> </li>
<li><a href="http://feeder.co/">feeder.co</a><br />For what I need, I would need the variant that costs monthly fee.<br /> </li>
<li><a href="https://feeds.qsensei.com/" target="_blank">FeedBooster</a><br />Online-Reader only with https capability but no specific mobile device/browser adapted display.<br /> </li>
<li><a href="http://www.flud.it/" target="_blank">Flud</a><br />Seems to have a web plus mobile client but people reporting stability problems of the mobile app and pricing is not completely clear to me (maybe because this is not 100% RSS focused) so I refused testing this.<br /> </li>
<li><a href="http://news360.com/" target="_blank">news360</a><br />Web and mobile app but no possiblity to add your own RSS feeds - just what you get from them.<br /> </li>
<li><a href="http://alternativeto.net/software/google-reader/" target="_blank">More alternatives here...</a><br />I skipped everything in testing that obviously<br />- syncs with Google Reader (and hence die with it)<br />- does not have any sync option<br />- does not have a mobile app or at least a useful mobile web stylesheet in use to show an adapted GUI for small screens<br />- costs money on a monthly basis<br />- does not have a list view for articles</li>
</ul>
<ul>
</ul>
So despite this long list of alternatives (Feed2Imap apart, I have listed only those I have also tested), in reality there are 4 which are fairly useful for me: <a href="http://www.feedly.com/" target="_blank">Feedly</a>, <a href="http://rssly.de/" target="_blank">RSSly</a>, <a href="http://www.netvibes.com/" target="_blank">netvibes</a> and <a href="http://feedafever.com/" target="_blank">Fever</a>. All the others had too many (for me important) flaws. I have Fever up and running and I feel good with it - as it is mine (nobody can shut down the RSS-service). However, best efficiency is given by Feedly and netvibes. Reading <a href="http://www.omgubuntu.co.uk/2013/05/unity-webapp-for-feedly?utm_source=feedly&utm_medium=feed&utm_campaign=Feed%3A+d0od+%28OMG!+Ubuntu!%29" target="_blank">this (Feedly gets Unity webapp integration in Ubuntu)</a> was one reason to go with Feedly for the next weeks. I still feel bad about it's desire to read my Google profile but I hope that will be gone when they synchronize with their own alternative but with Google Reader - currently Feedly still remains in sync with Google Reader. I can work around the mailing issue with the subject by first opening it in the external browser (there is an option for this in the advanced settings) and send the link from there. What I find more alarming: Feedly already thinks of asking money for the service. They already created a survey for that. Anyway, I have 3 other alternatives now I can immediately switch to and this gives me some feeling of safety.<br />
<br />
Related post: <a href="http://it-tactics.blogspot.co.at/2011/07/efficiently-following-web-news-with-rss.html" target="_blank">Efficiently following web news with RSS</a>. Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com0tag:blogger.com,1999:blog-6557457948801960842.post-42378048440832787872013-04-18T00:08:00.001+02:002013-04-18T00:09:03.717+02:00Proof of ConceptMore and more companies tend to set up proof of concept projects before they buy software or IT solutions.<br />
<br />
Apart from the fact that there is nothing wrong with that, I can see that companies do believe less and less of the stuff they get told by sales. And I think, they are right. Be it economic crisis or greed, <b>to get a deal</b>, <b>salesman</b> simply <b>lie</b>. When they lie they often the don't really lie explicitely, they often just choose words and phrases that can be easily missunderstood or lead to high or wrong expectations. Then of course there is usually the technical part of the story that salesman mostly don't understand well - <b>and they guess</b> or are just happy with the positive attitude.<br />
<br />
Well, this is business as usual, you might argue - and you might be right.<br />
But the product features/limits/facts and expectations of the people in the project are a crucial part <u>not</u> only during the evaluation period.<br />
<br />
<span style="color: red;"><b>Who suffers?</b></span><br />
<ul>
<li>The IT administrators at the customer.</li>
<li>The consultants doing the installation and configuration stuff.</li>
<li>The final end-users (some of them - they key-users - are nowadays often involved, even if often too late).</li>
</ul>
<span style="color: red;"><b>All those people are often not involved during the early project phase, although they are very relevant for the final project success.</b></span><br />
<br />
What is worse than having few work only and a tiny amount of new customers only? When you have your consultants blocked working in projects which are always short before escalation or at high risk that customer wants unwinding the contract!<br />
<br />
<span style="color: red;"><b>So I try not to feed high expectations and I prefer overdelivering over underdelivering. In the long run this brings more satisfied customers getting back to you for further projects.</b></span><br />
<br />
Related post: <a href="http://it-tactics.blogspot.co.at/2013/01/the-truth-about-software.html" target="_blank">The truth about software</a>.Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com0tag:blogger.com,1999:blog-6557457948801960842.post-48261525358308490642013-01-13T00:18:00.000+01:002013-05-23T00:30:33.511+02:00Firefox and RSS feeds in Google Reader<b><span style="color: red;">Update: Google Reader will be closed down at July 2013 so this article is quite obsolete - read the newer article "<a href="http://it-tactics.blogspot.co.at/2013/05/why-rss-feeds-and-alternatives-to.html" target="_blank">Why RSS Feeds and alternatives to Google Reader</a></span></b>".<br />
<br />
However, here is the old story:<br />
<br />
Lately I explained RSS feeds to someone and wondered why Firefox is not behaving the same way as on my machine when subscribing to RSS feeds. I did not remember what I exactly did on my machine to get it to work because it is so long ago that I created my profile for new that I first started searching the internet. Interestingly I could not get it to work so - back home - I investigated my own settings. Interestingly they do not match what I found on the net so I think it could be worth writing this article.<br />
<br />
Preamble: <b>Google Reader</b> is an online RSS news reader that is also available for Android phones which is very fine when you (as I do) use your phone a lot to read news (for example while on the bus or waiting for it). What you read on your phone is synchronized with what you see when you are back on your laptop or PC. What I show here is how to get <b>subscriptions with Firefox</b>:<br />
<br />
<ol>
<li>Newer Firefox versions do not show the RSS feed symbol by default any more. - Right click next to your tabs or somewhere between your toolbars and choose "Customize...". Look for the "Subscribe..." button and drag it onto your toolbar (I have it next to the refresh and abort button).<br /> </li>
<li>Type "about:config" into your url location bar and search for "feeds".<br /> </li>
<li>Change "browser.feeds.handler" to "reader"</li>
<li>Change "browser.feeds.handler.default" to "web"</li>
<li>Change "browser.feeds.handlers.webservice" to "http://fusion.google.com/add?feedurl=%s"</li>
<li>You might also need to change "browser.contentHandlers.auto.application/vnd.mozilla.maybe.feed" to "http://fusion.google.com/add?feedurl=%s"</li>
<li>You might also need to change "browser.contentHandlers.types.0.title" to "Google"</li>
<li>You might also need to change "browser.contentHandlers.types.0.type" to "application/vnd.mozilla.maybe.feed"</li>
<li>You might also need to change "browser.contentHandlers.types.0.uri" to "http://fusion.google.com/add?feedurl=%s" </li>
</ol>
Now when you are on a site that offers RSS feeds the "Subscribe" button should be active (sometimes, when there are many different RSS feeds available on a site they are available through separate links on the site while the main RSS subscribe button is inactive so you might need to dig a little for the RSS subscription link) - however in both cases you should get the option to put the RSS feed onto your iGoogle page or subscribe with Google Reader then.<br />
<br />
Related post: <a href="http://it-tactics.blogspot.co.at/2011/07/efficiently-following-web-news-with-rss.html" target="_blank">Efficiently following web news with RSS</a>, <a href="http://it-tactics.blogspot.co.at/2013/05/why-rss-feeds-and-alternatives-to.html" target="_blank">Why RSS Feeds and alternatives to Google Reader</a>.Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com1tag:blogger.com,1999:blog-6557457948801960842.post-14321783814678765042013-01-12T23:59:00.000+01:002013-10-15T01:42:06.818+02:00The truth about softwareTo summarize the software-troubles:<br />
<ul>
<li>Too many bugs</li>
<li>Too difficult to use</li>
<li>Too much administration and maintenance work</li>
</ul>
As you might already know, as it seems obvious for you - or maybe, if you are listening to your inner voice, you only hear it from somewhere burried deep down in your mind: software is full of bugs. <span style="color: red;"><b>There is no bugfree software.</b></span><br />
<br />
Since I started programming, I could see the IT world complexity growing and growing. In the beginning there was one processor and one process running at a time - no other software to integrate with. Everything was easier. When I think back to times of Commodore C-64 or when I was using the MS DOS Borland Turbo Pascal or C compilers - they were all extremely robust and when there was something not working as desired, I could be to 99 % sure that it's my fault. So at least the core system and the development platform were rock-solid and stable. That did not always apply to my programs... ;-)<br />
<br />
<span style="color: red;"><b>Nowadays, operating systems and their core services as well as development environments - and in addition to that a bunch of third-party libraries all have their issues.</b></span> So the software developer doesn't even start on a rock-solid base as it happened to be back in the early eightees (at least according to my experience - YMMV). In addition to that: If you want to produce cars, toys or whatever other physical stuff, in most cases you need a factory and a lot of money before you can start. <span style="color: red;"><b>For producing software, all you need is a computer and download some tutorial from the net</b></span> and even a fool can get started - and unfortunately a lot of fools do...<br />
<br />
But the low entrance barrier is only one reason for the lot of issues around. In my opinion the <span style="color: red;"><b>complexity is the worst thing here</b></span>. Even with the honest strong desire to get everything right, you can't - apart from the fact that IT world has grown far too big to be completely covered by a single person.<br />
<br />
But the growing IT world did not bring only troubles - we do have far more possibilities since computers were invented. <span style="color: red;"><b>Software development is far easier than in the beginning of computers. We can build software with far more features in much shorter time now. The problem: The software can often do far more than the users can handle.</b></span><br />
<br />
And last but not least: I remember times when the "installation" of a program was just copying it to the machine and run it. Today it requires dependency checks and sometimes complex installation procedures. Although still possible - only a very few programs that run fine when you just copy them. Nowadays many software products have a bunch of required preconditions and a lot of integration options that need configuration. <span style="color: red;"><b>Highly integrated software means more maintenance work</b></span> regarding updates (of any of the involved components). Another reason for increased maintenance work are the customization options that most software comes with.<br />
<br />
A normal user nowadays is working with a lot of different software products and often there are some software products that are used very seldom only. I have seen users dealing with software they need to touch only once a month. From one month to the other they need to re-find all needed menu items again because from one month to the other they always forgot.<br />
<u><b><br /></b></u>
<u><b>The challenge these days is:</b></u><br />
<ul>
<li>To <span style="color: blue;"><b>reduce complexity</b></span> (of the problem and feature set) as far as possible (while maintaining flexibility).</li>
<li>To make using the software easier -<b> <span style="color: blue;">software must be intuitive to use</span></b> (only a very few people do read documentation or help file text).</li>
<li>And to <span style="color: blue;"><b>make configuration obvious and simple</b></span>.</li>
</ul>
Related posts: <a href="http://it-tactics.blogspot.co.at/2011/05/it-fallout-and-buddhism.html" target="_blank">IT fallout and buddhism</a>, <a href="http://it-tactics.blogspot.co.at/2012/04/new-user-experience.html" target="_blank">New user experience</a>, <a href="http://it-tactics.blogspot.co.at/2013/04/proof-of-concept.html" target="_blank">Proof of concept</a>, <a href="http://it-tactics.blogspot.com/2013/10/it-dependencies.html" target="_blank">IT Dependencies</a>. Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com0tag:blogger.com,1999:blog-6557457948801960842.post-57782230998997718762012-08-07T02:06:00.000+02:002012-08-07T02:06:00.794+02:00The truth about hardware supportSince the time I first started using Linux at home I know that one must be careful when choosing hardware to avoid pain when installing Linux.<br />
<br />
When people say that Windows supports more hardware than Linux I always confirmed from my own experience.<br />
<br />
<b style="color: red;">But: Linux - out-of-the-box supports more hardware than Windows does (out-of-the-box)! </b>Microsoft "outsourced" most hardware support to the vendors and when you buy new hardware with Windows preinstalled, vendors did the job in getting everything to work!<br />
<br />
Lately I wanted to help out a new co-worker reinstalling Windows on his work laptop (HP Pavilion g6). There was an extra partition prepared by the vendor which probably contained possible required drivers. However, somehow it was inaccessible so we couldn't get drivers from there. After a clean Windows 7 installation: No WLAN, no sound and no ethernet either! After long search on the net (from another machine of course), my co-worker found the most important download (ethernet driver) on a separate site from HP for businesses (after finally also identifying the exact sub-model of the g6) - <u>more than 100 MB</u> download - for a freakin' ethernet card!<br />
<br />
After that I was so frustrated loosing so much time just to get the normal ethernet to work (let alone WLAN and the rest), that I left the rest up to him. Later in the evening he called me about activating Windows and Office and I could not get to the Microsoft action pack site because somehow the login did not work any more.<br />
<br />
The next day he arrived at the office with Ubuntu installed on the HP Pavilion g6 - everything worked out-of-the-box - no single extra driver required and of course fully usable (without the need of activating any software)!<br />
<br />
But this is not always the case. There are plenty of vendors that do not write drivers for Linux and many even do not publish the specifications so that somebody else could write the driver. If there is an open source driver - or at least a free driver available, Linux already contains it, where on Windows you need to get separate driver setups or CDs from the appropriate box or vendor site.<br />
<br />
There are currently software updates running on a Dell Latitude E6530 next to me. As usual, all I need to tell Dell: I need a laptop and I don't pay the Microsoft tax, I will install Ubuntu on it and the hardware must support it. I don't want and don't need to search forums for possible problems, I can rely on Dell shipping fully supported hardware - everything out-of-the-box - also no additional drivers required.<br />
<div style="color: red;">
<b><br /></b></div>
<div style="color: red;">
<b>My recommendation: Even if you don't plan yet to use Linux, tell your vendor when buying a new PC or laptop that you want the hardware to be Windows AND Linux compatible. If you plan to use Windows: Hope that you don't need to reinstall yourself grabbing all the required drivers from the internet!</b></div>
<br />
Related posts: <a href="http://it-tactics.blogspot.co.at/2010/09/ubuntu-compatible-hardware.html" target="_blank">Ubuntu compatible hardware</a>, <a href="http://it-tactics.blogspot.co.at/2009/07/about-dell.html" target="_blank">About Dell</a>, <a href="http://it-tactics.blogspot.co.at/2009/06/hardware.html" target="_blank">The hardware</a>.Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com0tag:blogger.com,1999:blog-6557457948801960842.post-3867674580783325992012-06-22T00:19:00.002+02:002012-08-05T22:35:09.708+02:00Ubuntu 12.04 LTS Precise Pangolin - Optimized<br />
<u><b><i>Preamble:</i></b></u><br />
If you are a recent Linux convert, just new to Linux or only a casual computer user, you don't have to worry: Whatever of the main Linux desktop distributions you are choosing (be it <a href="http://www.ubuntu.com/" target="_blank">Ubuntu</a>, <a href="http://zorin-os.com/" target="_blank">Zorin OS</a>, <a href="http://linuxmint.com/" target="_blank">Linux Mint</a>, <a href="http://fedoraproject.org/" target="_blank">Fedora</a>, ... - whatever flavor of those) to use or try out - you are ok. The following is for power users who want to save clicks and mouse-miles to the absolute minimum required.<br />
<br />
This article partly applies also for other distributions that offer compiz.<br />
<br />
<br />
<u><i><b>Introduction:</b></i></u><br />
Since <a href="http://www.ubuntu.com/" target="_blank">Ubuntu</a> 11.04 which first introduced the new <a href="http://en.wikipedia.org/wiki/Unity_%28desktop_environment%29" target="_blank">Unity</a> interface for the main desktop instead of Gnome, I was testing many different Linux desktop alternatives because I worried about the future of the Ubuntu desktop. After testing several distributions (see preamble above) and all the main desktop environments including <a href="http://www.xfce.org/" target="_blank">XFCE</a>, <a href="http://lxde.org/" target="_blank">LXDE</a>, <a href="http://www.kde.org/" target="_blank">KDE</a>, <a href="http://www.gnome.org/gnome-3/" target="_blank">Gnome3</a>+<a href="http://wiki.awn-project.org/" target="_blank">AWN</a>, <a href="http://www.gnome.org/gnome-3/" target="_blank">Gnome3</a>+<a href="http://glx-dock.org/" target="_blank">Cairo Dock</a> I came back and settled with Unity on the current Ubuntu 12.04 LTS (Precise Pangolin) production work desktop. I do consider myself as a Linux Desktop power user on a daily basis at home and work and I focus on usability, efficiency and stability. On 10.04 I was experimenting with Gnome 2 plus AWN or Cairo Dock finding a more efficient desktop configuration. Basically I ended up with something similar to <a href="http://en.wikipedia.org/wiki/Unity_%28desktop_environment%29" target="_blank">Unity</a>. Except: I was doing hard work on configuration ending up with several small but annoying problems (including crashes of particular applets now and then).<br />
<br />
Honestly, I find Unity on Ubuntu 12.04 (not so in the versions before) very stable and useful out-of-the box. There are still a few very first actions, but anyway far less post-install-configuration work than everywhere else (not to talk about Windows which is the OS with the most-post-install work ever existed).<br />
<br />
<u><i><b>First actions after install (applies to debian based distributions such as Ubuntu, Mint or Zorin OS):</b></i></u><br />
<ol>
<li><b>Click Settings/Power Icon in the right upper corner, then "System Settings"->"Appearance"->reduce "Launcher icon size" to 32</b>. Default size is just too big to get most icons fully displayed that I need on a daily basis (ok this first one is only for Ubuntu users with Unity).<br /> </li>
<li><b>Start Nautilus</b> (Windows/Ubuntu/Super key + 1), move mouse to top of screen (new way to get to the active application's menu) and choose <b>"Edit"->"Preferences" and change "default view" to "List View"</b>.<br />And in tab "Display" I also change the date format to ISO (yyyy-mm-dd) - you might want to keep the default.<br /> </li>
<li><b>Start Firefox and under "View"->"Toolbars" check "Bookmarks Toolbar".</b><br /> </li>
<li><b>On the commandline</b> (open a terminal)<b>:<span style="font-family: "Courier New",Courier,monospace;"><br />sudo apt-get install synaptic</span></b><br />I
now, there is a nice app store now - pretty fine for the normal user
and even for me if I want to look around for interesting stuff. But I
still like to see the original package names, have overview and full
control about the repositories and the like. therefore I still like
synaptic - in addition to what comes with Ubuntu.<br /> </li>
<li><b>On the commandline </b>(if on Ubuntu or other distribution with Desktop environment that offers/works with compiz)<b>:<br /><span style="font-family: "Courier New",Courier,monospace;">sudo </span><span style="font-family: "Courier New",Courier,monospace;">apt-get install compizconfig-settings-manager compiz-plugins-extra</span></b><br />That's for configuring my desktop to get the best usability and efficiency.<br /> </li>
<li><b>Enable partner repositories:</b>Press ALT+F2 and type <span style="font-family: "Courier New",Courier,monospace;">synaptic</span> then press Enter.<br />In the menu select Settings->Repositories.<br />Enable the partner and independent repositories.<br />Close the sources dialog and on the synaptic main window click on the reload button (this is the same as the commandline "<span style="font-family: "Courier New",Courier,monospace;">sudo apt-get update</span>" - without the quotes).<br /> </li>
<li><b>Managing passwords:</b><br />It is always recommended to use different passwords on different sites where you register and login. After several registrations nobody can remember all the passwords. Therefore it is helpful to use a password manager. My current favorite is keepass2. It can be installed this way:<br /><span style="font-family: "Courier New",Courier,monospace;">sudo apt-add-repository -y ppa:jtaylor/keepass</span><br /><span style="font-family: "Courier New",Courier,monospace;">sudo apt-get update</span><br /><span style="font-family: "Courier New",Courier,monospace;">sudo apt-get install keepass2</span><br /> </li>
<li><b>And then I install a lot of other tools - such as</b> (on the commandline again - this is all one line)<b>:</b><br /><span style="font-family: "Courier New",Courier,monospace;">sudo apt-get install ubuntu-restricted-extras ubuntu-restricted-addons adobe-flashplugin ffmpeg </span><span style="font-family: "Courier New",Courier,monospace;">vim cups-pdf gnome-utils thunderbird k3b p7zip-full gufw libdvdcss2 xdotool gthumb vlc shutter gtk-recordmydesktop openjdk-6-jre icedtea-plugin openjdk-7-jre grsync galternatives soundconverter winff asunder ogmrip thoggen k9copy google-talkplugin skype pidgin emesene mc htop traceroute secure-delete pdftk imagemagick rar unrar jhead what-utils ttf-linux-libertine ttf-isabella ttf-dejavu-extra ttf-inconsolata ttf-sil-gentium ttf-junicode ttf-rufscript ttf-radisnoir remmina remmina-plugin-gnome remmina-plugin-xdmcp remmina-plugin-nx freerdp-x11rem chmsee jxplorer mdbtools-gmdb nautilus-filename-repairer smbclient clamav clamav-freshclam clamtk libmotif4 curl network-manager-openconnect-gnome network-manager-openvpn-gnome network-manager-vpnc-gnome openconnect ttf-mscorefonts-installer acroread</span><br />Note: You need to enable a few repositories before:<br /><span style="font-family: "Courier New",Courier,monospace;">#Adding medibuntu (all the next on one line)</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;">wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list && apt-get --quiet update && apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring && apt-get --quiet update</span><br /><br /><span style="font-family: "Courier New",Courier,monospace;">#For Google-Talk-Plugin (2 lines)<br />wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - <br /><br />sudo sh -c 'echo "deb http://dl.google.com/linux/talkplugin/deb/ stable main" >> /etc/apt/sources.list.d/google.list'<br /><br /> </span></li>
<li><b>On Ubuntu with Unity?</b> - Then these help<b>:</b><br /><span style="font-family: "Courier New",Courier,monospace;">sudo apt-get install classicmenu-indicator lo-menubar unsettings myunity indicator-weather<br /> </span></li>
<li><b>For the professional IT guys</b> (continue on the commandline - again all one line)<b>:</b><span style="font-family: "Courier New",Courier,monospace;">sudo apt-get install gparted dconf-tools gconf-editor gisomount bum vim-gnome gedit-plugins geany geany-plugins scite meld diffutils diffuse diffpdf gitg bless ghex build-essential xmlcopyeditor</span><b><br /> </b></li>
<li><b>For the developers or server guys more might be highly relevant</b> (on the commandline one line again)<b>:</b><br /><span style="font-family: "Courier New",Courier,monospace;">sudo apt-get install mysql-server mysql-client mysql-query-browser mysql-gui-tools-common mysql-admin pgadmin3 gsql</span><br /> </li>
</ol>
<u><b>Enhanced usability:</b></u> <br />
<i>Now - if you are on Unity or using a desktop environment with compiz - here are the tweaks to maximize usability:</i><br />
<ol>
<li>Start ccsm (e.g. Press ALT+F2 and type ccsm and press Enter). This is the compizconfig-settings-manager.<br /> </li>
<li>Choose "Desktop Wall Plugin" under "Bindings" category and set "Move Left" to "Bottom Edge + Button 1" and "Move Right" to "Bottom Edge + Button 3. - That let you switch the desktop left and right easily with the mouse on the bottom edge.<br /> </li>
<li>Still in "Desktop Wall Plugin" go to "Edge Flipping" and uncheck "Edge flip move" as well as "Edge Flip DND".<br /> </li>
<li>Go back to main screen and select "Scale plugin". Go to "Bindings" and set the "Initiate Window picker" to "BottomRight" and/or "TopLeft".<br /> </li>
<li>Go back and switch to "Application Switcher" plugin. Under "Bindings" choose for "Next Window" the TopEdge+Button 1.<br /> </li>
<li>Set "Next Window (all Windows)" to "TopEdge+Button3". </li>
</ol>
Related posts: <a href="http://it-tactics.blogspot.co.at/2010/10/locale-configuration-on-ubuntu.html" target="_blank">Locale configuration on Ubuntu</a>, <a href="http://it-tactics.blogspot.com/2010/03/firefox-change-default-page-format.html">Firefox change default page format</a>, <a href="http://it-tactics.blogspot.com/2011/05/openoffice-and-libreoffice-starts-slow.html">OpenOffice and LibreOffice starts slow</a>, <a href="http://it-tactics.blogspot.com/2011/09/default-paper-size-in-open-office.html">Default paper size in Open Office</a>, <a href="http://it-tactics.blogspot.com/2011/09/normaldot-in-openoffice-or-libreoffice.html">Normal.dot in OpenOffice or LibreOffice</a>.<br />
<ol>
</ol>
<ol>
</ol>Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com2tag:blogger.com,1999:blog-6557457948801960842.post-15329188792612130712012-04-15T22:43:00.000+02:002013-01-13T00:01:22.674+01:00New user experienceYesterday I made an experiment which for me is difficult to do: I showed Ubuntu 12.04 to a person (about 70 years old) completely new to computers (only used the mouse to click through a set of photos so far but that's it). I only know a very few people of this type (most already have used computers).<br />
<br />
I have seen a lot of funny and interesting behaviour (like hit the key with the pipe character written on it instead of i ;-) - never thought of things like this). Don't want to go into detail - just share the most relevant results in very short:<br />
<br />
<ol>
<li><b style="color: red;">Big icons are not only for people visually handicapped - also for people who are not familiar with a mouse</b> (or relevant for touchscreens: have big fingers). A quadratic form is easier to click than a rectangular shape (text on websites is rectangular shape and more difficult to click than the Ubuntu Unity launchers for example).<br /> </li>
<li>Without explanations - whatever Operating System - a complete newbie person cannot learn only on his/her own. There needs to be a person that explains. Not to talk about administration. A newbie with low experience level will never administrate the computer on his/her own. There must be a person with higher experience level helping out and doing this for everyone who just wants to do a few things (or must do). This draws a very important conclusion for me - confirming my belly feeling somehow: The operating system must try to minimize the annoyance for that guy behind everything. The person that needs to help out the core family and a dozen of friends! - That usually are IT people or at least the very technical interested guy/girl. <b style="color: red;">So companies or communities building an operating system need to focus more on the technical person than on the new user!</b> If the guy/girl that needs to administrate, hates the OS he/she will install something else and the user needs to adapt. <b style="color: red;">For the unexercised user efficiency differences of one or the other operating system are irrelevant - not so for the power user or IT guy!</b> So those driving an operating system forward with their experience and with their desires for improving efficiency are the key group - they are the experts others will trust. Who would you rather ask which new car to buy - the flower lady at the corner or the taxi driver?<br /> </li>
<li><b style="color: red;">Most websites are far more complicated to use than the base operating system.</b> Navigating those sites is far more hassle. Last but not least because they do not tend to look similar. Imagine, all websites would have a standardized menu so that whataver company site you are at, you find the link to the office hours at the same position.</li>
</ol>
Related post: <a href="http://it-tactics.blogspot.co.at/2013/01/the-truth-about-software.html" target="_blank">The truth about software</a>. <br />
<ol>
</ol>
Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com0tag:blogger.com,1999:blog-6557457948801960842.post-11866711541955665082012-04-10T03:19:00.000+02:002013-09-19T11:50:48.139+02:00A few Linux related videosHere are a few easy and overview videos related to Linux that might increase your interest:<br />
<br />
<b>Ubuntu spot:</b> <br />
<div class="separator" style="clear: both; text-align: center;">
<object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://1.gvt0.com/vi/oYtv_wM-tM0/0.jpg" height="266" width="320"><param name="movie" value="http://www.youtube.com/v/oYtv_wM-tM0&fs=1&source=uds" />
<param name="bgcolor" value="#FFFFFF" />
<embed width="320" height="266" src="http://www.youtube.com/v/oYtv_wM-tM0&fs=1&source=uds" type="application/x-shockwave-flash"></embed></object></div>
<br />
<b>How Linux is built:</b><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/yVpbFMhOAwE?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<b>Linux vs Windows (in brief):</b><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/7G7TJyZPKPo?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<b>Linus Torvalds: Why Linux is not successful on the Desktop:</b><br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/ZPUk1yNVeEI?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<br />
<b>Ubuntu TV:</b><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/7jYj1gio7qE?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<b>Ubuntu for Android Demo:</b><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/JVSNIJs0lWw?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<br />
<b>Linux is better than Windows:</b><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/gP8LxHxvjD0?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<b>Unity technology overview:</b><br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/pOpVhuB9sVk?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<br />
<b>Microsoft Office vs OpenOffice / LibreOffice:</b><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/sloEMUt7n5Q?feature=player_embedded' frameborder='0'></iframe></div>
<br />
Linux does what Windows does not:<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/HD6nqQrJx78?feature=player_embedded' frameborder='0'></iframe></div>
<br />
10 reasons Windows 8 will fail:<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/zck5Bd0VCfQ?feature=player_embedded' frameborder='0'></iframe></div>
<br />
Related posts: <a href="http://it-tactics.blogspot.com/2009/10/why-linux.html">Why Linux?</a>, <a href="http://it-tactics.blogspot.com/2009/12/going-linux.html">Going Linux</a>, <a href="http://it-tactics.blogspot.com/2010/10/open-source-idea.html">The Open Source idea</a>, <a href="http://it-tactics.blogspot.com/2010/10/user-lock-down.html">User lock down</a>, <a href="http://it-tactics.blogspot.com/2010/12/community.html">The community</a>, <a href="http://it-tactics.blogspot.com/2011/03/popular-ubuntu-desktop-myths.html">Popular Ubuntu desktop myths</a>, <a href="http://it-tactics.blogspot.com/2011/07/why-companies-do-not-use-linux-on.html">Why companies do not use Linux on the desktop</a>, <a href="http://it-tactics.blogspot.com/2011/09/distribution-choice.html">Distribution choice</a>.Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com0tag:blogger.com,1999:blog-6557457948801960842.post-49700376362457835812012-04-05T00:10:00.001+02:002015-07-23T01:33:22.109+02:00Choosing a programming languageCurrently - after a very long period I am again into the programming language decision which I was not expecting.<br />
<br />
Changing programming language is a big deal and you shouldn't do that every 2 years. When you search the web you will find recommendations to learn many languages and learn a new each 2 or 3 years. I find this totally silly. To get really productive with a programming language, takes at least a year and of course you would like to get the most out of it regarding ROI (return on investment).<br />
<br />
When I did evaluate programming languages the last time, it was a 3-step way:<br />
<ol>
<li>Collecting all options with the result of a hand full remaining for further analysis.</li>
<li>Keep an eye on activity and evolution of the results from step 1. </li>
<li>Detailed analysis of the remaining options and choose.</li>
</ol>
The time from beginning of step 1 until end of step 3 took about 2 years. During step 1 I already decided on a few parameters, which in my case were:<br />
<ul>
<li>I prefer static typed languages over dynamic ones for several reasons (e.g. less error prone, YMMV).</li>
<li>I don't want to code user interface - I have coded GUI since I was an 8 year old boy and I was about 14 when I got GUI designers (those times still using MS DOS) so hand-coding GUI is for me like returning to stone-age and so that is a no-go for me if a GUI designer is missing.</li>
<li>I don't like language hopping and because of the very dynamic requirements of my software projects I need a programming language that can be used for quite all realms - so all the domain-specific languages are excluded for my needs.</li>
<li>My applications are usually plugin/addon enabled which means that a customer must be able to develop those for special needs on his own - without additional costs. That means, my favor goes to languages that are free (and open source) including the IDE used for development.</li>
<li>The language should not be tight to a particular operating system.</li>
</ul>
My decision - taken back in 2008 after many years of classic Visual Basic development on Windows was: <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank"><b style="color: red;">Java</b></a> together with <a href="http://netbeans.org/" target="_blank"><b style="color: red;">NetBeans IDE</b></a>, using <a href="http://en.wikipedia.org/wiki/Swing_%28Java%29" target="_blank">Swing</a> GUI for desktop applications (NetBeans itself uses Swing - however, there is another option for building GUI in Java: <a href="http://en.wikipedia.org/wiki/Standard_Widget_Toolkit" target="_blank">SWT</a>). A short comparison Swing vs SWT can be found <a href="http://stackoverflow.com/questions/2306190/java-desktop-application-swt-vs-swing" target="_blank">here</a>. Back in those days I have already blogged about my decision, you might want to read back to "<a href="http://it-tactics.blogspot.com/2008/09/programming-language.html" target="_blank">The programming language</a>" and "<a href="http://it-tactics.blogspot.com/2008/11/ide-and-libraries.html" target="_blank">The IDE and the libraries</a>" maybe. The Swing GUI is - by the way - far superior to the .net <a href="http://en.wikipedia.org/wiki/Windows_Forms">WinForms</a> or <a href="http://en.wikipedia.org/wiki/Windows_Presentation_Foundation">WPF</a> - both do not adapt well to very different text lengths in labels (just to give one example - in Swing this works without additional work in full automatic). Another core advantage of Java in general is: You take the binary and it runs everywhere! - C++ and many other languages at least require the same code to be compiled on each platform. What if I want to develop for the Mac and I don't own one? - I have given Java apps that I have written to a friend for testing on his Mac and it worked - without me ever testing it on the Mac. Of course if you call system programs dealing with the output you may see differences in the behaviour on different operating systems that you have to deal with. The most annoying thing in Java is that you need to ensure that the Java runtime is installed on all the client PCs where you want to use the app. Of course no difference to Microsoft's .net here - although there is less version quirks than for .net...<br />
<br />
Now, <u>about 4 years later</u> there is <u>nothing wrong</u> with my decision. My decision is still that. With the rising of alternative operating systems the importance of Java has gained (on the server side Windows definitely already lost for enterprise applications at least) and many server-applications go Java to be platform agnostic. Apart from that the Java world is <u>huge</u>. Microsoft's .net is growing also, but still far from that (regarding size and quality of libraries and community).<br />
<br />
The trigger for my latest search for a programming language is that I have a few <b>very small programs (running on the client)</b> to write (they are not "real" applications, just tiny programs for particular small needs). I found Java - and .net or Mono as well just too big for such tiny stuff. In my particular case they are Windows specific needs. A few of those needs I already solved by just writing <a href="http://en.wikipedia.org/wiki/VBScript" target="_blank">VBScript</a>s. That was ok for the GUI less needs. Now I have a few little needs for small GUIs. And that again brought me to a brief look around.<br />
<br />
And indeed that is the single parameter ("should fit for very tiny requirements also") I did not include in my former decision back in 2008. And good it was I think because finding the programming language that fits for really everything 100% is not realistic. It is even <b style="color: red;">not realistic to think that a programmer nowadays can survive just knowing one language</b> - but: It is important to keep in mind that <b style="color: red;">no one can achieve the same level of expertise in all used languages</b>.<br />
<br />
So this post can be seen as an addition to my main pro-Java decision - the programming languages that are helpful in addition to Java.<br />
<br />
<div style="color: red;">
<b>For Windows development you should know VBScript and on Linux shell scripting or Python or Perl for the small scripting stuff.</b></div>
<br />
But what to choose, if a little GUI is needed?<br />
<br />
If you search for a platform independent development platform, you could look at <a href="http://www.freepascal.org/" target="_blank"><b style="color: red;">Free Pascal</b></a> and <a href="http://www.lazarus.freepascal.org/" target="_blank"><b style="color: red;">Lazarus IDE</b></a> as it creates native code (so just take the executable and run it instead of writing packages or setups that manage plenty of dependencies) and is fast. There is one problem with this approach: On Windows (in my case) using COM components (not to talk about .net) is not well supported and possible only with quirks (not tried myself, I just read about that). That is the reason why this is not an option for me in my current situation. If your application does not need to tightly integrate into the Windows ecosystem Free Pascal gives you multi-platform development (same code, just need to be compiled for/on each platform).<br />
<br />
After all, still core technology is <a href="http://en.wikipedia.org/wiki/C%2B%2B" target="_blank"><b style="color: red;">C(++)</b></a> and <a href="http://en.wikipedia.org/wiki/Codeblocks" target="_blank"><b style="color: red;">Code::Blocks</b></a> is an IDE available for all major platforms (for <a href="http://www.wxwidgets.org/" target="_blank">wxWidgets</a> projects the <a href="http://wiki.codeblocks.org/index.php?title=Comparison_of_wxSmith_features" target="_blank">wxSmith</a> seems to be the most capable GUI builder, you need separately install wxWidgets - at least on Windows). Or anyway you can either use NetBeans using external designers to build the GUI for Linux development. I have developed quite a lot C++, but maaany years ago and today I simply had problems getting Code::Blocks to work seamlessly with wxwidgets (design worked, but compilation finished with configuration errors). What I found on the net related to my errors was from about 2008 partly not matching my environment. I gave up on this but for those succeeding I want to mention this option.<br />
<br />
Last but not least I still also see the option to use <a href="http://www.icsharpcode.net/opensource/sd/" target="_blank"><b style="color: red;">SharpDevelop</b></a> with <a href="http://msdn.microsoft.com/en-us/netframework"><b style="color: red;">.net</b></a> for the single reason of time-to-get-started and <b style="color: red;">seemless integration into the Windows ecosystem - and this combination by the way is the only mentioned one that is bound to windows only</b>. If you think of <a href="http://www.mono-project.com/"><b style="color: red;">Mono</b></a> and <a href="http://monodevelop.com/"><b style="color: red;">MonoDevelop</b></a> then be warned about <a href="http://www.mono-project.com/Guidelines:Application_Portability">the differences</a>! Creating platform independent applications with C# is not as seamless as you might think! Using MonoDevelop on Windows (MonoDevelop can compile against .net or Mono) brings more platform independence but you loose the Windows integration (<a href="http://www.mono-project.com/COM_Interop">COM/activex support at minimum level</a> - I find the Java-COM-interop even better; registry access and stuff like that). The very important point here is the <b style="color: red;">Windows integration - it's the one and core argument for this option!</b><br />
<br />
I was about to write a paragraph on speed but didn't want to write that without a single test after more than 3 years of not checking that. Surprisingly a minimum GUI test lead to the following result: Cold start on a virtual Windows 2008r2 machine is 5 seconds for both - .net as well as java. A second start is 1-2 seconds - either for both. I then tried a Java test application with a little more GUI to find out that (warm) start is 4 seconds - not bad either. Surprisingly Java 1.6 update 30 and .net runtime 4.0 seem to bring a similar user experience at least from startup behaviour. Many still say, Java is slow - far missed!<br />
<br />
But I may not forget that I need to access activeX/COM components for my small work which makes it more feasible doing it with .net because .net simply integrates better here - as already mentioned. Of course there are options when using java - for example - my favorite <a href="http://com4j.java.net/" target="_blank">com4j</a> (which I tried for several COM components in the past where it worked well). Although I never tried to embed activex controls into a swing component - and that does not seem trivial in Java - see <a href="http://docs.oracle.com/javase/6/docs/technotes/guides/beans/axbridge/developerguide/index.html" target="_blank">here</a>.<br />
<br />
Needless to say that I would prefer Java for 100% of the work if it would be easier to deal with COM components and if it would integrate nicely with the Windows stuff. Java with NetBeans is basically the only combination that I really love to develop with. Everything else lacks in IDE features, is difficult to set up or the community is small and tiny amount of available components.<br />
<br />
And of course there is my general tendency to avoid Microsoft technologies whereever I encounter them. The classic Visual Basic was one of the longest continued stuff of Microsoft, even although there were signifficant changes between VB 3.0 and VB 4.0 (with switch to 32 bit). When I look at the last years there were unusable first attempts of .net with first Windows forms and then WPF (see a discussion <a href="http://stackoverflow.com/questions/2703681/winforms-vs-wpf">here</a>), Microsoft pushed a lot of newer GUI styles over the years with Ribbon interfaces or now the <a href="http://msdn.microsoft.com/en-us/library/windows/apps/br211386.aspx">Metro</a> GUI where you need to use a new GUI language and software companies continously need to adapt or rewrite parts of the application). Would I have used Java since the late ninetees I would have experienced a completely different continuity. Microsoft managed it very well, to drive developers .net without those getting aware that they are again caught in a one-way-street with a dead end. Just because industry follows Microsoft - at least on the client side - in most areas, <b style="color: red;">I need to accept that I can't stay completely outside the windows specific (VBScript and .net) stuff. I will take care to keep it at a minimum.</b> This means, that for my tiny programs I will most probably go with .net just because of the lack of other options.<br />
<br />
For those who like dynamic languages, I want to mention <a href="http://www.python.org/"><b style="color: red;">Python</b></a>. One of it's core advantages in my opinion is that it runs on many platforms but comes along with <a href="http://www.python.org/getit/windows/">Windows extensions</a> on Windows. This means: When you need to do Windows stuff you can continue to use Python - of course using the Windows stuff (COM and Windows API for example) means that (at least that part) of your program is then bound to Windows-only use. For platform agnostic programming there are bindings for <a href="http://sourceforge.net/projects/wxpython">wxWidgets for Python</a>. However, the IDE's I tried were all poor in features or stability - I tried Eric, SPE and Idle back in 2008 - a short look tells me, that there is still a lack of GUI designers (e.g. Glade for Windows seems near to discontinued) - so I cannot really recommend a particular IDE - you can have a look yourself - here is a <a href="http://wiki.python.org/moin/IntegratedDevelopmentEnvironments">list of Python IDE's</a>. Unfortunately deployment for Python programs on Windows is not as easy as for .net or Java.<br />
<br />
To round up this post: For building <b style="color: red;">setups</b> for your Windows applications I can recommend the <a href="http://www.jrsoftware.org/"><b style="color: red;">Innosetup</b></a> application as a good mix of flexibility and ease-of-use. For creating Linux packages see <a href="http://wiki.debian.org/HowToPackageForDebian">official documentation for creating .deb packages</a> (Debian, Ubuntu, Mint, ...) and here for <a href="http://fedoraproject.org/wiki/How_to_create_an_RPM_package">creating .rpm packages</a> (redhat, Fedora, ...).<br />
<br />
Related posts: <a href="http://it-tactics.blogspot.com/2008/09/programming-language.html" target="_blank">The programming language</a>, <a href="http://it-tactics.blogspot.com/2008/11/ide-and-libraries.html" target="_blank">The IDE and the libraries</a>, <a href="http://it-tactics.blogspot.com/2010/09/install-netbeans-on-ubuntu-1004.html">Install NetBeans on Ubuntu 10.04</a>, <a href="http://it-tactics.blogspot.co.at/2015/07/java-vs-netc.html" target="_blank">Java vs .net/C#</a>.Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com0tag:blogger.com,1999:blog-6557457948801960842.post-85733460294273334482012-03-12T01:56:00.000+01:002012-09-11T21:42:18.484+02:00Efficient desktop environmentI consider myself as a power user. Every day (and sometimes also nights ;-) ) I make intensive use of computers to get things done. Of course I am not a farmer - I am working in IT business. - However, <b><span style="color: red;">intensive use of computers is by far not limited to IT people.</span></b><br />
<br />
Of course, for people spending a major part of their time in front of a computer lousy software has a bigger impact on efficiency. While many people can live with the fact to reinstall their Windows PC every 6 months, I get angry when some of my most often used features take two clicks to much as it could be.<br />
<br />
There are two major kinds of computer users: Those who are using one or two applications most of the time and those who use a larger set of applications. To the first group people belong who will respond to the question "Which operating system are you using?" with something like "Word - Microsoft Word". ;-) - While for the first group the underlying OS is of minor relevance, for the latter <b style="color: red;">group of people using a bunch of applications, the underlying operating system can be a critical factor.</b><br />
<br />
I am an <a href="http://www.ubuntu.com/ubuntu" target="_blank">Ubuntu</a> user and in the Ubuntu world the last months were full of discussions about the new <a href="http://en.wikipedia.org/wiki/Desktop_environment" target="_blank">desktop environment</a> developed by <a href="http://www.canonical.com/" target="_blank">Canonical</a>, namely <a href="http://en.wikipedia.org/wiki/Unity_%28user_interface%29" target="_blank">Unity</a>. Many argued about bad user experience. I myself did play around with a lot of additional components to bump up my desktop. I tested several dock components like <a href="http://glx-dock.org/" target="_blank">Cairo-Dock</a>, <a href="http://wiki.awn-project.org/" target="_blank">AWN</a> and others. Although I finally did not use any of those due to other reasons (stability, performance or simply no time to tweak it to fit my needs perfectly), I had a quite nice configuration with Gnome 2 and AWN on my Ubuntu 10.04 machine. Surprisingly that configuration looked quite similar to Unity.<br />
<br />
Many of my peers switched to <a href="http://linuxmint.com/" target="_blank">Linux Mint</a> which is Ubuntu-based but is going for a different strategy regarding desktop look and feel. If you like Ubuntu, but don't like Unity, you can either use "classic" Gnome3 or install Cairo-Dock which then offers an option to go with Classic Gnome + Cairo Dock right on login (at least starting with 12.04 beta 1) and I even managed to create an AWN session with the help of <a href="http://www.tuxgarage.com/2011/05/run-awn-dock-in-natty-narwhal.html" target="_blank">TuxGarage</a>. (The example there is outdated - you need to look at your current ubuntu.session file and take this as a sample or look below in the comments on that post).<br />
<br />
However I found - after testing a while - that Unity fits best for me - at least with the least effort to put into getting it efficient. <b style="color: red;">Important from my point of view is that with mouse OR keyboard everything can be reached quickly, that includes: Virtual desktops, Launchers, Open Application Windows, Menus, File system</b>.<br />
<br />
Out-of-the-box Unity offers a lot of cool hotkeys, besides ALT+TAB for switching between open applications you can use ALT+^ to switch between open windows/instances of the same application or after ALT+TAB you can collapse and expand application windows with the UP/DOWN keys. Pressing and releasing ALT offers the <a href="http://www.youtube.com/watch?v=w_WW-DHqR3c" target="_blank">HUD menu</a> (F10 still brings you to the normal menu). STRG+ALT+LEFT/RIGHT switches between virtual desktops. The only thing I immediately missed was a quick way to switch desktops with the mouse. My former way of configuring this was installing <a href="http://wiki.compiz.org/CCSM" target="_blank">compizconfig-settings-manager</a> and configuring desktop wall accordingly to switch to next and previous desktop doing a right-click on the left or right edge on the screen. That does not work any more when Unity is active on the left. I did not change that to now use left and right mouse button on the bottom edge and that works. In addition to that I reduced the icon size to 32 (can be done using <a href="http://techie-buzz.com/foss/change-icon-size-unity-launcher.html" target="_blank">compizconfig Unity plugin</a>, installing <a href="https://launchpad.net/myunity" target="_blank">MyUnity</a> or also via commandline).<br />
<br />
People who don't like Unity have different reasons but one might be the dock-style (which even Windows adopted later). The dock with launcher and window list in combination has one big advantage: The icons are always on the same position - no matter in what order you launch them. This is essential if you open a lot of applications during the day and end up in continously searching your app windows. Although I used to hate window grouping, Unity behaves differently whether you click on a different application launcher or not - which I found reduces necessary clicks.<br />
<br />
These and a few other things I missed in all the other desktop environments - like e.g. configuring different times - not just one (I like to see New York or other time zones when clicking on the clock). Although other dock components have a lot more customizing options and features, I find Unity simpler and I found minor bugs in Cairo-Dock and AWN which resulted in my decision that I do not want to bother with finding my own fully customized X-Session and then probably experiencing more troubles. Would have tried longer if I would have found Unity unacceptable. But: After all my tests I still find Unity the best.<br />
<br />
I definitely find that the <b style="color: red;">time of a classic task bar (as known from Windows XP, KDE, XFCE or LXDE) is over</b> - mostly because of the <b style="color: red;">unsure icon position in a classical taskbar and the fact that the first thought always needed to be: "Did I already start this or not?"</b> - depending on the answer a different icon had to be clicked. And even on larger screens it is annoying to waste screen space with additional panels (quickstart and windows). My attempts to get a combination of XFCE or LXDE with Cairo-Dock or AWN working well together failed because I either had some crashes, or too many panels remaining. BTW: XFCE comes with a bottom launcher which only is set to autohide by default.<br />
<br />
There are still a few things I would like to see in Unity - like easier <a href="http://www.techdrivein.com/2011/05/top-6-quicklists-for-ubuntu-1104-natty.html" target="_blank">configuration of the unity launchers</a> or including a classic <a href="http://www.addictivetips.com/ubuntu-linux-tips/how-to-get-classic-start-menu-with-unity-launcher-ubuntu/" target="_blank">Gnome menu launcher</a> by default, but I think that Unity is on a good way - I got familiar with it quite fast and so new users will, I think. Of course many people find many things to <a href="http://www.webupd8.org/2011/10/things-to-tweak-after-installing-ubuntu.html" target="_blank">tweak</a> after a first installation of Ubuntu. I probably will come up with my one set of tweaks after the final Ubuntu 12.04 LTS came out...<br />
<br />
Related posts: <a href="http://it-tactics.blogspot.com/2011/03/popular-ubuntu-desktop-myths.html" target="_blank">Popular Ubuntu desktop myths</a>, <a href="http://it-tactics.blogspot.com/2011/07/why-companies-do-not-use-linux-on.html" target="_blank">Why companies do not use Linux on the desktop</a>, <a href="http://it-tactics.blogspot.co.at/2012/06/ubuntu-1204-lts-precise-pangolin.html" target="_blank">Ubuntu 12.04 LTS Precise Pangolin optimized</a>.Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com3tag:blogger.com,1999:blog-6557457948801960842.post-22946221505899907152012-02-14T10:03:00.002+01:002012-03-12T00:14:54.738+01:00Mobile world with AndroidAs I already wrote <a href="http://it-tactics.blogspot.com/2011/09/mobile-phone-situation.html" target="_blank">earlier</a>, I was not one of the early adopters when it comes to smart phones. In fact, the first smart phone user in our family was my wife with an iPhone (which I am happy that it has been ditched in the meantime because my wife had some troubles with it from time to time and I could not do anything about them with this mega-locked block).<br />
<br />
In the beginning of the year (which is only a few weeks ago) it was time to choose a new mobile work phone. As I already have a smart phone now, I was searching for a very simple phone for doing just calls. Battery duration was the primary "feature" I was looking at when comparing models. Unfortunately I was not able to find something better than the <a href="http://www.samsung.com/global/microsite/galaxys2/html/" target="_blank">Samsung Galaxy S II</a> which is again a smart phone. It has one of the longest battery times, is slim, lightweight, very low SAR value. And one of the reasons why I again have chosen an Android smart-phone: It is simple to setup - just login to my Google Account and all the contact data is there - automagically.<br />
<br />
First I had a few concerns with two phones running against the same Google account, but I find it very fine now. I have setup mail and calendar for both phones and so I can very easily check appointments or emails on the second phone while talking (it often happens that a customer calls me and wants to talk about an email he/she has sent a few minutes ago. Easily now with a second smartphone.<br />
<br />
You may not believe, but there are cases, where I go out or going on vacation without my Laptop in the luggage and I might be on places without WLAN access. So happened a few weeks ago when a customer called with an issue which I solved using the great <a href="http://www.teamviewer.com/" target="_blank">TeamViewer</a> Android application on my phone while having the customer on loudspeakers.<br />
<br />
While in train or bus going to work in the morning, I do read news with the <a href="http://www.google.at/url?sa=t&rct=j&q=google+reader&source=web&cd=1&ved=0CC8QFjAA&url=http%3A%2F%2Fwww.google.com%2Freader&ei=5h46T9SAGuP34QT74OGQCw&usg=AFQjCNHkwXX7q8y0uRXShFxrBJdJ5oJt3Q&sig2=99oyeYkMRKRCEq9Wd2Ns-A" target="_blank">Google Reader</a> Android app or listen to podcasts, so if I do not travel for a longer time right now, I don't turn on my laptop any more.<br />
<br />
Here is the list of applications I am using on my mobile phone - bold ones are my frequently used apps:<br />
<br />
<ul>
<li><b>Advanced Task Manager</b> (Saves battery power by killing apps that are not in use but otherwise remain started).</li>
<li><b>AlarmDroid</b> (Alarm clock)</li>
<li>Apo-App (Austria)</li>
<li>BarClone (Get rid of customer/club cards by having the barcodes in your phone and display them instead of using the card - unfortunately a lot of barcode readers in shops are not capable of reading the barcode from the display although other smart phones can read them without problems).</li>
<li>Barcode Scanner (zxing)</li>
<li>barcoo (Barcode scanner)</li>
<li><b>BatteryTime</b> (Display battery charge level more in detail or as icon on the Android-Desk)</li>
<li><b>BeyondPod</b> (Podcast software - like Google Reader for Podcasts)</li>
<li><b>Bluetooth File Transfer</b> (Phone-to-phone data exchange)</li>
<li><b>Bump</b> (Handshake with other people to exchange contact data)</li>
<li>CamScanner (Scan documents with your phone)</li>
<li>Citrix Receiver (Remote access to company citrix server)<br />
</li>
<li>ConnectBot (Remote access to other Linux/SSH servers)</li>
<li><b>
Contact Widget</b> (Put Quickdials on your Android-Desk)</li>
<li><b>
Dolphin Browser HD</b> (Alternative Web browser)</li>
<li><b>
Dropbox</b> (Access to your cloud files - I use it on Android for saving ringtones and small files containing notes or scans/photos done during meetings to get them automatically on my work machine without requiring the use of bluetooth or USB).</li>
<li><b>
ES Datei/File Explorer</b> (File Manager)</li>
<li>
Facebook (if not already there, but I use it less and less because it gets slower and slower with each update)</li>
<li>
Financisto (Financial expenses tool)</li>
<li>
Flash Player</li>
<li><b>
Flashlight</b> (several available)</li>
<li>
Genial Writing (Handwriting tool)</li>
<li>
<b>K-9 Mail</b> (Alternative E-Mail client - I tried several, that is probably the only one where you can configure IMAP folders to use in detail and probably the one with the most options).</li>
<li>Money Manager (Financial expenses tool)</li>
<li><b>
MultiLing Tastatur/Keyboard</b> (I tried several original keyboards of different phones and always finally downloaded MultiLink keyboard - it's simply the best with the most options.</li>
<li><b>
Note Everything</b> (Note taking tool)</li>
<li>
(Opera Mini - as alternative for Dolphin Browser)</li>
<li>
(PowerTutor - if you do not already know what consumes the most power</li>
<li>
and consider appropriate settings)</li>
<li>
QR Droid</li>
<li>
QuickMark</li>
<li>
QuickOffice (View office documents)</li>
<li><b>
Reader</b> (Google Reader)</li>
<li>
<b>RealCalc</b> (Alternative calculator with more features than the usual default ones)</li>
<li>
Schweizer Taschenmesser (several small tools)</li>
<li>
Shazam or SoundHound (both are quite equal - record music from where you are and get the name and interpreter of the music title being played.</li>
<li>
Stoppuhr (Timer)</li>
<li>
SwiFTP (Access your phone via FTP - must be on the same WLAN-net - use that at home to bulk-download fotos).</li>
<li>Tasks To Do Free (Tasklist / todo manager)</li>
<li><b>
TeamViewer</b> (Remote Support and meeting tool)</li>
<li>
TuneIn Radio</li>
<li>
XING (Xing social networking Android app)</li>
<li>
YoutTube (Video viewer - mostly already installed by default on Android phones)</li>
<li><b>
Zeiterfassung</b> (Timesheet, worktime recording)</li>
</ul>
Related posts: <a href="http://it-tactics.blogspot.com/2011/09/mobile-phone-situation.html" target="_blank">Mobile phone situation</a>.Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com0tag:blogger.com,1999:blog-6557457948801960842.post-30177975363500106782011-10-28T11:20:00.000+02:002011-10-28T11:20:03.785+02:00Virtualbox vmdk image to vdiOne of my <a href="https://www.virtualbox.org/">VirtualBox</a> virtual machines used the vmdk disk format (From VMWare). Somehow it seemed to be slower than another machine I had running in VDI format (default for VirtualBox >= 4.0).<br />
<br />
I had to search the internet a while to find the right solution and it was not complete, so here is my description on how to migrate the virtual machine disk format from vmdk to vdi:<br />
<br />
<blockquote class="tr_bq" style="font-family: "Courier New",Courier,monospace;">
cd <folder where your disk image is><br />
vboxmanage clonehd somename.vmdk somename.vdi --format VDI</blockquote>
<br />
That takes a while. After finished you need to start virtualbox and go into the settings of your virtual machine. Under "Storage" you will still find the old HD file attached to SATA (or IDE) controller. Remove the old one and attach the new .vdi file.<br />
<br />
Try starting the virtual machine to see if everything works as intended.<br />
<br />
Then shutdown your virtual machine, go to File->Virtual Media Manager and remove the old vmdk file even there. Now you can delete the .vmdk.Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com1tag:blogger.com,1999:blog-6557457948801960842.post-67950149193352942032011-10-27T22:54:00.001+02:002011-10-27T22:54:03.557+02:00The individual desktopI can see an interesting movement on the market: Many Apple iPhone users seem to lurk towards a Mac when they think of buying a new computer. - And some actually do.<br />
<br />
And in my neighbourhood I can count already 6 Macs in the first minute trying to count them. <br />
<br />
I find it a good thing, that Macs are increasing. With more people using Macs, companies need to start considering that there is not only Windows and world is colorful.<br />
<br />
There is just one thing that I need to make clear: Many Mac users think that they are a special individual with their extraordinary computer and this is not true IMHO.<br />
<br />
I can see the following different <b>strategies</b>:<br />
<ul>
<li><b>Microsoft:</b> Keep compatibility to keep market share but try to offer new GUI stuff that feeds people's enthusiasm and keep some flexibility.</li>
<li><b>Apple:</b> Focus on usability and don't make the user think or choose.</li>
<li><b>Linux:</b> Be open and flexible. Everybody should be able to use it as desired.</li>
</ul>
I was thinking if there could be the optimal all-use-fitting user interface but I came to the conclusion that there are many different use cases, many different jobs and many people thinking in many different ways.<br />
<br />
I think, the Apple way is not the worst, but for those who work a lot with the computer it might be worth to invest a little more time finding the best fitting environment. If you want to be really individual, Linux is the way to go - just search youtube - e.g. for "<a href="http://www.youtube.com/results?search_query=%22my+linux+desktop%22">my Linux desktop</a>" or "<a href="http://www.youtube.com/results?search_query=top+linux+distros">top linux distros</a>" to get an idea what people do with Linux.<br />
<br />
Related posts: <a href="http://it-tactics.blogspot.com/2011/09/distribution-choice.html">Distribution choice</a>, <a href="http://it-tactics.blogspot.com/2011/03/popular-ubuntu-desktop-myths.html">Popular Ubuntu desktop myths</a>.<br />
<ul>
</ul>Martin Wildamhttp://www.blogger.com/profile/10078822365635360301noreply@blogger.com0