Brandon's Blog

6/6/2005

(No Title)

I formally declare this World Weird News Day:

- Apple announces switch to x86 architecture
- Dell announces a high-end line to replace volume sales
- Debian releases Sarge after long delay

6/2/2005

(No Title)

I can’t touch Sigma recently.  It’s too perfect in its current state, and I know I’m going to need to tear something up to implement anything new.

5/30/2005

(No Title)

At least to a certainty equal to the completeness of my testing, we are now (after a full day’s work) 100% memory leak free.  No segfaults, no unfreed memory allocations, no nothin’.

Woo hoo!

5/30/2005

(No Title)

So, first MUD update now that the wireless access point (and consequently SSH to Linux) is working in the Port Arthur residence.  I have removed all code references (there may be lingering comments and Doxygen code) to Python and have successfully linked statically against the Lua libraries.  I have also initialized and deinitialized the interpreter from code, and the memory analyzer returns perfectly.

This is a good thing.  More work to follow, including a complete source code audit and memory accounting project.

5/27/2005

(No Title)

Like the new digs?  Let’s try out one of these new blockquotes I’ve heard about:

Can this feeling that we have together
Oooh, suddenly exist between?
Did this meeting of our minds together
Oooh, happen just today, some way?
Awesome (quote from a Chicago song, by the way).  I just added back my blog icons down underneath the “I Power Blogger.”  I decided to homebrew a “Get Christ” icon in MS Paint.  Figured that, based on this blog, it must look like I basically eat, breathe, live, and copulate with (it’s not true, Kristin!) computers 24 hours a day.  Might as well start doing something to debunk that myth.  Speaking of Myth, my PVR is… oh, wait.  Counterproductive.

Okay, well I put a line break there, which isn’t directly computer related, so I can talk about the MUD.  I’m having uneasy thoughts about Python.  I like Python, and I like how it’s object-oriented.  I’m just wondering if it might not be easier to use loadable libraries.  I’m really mulling this over hard.  More to come on this.

I think it all goes back to Valgrind.  When I analyzed my program with Valgrind, libpython.so just took a horrendous dump all over the place with memory accesses.  I know my code isn’t perfect (yet) in this way, either, but I think I can do better.  That’s the only thing.  Maybe I’ll look into other (more stable) languages.  Or maybe something’s wrong with Valgrind.

I just hate to work so hard to get rid of my memory gaffes and then link against a library that’s a sieve.

Anyway…

5/27/2005

(No Title)

I think we have a winner:


I have been, and still am, an avid Python user. I have never used Python in an embedding scenario, however, because I found it to be too painful to work with. When I encountered Lua 3.2, I felt like someone had opened up my skull, found all my criticisms of Python’s embedding and then used that to make a language and environment that did what I wanted it to.

Since then I have continued to use Python, of course. I find Python-because of its huge set of libraries-to be a more suited to general-purpose scripting and RAD work. I’m also very comfortable with Python’s syntax, quirks and all, so find that my fingers just naturally do things The Python Way. (The number of times I’ve been burned by using ’.’ instead of ’:’ as a method accessor in Lua would make most people choke with laughter.) I laugh, however, at even a hint of the slightest possibility of using Python for anything embedded. Lua is my tool of choice there.

I’m thinking that my new boy is Lua.  Lua has the reputation (as seen above from a Wiki comment) as a widely-used OSS embedded scripting language.  I realized that, while there was an official guide present on the subject, Python does not like to be embedded (the developers’ lack of interest in this may be reason for all the nastiness from the memory analyzer).

I’m going to look through the syntax, but I’m really thinking this is closer to what I’m looking for.  It just needs to be user-friendly, extensible, and preferably lightweight.  I know Lua is more lightweight.  The jury is out as to whether or not it is more extensible and user-friendly.

Hope this works.  I would definitely want to link this statically so as to avoid carting around a fairly rare .so or .dll along with the program.

5/23/2005

(No Title)

What you’ve done for me
Is more than I can hope for
Oh, you are my friend

[Vertical Horizon]
[The Mountain Song]


Well, I guess if someone (I know I don’t have that many readers) read the post from last night, they might say I have some explaining to do.  Here’s the story:

So, I checked my grades Saturday night and found out that my 4.0 had been blown by my Senior Capstone class (which, for those without background on this, is a completely ridiculous circumstance).  Being that I discovered this over the weekend, it was incredibly hard to find out anything.  But, my friend and I both fired e-mails at our advisor that night, and we got an angry, defensive one back in return on Sunday.

Freak out time.  So, my friend met in person with our advisor today, which between that and a possible upcoming phone call between the advisor and me was what necessitated a plea for prayers.  It turns out that a lot of the stuff from the angry e-mail was admitted to be false, overblown, or unfair by our advisor, and it turns out that we were actually just getting screwed by our sponsor (the financier of the project, a jerk).

My friend ended up cutting a deal with our advisor: we do testing this week as per sponsor instructions, write it up in a nice report, and the whole group gets an A in the class.  This is BEST case scenario here.  Everything will work out.

What’s the real clincher?  My friend was a 4.0, too!

What’s another real clincher?  We were the only two 4.0 graduates in all of the ME class this year!

What a mess, huh?  Well, thank God, everything came out right, our advisor (not sponsor) is on our side, and my world is firmly back in place.  Time to write thank you notes for graduation presents and print out a copy of my 3.97 transcript to hold up like Truman did in 1948.

I always liked Truman.  Son of a gun.

5/22/2005

(No Title)

Oh won’t You listen, oh Lord
To my plea for justice?
Could You hear my cry for help?
Try to heed my honest prayer
And judge me in my favor?

‘Cause You know my heart
You’ve come to me at night.
It’s so hard to speak no evil
In a hole deprived of light.

So I pray for You to answer
And to turn to me and smile.
Shower me with love to save me
From demons deep inside.

Protect me as You would Your own eyes
In the shadows of Your wings.
Learn to know the sound that echoes
When an innocent man sings.

So I lie with all my failures,
Praying to my best friend’s ghost.
Time to kneel instead of sitting.
Let me do Thy bidding.
Could you help me do Thy bidding?

[Vertical Horizon]
 [Prayer for an Innocent Man]


God’s voice as my word, God’s heart as my emotion, God’s will as my desire.  May His perfect plan be carried out no matter what the pain and frustration.  But Lord please take this cup from me.

Amen.


The outcome awaits.  If you are reading, please pray.

5/21/2005

(No Title)

PVR Verdict: Success.

MythTV is fabulous.  Not rock-solid-stable, but I can stand compiling through a few version cycles to get there.  The MySQL backend works great, and I’m getting great recording quality.

The Hauppauge PVR 250 has hardware MPEG2 encoding, which is great because it makes the processor not be busy during recording (and it keeps the initial file size down).  After the original file is written, I automatically run a transcoding operation to compress the file to MPEG4 to save space.  I can then edit the file (with some help from an automatic commercial detector within MythTV) to eliminate the commercials.  A 30 minute episode of “Yes, Dear” was only 250 MB after transcoding and commercial cutting.  It started around 1 GB, I believe.

What doesn’t work well is TV out, which isn’t Myth’s fault.  I could have bought a PVR 350 to get hardware MPEG2 decoding to a television, but I instead have decided to gamble on ATI releasing good Linux drivers soon.  Either way, I can always buy a second tuner (not a bad idea anyway, gives you picture in picture and multiple viewing/watching capability) and put both of them in a bigger box (or get an external USB one).

Whatever.  I’m actually glad to keep the Linux box as a plugged-into-monitor computer (it’s too useful to waste it as a television and remote), and I can run the backend (which actually does the recording and transcoding) without running the frontend (which ties up the monitor).  That means I can start the backend on boot, then launch the frontend whenever I need to screw with something or watch a video.  Recording will happen no matter what is actually going on with my monitor.  Sounds like a better plan than marooning the machine within an entertainment center.

5/17/2005

(No Title)

Bad Brandar.  Bad, bad Brandar.

My Hauppauge PVR 250 Model 980 is packaged and ready to hit FedEx sometime in the morrow.  It’s cooler than yo momma and I am looking forward to getting my Linux PVR on by this weekend.

Many price-conscious TV tuner buyers might inquire, “Why not get some cheapass tuner and save some money?”  Answer: Hardware MPEG2 encoding.  This card actually encodes the TV channel into a compressed MPEG2 stream before it hits the mainboard.  This can take a 70% CPU encoding load to a 5% load in no time.

Important, since my long-term plan for the Shuttle box is to serve as an application/file server in addition to its PVR role.  The proposed layout (in three years or so) is:

> Newer Posts

< Older Posts