<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-2479143884032855089</atom:id><lastBuildDate>Fri, 13 Sep 2024 10:57:21 +0000</lastBuildDate><category>alcohol</category><category>algorithms</category><category>angry</category><category>bugs</category><category>code</category><category>job</category><category>linux</category><category>neat</category><category>philosophy</category><category>posix</category><category>thoughts</category><category>timers</category><category>tricks</category><title>Monkey Coder</title><description>Random musings from a software engineer.</description><link>http://monkey-coder.blogspot.com/</link><managingEditor>noreply@blogger.com (Double-A Ron)</managingEditor><generator>Blogger</generator><openSearch:totalResults>23</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-3262696132036415366</guid><pubDate>Wed, 03 Nov 2010 15:19:00 +0000</pubDate><atom:updated>2010-11-03T08:32:45.367-07:00</atom:updated><title>Some time off</title><atom:summary type="text"></atom:summary><link>http://monkey-coder.blogspot.com/2010/11/some-time-off.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-2730158759435797528</guid><pubDate>Sat, 11 Sep 2010 01:32:00 +0000</pubDate><atom:updated>2010-09-10T18:42:52.104-07:00</atom:updated><title>AMAZING new-technology, 30 years old!</title><atom:summary type="text">So, I just got the Tektronix 2236 Oscilloscope. Within 30 minutes, I&#39;ve now got a pretty decent understanding of how to get what I&#39;m looking for (at least for the Sprint AIRAVE project). That&#39;s mostly thanks to the amazing tutorials available online; I&#39;m really very grateful for all of the advice that people have posted. I&#39;m able to trace circuits, and will hopefully find the jtag lines off this </atom:summary><link>http://monkey-coder.blogspot.com/2010/09/amazing-new-technology-30-years-old.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-2610452599349684482</guid><pubDate>Thu, 09 Sep 2010 02:44:00 +0000</pubDate><atom:updated>2010-09-08T19:55:47.554-07:00</atom:updated><title>Hacking (again)</title><atom:summary type="text">So, I published an exploit for the nginx 0.6.38 and earlier heap corruption vulnerability. Apparently, some people were impressed enough with it that I got some really cool offers by mail (and some which seemed not so legitimate). I&#39;m not able to act on the offers at this time (and believe me when I say, such a decision is freakin&#39; tough); maybe someday in the future though.I&#39;ve gotta get back to</atom:summary><link>http://monkey-coder.blogspot.com/2010/09/hacking-again.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-478586158629298813</guid><pubDate>Tue, 01 Dec 2009 15:49:00 +0000</pubDate><atom:updated>2009-12-01T08:44:04.306-08:00</atom:updated><title>Stack Canaries Part 3 - Sing birdie, sing!</title><atom:summary type="text">So, time to look closer at the GNU Stack Canary generation. A brief bit of scrounging around with the GCC sources reveals that the stack protection is actually governed by the libssp code. Looking at the internals, we find that the following file contains some juicy bits:http://gcc.gnu.org/viewcvs/trunk/libssp/ssp.c?view=logGo ahead, look at it. Latest revision as of this writing is 146000. It </atom:summary><link>http://monkey-coder.blogspot.com/2009/12/stack-canaries-part-3-sing-birdie-sing.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-651842166350334972</guid><pubDate>Wed, 25 Nov 2009 18:48:00 +0000</pubDate><atom:updated>2009-11-25T11:31:11.026-08:00</atom:updated><title>Stack Canaries - Part 2 (64-bit, bypass techniques, etc.)</title><atom:summary type="text">So, back for more pain, I decided to try and model the canary generation (without looking at either the kernel code which assigns the initial value to the registers, nor the libc code which might do some population). I want to treat this feature as a blackbox, at least initially.For a little more in-depth view at what happens when we turn on stack protection (-fstack-protector-all), let&#39;s look at</atom:summary><link>http://monkey-coder.blogspot.com/2009/11/stack-canaries-part-2-64-bit-bypass.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-8603233341641456790</guid><pubDate>Tue, 17 Nov 2009 16:42:00 +0000</pubDate><atom:updated>2009-11-18T11:26:54.960-08:00</atom:updated><title>Stack Canaries - Part 1</title><atom:summary type="text">So, for those of you who haven&#39;t paid much attention, starting...oh...3-4 years ago the GNU compiler folded in a stack guarding implementation to protect against the classic buffer overflow attack. What that means is that when you make a function call in C, the system actually tries to protect your stack by pushing a canary value (determined, I think, by the gs:14 value) during the preamble, and </atom:summary><link>http://monkey-coder.blogspot.com/2009/11/stack-canaries-part-1.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-5977120971806910725</guid><pubDate>Fri, 31 Jul 2009 15:06:00 +0000</pubDate><atom:updated>2009-07-31T12:04:43.419-07:00</atom:updated><title>All&#39;s well that end&#39;s well</title><atom:summary type="text">So, it looks like just a few tweaks were required to get my jffs2 filesystem working. So, with this phase of the project wrapped up, I&#39;m now onto a really tricked out set of things to do.1) Build a &quot;from-scratch&quot; version of the system which only contains qte/qtopia and konqueror (plus the associated required stuff)2) build a version of ruby for the board which strips down to roughly 9 or so mb3) </atom:summary><link>http://monkey-coder.blogspot.com/2009/07/alls-well-that-ends-well.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-3798329909855839762</guid><pubDate>Wed, 29 Jul 2009 17:13:00 +0000</pubDate><atom:updated>2009-07-29T10:21:55.717-07:00</atom:updated><title>Git &#39;er done</title><atom:summary type="text">I&#39;m really really digging git. I&#39;ve been able to pull tons of projects with little more than a single command line, and it just feels cleaner than cvs/svn. I&#39;m certainly no Linus Torvalds fanboy, but when he has a need he writes a damn elegant solution.As far as the mini2440 board is concerned, I&#39;m in the process of writing some embedded apps for it. The first of which is a cheops-like tool. </atom:summary><link>http://monkey-coder.blogspot.com/2009/07/git-er-done.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-3068911417262319557</guid><pubDate>Wed, 29 Jul 2009 03:51:00 +0000</pubDate><atom:updated>2009-07-28T21:05:47.073-07:00</atom:updated><title>u-Boot on a FriendlyARM</title><atom:summary type="text">So, I recently ordered a FriendlyARM development kit, with jtag &amp;amp; cmos camera. It&#39;s a small handheld unit with touch-screen, usb, rj-45, and SD card reader. The goal is to build a portable diagnostics device for anything I could imagine.It came pre-loaded with a 2.6.13 series kernel, Qtopia, and a few odds and ends worth of tools. As for the bootloader, it comes with vivi, which is a fairly </atom:summary><link>http://monkey-coder.blogspot.com/2009/07/u-boot-on-friendlyarm.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-3403069053731670972</guid><pubDate>Tue, 07 Jul 2009 17:16:00 +0000</pubDate><atom:updated>2009-07-07T10:21:08.552-07:00</atom:updated><title>Another Brick in the wall</title><atom:summary type="text">I&#39;ve been playing with dynamic symbol loading. It&#39;s actually pretty cool! The gist is, you don&#39;t know what another developer will be doing, so you try and provide enough hooks so that they can get done what they need. However, if you give that person too much power, there&#39;s always the chance they will abuse it and then your users are left blaming you for some nefarious code someone else wrote.The</atom:summary><link>http://monkey-coder.blogspot.com/2009/07/another-brick-in-wall.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-4922837143687574254</guid><pubDate>Fri, 19 Jun 2009 19:39:00 +0000</pubDate><atom:updated>2009-06-19T12:45:23.408-07:00</atom:updated><title>AMG Return of the Monkey!</title><atom:summary type="text">A year and half later...... Our intrepid hero plays World of Warcraft. Gets good enough to down Illidan (the end boss man). Is among the roughly 5% of players in the world who have reached such heights. Our hero is saddened by his realization that this is not a societally relevant achievement.... Our intrepid hero breaks the laws of Massachusetts and launches fireworks on the 4th of July. Using </atom:summary><link>http://monkey-coder.blogspot.com/2009/06/amg-return-of-monkey.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-3379131038395820515</guid><pubDate>Thu, 27 Dec 2007 22:39:00 +0000</pubDate><atom:updated>2007-12-27T14:59:21.326-08:00</atom:updated><title>zen and coding</title><atom:summary type="text">I&#39;m gonna change it up again, and talk a little about the zen side of software. I think that everyone, no matter how much they choose to fight it, has a certain activity that puts them into a trance-like state where they hyper focus on that one activity and get more in touch with themselves. For me, that activity is engineering. More specifically, software engineering.What prompted this thought? </atom:summary><link>http://monkey-coder.blogspot.com/2007/12/zen-and-coding.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-6300460348300998780</guid><pubDate>Wed, 19 Dec 2007 17:32:00 +0000</pubDate><atom:updated>2007-12-19T09:40:53.039-08:00</atom:updated><title>1 month later</title><atom:summary type="text">My heap is done, mostly. I can do dynamic sized allocations, and have pooled allocations from specific buckets. Just set the config options, compile and voila! I&#39;m gonna keep it underwraps for now, and probably either sell it as part of a platform package (doing BSP as a consultant) or release it open source if I can&#39;t do that.I started work on an encryption suite. It&#39;s pretty cool, as right now </atom:summary><link>http://monkey-coder.blogspot.com/2007/12/1-month-later.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-9100014785867194406</guid><pubDate>Mon, 19 Nov 2007 20:38:00 +0000</pubDate><atom:updated>2007-11-19T12:43:46.444-08:00</atom:updated><title>PS, BS, and all manner of S</title><atom:summary type="text">I&#39;m a touch frustrated at the moment. It seems that most software architects at companies really feel like they have the only valid opinion. Since starting at Sycamore, I&#39;ve felt exactly how I felt at Airvana: namely, like the corner-stool dunce of the class. No one listens to them; everyone feels as though they are inherently superior. I&#39;ve found one person here who&#39;s taken the time to listen to</atom:summary><link>http://monkey-coder.blogspot.com/2007/11/ps-bs-and-all-manner-of-s.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-7495638626512608062</guid><pubDate>Thu, 08 Nov 2007 14:41:00 +0000</pubDate><atom:updated>2007-11-08T06:46:05.186-08:00</atom:updated><title>Niiiice</title><atom:summary type="text">Got my PVR card, and slapped it in. After some fiddling and tweaking, I can now do everything a TiVO can do, and more. For instance, I can plug a camera into my box and view all the pictures, saving them to the HDD or writing them to a DVD. I can schedule recordings based on keywords or time slots (very cool). Pause, rewind, fast forward live tv :) I turned off the commercial detection, because I</atom:summary><link>http://monkey-coder.blogspot.com/2007/11/niiiice.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-480054104614148780</guid><pubDate>Wed, 07 Nov 2007 20:21:00 +0000</pubDate><atom:updated>2007-11-07T12:30:48.882-08:00</atom:updated><title>I&#39;m swamped.</title><atom:summary type="text">I recently was contacted by Google for an interview. Psyched about that, because Google is one of the few companies that seems like it&#39;d be a fun place to work. I have mixed feelings about whether or not I&#39;d go, since I just started here at Sycamore. I&#39;ll see how things pan out if they decide to throw an offer on the table.In other news, I&#39;ve been working on a few wildly scattered projects.My </atom:summary><link>http://monkey-coder.blogspot.com/2007/11/im-swamped.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-8468469989712105724</guid><pubDate>Mon, 05 Nov 2007 14:43:00 +0000</pubDate><atom:updated>2007-11-05T06:55:30.509-08:00</atom:updated><title>Broken Down</title><atom:summary type="text">Got my DVR equipment, and decided to start in on it right away. Since I didn&#39;t have the PVR-250 with me, I used an old WinTV GO! that I had in my desktop machine.Some reviews:Firstly, putting the system together was a non-issue. It took almost no time and everything just fit. I think the total process there took about 2 hours, and included monkeying with the WinTV GO card to get rid of the </atom:summary><link>http://monkey-coder.blogspot.com/2007/11/broken-down.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-6627522727031021293</guid><pubDate>Wed, 31 Oct 2007 17:41:00 +0000</pubDate><atom:updated>2007-10-31T13:55:33.945-07:00</atom:updated><title>Broke down...</title><atom:summary type="text">I finally broke down and ordered the missing pieces that I&#39;d need to build my DVR machine. I originally started by using a stripped down NetX Embedded board, but was quickly frustrated with the fact that it used an odd case design making my PCI Riser card unusable.So, with a lightening of my wallet, I purchased the following (from itxdepot.com)EPIA ME 6000G  (170mm x 170mm size, 2x ATA133 </atom:summary><link>http://monkey-coder.blogspot.com/2007/10/broke-down.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-9021065010494916892</guid><pubDate>Tue, 23 Oct 2007 03:54:00 +0000</pubDate><atom:updated>2007-10-22T21:05:52.301-07:00</atom:updated><title>Creative Solutions</title><atom:summary type="text">I had an interesting conversation a few days ago with a friend. I used some seemingly mundane tricks of reverse engineering the Apple iTunes Music Store (R) communications protocol a few years back (2 years ago, actually). I figured they were rather mundane. Load a sniffer, sniff communications, snoop the binary for whatever strings I might use to fake a validator, and voila! His comment was that</atom:summary><link>http://monkey-coder.blogspot.com/2007/10/creative-solutions.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-8577412640773594353</guid><pubDate>Wed, 17 Oct 2007 20:58:00 +0000</pubDate><atom:updated>2007-10-17T14:09:36.489-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">angry</category><category domain="http://www.blogger.com/atom/ns#">bugs</category><title>De bugs...oh why?</title><atom:summary type="text">So, I believe I found an issue with the pthread_create routine. Why do I believe this?During the course of writing my own userspace heap, I noticed that during multi-threaded test execution I had 1 block being leaked. The block was obviously more than 64b, but less than 128b. I wrote a backtrace routine (described in earlier posts) to try and quickly figure out where the leak was taking place. </atom:summary><link>http://monkey-coder.blogspot.com/2007/10/de-bugsoh-why.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-4141152423098758950</guid><pubDate>Tue, 09 Oct 2007 14:40:00 +0000</pubDate><atom:updated>2007-10-09T08:03:53.655-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">alcohol</category><category domain="http://www.blogger.com/atom/ns#">algorithms</category><category domain="http://www.blogger.com/atom/ns#">philosophy</category><title>Distilling some information</title><atom:summary type="text">Did you know that in the US, it is illegal to distill alcohol. Distillation is the process by which we apply a thermal change (either colder or hotter) to separate fluids with different boiling/freezing points from a solution.In fact, in the US, it&#39;s illegal to ferment alcohol unless one happens to be 21. This means that if you, perchance, drop some yeast into a bucket of sugar water then walk </atom:summary><link>http://monkey-coder.blogspot.com/2007/10/distilling-some-information.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-1195794018068062890</guid><pubDate>Mon, 08 Oct 2007 04:37:00 +0000</pubDate><atom:updated>2007-10-07T21:58:12.328-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">posix</category><category domain="http://www.blogger.com/atom/ns#">timers</category><title>Timing</title><atom:summary type="text">It&#39;s funny how timing is important in all aspects of life. For instance, had our parents copulated a day later or earlier than our conception, we&#39;d never be around. If we had changed our alarm clocks by 15 minutes, perhaps we&#39;d end up jumping in front of a bus to save a little boy (yes, that was a Will Ferrel reference).With that in mind, I&#39;ve been thinking about the two different mechanisms </atom:summary><link>http://monkey-coder.blogspot.com/2007/10/timing.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2479143884032855089.post-7764596978961073596</guid><pubDate>Fri, 05 Oct 2007 15:34:00 +0000</pubDate><atom:updated>2007-10-05T12:36:50.122-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">code</category><category domain="http://www.blogger.com/atom/ns#">job</category><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">neat</category><category domain="http://www.blogger.com/atom/ns#">thoughts</category><category domain="http://www.blogger.com/atom/ns#">tricks</category><title></title><atom:summary type="text">So, decided I&#39;d do the &#39;ol blog thing. I&#39;m gonna try to update this at least once a week with random thoughts, comments, and opinions (many of which will be wrong) on software development, and engineering.As I write this first entry, I reflect on the many firsts upon which I am currently embarking. I&#39;m leaving my job at Airvana, Inc. to accept a position at another Chelmsford, MA based company. </atom:summary><link>http://monkey-coder.blogspot.com/2007/10/so-decided-id-do-ol-blog-thing.html</link><author>noreply@blogger.com (Double-A Ron)</author><thr:total>0</thr:total></item></channel></rss>