<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>Aymeric on software</title>
	<atom:link href="http://blog.barthe.ph/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.barthe.ph</link>
	<description>Because we needed another of these blogs...</description>
	<pubDate>Mon, 12 Apr 2010 08:27:39 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>First public release of DiskWave</title>
		<link>http://blog.barthe.ph/2010/03/12/first-release-whichsize/</link>
		<comments>http://blog.barthe.ph/2010/03/12/first-release-whichsize/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 11:15:30 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
		
		<category><![CDATA[DiskWave]]></category>

		<category><![CDATA[MacOS X]]></category>

		<category><![CDATA[My Software]]></category>

		<guid isPermaLink="false">http://blog.barthe.ph/?p=630</guid>
		<description><![CDATA[I have not been blogging a lot lately. The truth is that I have been busy coding.
WhichSize DiskWave is a freeware for MacOS X 10.6 (hence Intel Macs only for now) that can recursively size the directories on your drive. This allows to quickly identify and reclaim wasted space.
It is freely available here: http://diskwave.barthe.ph/
DiskWave was [...]]]></description>
			<content:encoded><![CDATA[<p>I have not been blogging a lot lately. The truth is that I have been busy coding.</p>
<p><span style="text-decoration: line-through;">WhichSize</span> DiskWave is a freeware for MacOS X 10.6 (hence Intel Macs only for now) that can recursively size the directories on your drive. This allows to quickly identify and reclaim wasted space.</p>
<p>It is freely available here: <a href="http://whichsize.barthe.ph/">http://diskwave.barthe.ph/</a></p>
<p>DiskWave was basically hacked in a weekend, but this is not a new idea. I already worked on a similar project, back in 2004, after discovering OmniDiskSweeper. I was appalled by the terrible performance of OmniDiskSweeper and quickly realized I could do a better job. So I learned Cocoa, ObjectiveC, the Carbon APIs, and came up painfully with a prototype only to discover that another software named WhatSize was free and worked very well. I also had a tricky memory leak due to a bug in Cocoa API.  So I quitted.</p>
<p>Fast forward to 2010. OmniDiskSweeper is no longer a shareware, but its performance is still bad.  WhatSize is no longer a freeware. The old freeware version of WhatSize I have is a PowerPC version, but since I moved to Snow Leopard, I felt like I did not want to install Rosetta. So here is DiskWave.</p>
<p>So this time, I did my homework, and it does not look like there is a suitable alternative. Here is the list of similar tools (on MacOS X) I came up with:</p>
<ul>
<li><a href="http://www.omnigroup.com/products/omnidisksweeper/">OmniDiskSweeper</a>.
<ul>
<li>Freeware (formerly shareware)</li>
<li>Slower because it relies on Cocoa APIs. It also consumes a lot of memory.</li>
<li>Does not have many more features than DiskWave. I hope to catch up pretty soon&#8230;</li>
</ul>
</li>
<li><a href="http://www.id-design.com/software/whatsize/index.php">WhatSize</a>
<ul>
<li>Shareware (formerly freeware)</li>
<li>Same speed.  Consumes a little bit more of memory, because it supports another feature that requires it</li>
<li>Does have many more features than DiskWave. Some of them, I never intend to get: fat binaries removal, locale removals, etc&#8230;</li>
<li>The thing that annoys me is that you can size/browse only one drive at a time.</li>
</ul>
</li>
<li><a href="http://www.daisydiskapp.com/">DaisyDisk</a>
<ul>
<li>Shareware</li>
<li>New kid on the block. The visualization is really awesome but&#8230; I do not find it that practical.</li>
<li>If I ever wish to play with CoreAnimation, I may add an animated sunburst view.</li>
</ul>
</li>
<li><a href="http://grandperspectiv.sourceforge.net/">GrandPerspective</a>
<ul>
<li>Opensource</li>
<li>Seems to work well and is properly maintained. But I do not like this kind of visualization.</li>
</ul>
</li>
<li><a href="http://www.derlien.com/">DiskInventory X</a>
<ul>
<li>Opensource</li>
<li>It looks like it is no longer maintained. I do not fancy the GUI. Same as GrandPerspective.</li>
</ul>
</li>
</ul>
<p>DiskWave being in its early infancy is somewhat limited in terms of features. I hope to gradually upgrade it. If you have ideas of features you would like to see added, just let me know.</p>
<p><strong>Reference</strong>:</p>
<ul>
<li>DiskWave homepage: <a href="http://diskwave.barthe.ph/">http://diskwave.barthe.ph/</a></li>
</ul>
<p><strong>Update</strong> April 12th 2010:</p>
<ul>
<li>Renamed WhichSize into DiskWave after receiving complaints from id design, inc.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.barthe.ph/2010/03/12/first-release-whichsize/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Force Windows to refresh the Desktop (and Start Menu)</title>
		<link>http://blog.barthe.ph/2010/02/23/force-desktop-refresh/</link>
		<comments>http://blog.barthe.ph/2010/02/23/force-desktop-refresh/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 18:41:41 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Windows]]></category>

		<category><![CDATA[c++]]></category>

		<category><![CDATA[win32]]></category>

		<guid isPermaLink="false">http://blog.barthe.ph/?p=616</guid>
		<description><![CDATA[Today I learned a new trick.
When you programatically delete a shortcut from the Desktop folder Windows is &#8220;generally&#8221; smart enough to update the Desktop and the &#8220;recently used programs&#8221; section of the Start Menu. But sometimes it does not work and you are left with a &#8220;ghost&#8221; icon.
As a regular end user, you can hit [...]]]></description>
			<content:encoded><![CDATA[<p>Today I learned a new trick.</p>
<p>When you programatically delete a shortcut from the Desktop folder Windows is &#8220;generally&#8221; smart enough to update the Desktop and the &#8220;recently used programs&#8221; section of the Start Menu. But sometimes it does not work and you are left with a &#8220;ghost&#8221; icon.</p>
<p>As a regular end user, you can hit the F5 key to force a refresh of the Desktop, but for the Start Menu you are left with no alternative than killing/restarting explorer.exe.</p>
<p>I was looking for a better solution for a custom installer application. And after a lot of MSDN scattering and googling around, Eureka, I finally found a magic incantation to programmatically force a refresh of the Desktop.</p>
<pre><code>SHChangeNotify (SHCNE_ASSOCCHANGED, 0, 0, 0);</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.barthe.ph/2010/02/23/force-desktop-refresh/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Make LoadLibrary() failures silent on Win2k</title>
		<link>http://blog.barthe.ph/2009/12/03/silent_loadlibrary/</link>
		<comments>http://blog.barthe.ph/2009/12/03/silent_loadlibrary/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 08:41:40 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Windows]]></category>

		<category><![CDATA[c++]]></category>

		<category><![CDATA[win32]]></category>

		<guid isPermaLink="false">http://blog.barthe.ph/?p=513</guid>
		<description><![CDATA[For a custom installer application, I have been working on a crude and efficient way to determine whether the particular version of the C runtime (CRT) we need is installed or not. The technique I use is simply to check if a dummy DLL linked to the CRT libraries would load up properly.
This works gloriously [...]]]></description>
			<content:encoded><![CDATA[<p>For a custom installer application, I have been working on a crude and efficient way to determine whether the particular version of the C runtime (CRT) we need is installed or not. The technique I use is simply to check if a dummy DLL linked to the CRT libraries would load up properly.</p>
<p>This works gloriously well, except for one simple detail. When the CRT is not installed, on Windows 2000 <del datetime="2009-12-03T14:29:55+00:00">only</del>, the LoadLibrary error would also cause a MessageBox to be displayed. This stops the flow of the installer and of course, is not very elegant&#8230;</p>
<p><a href="http://blog.barthe.ph/wp-content/uploads/2009/12/win2k_messagebox.png"><img class="aligncenter size-medium wp-image-515" title="Win2k LoadLibrary failure" src="http://blog.barthe.ph/wp-content/uploads/2009/12/win2k_messagebox-300x54.png" alt="Win2k LoadLibrary failure" width="300" height="54" /></a></p>
<p>But there is a simple trick to get rid of the MessageBox, using the very obscure <a href="http://msdn.microsoft.com/en-us/library/ms680621%28VS.85%29.aspx">SetErrorMode </a>system call.</p>
<pre>
<code>::SetErrorMode(SEM_FAILCRITICALERRORS);
HMODULE hDll = ::LoadLibrary("CrtCheck.Dll"); // Won't bark
if (hDll)   ; // CRT is installed
else        ; // CRT is NOT installed</code>
</pre>
<p>Do you guys know a better (yet simple) way to determine if the CRT is installed?</p>
<p><strong>Update:</strong> this is not a Windows 2000 specific issue (thanks Ferruccio). It&#8217;s also true for older versions of Windows. As far as I know WinXP, Vista and 7 do NOT display a MessageBox under the same circumstances.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.barthe.ph/2009/12/03/silent_loadlibrary/feed/</wfw:commentRss>
		</item>
		<item>
		<title>XCode has dropped support for Java!</title>
		<link>http://blog.barthe.ph/2009/11/26/xcode-nojava/</link>
		<comments>http://blog.barthe.ph/2009/11/26/xcode-nojava/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 17:12:47 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[MacOS X]]></category>

		<category><![CDATA[XCode]]></category>

		<guid isPermaLink="false">http://blog.barthe.ph/?p=497</guid>
		<description><![CDATA[I guess this is hardly news to anyone but me, since I have not written a single line of Java for the past 4 years, but apparently Xcode has dropped the support for Java projects.
As of Xcode 3.2.1, there is no way to create a command line or Swing application project which is fully managed [...]]]></description>
			<content:encoded><![CDATA[<p>I guess this is hardly news to anyone but me, since I have not written a single line of Java for the past 4 years, but apparently Xcode has dropped the support for Java projects.</p>
<p>As of Xcode 3.2.1, there is no way to create a command line or Swing application project which is fully managed by Xcode. There is still support for the Java syntax in the text editor and the java compilation tools are also installed, though.</p>
<p>One of the default project templates, JNI library, does actually let you create a project containing java files. However these files are compiled with ANT. This demonstrates that Xcode can still be used for Java development through the use of &#8220;external build systems&#8221;, but that&#8217;s it&#8230; Java is no longer a first class citizen in Xcode.</p>
<p>I guess this decision makes sense for Apple. The Cocoa bindings for Java have not been supported since MacOS X 10.4 after all.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.barthe.ph/2009/11/26/xcode-nojava/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Virgin Media goes DNS hijacking too!</title>
		<link>http://blog.barthe.ph/2009/08/29/virgin-dns-hijacking/</link>
		<comments>http://blog.barthe.ph/2009/08/29/virgin-dns-hijacking/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 12:56:46 +0000</pubDate>
		<dc:creator>Aymeric</dc:creator>
		
		<category><![CDATA[nonsense]]></category>

		<guid isPermaLink="false">http://blog.barthe.ph/?p=436</guid>
		<description><![CDATA[It seems the trend that started in the U.S.A. has finally crossed the atlantic. Virgin Media, the only cable operator left in the U.K., has added one new trick to their internet pipes crippling policies! They are now doing DNS hijacking too! If this is the kind of stuff that comes out of Digital Britain, [...]]]></description>
			<content:encoded><![CDATA[<p>It seems the trend that started in the U.S.A. has finally crossed the atlantic. Virgin Media, the only cable operator left in the U.K., has added one new trick to their <a href="http://en.wikipedia.org/wiki/Series_of_tubes">internet pipes</a> <a href="http://allyours.virginmedia.com/html/internet/traffic.html">crippling</a> policies! They are now doing <a href="http://en.wikipedia.org/wiki/DNS_hijacking">DNS hijacking</a> too! If this is the kind of stuff that comes out of <a href="http://www.culture.gov.uk/reference_library/media_releases/5548.aspx/">Digital Britain</a>, I&#8217;d like to say a big <strong>NO Thank You!</strong></p>
<p>The good news is that you can opt out very easily. Just follow the link:<br />
<a href="http://www.virginmedia.com/myvirginmedia/advancederror/">http://www.virginmedia.com/myvirginmedia/advancederror/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.barthe.ph/2009/08/29/virgin-dns-hijacking/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
