<?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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bycrom</title>
	<atom:link href="http://www.bycrom.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bycrom.org</link>
	<description></description>
	<lastBuildDate>Thu, 15 Oct 2009 14:45:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>For Every BEGIN There Must Be an END</title>
		<link>http://www.bycrom.org/2009/for-every-begin/</link>
		<comments>http://www.bycrom.org/2009/for-every-begin/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 14:45:51 +0000</pubDate>
		<dc:creator>Tastic</dc:creator>
				<category><![CDATA[Rants]]></category>

		<guid isPermaLink="false">http://www.bycrom.org/?p=64</guid>
		<description><![CDATA[And this is especially true for a Microsoft resource script. I just spend quite a bit of time tracking down a problem opening the resource view on a project. It would just hang indefinitely when I tried to open the resources. As it ends up, a resource definition block hidden inside of a #ifdef block [...]]]></description>
			<content:encoded><![CDATA[<p>And this is especially true for a Microsoft resource script. I just spend quite a bit of time tracking down a problem opening the resource view on a project. It would just hang indefinitely when I tried to open the resources. As it ends up, a resource definition block hidden inside of a #ifdef block was missing its END statement.</p>
<p>I blame Visual Studio. Visual Studio should have handled this error more gracefully than to stop responding and forcing me to kill it. They could make the resource compiler itself handle the error and report it or simply thread out the compile process so it can be stopped when I run into this type of error. Moral of the story is that when this problem happens, check each BEGIN for an END. Yay.<br />
<code>--hours;</code><br />
In other news, I&#8217;ve moved to Kansas City and found a job programming in C++ on Window and in Visual Studio. Expect future rants to be about that for a while.</p>
<p>Haws &amp; Hmms</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bycrom.org/2009/for-every-begin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unassisted GDB Sessions</title>
		<link>http://www.bycrom.org/2008/unassisted-gdb-session/</link>
		<comments>http://www.bycrom.org/2008/unassisted-gdb-session/#comments</comments>
		<pubDate>Sat, 13 Dec 2008 09:27:27 +0000</pubDate>
		<dc:creator>Tastic</dc:creator>
				<category><![CDATA[Debugging]]></category>

		<guid isPermaLink="false">http://www.bycrom.org/?p=49</guid>
		<description><![CDATA[Bugs can be hard to find, but I guess if it were easy, I might be out of a job. Nah&#8230;. they still need someone to fix those bugs. However, the point being that because dev machines are tainted, sometimes you can&#8217;t find the bugs, sometimes it&#8217;s because you never take the right path in [...]]]></description>
			<content:encoded><![CDATA[<p>Bugs can be hard to find, but I guess if it were easy, I might be out of a job. Nah&#8230;. they still need someone to fix those bugs. However, the point being that because dev machines are tainted, sometimes you can&#8217;t find the bugs, sometimes it&#8217;s because you never take the right path in the software to cause bugs, and almost every time no one can tell you anything relevant about how they ran into the bugs. Ok, the last part might not be fair.</p>
<p>We&#8217;ve found a large number of times that we&#8217;ve had to resort to running a debugger, gdb in our case, and a debug build of the software in question on a client box to find errors. Usually, this sucks as a developer has to babysit the software while waiting for the user to trigger something interesting. Recently, I&#8217;ve found myself in a situation where I need to do this for multiple machines and I&#8217;m severely lacking the patience to follow that. So like all lazy programmers, I&#8217;ve been obsessed with finding a way to take myself out of the loop.</p>
<p>The solution was simple once I got it right. Set gdb to launch in batch mode, set some interesting breakpoints, and a loop to backtrace and continue until quit. Get the log file at the end of a few days of testing. Getting that to actually work was a little rough though. </p>
<p>First off, I knew I needed a separate gdbinit file than my normal one and a easy way to launch. I&#8217;m in Windows here, so a shortcut could easily handle the launching. A shortcut like the one below works well.</p>
<blockquote><p>&#8220;C:\Program Files\Your Debug Software\gdb.exe&#8221; &#8211;batch -nx &#8211;command=unassisted.gdbinit</p></blockquote>
<p>This assumes you&#8217;ve bundled gdb, that you don&#8217;t want it to attempt to use the normal .gdbinit, and you&#8217;ve created a unassisted.gdbinit. The &#8220;&#8211;batch&#8221; option will prevent gdb from prompting the user, and will automatically quit when the command file ends I then named the shortcut something like &#8220;Unassisted Debug Session&#8221;</p>
<p>Now, to the guts of the gdb batch file:<br />
<code># Logs will append to gdb.txt in the working directory by default<br />
set logging on<br />
file YourApp.exe<br />
<br />
# Settings good for logging in this case<br />
set height 0<br />
set new-console off<br />
<br />
# Seems nicer in Windows.<br />
set mapexceptionstosignals off<br />
set debugevents off<br />
set debugexceptions off<br />
<br />
# Set first break and run<br />
break main<br />
run<br />
<br />
# For DLLs, I've had problems setting breakpoints before the app actually starts.<br />
break error_log_function<br />
<br />
# I program ObjC in windows... yeah, that's weird<br />
break '-[NSException raise]'<br />
break '-[DatabaseConnection postError:]'<br />
<br />
# autorelease with no pool in my copy of Foundation framework<br />
break NSAutoreleasePool.m:250<br />
<br />
# HERE! This is were the real fun is - $_exitcode gets set in gdb when your app exits<br />
set $_exitcode = 9999<br />
<br />
# Corrupt stacks frames break the batch command loop or user-defined function, so continues happen separately from the backtrace. We'll do the backtrace at all stop on a hook instead, as long as the program has not quit<br />
define hook-stop<br />
&nbsp;&nbsp;if ($_exitcode == 9999)<br />
&nbsp;&nbsp;&nbsp;&nbsp;backtrace full<br />
&nbsp;&nbsp;end<br />
end<br />
<br />
# The continue loop - this will occur until the program exits<br />
while ($_exitcode == 9999)<br />
&nbsp;&nbsp;continue<br />
end<br />
<br />
quit<br />
</code></p>
<p>Now, just run on multiple machine and grab the logs afterward. Hopefully, the backtrace full will be enough to track down your bugs. Happy Hacking.</p>
<p>Stacks &amp; Segfaults</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bycrom.org/2008/unassisted-gdb-session/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>GTK+ Framework</title>
		<link>http://www.bycrom.org/2008/gtk-framework/</link>
		<comments>http://www.bycrom.org/2008/gtk-framework/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 14:40:40 +0000</pubDate>
		<dc:creator>Tastic</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.bycrom.org/?p=45</guid>
		<description><![CDATA[Richard Hult of Imendio and GTK+ announced on his blog that a native framework for GTK+ on OSX is now available on its own dedicated site.
It&#8217;s in beta at the moment, but it works. My previous attempts to compile and run the native port never worked out too well, but a little testing on it [...]]]></description>
			<content:encoded><![CDATA[<p>Richard Hult of <a href="http://www.imendio.com/">Imendio</a> and <a href="http://www.gtk.org/">GTK+</a> announced on his <a href="http://people.imendio.com/richard/">blog</a> that a native framework for GTK+ on OSX is now available on its own <a href="http://www.gtk-osx.org/">dedicated site</a>.</p>
<p>It&#8217;s in beta at the moment, but it works. My previous attempts to compile and run the native port never worked out too well, but a little testing on it (just gtk-demo) makes it seem like I should be able to run most GTK+ applications without too much pain.</p>
<p>I mostly look forward to a version of <a href="http://www.gimp.org/">Gimp</a> being linked against this framework. <a href="http://darwingimp.sourceforge.net/">Current builds</a> for OSX include everything, are a fairly large, and of course depend on X11.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bycrom.org/2008/gtk-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Universal Pain</title>
		<link>http://www.bycrom.org/2008/universal-pain/</link>
		<comments>http://www.bycrom.org/2008/universal-pain/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 18:05:08 +0000</pubDate>
		<dc:creator>Tastic</dc:creator>
				<category><![CDATA[Uberlipo]]></category>

		<guid isPermaLink="false">http://www.bycrom.org/?p=21</guid>
		<description><![CDATA[As of recently, Pentagram has received more of my attention. I maintain the Mac OS X builds, and I&#8217;ve been wanting to change the process for quite some time. A little over two years ago, I set up the builds with Xcode, used the pre-built copies of the SDL and SDL_ttf frameworks, and created an Xcode project to build [...]]]></description>
			<content:encoded><![CDATA[<p>As of recently, <a href="http://pentagram.sourceforge.net">Pentagram</a> has received more of my attention. I maintain the Mac OS X builds, and I&#8217;ve been wanting to change the process for quite some time. A little over two years ago, I set up the builds with Xcode, used the pre-built copies of the <a href="http://www.libsdl.org">SDL</a> and <a href="http://www.libsdl.org/projects/SDL_ttf/">SDL_ttf</a> frameworks, and created an Xcode project to build <a href="http://libpng.org/">libpng</a> as a framwork. The finished application bundle included these and all was well, but still I was unhappy.</p>
<p>I would prefer to simply use configure and make like all the normal linux users and yet still create my application bundles with all the <a href="http://en.wikipedia.org/wiki/Universal_binary">universal</a> goodness that is now expected on Macs. This would also allow me to have tighter control over build settings, a well know list of dependencies, and the ability to provide x86_64 binaries sooner.</p>
<p>So I worked out a fairly complex but slick way to build all of my dependencies from source and Pentagram itself for multiple architectures. What I got a the end of the day&#8230; um&#8230; er&#8230; couple of weeks was a few new shiny Pentagram.app bundles for each supported architecture (i386 and ppc for now).</p>
<p>And now for the combining of them. Well, slightly easier said than done. The lipo command used to create universal binaries only deals with the individual Mach-O files in your bundles. I wanted a future-proof method to combine any generic bundles. Surely some sort of script like that exists, but I was not successful in finding one.</p>
<p>So I did what all evil SOBs like me do and made one. I wrote a somewhat complete bash script and dubbed it &#8220;uberlipo&#8221;. Version 1.0 is up on the downloads page and it has a BSD-style license. I&#8217;ll put up a static page describing it in more detail shortly. Enjoy.</p>
<p>Bread &amp; Butter</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bycrom.org/2008/universal-pain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comments Now Open</title>
		<link>http://www.bycrom.org/2008/comments-now-open/</link>
		<comments>http://www.bycrom.org/2008/comments-now-open/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 17:36:37 +0000</pubDate>
		<dc:creator>Tastic</dc:creator>
				<category><![CDATA[Informative]]></category>

		<guid isPermaLink="false">http://www.bycrom.org/?p=19</guid>
		<description><![CDATA[I turned on Akismet and opened the comments up to all instead of just users. I figured that registering just to make a comment is a pain. The previous policy was only there to control spam, but that&#8217;s what plugins like Akismet are for.
I&#8217;ll still keep a tight reign over the comments, so I reserve the right [...]]]></description>
			<content:encoded><![CDATA[<p>I turned on <a href="http://akismet.com/">Akismet</a> and opened the comments up to all instead of just users. I figured that registering just to make a comment is a pain. The previous policy was only there to control spam, but that&#8217;s what plugins like Akismet are for.</p>
<p>I&#8217;ll still keep a tight reign over the comments, so I reserve the right to remove comments that are off-topic, offensive, or are overly-argumentative.</p>
<p>Flames &amp; Rants</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bycrom.org/2008/comments-now-open/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finishing the Fight [Updated]</title>
		<link>http://www.bycrom.org/2008/finishing-the-fight/</link>
		<comments>http://www.bycrom.org/2008/finishing-the-fight/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 11:40:56 +0000</pubDate>
		<dc:creator>Tastic</dc:creator>
				<category><![CDATA[Informative]]></category>

		<guid isPermaLink="false">http://www.bycrom.org/2008/finishing-the-fight/</guid>
		<description><![CDATA[Halo 3 really sunk its teeth into me. I wasn&#8217;t interested in it before launch, but after playing it a little at a friend&#8217;s place, I became a fanatic for the series. After a long stretch of gaming, this subsided and I could once again function normally.
Well, the bastards are sinking me back in this [...]]]></description>
			<content:encoded><![CDATA[<p>Halo 3 really sunk its teeth into me. I wasn&#8217;t interested in it before launch, but after playing it a little at a friend&#8217;s place, I became a fanatic for the series. After a long stretch of gaming, this subsided and I could once again function normally.</p>
<p>Well, the bastards are sinking me back in this weekend since I just learned about a goal to make seven billion kills in the campaign by July 7. <a href="http://www.bungie.net">Bungie</a> keeps a running count of confirmed kills in campaign, and at <a href="http://www.wowunited.net">wowunited.net</a> they have this <a href="http://www.wowunited.net/halo/">nifty stats page</a>. I ran through the campaign on normal last night and this morning. I&#8217;ll undoubtedly do it at least once more before Monday. I&#8217;d also encourage anyone out there to do the game.</p>
<p>Guns &amp; Ammo</p>
<p><strong>Update:</strong> Bungie Day has come and passed. Didn&#8217;t make the seven billion goal, but it was a valiant effort. I checked the count with a little less than 30 minutes before it ran out and the kill count was an impressive 6.951,005,525. Also, that nifty stats page wasn&#8217;t meant to be viewed after the countdown, so the numbers got a little funny.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bycrom.org/2008/finishing-the-fight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chain Letter Email</title>
		<link>http://www.bycrom.org/2008/chain-letter-email/</link>
		<comments>http://www.bycrom.org/2008/chain-letter-email/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 16:24:57 +0000</pubDate>
		<dc:creator>Tastic</dc:creator>
				<category><![CDATA[Rants]]></category>

		<guid isPermaLink="false">http://www.bycrom.org/2008/chain-letter-email/</guid>
		<description><![CDATA[Seriously? This stuff still exists? Today I got one of the old-timey chain letter emails. It had a sob story and a rigged moral choice at the end to &#8220;Do the Right Thing&#8221; and forward to all of your coworkers and friends. If you didn&#8217;t, you are clearly a cold-hearted son-of-a-bitch and I&#8217;m sure you&#8217;ll [...]]]></description>
			<content:encoded><![CDATA[<p>Seriously? This stuff still exists? Today I got one of the old-timey chain letter emails. It had a sob story and a rigged moral choice at the end to &#8220;Do the Right Thing&#8221; and forward to all of your coworkers and friends. If you didn&#8217;t, you are clearly a cold-hearted son-of-a-bitch and I&#8217;m sure you&#8217;ll get your comeuppance. Well, yes. Yes, I am, and undoubtedly I will. The moral choice of forward like a good little sheep or delete like a cruel bastard was a clear choice to me, and my trash can gets a new entry.</p>
<p>I thought this stuff died in the 90s as I certainly yelled enough at anyone doing it then, but it appears I&#8217;m not done yelling yet. It might be the spread of good will or it might be a vicious trap to get a bunch of confirmed working email address to target spam at. Either way, I don&#8217;t care. This is something that has always annoyed me, and I won&#8217;t participate. You hear me out there? Do you?</p>
<p>Ok. I&#8217;m calm now. Anyways, been a while since I posted an update. The theme got a few improvements, namely PNGs with transparency. That&#8217;ll require IE 7 or greater to display properly&#8230; or any other vendor&#8217;s browser made in the last decade. A friend of mine pointed out that it&#8217;s not a big deal as most IE users already have upgraded and this aims to be a techie site. It does make the gradients flow better and the image size smaller, so I&#8217;m somewhat happy about that.</p>
<p>Popcorn &amp; Sunshine</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bycrom.org/2008/chain-letter-email/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Revised First Post</title>
		<link>http://www.bycrom.org/2008/revised-first-post/</link>
		<comments>http://www.bycrom.org/2008/revised-first-post/#comments</comments>
		<pubDate>Thu, 22 May 2008 21:34:35 +0000</pubDate>
		<dc:creator>Tastic</dc:creator>
				<category><![CDATA[Informative]]></category>

		<guid isPermaLink="false">http://www.bycrom.org/2008/revised-first-post/</guid>
		<description><![CDATA[Just to drop a quick note, I updated my first post to have a different title and link. There was originally going to be a naming convention for posts that I ultimately decided against. So I thought it might be good to pretend it never happened.
In other news, I&#8217;m considering a few more theme changes [...]]]></description>
			<content:encoded><![CDATA[<p>Just to drop a quick note, I updated my first post to have a different title and link. There was originally going to be a naming convention for posts that I ultimately decided against. So I thought it might be good to pretend it never happened.</p>
<p>In other news, I&#8217;m considering a few more theme changes and will likely get hung up on a few of them before posing anything else &#8220;real&#8221;. A few things like text sizes and column widths could be adjusted. I&#8217;ll post more when I implement them.</p>
<p>Cowboys &amp; Indians</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bycrom.org/2008/revised-first-post/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is Subversion Too Hard?</title>
		<link>http://www.bycrom.org/2008/subversion-hard/</link>
		<comments>http://www.bycrom.org/2008/subversion-hard/#comments</comments>
		<pubDate>Thu, 22 May 2008 10:03:46 +0000</pubDate>
		<dc:creator>Tastic</dc:creator>
				<category><![CDATA[Version Control]]></category>

		<guid isPermaLink="false">http://www.bycrom.org/2008/subversion-hard/</guid>
		<description><![CDATA[Subversion seems makes a very good amount of sense. It has some drawbacks and some benefits. Some developers prefer different models of source control, some companies only use certain source control systems, but everybody on the same page that it is simple enough to understand and use, right?
Well, maybe not. People who are not familiar [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://subversion.tigris.org/">Subversion</a> seems makes a very good amount of sense. It has some drawbacks and some benefits. Some developers prefer different models of source control, some companies only use certain source control systems, but everybody on the same page that it is simple enough to understand and use, right?</p>
<p>Well, maybe not. People who are not familiar with the concept sometimes have a great deal of difficulty getting over the first few steps. There are tools like <a href="http://tortoisesvn.tigris.org/">Tortoise SVN</a> can help a great deal in instructing users, but there still remains the question of if it is suitable people who are not developers. Ah, there&#8217;s the key. You were probably wondering why someone wouldn&#8217;t suck it up and go read the <a href="http://svnbook.red-bean.com/">book</a>. Well, at the company I work at we exposed subversion to everyone, not just programmers. People who work with the software configuration, the reporting tools, and files used in data conversion are all instructed to use the repositories. We had to create rules to were the files go, I&#8217;ve had to help people with sandboxes they&#8217;ve broken, instruct them on how to use the tools, and fix their mistakes. The company is pretty small so I&#8217;m not sure we could handle a more controlled process that doesn&#8217;t require giving them control of the files, but I&#8217;m becoming less sure that introducing the concept of a code repository was a good thing.</p>
<p>Before we had file shares to hold most of this data. That had problems with tracking what was changed or accidentally deleted, but it was simple. Well, it was simple until they decided to start &#8220;versioning&#8221; the files with dates in the name or having more than one person working on the configuration at a time. So we brilliant developers smacked them and told them to just use the repository instead. However, it still took time to break them of putting dates in the filename, and they are not putting in meaningful log messages, so tracking changes is still a problem.</p>
<p>Now I&#8217;m wondering if the file share was a better concept and just have a nightly automated task suck the files into the repository, but I&#8217;d lose the ability to see who done what. What I think I really want is to have a single developer to be the point of contact for all official product configuration changes. This would cause much better review and tracking ability, but that&#8217;s more resources than we can afford to spend.</p>
<p>One thing I am sure on is that you should maintain separate repositories. The muck is also in the same repository as the code, which might be why this is my problem instead of the technical leads in implementation. Sigh.</p>
<p>Cops &amp; Robbers</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bycrom.org/2008/subversion-hard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Theme</title>
		<link>http://www.bycrom.org/2008/theme/</link>
		<comments>http://www.bycrom.org/2008/theme/#comments</comments>
		<pubDate>Sun, 11 May 2008 22:02:30 +0000</pubDate>
		<dc:creator>Tastic</dc:creator>
				<category><![CDATA[Informative]]></category>

		<guid isPermaLink="false">http://www.bycrom.org/2008/theme/</guid>
		<description><![CDATA[I&#8217;ve been working on the theme for the site over the last month, and I think it&#8217;s finally at a state that I can start posting some content.
The look was designed mostly around Apple&#8217;s Safari web browser, so I took advantage of some of the features available in it.
I plan on making a few changes [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on the theme for the site over the last month, and I think it&#8217;s finally at a state that I can start posting some content.<br />
The look was designed mostly around Apple&#8217;s Safari web browser, so I took advantage of some of the features available in it.<br />
I plan on making a few changes over the next few months to make the look consistent everywhere, but it is usable enough for the moment.</p>
<p>A TODO file in the theme lists the following:</p>
<ul>
<li>Search bar: I&#8217;m not sure I like the look of this yet, and the image could use some improvement</li>
<li>Logo: the site does not have one</li>
<li>Borders: Safari rounds and shadows well, but it would be good to find a more cross-browser approach like border images</li>
<li>Images: the images could use some work, the pinstripes don&#8217;t scale well and some of the gradients could be smoother</li>
<li>Image Format: choose jpegs at first, consider switching to pngs</li>
</ul>
<p>The theme itself is available for download on the Downloads page.</p>
<p>If you have any suggestions or improvements to the style sheet that you would like to suggest, please do so in the comments for this and future posts regarding the theme.<br />
You will need to register a username with the site for make comments.</p>
<p>Puppies &amp; Kittens</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bycrom.org/2008/theme/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

