<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-19298362</id><updated>2011-07-07T23:38:48.148+03:00</updated><category term='Reviews'/><category term='system'/><category term='antivirus'/><category term='operating'/><category term='Technology'/><category term='tool'/><category term='malware'/><category term='PLSQL'/><category term='windows'/><category term='antispyware'/><category term='monitoring'/><category term='hijackthis'/><category term='symlinks'/><category term='Oracle'/><category term='Programming'/><title type='text'>Silviu's Blog</title><subtitle type='html'>The right tools for the right job</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.silviupaval.info/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.silviupaval.info/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Silviu</name><uri>http://www.blogger.com/profile/15321226753484103132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-19298362.post-7814831061036728190</id><published>2009-09-29T11:44:00.006+03:00</published><updated>2009-09-29T12:00:38.363+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='tool'/><category scheme='http://www.blogger.com/atom/ns#' term='PLSQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Update CLOB/BLOB procedure</title><content type='html'>For those who wonder how to change and update a LOB in Oracle. There are different solutions for this and the easiest one is by using the procedure listed below. For cases where heavy data processing is needed better use Java/C#, Oracle has support for reading and updating lobs through their respective drivers (like jdbc).&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="sql"&gt;&lt;br /&gt;DECLARE&lt;br /&gt;&lt;br /&gt;pattern VARCHAR(100);&lt;br /&gt;replacement VARCHAR(100);&lt;br /&gt;dbData CLOB;&lt;br /&gt;tempData CLOB;&lt;br /&gt;maxBufferSize INTEGER := 32767;&lt;br /&gt;tempBuffer VARCHAR(32767);&lt;br /&gt;pos INTEGER := 1;&lt;br /&gt;dataSize INTEGER;&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;-- Edit the following part as needed:&lt;br /&gt;--&lt;br /&gt;-- data2        is the CLOB column to update&lt;br /&gt;-- test         is the table for data2&lt;br /&gt;-- pattern      is the string to be replaced&lt;br /&gt;-- replacement  is the string to insert in place of pattern&lt;br /&gt;-- WHERE clause&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;CURSOR cr is&lt;br /&gt;SELECT data2 as dbData&lt;br /&gt;    FROM test&lt;br /&gt;    WHERE id = 1 &lt;br /&gt;    FOR UPDATE;&lt;br /&gt;&lt;br /&gt;BEGIN&lt;br /&gt;&lt;br /&gt;pattern := 'test';&lt;br /&gt;replacement := 'test123';&lt;br /&gt;--------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;FOR r IN cr LOOP&lt;br /&gt;&lt;br /&gt;dbms_lob.createtemporary(tempData, TRUE); &lt;br /&gt;dataSize := dbms_lob.getlength(r.dbData);&lt;br /&gt;&lt;br /&gt;dbms_lob.copy(tempData, r.dbData, dataSize);&lt;br /&gt;dbms_lob.trim(r.dbData, 0);&lt;br /&gt;&lt;br /&gt;WHILE pos &lt; dataSize&lt;br /&gt;LOOP&lt;br /&gt;    dbms_lob.read(tempData, maxBufferSize, pos, tempBuffer);&lt;br /&gt;&lt;br /&gt;    IF tempBuffer IS NOT NULL THEN&lt;br /&gt;        --tempBuffer := replace(tempBuffer, pattern, replacement); -- this is simple string replacement for oracle 9i or below&lt;br /&gt;        tempBuffer := regexp_replace(tempBuffer, pattern, replacement); -- this provides regexp in oracle 10g and above only&lt;br /&gt;        dbms_lob.writeappend(r.dbData, length(tempBuffer), tempBuffer);&lt;br /&gt;    END IF;&lt;br /&gt;    &lt;br /&gt;    pos := pos + maxBufferSize;&lt;br /&gt;END LOOP; &lt;br /&gt;&lt;br /&gt;dbms_lob.freetemporary(tempData);&lt;br /&gt;&lt;br /&gt;END LOOP;&lt;br /&gt;&lt;br /&gt;COMMIT;&lt;br /&gt;&lt;br /&gt;EXCEPTION&lt;br /&gt;    WHEN OTHERS THEN&lt;br /&gt;        ROLLBACK;&lt;br /&gt;        RAISE;&lt;br /&gt;END;&lt;br /&gt;/&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19298362-7814831061036728190?l=blog.silviupaval.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.silviupaval.info/feeds/7814831061036728190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.silviupaval.info/2009/09/update-clobblob-procedure.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/7814831061036728190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/7814831061036728190'/><link rel='alternate' type='text/html' href='http://blog.silviupaval.info/2009/09/update-clobblob-procedure.html' title='Update CLOB/BLOB procedure'/><author><name>Silviu</name><uri>http://www.blogger.com/profile/15321226753484103132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19298362.post-4053770021650038623</id><published>2009-07-23T21:04:00.008+03:00</published><updated>2009-07-23T21:45:46.540+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tool'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='operating'/><category scheme='http://www.blogger.com/atom/ns#' term='monitoring'/><category scheme='http://www.blogger.com/atom/ns#' term='system'/><title type='text'>Monitoring my Win systems</title><content type='html'>Many times I miss the tools from Linux/Unix to monitor or to understand what's going on my Windows PCs. I'm speaking about tools like: ps, top, glimpse, vmstat, strace, strings, free, uptime, lsof, uname, hdparm, df, du ... I hope you got the ideea by now.&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To my surprise I found similar tools for windows, provided by free on MS site. I wonder why they don't make the tools I'll tell you next be by default part of Windows. The tools are provided as part of a package called &lt;a href="http://technet.microsoft.com/en-us/sysinternals/default.aspx"&gt;sysinternals &lt;/a&gt;(sysinternals was a company that initialy developed the tools but is now part of MS).&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I will refer to only three of sysinternals tools (there are many more, see their website):&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. &lt;b&gt;Procexp &lt;/b&gt;which covers, making a parallel to Linux, the functionality of ps, top, vmstat, strace, free, uptime, uname and probably more than that.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is how the main screen looks like:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://4.bp.blogspot.com/_sogEO2fY9Qs/Smio1a3gofI/AAAAAAAADDE/2SzWNHS6gHI/s400/procexp1.png" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 156px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5361720992083255794" /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Procexp is much more better than the default windows Task Manager, with this tool you can see for example how much CPU DPCc (direct procedure calls) are taking. In fact the info reported for each process is impresive, see next screenshot:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://2.bp.blogspot.com/_sogEO2fY9Qs/Smipsk11_DI/AAAAAAAADDM/dMV_-bp_H1o/s400/procexp2.png" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 349px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5361721939653426226" /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Procexp can be downloaded for free from &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;2. &lt;b&gt;Tcpview&lt;/b&gt;, displays in a graphical maner all the open sockets in your Windows system. One can see all conections (TCP and UDP), all opened ports and the processes that opened those connections. Is a good tool in case you suspect something wrong is going on with your PC. Conections can also be closed from same tool.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_sogEO2fY9Qs/SmistjZv9GI/AAAAAAAADDU/Uc0FHYs-X70/s1600-h/tcpview1.png"&gt;&lt;img style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 262px; text-align: center; " src="http://4.bp.blogspot.com/_sogEO2fY9Qs/SmistjZv9GI/AAAAAAAADDU/Uc0FHYs-X70/s400/tcpview1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5361725254981907554" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Download Tcpview from &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb897437.aspx"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;3. &lt;b&gt;Filemon&lt;/b&gt;, this tool has the same function as the &lt;i&gt;lsof &lt;/i&gt;in Linux. Displays all opened or memory mapped files and the coresponding processes that use those files. Very handy if you want to see which files are accesed by a certain process. Or to see failed attempts to access inexisting files that may make some processes to crash. See more about Filemon at this &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896642.aspx"&gt;link&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19298362-4053770021650038623?l=blog.silviupaval.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.silviupaval.info/feeds/4053770021650038623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.silviupaval.info/2009/07/monitoring-my-win-systems.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/4053770021650038623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/4053770021650038623'/><link rel='alternate' type='text/html' href='http://blog.silviupaval.info/2009/07/monitoring-my-win-systems.html' title='Monitoring my Win systems'/><author><name>Silviu</name><uri>http://www.blogger.com/profile/15321226753484103132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_sogEO2fY9Qs/Smio1a3gofI/AAAAAAAADDE/2SzWNHS6gHI/s72-c/procexp1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19298362.post-7348288527298357392</id><published>2009-06-21T14:08:00.000+03:00</published><updated>2009-06-23T14:25:18.868+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='tool'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='symlinks'/><title type='text'>Symbolic links in Windows</title><content type='html'>I often miss the file linking mechanism present in Linux/Unix. File linking is different from what Windows' file shortcut can do. Most of Windows application can't take a file shortcut an use the target of that shortcut instead of the shortcut file itself. For example I keep all my programming projects in one place on my file system and some of those projects are web project that I need to test by running them using Apache web server. As my server's document root is different from my projects' location, I need to copy the project to Apache's document root or easier link that project to a place in my server's document root. This is how I found about &lt;a href="http://www.rekenwonder.com/linkmagic.htm"&gt;Junction Link Magic&lt;/a&gt; which allows me to do symbolic linking in Windows or using their words allows to create "junction points":&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;         &lt;i style="font-style: italic;"&gt;A junction point &lt;/i&gt;&lt;span style="font-style: italic;"&gt;is a special type of &lt;/span&gt;&lt;i style="font-style: italic;"&gt;reparse point. &lt;/i&gt;&lt;span style="font-style: italic;"&gt;Reparse points         are redirections in the Windows file system. There are 3 types of reparse points:&lt;/span&gt;&lt;/p&gt;     &lt;ol style="font-style: italic;"&gt;&lt;li&gt;Symbolic links - can be thought of as a shortcut to a file or folder elsewhere in             the file system&lt;/li&gt;&lt;li&gt;Junction points - can only point to a folder&lt;/li&gt;&lt;li&gt;Mount points - is a folder on a disk that points to an entire disk volume&lt;/li&gt;&lt;/ol&gt;     &lt;p style="font-style: italic;"&gt;         Junction Link Magic will list all 3 types, not only junction links. With Junction Link          Magic, you can also create and remove junction links.&lt;/p&gt;     &lt;p style="font-style: italic;"&gt;         A junction point is a technology for a folder to be grafted into another folder         on the same local computer.     &lt;/p&gt;     &lt;p style="font-style: italic;"&gt;         This might not seem like a big deal, but it can remove         a lot of clutter. It also helps a lot when moving programs from one place to another,         since just about every program in the Windows world expects to never be moved from         the directory it was installed in.      &lt;/p&gt;&lt;/blockquote&gt;The tool is working with NTFS 5.0 or above file systems only, so no FAT support.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19298362-7348288527298357392?l=blog.silviupaval.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.silviupaval.info/feeds/7348288527298357392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.silviupaval.info/2009/06/symbolic-links-in-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/7348288527298357392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/7348288527298357392'/><link rel='alternate' type='text/html' href='http://blog.silviupaval.info/2009/06/symbolic-links-in-windows.html' title='Symbolic links in Windows'/><author><name>Silviu</name><uri>http://www.blogger.com/profile/15321226753484103132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19298362.post-5579403103885993876</id><published>2009-06-09T11:28:00.000+03:00</published><updated>2009-06-09T11:29:01.848+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tool'/><category scheme='http://www.blogger.com/atom/ns#' term='malware'/><category scheme='http://www.blogger.com/atom/ns#' term='hijackthis'/><category scheme='http://www.blogger.com/atom/ns#' term='antispyware'/><category scheme='http://www.blogger.com/atom/ns#' term='antivirus'/><title type='text'>Hijackthis</title><content type='html'>&lt;p&gt;Even if you have antivirus and/or spyware monitoring tools installed on your system some of the newest malware can be get just by visiting some websites or let’s say by using a USB storage device to transfer data between systems. For me is very handy to use a tool that shows what is running on my system, what are the custom registry changes, what custom services are running at start up and so on. So I found Hijackthis from TrendSecure (they provide the tool for free). I save logs generated by this tool at different time periods and compare them. The differences may indicate malicious software running on my system.&lt;br /&gt;&lt;span id="more-64"&gt;&lt;/span&gt;&lt;br /&gt;The tool can be downloaded at &lt;a href="http://www.trendsecure.com/portal/en-US/tools/security_tools/hijackthis" target="_blank"&gt;http://www.trendsecure.com/portal/en-US/tools/security_tools/hijackthis&lt;/a&gt;&lt;/p&gt; &lt;p&gt;This is a quote from their site:&lt;/p&gt; &lt;blockquote style="font-style: italic;"&gt;&lt;p&gt;"HijackThis™ is a free utility which quickly scans your Windows computer to find settings that may have been changed by spyware, malware or other unwanted programs. HijackThis creates a report, or log file, with the results of the scan.&lt;/p&gt; &lt;p&gt;IMPORTANT: HijackThis does not determine what is good or bad. Do not make any changes to your computer settings unless you are an expert computer user.&lt;/p&gt; &lt;p&gt;Advanced users can use HijackThis to remove unwanted settings or files."&lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19298362-5579403103885993876?l=blog.silviupaval.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.silviupaval.info/feeds/5579403103885993876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.silviupaval.info/2009/06/hijackthis.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/5579403103885993876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/5579403103885993876'/><link rel='alternate' type='text/html' href='http://blog.silviupaval.info/2009/06/hijackthis.html' title='Hijackthis'/><author><name>Silviu</name><uri>http://www.blogger.com/profile/15321226753484103132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19298362.post-3902589487810152377</id><published>2009-03-20T14:49:00.002+02:00</published><updated>2009-03-20T14:51:21.735+02:00</updated><title type='text'>SSH daemon in Windows</title><content type='html'>This is a good tutorial on how to install a free OpenSSH service in Windows:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pigtail.net/LRP/printsrv/cygwin-sshd.html"&gt;http://pigtail.net/LRP/printsrv/cygwin-sshd.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19298362-3902589487810152377?l=blog.silviupaval.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.silviupaval.info/feeds/3902589487810152377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.silviupaval.info/2009/03/ssh-daemon-in-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/3902589487810152377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/3902589487810152377'/><link rel='alternate' type='text/html' href='http://blog.silviupaval.info/2009/03/ssh-daemon-in-windows.html' title='SSH daemon in Windows'/><author><name>Silviu</name><uri>http://www.blogger.com/profile/15321226753484103132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19298362.post-6770494601828084128</id><published>2008-10-30T11:29:00.007+02:00</published><updated>2008-10-30T12:45:44.805+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Reviews'/><title type='text'>Cygwin and friends</title><content type='html'>I'll present ones of the most useful tools for Windows, this is about how to bring your Linux/Unix environment to the operating system of choice of all corporates. The tools we discuss further do not require you to be an administrator of your Windows box so these can really be installed anywhere.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cygwin.com/"&gt;Cygwin&lt;/a&gt; is a set of tools starting with a Windows implementation of &lt;span style="font-style: italic;"&gt;BASH&lt;/span&gt; shell, &lt;span style="font-style: italic;"&gt;gcc&lt;/span&gt; compiler and continuing with almost all the popular Linux/Unix applications ports for Windows. To give a few examples:&lt;span style="font-style: italic;"&gt; ssh&lt;/span&gt; daemon and client, Apache server, &lt;span style="font-style: italic;"&gt;vim, gawk, perl, pyton, ruby&lt;/span&gt; and the list can go on.&lt;br /&gt;&lt;br /&gt;To install you need to have a broadband Internet link and the rest is peace of cake. Just go to www.cygwin.com download the &lt;span style="font-style: italic;font-family:courier new;" &gt;setup.exe&lt;/span&gt; file run it and the install process will start. You have to set some paths and chose which applications to install. Careful, if you chose all of them it may take hours to download and install. I personally chose the default applications and install all other when I need them (and only those I need). To select an application to install (see last image) click on New column of respective application until you get the version  which will be installed. The setup process can be run as many times you need without affecting the existing installed packages, it can install new apps, delete old ones and update applications as you need.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_sogEO2fY9Qs/SQmE0QgParI/AAAAAAAABuc/dCljTT1MAs4/s1600-h/cygwin1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 313px;" src="http://4.bp.blogspot.com/_sogEO2fY9Qs/SQmE0QgParI/AAAAAAAABuc/dCljTT1MAs4/s400/cygwin1.png" alt="" id="BLOGGER_PHOTO_ID_5262883672877394610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_sogEO2fY9Qs/SQmE0VVBpxI/AAAAAAAABuk/CXwQk68EAl0/s1600-h/cygwin2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 313px;" src="http://2.bp.blogspot.com/_sogEO2fY9Qs/SQmE0VVBpxI/AAAAAAAABuk/CXwQk68EAl0/s400/cygwin2.png" alt="" id="BLOGGER_PHOTO_ID_5262883674172532498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_sogEO2fY9Qs/SQmE0pJ5ooI/AAAAAAAABus/RiG8jt8UOKE/s1600-h/cygwin3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 313px;" src="http://3.bp.blogspot.com/_sogEO2fY9Qs/SQmE0pJ5ooI/AAAAAAAABus/RiG8jt8UOKE/s400/cygwin3.png" alt="" id="BLOGGER_PHOTO_ID_5262883679494578818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_sogEO2fY9Qs/SQmE0kYIRhI/AAAAAAAABu0/dM_hjmgsQx4/s1600-h/cygwin4.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 313px;" src="http://2.bp.blogspot.com/_sogEO2fY9Qs/SQmE0kYIRhI/AAAAAAAABu0/dM_hjmgsQx4/s400/cygwin4.png" alt="" id="BLOGGER_PHOTO_ID_5262883678212081170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_sogEO2fY9Qs/SQmE1E_h-nI/AAAAAAAABu8/mUJMFU9lh2U/s1600-h/cygwin5.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 313px;" src="http://1.bp.blogspot.com/_sogEO2fY9Qs/SQmE1E_h-nI/AAAAAAAABu8/mUJMFU9lh2U/s400/cygwin5.png" alt="" id="BLOGGER_PHOTO_ID_5262883686967278194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_sogEO2fY9Qs/SQmFOvlWikI/AAAAAAAABvE/xxSO1Ka5p30/s1600-h/cygwin6.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 265px; height: 400px;" src="http://4.bp.blogspot.com/_sogEO2fY9Qs/SQmFOvlWikI/AAAAAAAABvE/xxSO1Ka5p30/s400/cygwin6.png" alt="" id="BLOGGER_PHOTO_ID_5262884127896930882" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_sogEO2fY9Qs/SQmFOy33dLI/AAAAAAAABvM/pQsJfh5f0W0/s1600-h/cygwin7.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 317px; height: 400px;" src="http://2.bp.blogspot.com/_sogEO2fY9Qs/SQmFOy33dLI/AAAAAAAABvM/pQsJfh5f0W0/s400/cygwin7.png" alt="" id="BLOGGER_PHOTO_ID_5262884128779891890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;After the installation is completed the environment can be used by opening the console (usually a link to it is created on your desktop).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_sogEO2fY9Qs/SQmQCFT3XZI/AAAAAAAABvk/8eoy49zMDG8/s1600-h/cygwin8.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 290px;" src="http://3.bp.blogspot.com/_sogEO2fY9Qs/SQmQCFT3XZI/AAAAAAAABvk/8eoy49zMDG8/s400/cygwin8.png" alt="" id="BLOGGER_PHOTO_ID_5262896005018770834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Again I personally don't like the default console (windows console) for its poor text handling features so I use a replacement (wrapper console) named Console :). It can be downloaded from here: &lt;a href="http://sourceforge.net/projects/console"&gt;http://sourceforge.net/projects/console&lt;/a&gt;. It even has support for transparency, here's a screenshot (running mc):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_sogEO2fY9Qs/SQmJleryq6I/AAAAAAAABvc/aqo1mLvDLao/s1600-h/console.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 327px;" src="http://3.bp.blogspot.com/_sogEO2fY9Qs/SQmJleryq6I/AAAAAAAABvc/aqo1mLvDLao/s400/console.png" alt="" id="BLOGGER_PHOTO_ID_5262888916544039842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;If Cygwin didn't convinced you, there are some other options for same Unix environment like tools under Windows:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.blogger.com/www.mingw.org"&gt;MSYS&lt;/a&gt; (with MinGW) is as their website says:&lt;br /&gt;&lt;p&gt;"&lt;span style="font-style: italic;"&gt;... a collection of GNU utilities such as bash, make, gawk and grep to allow building of applications and programs which depend on traditionally UNIX tools to be present. It is intended to supplement MinGW and the deficiencies of the cmd shell.&lt;/span&gt;&lt;/p&gt; &lt;p style="font-style: italic;"&gt;An example would be building a library that uses the autotools build system. Users will typically run "./configure" then "make" to build it. The configure shell script requires a shell script interpreter which is not present on Windows systems, but provided by MSYS.&lt;/p&gt; &lt;p&gt;&lt;span style="font-style: italic;"&gt;A common misunderstanding is MSYS is "UNIX on Windows", MSYS by itself does not contain a compiler or a C library, therefore does not give the ability to magically port UNIX programs over to Windows nor does it provide any UNIX specific functionality like case-sensitive filenames. Users looking for such functionality should look to &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.mingw.org/wiki/Cygwin"&gt;Cygwin&lt;/a&gt;&lt;span style="font-style: italic;"&gt; or Microsoft's &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.mingw.org/wiki/Interix"&gt;Interix&lt;/a&gt;&lt;span style="font-style: italic;"&gt; instead.&lt;/span&gt;"&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.blogger.com/www.research.att.com/sw/tools/uwin"&gt;UWIN&lt;/a&gt; (open source from AT&amp;amp;T research labs). It is presented as: "&lt;span style="font-style: italic;"&gt;The &lt;/span&gt;&lt;b style="font-style: italic;"&gt;UWIN&lt;/b&gt;&lt;span style="font-style: italic;"&gt; package allows &lt;/span&gt;&lt;b style="font-style: italic;"&gt;UNIX&lt;/b&gt;&lt;span style="font-style: italic;"&gt; applications to be built and run on Windows XP/2000/NT/ME/98/95 with few, if any, changes necessary.&lt;/span&gt;"&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.tcl.tk/11329"&gt;Interix&lt;/a&gt; (known as Microsoft SFU). Is like all other environments and this are some guidelines from its builders:&lt;/li&gt;&lt;/ol&gt;&lt;b&gt;"&lt;/b&gt;&lt;span style="font-style: italic;"&gt;Why use SFU? SFU is POSIX, SFU is UNIX&lt;/span&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;you can compile, edit and run your source code like on every other UNIX OS &lt;/li&gt;&lt;/ul&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;use your Unix know-how to write Windows software &lt;/li&gt;&lt;/ul&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;use !!!one!!! source tree (proven by my own projects) to create Unix, Mac OS X and now Windows software &lt;/li&gt;&lt;/ul&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;you can login with telnet or openssh, using your bash (and now tcl) to get your work done and finally use the already known Microsoft applications on your desk (even remote with "rdesktop") &lt;/li&gt;&lt;/ul&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;save space and money for one additional workstation (on your table) &lt;/li&gt;&lt;/ul&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;SFU fits very well into the Windows environment (no path-name-horror-trip with cygwin) &lt;/li&gt;&lt;/ul&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;Admin a Windows system with Unix utilities&lt;/li&gt;&lt;/ul&gt;&lt;p style="font-style: italic;"&gt;Why not use SFU? (already known Windows limitations still exist)&lt;/p&gt;&lt;ul&gt;&lt;li&gt;n&lt;span style="font-style: italic;"&gt;o root user available (chosen restriction to link SFU into the windows user-management) &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;you can not create files like "odd\\\[\]*?\{\}name" (NTFS limitation) &lt;/li&gt;&lt;/ul&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;a user started server can listen on low ports (security hole) &lt;/li&gt;&lt;/ul&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;multiple servers can listen on the same port. The first one wins, but the second one does get !!no!! error-msg &lt;/li&gt;&lt;/ul&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;FIFO speed is slow (~10 times slower than Linux) &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;application speed is high, filesystem access speed is mediu&lt;/span&gt;m &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a style="font-style: italic;" href="http://wiki.tcl.tk/2917"&gt;AEC&lt;/a&gt;&lt;span style="font-style: italic;"&gt; 2005-09-09 I recently read Microsoft is going to stop developing SFU as an environment, but continue using it as a library for use with some of their server products. &lt;/span&gt;&lt;a style="font-style: italic;" href="http://wiki.tcl.tk/472"&gt;LV&lt;/a&gt;&lt;span style="font-style: italic;"&gt; Actually, the code previously known as Interix or SFU has become bundled into the latest service pack for Windows 2003, and will also be included in the next generation of Windows. Read the various technical web sites from last August and September regarding Microsoft's plans. Note that the new abbreviation for this component is &lt;/span&gt;&lt;b style="font-style: italic;"&gt;SUA&lt;/b&gt;&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;"&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19298362-6770494601828084128?l=blog.silviupaval.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.silviupaval.info/feeds/6770494601828084128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.silviupaval.info/2008/10/cygwin-and-friends.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/6770494601828084128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/6770494601828084128'/><link rel='alternate' type='text/html' href='http://blog.silviupaval.info/2008/10/cygwin-and-friends.html' title='Cygwin and friends'/><author><name>Silviu</name><uri>http://www.blogger.com/profile/15321226753484103132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_sogEO2fY9Qs/SQmE0QgParI/AAAAAAAABuc/dCljTT1MAs4/s72-c/cygwin1.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19298362.post-2881826315323648739</id><published>2008-09-19T12:56:00.004+03:00</published><updated>2008-10-03T12:44:27.921+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Reviews'/><title type='text'>Mind Mapping</title><content type='html'>&lt;div style="float: right;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_sogEO2fY9Qs/SNN3nnr6BkI/AAAAAAAABZg/LfJbeBXbXBc/s1600-h/freemind_logo.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; cursor: pointer;" src="http://2.bp.blogspot.com/_sogEO2fY9Qs/SNN3nnr6BkI/AAAAAAAABZg/LfJbeBXbXBc/s200/freemind_logo.jpg" alt="" id="BLOGGER_PHOTO_ID_5247669513368503874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_sogEO2fY9Qs/SNN3n3Dq3bI/AAAAAAAABZo/-77g_D4rRdE/s1600-h/freemind.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; cursor: pointer;" src="http://3.bp.blogspot.com/_sogEO2fY9Qs/SNN3n3Dq3bI/AAAAAAAABZo/-77g_D4rRdE/s200/freemind.jpg" alt="" id="BLOGGER_PHOTO_ID_5247669517494705586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt; I didn't see to many people using mind mapping although the technique  (method) is old and not necessarily linked to a software tool. Mind mapping is a method of organizing the ideas/thoughts around a central key word that represents the original notion around which the whole thought process takes place. It may be the unorthodox support for brainstorming also can help in taking notes, memos and I even think of minutes of meetings.&lt;br /&gt;&lt;br /&gt;For an in deep description on how it is done and where can be applied try Wikipedia's articles &lt;a href="http://en.wikipedia.org/wiki/Mind_map"&gt;Mind Map&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/List_of_Mind_Mapping_software"&gt;List of Mind Mapping Software&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As a software tool to apply mind mapping I tried Freemind. On Internet I found &lt;a href="http://en.wikipedia.org/wiki/FreeMind"&gt;Freemind&lt;/a&gt; as being very appreciated amogst profesionals. I personally try it few times but I think to make use of it more often. It can be used in any field from designing software to depicting ideas in Asimov's work :). Some screenshots in the right of the page. Current stable version is 0.8.1, the 0.9 version is in beta.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19298362-2881826315323648739?l=blog.silviupaval.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.silviupaval.info/feeds/2881826315323648739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.silviupaval.info/2008/09/mind-mapping.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/2881826315323648739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/2881826315323648739'/><link rel='alternate' type='text/html' href='http://blog.silviupaval.info/2008/09/mind-mapping.html' title='Mind Mapping'/><author><name>Silviu</name><uri>http://www.blogger.com/profile/15321226753484103132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_sogEO2fY9Qs/SNN3nnr6BkI/AAAAAAAABZg/LfJbeBXbXBc/s72-c/freemind_logo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19298362.post-3932354922166711744</id><published>2008-09-06T11:14:00.008+03:00</published><updated>2008-09-11T13:03:25.189+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Reviews'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Freeware and open source design tools</title><content type='html'>I'm not a visual arts designer but occasionally I need to use some tools to visualize data. This is a list of software that can do a lot and for free:&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://gimp.org/"&gt;GIMP&lt;/a&gt; - it's open source and available for Windows, Linux, Unix (BSD and Solaris) and Mac. Until now it successfully replaced Photoshop for all my image editing needs. It's a powerful tool but it takes some time to learn,  I would suggest starting with GIMP's excellent &lt;a href="http://gimp.org/tutorials/"&gt;tutorials&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;2. &lt;a href="http://sketchup.google.com/"&gt;Google SketchUp&lt;/a&gt; - is a freeware 3D editing software from Google. It's main advantages are: easy to learn, easy to use and have a big models library already created. The main disadantage is that this software is only available for Windows and Mac (no Linux/Unix version).&lt;br /&gt;&lt;br /&gt;3. &lt;a href="http://www.gnome.org/projects/dia/"&gt;Dia&lt;/a&gt; - it's an open source Gnome project. As the software is presented on its web site:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"Dia is inspired by the commercial Windows program 'Visio', though more geared towards informal diagrams for casual use. It can be used to draw many different kinds of diagrams. It currently has special objects to help draw entity relationship diagrams, UML diagrams, flowcharts, network diagrams, and many other diagrams. It is also possible to add support for new shapes by writing simple XML files, using a subset of SVG to draw the shape.&lt;/span&gt;    &lt;p style="font-style: italic; text-align: left;"&gt;It can load and save diagrams to a custom XML format (gzipped by   default, to save space), can export diagrams to a number of formats,   including EPS, SVG, XFIG, WMF and PNG, and can print diagrams (including ones that span multiple pages)."&lt;br /&gt;&lt;/p&gt;It's reliable, easy to learn and use and the precompiled binaries are available for Windows and Linux.&lt;br /&gt;&lt;br /&gt;4. &lt;a href="http://processing.org/"&gt;Processing&lt;/a&gt; - As described on their web site:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"Processing is an open source programming language and environment for          people who want to program images, animation, and interactions. It is used by          students, artists, designers, researchers, and hobbyists for          learning, prototyping, and production. It is created to teach fundamentals          of computer programming within a visual context and to serve as a software          sketchbook and professional production tool."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This means that a little programing is needed to be able to visualize the data. I see it as a compromise between great flexibility in solving complex visualizing problems and the complexity of using a programming language. The programming part was reduced to using very basic commands (which resembles natural spoken language)  which are easy to learn and use. This tool is available for Windows, Mac and Linux.&lt;br /&gt;&lt;br /&gt;Some screen shots of running a Processing example:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_sogEO2fY9Qs/SMJYAli6Z3I/AAAAAAAABVE/A2WNyyfCkGY/s1600-h/main_processing.jpg"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_sogEO2fY9Qs/SMJYAli6Z3I/AAAAAAAABVE/A2WNyyfCkGY/s320/main_processing.jpg" alt="" id="BLOGGER_PHOTO_ID_5242849683314468722" border="0" /&gt;&lt;/a&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_sogEO2fY9Qs/SMJYF-Gs2jI/AAAAAAAABVM/wmV_YXKA3lU/s1600-h/run_test.jpg"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_sogEO2fY9Qs/SMJYF-Gs2jI/AAAAAAAABVM/wmV_YXKA3lU/s320/run_test.jpg" alt="" id="BLOGGER_PHOTO_ID_5242849775806372402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Left picture is the editor window while in the right side there's the result of simulating a fractal tree at two different angles.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19298362-3932354922166711744?l=blog.silviupaval.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.silviupaval.info/feeds/3932354922166711744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.silviupaval.info/2008/09/freeware-and-open-source-design-tools.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/3932354922166711744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/3932354922166711744'/><link rel='alternate' type='text/html' href='http://blog.silviupaval.info/2008/09/freeware-and-open-source-design-tools.html' title='Freeware and open source design tools'/><author><name>Silviu</name><uri>http://www.blogger.com/profile/15321226753484103132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_sogEO2fY9Qs/SMJYAli6Z3I/AAAAAAAABVE/A2WNyyfCkGY/s72-c/main_processing.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19298362.post-5343870751369839003</id><published>2008-07-18T09:56:00.014+03:00</published><updated>2008-11-19T14:35:21.870+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Find and replace all (unix/linux/windows shell script)</title><content type='html'>This script will replace all occurrences of a given string within all files specified. In windows the script can be run through &lt;a href="http://www.cygwin.com/"&gt;cygwin&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="php"&gt;&lt;br /&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;function usage&lt;br /&gt;{&lt;br /&gt;echo "*"&lt;br /&gt;echo "* Usage: ${0} search-string replace-string path-to-search"&lt;br /&gt;echo "* Remember to escape special characters in search-string, replace-string and path-to-search."&lt;br /&gt;echo "* Do 'man sed' for more on special characters"&lt;br /&gt;echo "* e.g. ${0} br&gt; br\/&gt; dir_path"&lt;br /&gt;echo "* will replace all br&gt; with br/&gt; in all files under dir_path directory"&lt;br /&gt;echo "*"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if  [[ ${#} == 3 ]] ; then&lt;br /&gt;echo "This tool will PERMANENTLY MODIFY some of your files."&lt;br /&gt;echo "Depending on provided input you may DAMAGE your files."&lt;br /&gt;echo "Having a BACKUP of your files is highly recommended."&lt;br /&gt;read -p "Are you sure you want to continue?(y|N): "&lt;br /&gt;&lt;br /&gt;if  [[ ${REPLY} == "Y" || ${REPLY} == "y" ]] ; then&lt;br /&gt;   echo "Searching ..."&lt;br /&gt;   for file in `find ${3} -type f`; do&lt;br /&gt;       if grep -q ${1} ${file} ; then&lt;br /&gt;           echo "Replacing ${1} with ${2} in ${file}"&lt;br /&gt;           sed -i s/${1}/${2}/g ${file}&lt;br /&gt;           echo ${file} &gt;&gt; modfiles.lst&lt;br /&gt;       fi&lt;br /&gt;   done&lt;br /&gt;   echo "Job done. A list of all modified files can be found in `pwd`/modfiles.lst"&lt;br /&gt;fi&lt;br /&gt;else&lt;br /&gt;usage&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;But I guess this is too much for a Unix/Linux user so if you want a fast one line  way of searching and replacing all patterns you may use this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;find /search/path/ -type f -name '*.txt' -print -exec sed -i s/pattern/replace_string/g '{}' \;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This will replace all &lt;span style=";font-family:courier new;font-size:85%;"  &gt;pattern&lt;/span&gt; strings in your text files (&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;*.txt&lt;/span&gt;&lt;/span&gt;) under &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;/search/path/&lt;/span&gt; directory (recursive search within all sub-directories) with &lt;span style="font-family:courier new;"&gt;replace_string&lt;/span&gt;&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19298362-5343870751369839003?l=blog.silviupaval.info' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='text/html' href='http://toolable.blogspot.com/2008/10/cygwin-and-friends.html' length='0'/><link rel='replies' type='application/atom+xml' href='http://blog.silviupaval.info/feeds/5343870751369839003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.silviupaval.info/2008/07/find-and-replace-all-unixlinuxwindows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/5343870751369839003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/5343870751369839003'/><link rel='alternate' type='text/html' href='http://blog.silviupaval.info/2008/07/find-and-replace-all-unixlinuxwindows.html' title='Find and replace all (unix/linux/windows shell script)'/><author><name>Silviu</name><uri>http://www.blogger.com/profile/15321226753484103132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19298362.post-246481287807269908</id><published>2008-04-03T12:20:00.012+03:00</published><updated>2008-07-18T10:31:06.954+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>More on finally java statement</title><content type='html'>Take this sample code:&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;public class JavaTest&lt;br /&gt;{&lt;br /&gt;   /**&lt;br /&gt;    * @param args&lt;br /&gt;    */&lt;br /&gt;   public static void main(String[] args)&lt;br /&gt;   {&lt;br /&gt;       try&lt;br /&gt;       {&lt;br /&gt;           throwAnException();&lt;br /&gt;           System.out.println("Text not displayed.");&lt;br /&gt;       }&lt;br /&gt;       catch(Exception e)&lt;br /&gt;       {&lt;br /&gt;           System.out.println("Exception from throwAnException: " + &lt;br /&gt;                              e.getMessage());&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt; &lt;br /&gt;   public static void throwAnException() throws Exception&lt;br /&gt;   {&lt;br /&gt;       try&lt;br /&gt;       {&lt;br /&gt;           throw new Exception("Some exception");&lt;br /&gt;       }&lt;br /&gt;       catch(Exception e)&lt;br /&gt;       {&lt;br /&gt;           System.out.println("throwAnException: " + &lt;br /&gt;                              e.getMessage());&lt;br /&gt;           throw e;&lt;br /&gt;       }&lt;br /&gt;       finally&lt;br /&gt;       {&lt;br /&gt;           return;&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;What do you think the output will be? The finally block here contains a return statement, although this will generate a warning at compile time the code is compiled and running without any error.&lt;br /&gt;&lt;br /&gt;Be careful that finally blocks containing return, break or continue statements are giving the control back to the points were they were called so in the above case the control will be given back to main without any exception being caught in main.&lt;br /&gt;&lt;br /&gt;A more maintainable/readable code with same functionality like the code above:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="java"&gt;&lt;br /&gt;public class JavaTest&lt;br /&gt;{&lt;br /&gt; /**&lt;br /&gt;  * @param args&lt;br /&gt;  */&lt;br /&gt; public static void main(String[] args)&lt;br /&gt; {&lt;br /&gt;  try&lt;br /&gt;  {&lt;br /&gt;   throwAnException();&lt;br /&gt;   System.out.println("Text not displayed.");&lt;br /&gt;  }&lt;br /&gt;  catch(Exception e)&lt;br /&gt;  {&lt;br /&gt;   System.out.println("Exception from throwAnException: " + &lt;br /&gt;                      e.getMessage());&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public static void throwAnException() throws Exception&lt;br /&gt; {&lt;br /&gt;  try&lt;br /&gt;  {&lt;br /&gt;   throw new Exception("Some exception");&lt;br /&gt;  }&lt;br /&gt;  catch(Exception e)&lt;br /&gt;  {&lt;br /&gt;   System.out.println("throwAnException: " + &lt;br /&gt;                      e.getMessage());&lt;br /&gt;   //throw e;&lt;br /&gt;  }&lt;br /&gt;  //finally&lt;br /&gt;  //{&lt;br /&gt;  // return;&lt;br /&gt;  //}&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19298362-246481287807269908?l=blog.silviupaval.info' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.silviupaval.info/feeds/246481287807269908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.silviupaval.info/2008/04/more-on-finally-java-statement.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/246481287807269908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/246481287807269908'/><link rel='alternate' type='text/html' href='http://blog.silviupaval.info/2008/04/more-on-finally-java-statement.html' title='More on finally java statement'/><author><name>Silviu</name><uri>http://www.blogger.com/profile/15321226753484103132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19298362.post-2749275373161843414</id><published>2008-01-31T11:28:00.000+02:00</published><updated>2008-11-13T09:49:08.809+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reviews'/><title type='text'>Berkeley podcasts</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_sogEO2fY9Qs/R6GW_THFKHI/AAAAAAAAAdk/20dUHjiVPuA/s1600-h/berkeley_podcasts.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_sogEO2fY9Qs/R6GW_THFKHI/AAAAAAAAAdk/20dUHjiVPuA/s200/berkeley_podcasts.gif" alt="" id="BLOGGER_PHOTO_ID_5161572662149195890" border="0" /&gt;&lt;/a&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-US"&gt;When first I found &lt;a href="http://webcast.berkeley.edu/courses.php"&gt;Berkeley is podcasting&lt;/a&gt; their courses I said this is really a good chance to take the courses of a big and well known University. So I started few months back to listen, first to a physics course (Physics 10/LS C70V) then to an astronomy one and finally a human nutrition course. And as I plan right know probably I will not stop soon to listen to &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Berkeley&lt;/st1:place&gt;&lt;/st1:city&gt;&lt;/st1:place&gt;&lt;/st1:city&gt;'s web casts. Probably I was very lucky to start with Physics 10/LS C70V, or it's unofficial name "Physics for Future Presidents", as I found this course the most informative and entertaining (at the same time) I ever listen to.  After having more than five years since I finished my university studies now it feels great to be back to school and having a quality material to listen to. In this program I see a great chance for all those who tell themselves "I want to know more" to actually experience the thought for free and without tight schedules. Finally continuous education is a way to stay awake to all that happens around us, and there are few things going on in the world.&lt;/span&gt;&lt;/p&gt;    &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19298362-2749275373161843414?l=blog.silviupaval.info' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://webcast.berkeley.edu/courses.php' title='Berkeley podcasts'/><link rel='replies' type='application/atom+xml' href='http://blog.silviupaval.info/feeds/2749275373161843414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.silviupaval.info/2008/01/berkeley-podcasts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/2749275373161843414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/2749275373161843414'/><link rel='alternate' type='text/html' href='http://blog.silviupaval.info/2008/01/berkeley-podcasts.html' title='Berkeley podcasts'/><author><name>Silviu</name><uri>http://www.blogger.com/profile/15321226753484103132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_sogEO2fY9Qs/R6GW_THFKHI/AAAAAAAAAdk/20dUHjiVPuA/s72-c/berkeley_podcasts.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-19298362.post-7698045856161911551</id><published>2008-01-30T12:09:00.000+02:00</published><updated>2008-11-13T09:49:09.057+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Different way of sharing information</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_sogEO2fY9Qs/R6BPSTHFKEI/AAAAAAAAAdQ/A9XfIaw8BJM/s1600-h/blog_code.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_sogEO2fY9Qs/R6BPSTHFKEI/AAAAAAAAAdQ/A9XfIaw8BJM/s200/blog_code.png" alt="" id="BLOGGER_PHOTO_ID_5161212348752799810" border="0" /&gt;&lt;/a&gt;If you think to share your contact and don't know how, there's a interesting way of doing it. Recently I found a Nokia service (&lt;a href="http://mobilecodes.nokia.com/index.htm"&gt;Nokia Mobile Codes&lt;/a&gt;) for encrypting information to a dot encrypted picture. The picture can be shared and scanned with mobile applications. This is not a data sharing security tip, is just a funny way of doing things.&lt;br /&gt;&lt;br /&gt;The image code of silviupaval.blogspot.com is on the right.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/19298362-7698045856161911551?l=blog.silviupaval.info' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://mobilecodes.nokia.com/index.htm' title='Different way of sharing information'/><link rel='replies' type='application/atom+xml' href='http://blog.silviupaval.info/feeds/7698045856161911551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.silviupaval.info/2008/01/different-way-of-sharing-information.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/7698045856161911551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/19298362/posts/default/7698045856161911551'/><link rel='alternate' type='text/html' href='http://blog.silviupaval.info/2008/01/different-way-of-sharing-information.html' title='Different way of sharing information'/><author><name>Silviu</name><uri>http://www.blogger.com/profile/15321226753484103132</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_sogEO2fY9Qs/R6BPSTHFKEI/AAAAAAAAAdQ/A9XfIaw8BJM/s72-c/blog_code.png' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
