The Humble GeekStuff I write.2023-10-22T19:48:30-05:00Michael Cronenworthurn:md5:df5c6c639b5d69909d67e94f93cf8b11DotclearUpgrading my viewing experience for 4Kurn:md5:e1e570ecf11db2c77eb7074ce8e7dd4b2020-10-26T13:50:00-05:002021-05-29T20:56:58-05:00Michael Cronenworth <p>The world has been slowly transitioning to "4K" video for the past 5 years. The leap from 1080p "Full HD" (FHD) to 2160p "Ultra HD" (UHD) is riddled with a few alternative sizes, codecs, and optional features. After playing the waiting game long enough I felt it was finally time to upgrade my HTPC that powers my main media consumption to support the new media formats.</p>
<h4>Origin Story</h4>
<p>Almost eight years ago today on November, 2012, I purchased my original home theater PC (HTPC). The target was something that would play 1080p FHD video and audio through an HDMI connection. I'll also list the original purchase prices from that time.</p>
<ul>
<li>Motherboard: ASUS P8Z77-I DELUXE (Mini-ITX) - $179.99</li>
<li>CPU: Intel Core i3-3225 (3.3Ghz Ivy Bridge, 2-core, 4-thread) - $129.99</li>
<li>RAM: 2x4GB G.Skill DDR3-1600 CL9 1.25v - $42.99</li>
<li>Total: $352.97 ($0 sales tax)</li>
</ul>
<p>At the same time I also had to buy the mini-ITX case, SSD, and slot-load blu-ray drive, but those are still in use today. This system was capable of playing the most common video codec of the time, H.264, but that codec is being slowly phased out for the future alternatives of H.265, VP9, and AV1. The i3 CPU can only offload H.264 processing so some, high quality "4K" media using H.265 or VP9 would stutter on playback.</p>
<h4>The Upgrade</h4>
<ul>
<li>Motherboard: Gigabyte B450 I AORUS PRO WIFI - $119.99</li>
<li>CPU: AMD Ryzen 5 3400G - $134.99</li>
<li>RAM: 2x8GB Crucial DDR4-3600 CL16 1.35v - $74.99</li>
<li>Total: $357.19 ($27.22 sales tax)</li>
</ul>
<p>So for roughly the same price (or cheaper sans sales tax and inflation) I was able to get a "4K"-ready replacement system. The motherboard and CPU are HDMI 2.0b compatible so I should be able to play any current "4K" media. The CPU can offload processing of H.264, H.265, and VP9. All 4K media I have thrown at it has played smoothly as expected. The AV1 codec will be supported in 2021-2022 CPUs, but if it is anything like the adoption rate of H.265 it will be a few years before it is in widespread use.</p>
<h4>Benchmarks</h4>
<p>An ulterior motive for the upgrade was to also be able to play a few games. The i3 could play very basic games, or I could use Steam remote play, but I wanted something more robust. The 3400G provides that. All benchmarks used the same SSD so software was identical. Fedora 32 was the base OS and was fully updated as of October 23, 2020. Base software: Kernel 5.8.15, Mesa 20.1.10.</p>
<h5>Unigine Heaven</h5>
<ul>
<li>Resolution: 1920x1080</li>
<li>Quality: High</li>
<li>FSAA: Disabled</li>
<li>Tesselation: Disabled</li>
</ul>
<p><img src="https://michael.cronenworth.com/dotclear/public/Benchmarks/htpc-unigine-benchmark-2020.png" alt="htpc-unigine-benchmark-2020.png, Oct 2020" style="display:table; margin:0 auto;" title="htpc-unigine-benchmark-2020.png, Oct 2020" /></p>
<h5>VA-API</h5>
<p>Test File: 1980x1080, 60FPS, 14Mbit H.264 Video, 13 minutes long
<a href="https://michael.cronenworth.com/dotclear/public/Benchmarks/vaapi-benchmark-2020.png" title="vaapi-benchmark-2020.png, Oct 2020"><img src="https://michael.cronenworth.com/dotclear/public/Benchmarks/.vaapi-benchmark-2020_m.png" alt="vaapi-benchmark-2020.png, Oct 2020" style="display:table; margin:0 auto;" title="vaapi-benchmark-2020.png, Oct 2020" /></a></p>
<h5>Power Utilization</h5>
<ul>
<li>Core i3 System - Idle: 32 watts</li>
<li>Ryzen 5 System (Overlocked) - Idle: 21 watts</li>
<li>Core i3 System - FHD Movie: 38 watts</li>
<li>Ryzen 5 System (Overlocked) - FHD Movie: 30 watts</li>
<li>Ryzen 5 System (Overlocked) - UHD Movie: 39 watts</li>
</ul>Race Car 2.0 Build Log - 2006 BMW M3urn:md5:f1fde287c213d00e17043808faba25be2020-02-09T19:46:00-06:002021-05-29T20:52:38-05:00Michael Cronenworth <p>Race Car 1.0 was in my possession for almost 10 years until a road accident totalled it. Version 2.0 is built upon previous knowledge and newer products now available. The following lists and photos detail building the new car from stock back to a track ready vehicle.</p>
<p><u><strong>New parts list</strong></u></p>
<ol>
<li>Autopower Race Rollbar</li>
<li>MCS 2-way adjustable coilovers w/ true rear coilovers</li>
<li>Front: 600lbs / Rear: 350lbs Hypercoil 2.25" springs</li>
<li>DIFtech Camber Plates</li>
<li>Turner Motorsport Monoball FCABs</li>
<li>Bimmerworld v3 Brake Lines w/ heat shielding</li>
<li>Castrol SRF Brake Fluid</li>
<li>Redish Subframe Reinforcement</li>
<li>CMP RTABs</li>
<li>CMP Raising Subframe Bushings</li>
<li>Bimmerworld Premium Studs 82mm</li>
<li>Brake Ducting (3" Orange, 450 degree rated)</li>
<li>eBay Chinese Fog Light / Brake Duct bumper mounts</li>
<li>Custom CNC generated rear shock tower reinforcement</li>
</ol>
<!--DEBUT DE LA GALERIE-->
<div id="galleriagroup901959542">
<ul class="galleryinsert" style="padding-left:0px">
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20191101_104258a.jpg" class="dbg1657146686" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20191101_104258a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20200112_164257a.jpg" class="dbg1657146686" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20200112_164257a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20200112_163047a.jpg" class="dbg1657146686" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20200112_163047a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20191207_163123a.jpg" class="dbg1657146686" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20191207_163123a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20191102_160930a.jpg" class="dbg1657146686" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20191102_160930a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20191107_225253a.jpg" class="dbg1657146686" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20191107_225253a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20191107_225520a.jpg" class="dbg1657146686" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20191107_225520a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20191205_201918a.jpg" class="dbg1657146686" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20191205_201918a_sq.jpg" alt=""/></a></li>
</ul>
<script type="text/javascript">$(document).ready(function() {
Galleria.run("#galleriagroup901959542",{imageCrop:false, imagePan:true, lightbox:true, width:'100%', height:400});
});</script></div>
<!--FIN DE LA GALERIE-->
<p><u><strong>Used parts list</strong></u></p>
<ol>
<li>Status race seats</li>
<li>PCI race seat slider mounts</li>
<li>6 point Schroth Profi II harnesses</li>
<li>OEM Euro headers (ceramic coated)</li>
<li>Brake duct plates</li>
<li>Braided stainless high pressure power steering line</li>
<li>Ground Control Race Front Sway Bar</li>
<li>Turner Motorsport Rear Control Arms</li>
<li>18x10 CCW Corsair wheels w/ Pirelli DH slicks</li>
</ol>
<p><u><strong>Work list</strong></u></p>
<ol>
<li>Gutted fiberglass from stock muffler and welded plates over perforated pipe sections</li>
<li>Power steering flush</li>
<li>Brake fluid flush</li>
<li>Differential fluid flush</li>
<li>Flash custom tune built with hex editor and XDF files/Tuner Pro</li>
</ol>
<!--DEBUT DE LA GALERIE-->
<div id="galleriagroup1835333817">
<ul class="galleryinsert" style="padding-left:0px">
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20200115_130331a.jpg" class="dbg1540693128" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20200115_130331a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20200115_130337a.jpg" class="dbg1540693128" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20200115_130337a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20200115_131258a.jpg" class="dbg1540693128" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20200115_131258a_sq.jpg" alt=""/></a></li>
</ul>
<script type="text/javascript">$(document).ready(function() {
Galleria.run("#galleriagroup1835333817",{imageCrop:false, imagePan:true, lightbox:true, width:'100%', height:400});
});</script></div>
<!--FIN DE LA GALERIE-->
</p>
<p><u><strong>Post-Installation Gallery</strong></u></p>
<!--DEBUT DE LA GALERIE-->
<div id="galleriagroup1998399023">
<ul class="galleryinsert" style="padding-left:0px">
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20200201_103151a.jpg" class="dbg1084759791" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20200201_103151a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20200202_124140a.jpg" class="dbg1084759791" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20200202_124140a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20200202_124454a.jpg" class="dbg1084759791" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20200202_124454a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20200209_133015a.jpg" class="dbg1084759791" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20200209_133015a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20200202_125417a.jpg" class="dbg1084759791" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20200202_125417a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20200202_125456a.jpg" class="dbg1084759791" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20200202_125456a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20200202_193247a.jpg" class="dbg1084759791" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20200202_193247a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20200202_193307a.jpg" class="dbg1084759791" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20200202_193307a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20200207_153533a.jpg" class="dbg1084759791" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20200207_153533a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20200207_152919a.jpg" class="dbg1084759791" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20200207_152919a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20200207_160110a.jpg" class="dbg1084759791" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20200207_160110a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20200207_160308a.jpg" class="dbg1084759791" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20200207_160308a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20200207_160359a.jpg" class="dbg1084759791" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20200207_160359a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20200207_160517a.jpg" class="dbg1084759791" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20200207_160517a_sq.jpg" alt=""/></a></li>
<li><a href="https://michael.cronenworth.com/dotclear/public/RaceCar/IMG_20200207_160610a.jpg" class="dbg1084759791" title=""><img src="https://michael.cronenworth.com/dotclear/public/RaceCar/.IMG_20200207_160610a_sq.jpg" alt=""/></a></li>
</ul>
<script type="text/javascript">$(document).ready(function() {
Galleria.run("#galleriagroup1998399023",{imageCrop:false, imagePan:true, lightbox:true, width:'100%', height:400});
});</script></div>
<!--FIN DE LA GALERIE-->
Calm the hysteria, security patch performance is OKurn:md5:7285b169d72b8cb1fbb50c68ac39e3812018-01-12T10:23:00-06:002021-05-29T20:54:58-05:00Michael Cronenworthbenchmarkinglinuxwindows<p>Unfortunately some bad benchmark data has caused a stir among the greater Internet community. I have chosen to perform my own independent benchmark tests to see if the security patches for Meltdown and Spectre introduce any harm to my everyday life. TL;DR: They don't in the slightest.</p> <p>The following series of benchmarks are intended to see if desktop PC usage is harmed in any way.</p>
<p>I chose benchmarks of usage I see everyday at my desktop PC. From ffmpeg, to system boot time, to sequential read/write SSD speeds, to synthetic benchmark comparison of bare hardware and a virtual machine, these tests should give a picture if there is any performance delta to be worried about or if I should investigate further with different benchmarks.</p>
<h3>Benchmark Setup</h3>
<ul>
<li>Pre-mitigation: Kernel 4.14.8 and old microcode</li>
<li>Post-mitigation: Kernel 4.14.13 and 2018 microcode</li>
<li>CPU: Intel Core i7 4790k</li>
<li>SSD: Samsung 850 Pro 1TB</li>
</ul>
<h3>FFmpeg</h3>
<p>The source material is some footage from my Canon HFS100 camcorder. It records a 1080i 60 fps video feed at 24Mb per second. I routed the output to /dev/null so these tests only test hard drive reads, CPU, and RAM throughput. There was no discernible difference in encoding speed. In fact I felt there was a small (<1%) performance boost with the post-mitigation setup, but you cannot see it in the results.</p>
<ul>
<li>Faster: -c:v libx264 -c:a flac -preset faster -crf 23 -f matroska -t 00:01:00</li>
<li>Slower: -c:v libx264 -c:a flac -preset slower -crf 21 -f matroska -t 00:01:00</li>
</ul>
<p><img src="https://michael.cronenworth.com/dotclear/public/Benchmarks/.ffmpeg_m.png" alt="ffmpeg.png" style="display:table; margin:0 auto;" title="ffmpeg.png, Jan 2018" /></p>
<h3>System Bootup</h3>
<p>There was also no discernible difference in boot time. There are many moving pieces, from file I/O, to the kernel loading drivers, and user-space daemons loading, and none of that was effected by the security updates.</p>
<p><img src="https://michael.cronenworth.com/dotclear/public/Benchmarks/.systemd-analyze_m.png" alt="systemd-analyze.png" style="display:table; margin:0 auto;" title="systemd-analyze.png, Jan 2018" /></p>
<h3>Sequential Read and Write</h3>
<p>Again, no difference. I used the Gnome Disks tool. Very basic, sure, but if I were to see any significant dip I would run a more intensive test using a different tool.</p>
<p><img src="https://michael.cronenworth.com/dotclear/public/Benchmarks/.gnome-disks_m.png" alt="gnome-disks.png" style="display:table; margin:0 auto;" title="gnome-disks.png, Jan 2018" /></p>
<h3>Bare Hardware vs VirtualBox</h3>
<p>Almost every day I use a virtual machine with Windows because of a specific software requirement for either my job or my hobbies. There are very few cross-platform benchmarks so I used the first Google result - Geekbench. The VM is set to 1 CPU, 4 GB RAM so the multi-core tests won't be very accurate, but I've included it anyway. VirtualBox 5.2.2 and a Windows 8.1 guest patched up to Nov. 2017 was used for this test.</p>
<p><img src="https://michael.cronenworth.com/dotclear/public/Benchmarks/.geekbench-single_m.png" alt="geekbench-single.png" style="display:table; margin:0 auto;" title="geekbench-single.png, Jan 2018" /></p>
<p><img src="https://michael.cronenworth.com/dotclear/public/Benchmarks/.geekbench-multi_m.png" alt="geekbench-multi.png" style="display:table; margin:0 auto;" title="geekbench-multi.png, Jan 2018" /></p>
<p>All of the above tests were performed 3 times per test and averaged into charts.</p>
<p>One interesting note I will end with: The kernel now consumes an additional ~3MB of RAM.</p>
<ul>
<li>4.14.8: (8990K kernel code, 1538K rwdata, 3724K rodata, 2060K init, 1380K bss, 444228K reserved, 0K cma-reserved)</li>
<li>4.14.13: (12300K kernel code, 1546K rwdata, 3728K rodata, 2108K init, 1364K bss, 448600K reserved, 0K cma-reserved)</li>
</ul>Linux is [Unfortunately] About Choiceurn:md5:106ab7932306aeb56f8dbfb09cc1dff92015-02-18T18:15:00-06:002015-02-18T18:15:00-06:00Michael Cronenworthfreedomlinux <p>Ask anyone to name things they find wrong with the Linux ecosystem. I expect you'll get responses along the line of:</p>
<ul>
<li>GNOME sucks</li>
<li>KDE sucks</li>
<li>GCC sucks</li>
<li>Firefox sucks</li>
<li>GPLv2 sucks</li>
<li>RPM sucks</li>
<li>Gaming sucks</li>
</ul>
<p><br />
What's the solution most commonly found? "Fork it, bro!"</p>
<p>Forking software is a legitimate reason under specific circumstances:</p>
<ul>
<li>Licensing</li>
<li>M.I.A. upstream</li>
</ul>
<p><br />
Successful, legitimate forks:</p>
<ul>
<li>LibreOffice</li>
<li>MariaDB</li>
<li>X.org</li>
</ul>
<p><br />
Forking is not a clear right to do anything you want such as creating a new distribution with a new, cool name and flashy art logos. Bad forking reasons:</p>
<ul>
<li>I want to make a name for myself</li>
<li>I want a different desktop environment</li>
<li>I want a different desktop wallpaper</li>
</ul>
<p><br />
"Why not? I certainly am going to fork it!"</p>
<p>Yes, there is enough software produced for one person to be able to quickly and easily create an ISO file for users to download and call a new distribution. Before you say, yes, ask yourself these questions:</p>
<ul>
<li>Do I have at least 5 people to provided a full-time job's worth of time to it?</li>
<li>Do I / they have enough time to apply security patches and / or update to the latest upstream version for a majority of the software?</li>
<li>Do you serve a product that provides a clear purpose other than a new desktop or flashy art?</li>
</ul>
<p><br />
All it takes is one "no" answer to put an end to your forking dreams. Just Don't Do It.</p>Passion in Businessurn:md5:6cb6265a3e828d458a74d761f35edbce2015-02-16T17:00:00-06:002015-02-16T17:00:00-06:00Michael Cronenworth <p>Suppose we live in a perfect world where everyone is content and their every need is satisfied. It doesn't exist. Our planet runs on consumerism. "Business as usual." What's keeping us going? That threat of no job? No money to buy cigerettes and beer?</p>
<p>Workers clock in for their 8 to 5 shift at the same time and clock out like no tomorrow will be different. They follow meetings and schedules and policies as if they have been set in stone since the dawn of time. Without question and without opinion.</p>
<p>Countless pieces of rhetoric have touched on this subject so it may seem redundant or frivolous, but I digress because if it was no longer an important issue we would no longer be talking about it. (See: Fight Club, The Matrix, THX 1158)</p>
<p>I propose a new purpose in the workplace. When you're given a task try to think about all of the possibilities that could be drawn from it. Positive <strong>and</strong> negative conclusions can drive the project into a direction that makes sense. More nay-sayers and less yes-men.</p>
<p>Find a more efficient way to use your time? Speak up!</p>Ugly Cars Olympicsurn:md5:84d9058a32aa39dee1e71919c32386172014-06-28T19:47:00-05:002014-06-28T19:47:00-05:00Michael Cronenworthcarsdumbening <p>The following vehicles are so ugly that I cannot post photos of them as they would otherwise tarnish this fine establishment. Just image search if you have been living under a rock.</p>
<p><strong>Bronze: 2000-2010 VW Beetle</strong></p>
<p>What started off as an economical and functional car (see 60s Beetle) ended up being a marketing tool to drive sales. This must be the most plain vehicle ever designed. Its symetrical body leaves nothing to the imagination. If you're caught driving one your masculinity will be in question.</p>
<p><strong>Silver: Chrysler PT Cruiser</strong></p>
<p>An original design that was never warranted. Undoubtably the people in Detroit that put this monstrosity together all patted themselves on their back as it sold more than it ever should have. Is it a "beach-going" car? Is it a "fun-economical" car? Neither. It looks best in a car crusher.</p>
<p><strong>Gold: Pontiac Aztek</strong></p>
<p>Without contest, the Aztek takes gold. It's received countless commedations across numerious publications for being butt ugly. Amazingly there are individuals who have paid with their hard-earned money for one of these. I would love the opportunity to interview an owner and find the source of their desire for the ugliest car on the planet. It would be a sincere and cordial interview of course.</p>Dressing to Unimpressurn:md5:f7ebf5417b25c7d22c5dea639a450a082014-04-18T19:00:00-05:002014-04-19T13:11:20-05:00Michael Cronenworthhumblingvanity <p>Contrary to popular belief the purpose of church is to further educate your spirit and renew your faith in God. When people worshipped in temples that had bare earth for a floor and stone for benches they did not bear silk dresses or kahki slacks. Gathering for worship should be a casual encounter and not a date with Christ. I call upon Christians to keep their fancy attire locked in the closet and attend each Sunday with their everyday clothing (if it is a suit, so be it!).</p>
<p>My reasoning for my feelings? A touch of a sense of biggotry with a dash of vanity. We're taught to be humble and love one another. There are those that do not have the benefit of a Sunday outfit and we should not exclude anyone by an unspoken expectation of one. A change of dress code would do us all a little good as church has become too much of a social function instead of a spritual one.</p>Third Times the Charmurn:md5:c03e5230f7e9da4d545f7a64e26c404b2012-08-24T21:10:00-05:002012-09-19T12:42:49-05:00Michael Cronenworth <p>I am putting in the call now. The Texas Rangers must win the World Series this year. The team has finally clicked and is firing on all cylinders. For most of the season they have flirted with the best record in the AL or MLB. They post high or first in the power rankings. No one else in the AL seems to be much of a threat unless <del>Tamba Bay</del> the Athletics keeps up their offense. I don't know what to make of the Reds or Nats in the NL until we face them in the WS, but I don't believe they are as good as us.</p>
<p>Why the urgency? I have a feeling after this year that the players entering free agency will part ways. Yes, the dugout is friendly and everyone are good friends but my instinct tells me Hamilton will depart for a larger contract. Other names may leave as well. This year is the year this team needs to win it all.</p>Crossing the Streams to the Playstation 3 (part 2)urn:md5:275176fa80a76eec16ab8954cff82ae02011-12-22T07:09:00-06:002011-12-22T07:09:00-06:00Michael Cronenworth <p>Lets say you have downloaded some TV shows. I won't ask where you got them, but I will show you how to play them on the PS3 through Mediatomb. This will require the patches mentioned in the part 1 post as video playing is pretty stupid without them.</p>
<p>First off, Mediatomb needs to know what to do with .mkv files on your computer. The PS3 has no idea how to play Matroska containers unfortunately. It would be a simple and free (as in speech) for Sony to implement, but that's too hard for them to do without money or IP rights in their favor. The following settings will tell Mediatomb to stream MKV files as MPEG files and use ffmpeg to transcode.</p>
<p><strong>/etc/mediatomb/config.xml</strong></p>
<pre>
<extension-mimetype ignore-unknown="no">
<map from="mkv" to="video/x-matroska"/>
... other maps already exist, don't delete them ...
</extension-mimetype>
... skip down to the <profiles> tag and add this block...
<profile name="video-matroska" enabled="yes" type="external">
<mimetype>video/mpeg</mimetype>
<accept-url>no</accept-url>
<first-resource>yes</first-resource>
<hide-original-resource>yes</hide-original-resource>
<agent command="ffmpeg-tr" arguments="%in %out %range" />
<buffer size="10485760" chunk-size="524288" fill-size="0"/>
</profile>
</pre>
<p>The following are a few "ffmpeg-tr" script file examples. Ffmpeg has a few options as I have come to find out that the PS3 is a bit picky at video encodings. If you do not have a flawlessly encoded file the PS3 will most likely not play the file.</p>
<p>The first example will require a fast machine (at least 4 cores) as it reencodes the video into a fresh H.264 stream and leaves the audio intact. Use this if the video file you have is skipping or not even playing on the PS3.</p>
<p><strong>/usr/local/bin/ffmpeg-tr</strong></p>
<pre>
#!/bin/bash
START_SECONDS=`echo "$3" | awk '{split($0,a,"-"); print a[1]}'`
MILLISECONDS=`echo "$START_SECONDS" | awk '{split($0,a,"."); print a[2]}'`
START_TIME=`echo $START_SECONDS | awk '{print strftime("%H:%M:%S", $0,1)}'`
START="$START_TIME.$MILLISECONDS"
END_SECONDS=`echo "$3" | awk '{split($0,a,"-"); print a[2]}'`
if [ -z $END_SECONDS ]
then
MILLISECONDS=`echo "$END_SECONDS" | awk '{split($0,a,"."); print a[2]}'`
END_TIME=`echo $END_SECONDS | awk '{print strftime("%H:%M:%S", $0,1)}'`
END="$END_TIME.$MILLISECONDS"
fi
exec /usr/bin/ffmpeg -threads 4 -r 24000/1001 -i "$1" -vcodec libx264 -b 8000k -preset faster -level 41 -r 24000/1001 -vsync 1 -acodec copy -async 1 -f mpegts - > "$2"
</pre>
<p>If your video file is in good shape, then you can get away without encoding anything. Most .mkv files are already in video formats the PS3 will play (h.264 video, AC3/Dolby audio) so you can get away with a direct copy of the data. This requires very little computing power so any computer can do this.</p>
<p><strong>/usr/local/bin/ffmpeg-tr</strong></p>
<pre>
#!/bin/bash
START_SECONDS=`echo "$3" | awk '{split($0,a,"-"); print a[1]}'`
MILLISECONDS=`echo "$START_SECONDS" | awk '{split($0,a,"."); print a[2]}'`
START_TIME=`echo $START_SECONDS | awk '{print strftime("%H:%M:%S", $0,1)}'`
START="$START_TIME.$MILLISECONDS"
END_SECONDS=`echo "$3" | awk '{split($0,a,"-"); print a[2]}'`
if [ -z $END_SECONDS ]
then
MILLISECONDS=`echo "$END_SECONDS" | awk '{split($0,a,"."); print a[2]}'`
END_TIME=`echo $END_SECONDS | awk '{print strftime("%H:%M:%S", $0,1)}'`
END="$END_TIME.$MILLISECONDS"
fi
exec /usr/bin/ffmpeg -threads 4 -i "$1" -vcodec copy -vbsf h264_mp4toannexb -acodec copy -copyts -copytb -f mpegts - > "$2"
</pre>
<p>You can also mix and match between re-encoding audio only or both video and audio.</p>Crossing the Streams to the Playstation 3 (part 1)urn:md5:2bfa497198ddf05f45f6f69c32d2ad4c2011-10-18T21:57:00-05:002011-10-18T21:57:00-05:00Michael Cronenworthlinuxsound <p>I wish I didn't have to write this article, but when there's a dozen audio formats, a dozen video formats, and a dozen media containers there's only one result: headaches. If you own a Playstation 3, a Linux computer, and have <a href="http://mediatomb.cc/" hreflang="en" title="Mediatomb">Mediatomb</a> installed, you can take advantage of the UPnP feature on the PS3 to play your audio or video over the network. This part 1 of 2 posting will start with audio.</p>
<h2>FLAC to PCM</h2>
<p>The Playstation 3 is a funny thing when it comes to audio. If you only have Optical (TosLink) or Coax audio output you're stuck with 48kHz sample rate. If you have HDMI you can go higher. The example below will get you FLAC transcoding into 48kHz PCM that the Playstation 3 will play.</p>
<p><strong>/etc/mediatomb/config.xml</strong></p>
<pre>
<profile name="audio-flac" enabled="yes" type="external">
<mimetype>audio/L16</mimetype>
<accept-url>no</accept-url>
<first-resource>yes</first-resource>
<hide-original-resource>yes</hide-original-resource>
<accept-ogg-theora>no</accept-ogg-theora>
<sample-frequency>48000</sample-frequency>
<audio-channels>2</audio-channels>
<agent command="ffmpeg-flac" arguments="%in %out" />
<buffer size="4194304" chunk-size="262144" fill-size="0"/>
</profile>
</pre>
<p><strong>/usr/local/bin/ffmpeg-flac</strong></p>
<pre>
#!/bin/bash
exec /usr/bin/ffmpeg -threads 2 -i "$1" -ar 48000 -acodec pcm_s16be -f alaw - > "$2"
</pre>
<p>Why 48kHz? I have some 96kHz media so I'd rather it go to the PS3 at the best possible rate. The PS3 will resample to 48kHz if you choose to go with 44.1kHz anyway so you might as well go with 48kHz. You can up this to 96kHz on an HDMI connection, but I don't have one to test with.</p>
<h2>Extra Credit</h2>
<p>Mediatomb development does not seem very active, but some folks have made patches to add features that make streaming more enjoyable. One annoying part of streaming on the PS3 is the default grey music icon for your tracks. This can be replaced by the album art with <a href="http://sourceforge.net/tracker/?func=detail&aid=2960326&group_id=129766&atid=715782" hreflang="en">patch number one</a>. You can't seek in tracks either, but that is also negated with <a href="http://sourceforge.net/tracker/?func=detail&aid=3309436&group_id=129766&atid=715782" hreflang="en">patch number two</a>.</p>
<p>Coming up: Transcoding matroska containers into the best possible format.</p>Go Go Texas Rangersurn:md5:e86fbe994a032958acf9a4f2bfdbd96f2011-10-05T01:46:00-05:002021-05-29T20:53:18-05:00Michael Cronenworthsportstexas rangers <p><img src="https://michael.cronenworth.com/dotclear/public/Baseball/.texas-rangers_s.jpg" alt="texas-rangers.jpg" style="display:table; margin:0 auto;" title="texas-rangers.jpg, Oct 2011" />
This is the year I can feel it. The year the Texas Rangers win the World Series. Each player is continuing to play well in the playoffs. They might not be a constant force in every game, but every player has stepped up. TV commentators have been forced to mention how well the Ranger's batting order plays and how there is no real "number 9" slot.</p>
<p>In a perfect world they will sweep the National League team, which will work out perfectly for my Game 4 tickets. The NL teams look like they will be good competition though so I will just hope for a good Game 4 to go to.</p>
<p>Go Rangers!</p>Put This In Your Pipe and Market Iturn:md5:8db53c236f3e0a2a266cc1119f555ea62011-09-09T17:20:00-05:002011-09-09T17:20:00-05:00Michael Cronenworth <p>Places of higher education teach ways in exploiting the ignorance of the common man. Who'd a thunk it? Read on, if you dare, to find out the results of the Humble Geek marketing contest.</p>
<h2>Honorable Mention</h2>
<p>Inserting advertising into TV reruns is a new fashion statement.</p>
<h2>Second Place</h2>
<p>Restricted to late night or weekend time slots, informercials provide marketing in 30 minute episodes. Cheap slogans are what make or break these gems. Who can forget "set it and forget it!"?</p>
<h2>First Place</h2>
<p>The pinnacle of marketing gimmicks must be the 30-second "As Seen on TV" advertisement. In under a minute you are bombarded with how your life is too hard and how you should spend $19.95 plus some shipping and handling for, not one, but two easy cut knives and a bonus cooking pamphlet. The First World has too many problems and we must be saved.</p>We Take Our Existance in Vainurn:md5:ebdddbd88d4cea3b8f1c64e0523fa0aa2011-08-29T13:13:00-05:002011-08-29T13:13:00-05:00Michael Cronenworthdumbeningrandom <p><q>You know what really grinds my gears? When you pull out of a drive-thru window at a restaurant and you get behind some old guy going 5 below the speed limit.</q> --Old Chinese Proverb</p>
<ul>
<li>Gladiators (Animal fighting)</li>
</ul>
<p>Killing humans (and animals) in the name of sport.</p>
<ul>
<li>Saloons (Clubs)</li>
</ul>
<p>Killing brain cells in the name of finding a mate.</p>
<ul>
<li>Reality TV</li>
</ul>
<p>Killing common sense in the name of money.</p>
<ul>
<li>Social Networking</li>
</ul>
<p>Killing privacy in the name of information.</p>
<ul>
<li>Government Privilege</li>
</ul>
<p>Killing freedom in the name of power.</p>
<p>What do the bullet points have in common? A chronic disease found inside all living creatures that keeps us from being perfect: vanity. Heck, we even have a <a href="http://www.vanityfair.com" hreflang="en">magazine</a> that exclusively tailors to it!</p>
<p>Stop me if I'm being too obvious, but if we don't change now we are destined to have the film Idiocracy become a documentary.</p>Yearning to Learn Computer Programming?urn:md5:ad59b62b67b10686f3cc4e060ee3ee152011-08-08T10:35:00-05:002011-08-08T10:35:00-05:00Michael Cronenworthprogrammingtldr <p>Controlling the flow of electricity inside your computer is a phrase that sounds better than the noun I will blab about today: programming. Sure, you could read a "How-to Program in 30 Minutes!" book or Google search another blog for a lesson or two, but if you want to understand <strong>why</strong> instead of <strong>how</strong> programs function then please pay attention.</p>
<p><q>What programming language should I learn first?</q></p>
<p>Say what again. I dare you. Wrong question to ask. Understanding concepts and having common sense are far more important than the language. Those two qualities will carry over across multiple languages unless the language itself is poor. Specifically you must understand that your code must be generic and modular. These are not new concepts, but they are easily overlooked or not mentioned any more. Modern texts teach specific language techniques that get you running a basic program quickly, but when you attempt your own program you end up with something that will not compile.</p>
<p><q>Programming: think, design, analyze</q></p>
<p>Please be prepared to spend hours on a simple problem. If the first solution you think of involves a globally accessible variable and calling it directly across three functions there is probably another solution that puts the variable in a restricted name space. Never take the easy way out until you are certain it is the only way out. If in doubt speak out! Ask questions among other programmers and see if your idea is worth the bytes used to store it.</p>
<p><q>Redesign is fine</q></p>
<p>It is rare for me to accept the code I write the first time as good code. With this in mind, you should be prepared to see the code you write in the future. Don't become too attached to it as you may find out it has serious bugs that may require you to completely rewrite the code. Plan ahead by not only leaving good comments, but clearly defining test blocks. I have seen older code blocks with tests that are not obvious until I study three other source files. It should never take longer than a few minutes to catch up on code you have not seen in a while.</p>
<p><q>Show me the money</q></p>
<p>Ready to start programming? Start with globally used, free tools. The C and Python languages have large open source communities with tools that work on Windows, Linux, and OS X. Don't forget to save any code you write into a version control system. <a href="http://git-scm.com" hreflang="en">Git</a> is a good start. Using git alone is a good test to see if you can make it as a programmer or not.</p>The Time is Nowurn:md5:2a5acefd8d793688b768ef6e2c5bee972011-06-12T22:43:00-05:002021-05-29T20:57:41-05:00Michael Cronenworthdallas maverickssports <p><img src="https://michael.cronenworth.com/dotclear/public/Sports/.nba_g_mavsts10_m.jpg" alt="mavs-2011" title="mavs-2011, Jun 2011" />
A team that played team basketball has taken the 2011 NBA Championship. Congratulations are in order for the Dallas Mavericks as they put together a team of players that have tales of Finals lost but finally won their vindication tonight.</p>
<h2>There is No "I" in Team</h2>
<p><img src="https://michael.cronenworth.com/dotclear/public/Sports/.theFinalsinapictures_m.jpg" alt="dirk-on-lebron" title="dirk-on-lebron, Jun 2011" />
The 2011 NBA season was littered with media attention that was concentrated on two or three players and not a NBA team. I have no doubt that the off-season will be littered with what two or three players need to do instead of what a team needs to do to return to the NBA finals in 2012.</p>
<h2>What Will the Future Bring</h2>
<p>Will Kidd retire? Will there be any changes on the Dallas line up? I don't think anyone has a return trip for the Mavericks in their mind right now, but I believe it is possible. The team that had everyone in the media against them did what no one thought they could do. Go Mavs! See you in a few months!</p>Red Hat Ironyurn:md5:d4f1cb510a86ffc60fb269f01e2370c22011-01-15T08:00:00-06:002011-01-15T08:00:00-06:00Michael Cronenworthfreedomlinux <p>A company devoted to promoting open source initiatives uses one of the largest closed source database engines on the planet. Red Hat uses Oracle, in particular, with their Satellite software (a.k.a. Spacewalk). The bright light at the end of the tunnel is that they are switching to using PostgreSQL, however it is not a high priority so it may take another year or two before the transition is complete.</p>GT5: A Love/Hate Relationshipurn:md5:1ee28e6c3c38cbf795e9abc76a2215c42011-01-09T08:00:00-06:002021-05-29T20:58:15-05:00Michael Cronenworth <p>Six years in the making, then delayed by worries about piracy (which is already broken), Gran Turismo 5 hopes to push up the bar in car simulation games. How does it fair? Follow me as I review a few aspects of the game that left an impression on me.</p>
<p><img src="https://michael.cronenworth.com/dotclear/public/Gaming/.N__rburgring_GP_F_1_m.jpg" alt="gt5" style="display:table; margin:0 auto;" title="gt5, Jan 2011" /></p>
<p>The game has been polished with the most expensive car wax Sony could buy. The Premium cars, tracks, and photo mode are definitely great pieces of eye candy. However, the Standard cars are a big eye sore when you have one next to a Premium. It's unfortunate that Standard cars were not at least given a larger resolution skin for their bodies.</p>
<p>All of the traditional Gran Turismo tracks are present along with a few new ones. The license tests unlock the full Nürburgring track. The snow and dirt tracks bring a new, challenging races. Then there's the Top Gear track, from one of my favorite shows. It's more difficult than it looks on television.</p>
<p>Now to get down and dirty. The computer racers do not have a clue that you exist in the race. I will be repeatedly rammed from behind or side swiped by turning cars. More than once I have had to restart a race due to an AI driver knocking me off track. This problem is often called "sitting on rails" and it is easily seen in this simul^W... game.</p>
<p>Mechanically the cars are all treated in a generic, arcade-like manner instead of like a simulator. Transmissions shift as fast as F1 cars. Even the 1960 models - unmodified. I have yet to see the merit in the transmission tuning upgrades. I actually own a 2005 BMW M3 and can tell you it is already modified, at stock, as good as it can get. Putting on new exhaust or intake systems hardly give more than 20 HP (and I'm talking about $5,000 in mods). In Gran Turismo 5, the tuning shop tells me the 2004 BMW M3 will get <strong>30</strong> HP just from a new air filter and new exhaust. The one positive thing I have seen is that the cars that have paddle shifters finally have paddle shifters in the interior view. They were missing from the Prologue version.</p>
<p>Created by a company based in Japan, there is an astonishing amount of NASCAR material. From special events to a large amount of cars, it seems the creators love NASCAR. The only real motorsport, Formula 1, has a lesser following with only four cars and no special events.</p>
<p>The menu system is a bit akward at times. For example: pausing the game, going into settings, then backing out, immediately resumes the game instead of backing out one level. Loading times seem to be at fixed times - I have a Intel G2 80gb SSD and loading times take about 15 seconds with very little activity on the HDD light. This can be annoying when there are 5 menus to go through to get to a race, too. If you don't play connected to Sony's Playstation Network, expect to be greated with a half dozen "Would you like to go online?" prompts, too.</p>
<p>There are patches being released to tweak parts of the game so there is hope the game will become a truer simulator over time.</p>Cross-Platform Graphical Library Maddnessurn:md5:1fbc06b792bf775f9d66a8874d062a522010-10-28T00:01:00-05:002021-05-29T20:58:25-05:00Michael Cronenworthfreedomlinuxnokiaprogrammingpythontldr <p>An application that provides the user a window with buttons and input boxes is a given in today's graphically driven computer universe. Operating systems of all shapes and sizes provide a programmer the tools and libraries to accomplish their goal of providing such an application. Most of them are pretty boring or are too specialized to be worth taking time to study. The libraries that people should familiarize themselves with are those that can be utilized <ins>across</ins> operating systems, which include being able to run across multiple types of hardware devices. Two libraries come to mind - GTK+ [has a very interesting <a href="http://www.gimp.org/about/ancient_history.html" hreflang="en">history</a>] and Qt (pronounced "cute").</p>
<p><img src="https://michael.cronenworth.com/dotclear/public/Open_Source/library-maddness.jpg" alt="library-maddness" style="display:table; margin:0 auto;" title="library-maddness, Nov 2010" /></p>
<p>Today, both libraries offer very simple methods of creating a GUI. So, depending on what language your project requires, either one would be able to provide you with a robust and full featured set of options. The current drive to use Qt is entirely commercial driven - by Nokia - who owns Qt. It's the same drive that Sun made with Java. There's no <em>logical</em> reason to use Java. People have just be taught that it [Java] is the best and there is no other language that can do the same job (read: <em>subjective</em>).</p>
<p>I believe the "Qt hate" or "GTK+ hate" stems from the past when Qt didn't offer as many cross-platform routines as Glib (from GTK+) did or vice versa. It has been my observation that people have not spent any time with both libraries and make rash statements about the other library out of ignorance. Most Qt developers view GTK+ as a legacy library that should be abandoned. Don't tell them that there is still active GTK+ development (GTK+ 3.0 is coming soon) driven by a large community, which includes Red Hat.</p>
<p>Need a simple OpenGL widget in your window? There's GtkGLExt, or Clutter for GTK. Starting with Qt 4.0 a similar API for OpenGL handling was implemented.</p>
<p>Need video/audio capability? GTK+ apps can use GStreamer. Qt has phonon.</p>
<p>Need XML or HTML handling? GTK apps can use libxml or GtkWebKit while Qt apps would need to use the Qt APIs.</p>
<p>Nokia is also attempting to drive Qt as a "write once, run anywhere" library. This is great in that it some-what promotes FOSS, but if you wish to use GTK+ you can write once and run anywhere, too. I have done so with a GTK+ app for my $DAYJOB that can compile under Fedora and Windows and does advanced things like TLS encrypted XML packets over a TCP connection and scanning documents (using SANE). Neither library has an advantage.</p>
<p>More recently, Nokia has tried to push the mantra that you can write a Qt app quickly and simply. GTK+ developers can also use <a href="http://live.gnome.org/Vala/About" hreflang="en">Vala</a> to write a GTK+ app quickly and simply. The amount of code to write to accomplish the same goal in each library also ends up being about the same.</p>
<p>I can come up with any more number of examples, but those are ones I have seen used in arguments lately. The person arguing for using Qt has no idea about the matching GTK+ API and vice versa. I think it's great that both Qt and GTK+ offer such a wide range of features that are easy-to-use. You can choose a language (C, C++, Vala, Python, PHP) and write a program that could be used by thousands or millions of people across many different types of devices. Now get out there and start programming.</p>Thirty Ways a Software Growsurn:md5:1d856e4493553ee9896b9d4b1aadf2fe2010-08-05T17:43:00-05:002021-05-29T20:58:45-05:00Michael Cronenworthlinuxprogrammingtldr <p>The following recount is rather generic in nature so I do not have to worry about stepping on any toes, but it is all true.</p>
<p><img src="https://michael.cronenworth.com/dotclear/public/Office/yeah-blog.jpg" alt="yeah" style="display:table; margin:0 auto;" title="yeah, Aug 2010" /></p>
<p>Everyone has a workplace story to tell and I've finally gotten around to writing about my own. I have had a rare opportunity to write and maintain software for a company that has plenty of history. The company I, still, work for has been around almost as long as Microsoft to give you a point of reference.</p>
<p><strong>In The Beginning</strong>
In traditional fashion of the time, which still holds true today, the company started by buying the rights to a software that someone else wrote. The country of origin: Canada. I do not know much about the company or who were the original authors besides a few names I've seen in copyrights, so unfortunately I do not have any juicy stories to tell about them. They wrote to Minix, which surprisingly still exists today. The data was stored in ISAM databases (Google it), which unfortunately still exists today. The program displayed via a terminal-based text screen with support for input fields and displaying different types of screen layouts, which, also unfortunately, still exists today. The only saving grace was that it was written in the C language.</p>
<p><strong>Abraham Lincoln</strong>
The company originated in a log cabin, now turned historical landmark. I heard the winters were cold, and the summers were hot. The size of the cabin is about the size of a traditional living room with two whole stories. There was also the shift from Minix to UNIX and DOS operating systems to keep up with growing demand.</p>
<p><strong>Enterprise Split</strong>
Eventually the software became outdated, in a sense, for the customer base the company wished to sell to. Enterprises wanted a more robust and fully featured software. The solution? Rewrite! The company moved to a different city, but left behind the original software - to live in its own filth.</p>
<p><strong>Dungeon Upkeep</strong>
Keeping the software maintained to a point people could still use it was the job of a fellow I only met once when I was being interviewed (for an unrelated position!) so I can't tell you any juicy stories about them either. However, I can tell you the software essence remained the same. They continued to use the original UNIX compiler and coding techniques. These techniques include typedefs to normal C keywords and functions. Numerous programs that simply copy & paste code from other programs. Global pointers ruled the entire source code base from top to bottom. Return values were rarely checked. Instead of calling the standard rename or delete functions, system calls were made to the operating system's shell tools. The source control system involved cloning the main source directory per release - some of which I did not find when I took over. Take this scenario for instance: One customer was given a compiled program on Monday but changes would be made to the same program and given to a different customer on Tuesday. Every customer had a unique compiled version of the software. Let that settle in your mind for a moment.</p>
<p><strong>Change of Hands</strong>
A friend of mine, who has moved on to greener pastures, took over a few years ago. He began a very important and rigorous job of evolving the software into a state that a guy off the street could come in and program to. The code went from 1980s leftovers to 1990s l33tsauce. It was now source controlled in CVS and macros were removed. Some of the copied code were moved into libraries that were compiled against. A small set back to the improvements happened when another programmer was hired and began transforming perfectly good code into obfuscated and over coded code. String pointers were turned into "static const char *const variable;" nightmares. Functions were rewritten to be twice as long and contained bugs that I had to find and fix for about a year.</p>
<p><strong>Modern Tools</strong>
After I took over we released a major version. This version was the first version where all of the software was released in one update. It was all source controlled, and I implemented a sane update system that insured customers would all be on the same software level. Lately we've moved the code into <a href="http://git-scm.org" hreflang="en">git</a> and I have been loving every minute of it. The software is slowly emerging from its colorful past.</p>
<p><strong>Over the Rainbow</strong>
GUI, SQL, Cross-platform. These three words are the embodiment of the future of the company. If I get a chance to finish the project, it should provide the company and its customers with a fresh breath of life.</p>SSDs Speed Up Anything and Everythingurn:md5:485f55ef69bc6db991c2b62abb123b7f2010-03-31T21:54:00-05:002010-03-31T22:25:38-05:00Michael Cronenworth Computer storage technology was running out of innovation a couple of years ago until the next step, in many steps to come, arrived: the Solid State Drive. Quick summary: Traditional hard drives are spinning discs of a magnetic substance that hold all your precious junk. An SSD is a collection of flash memory modules similar to those found in SD cards for your handheld camera. The end result is RAM-like performance without the con of losing everything when you turn off the power. It's hard to grasp this concept until you've seen the difference first hand.<br /><br />First up I decided to install Fedora 12 x86_64 and perform a package update. This involves hundreds of packages ranging in all shapes and sizes. On a traditional hard drive I would be dreading the thought of performing this operation as it would most likely take about 15 minutes of my precious time. My mind can now rest at ease with the speed of an SSD:<br /><br /><object type="application/x-shockwave-flash" style="width: 448px; height: 272px;" data="http://www.youtube-nocookie.com/v/pnuCHh2QN8Y&hl=en_US&fs=1&rel=0&color1=0x234900&color2=0x4e9e00&">
<param name="movie" value="http://www.youtube-nocookie.com/v/pnuCHh2QN8Y&hl=en_US&fs=1&rel=0&color1=0x234900&color2=0x4e9e00&" /> </object>
<br /><br />
The target device my SSD was going into was the Sony Playstation 3 as I noticed the multitasking introduced in previous updates caused excessive hard drive usage, most likely by usage of lots of swap space. It's slightly visible in the video below that the performance delta between boot times is different:
<br /><br /><object type="application/x-shockwave-flash" style="width: 448px; height: 272px;" data="http://www.youtube-nocookie.com/v/1uzBwKZvQ48&hl=en_US&fs=1&rel=0&color1=0x234900&color2=0x4e9e00&">
<param name="movie" value="http://www.youtube-nocookie.com/v/1uzBwKZvQ48&hl=en_US&fs=1&rel=0&color1=0x234900&color2=0x4e9e00&" /> </object>
<br /><br />In other important news, my Grand Theft Auto 4 boot times were reduced by <strong>20</strong> seconds to 1 minute 37 seconds. A new GTA4 patch reduced that by another 4 seconds. I can also tell that there is some intentional latency programmed into the multi-tasking option. Was the $200 upgrade worth it? Yes ma'am!<br /><br />
<strong>Problem:</strong> Taking out the trash takes a long time to do.<br />
<strong>Solution:</strong> Install an SSD!<br /><br />