In the past it was a prophecy, but in the future the past has ocurred!

May Update and Some Tech Thoughts

I’m not too great at the whole blogging thing. I think once upon a time it served a place and purpose, but these days my thoughts are so scattered and inconsistent they are more aptly captured by microblogging/social network type updates. Though when I get busy I don’t think about doing that, either.

Work has been hectic as always, it not more so as of late. In addition to completely re-writing and vastly improving my spec report generating tool, lots of other normal day-to-day things take up a lot of time in addition to new tasks like ordering lots of new equipment and organizing/building new test benches. Lots going on.

I did manage to take yesterday off of work so I could take the family to the zoo. We had a good time, and did a lot of walking. The kids were asleep before we drove out of the parking lot at the end of the day. We had a lot of fun, and the weather was great—not too hot and sunny. We saw most of the animals, and got tickets to go see the anamatronic dinosaurs, which was pretty neat. The kids (and me too!) also got a kick out of the bee exhibit, where they had a lot of stuff about honey bees, and an actual hive with bees.

I upgraded my desktop computer to Fedora 17 beta, which is ok. Gnome 3 seems much improved, but the I’ve had a few problems in general. I rarely boot it up much anymore except for a few specific things or just to do updates, though. I’ve recently re-found love for my Acer A500 tablet. After that initial post, I stopped really seeing a purpose for the tablet and I stopped using it and didn’t even charge it. However, a couple of months ago I charged it up, ran all the updates, and began using it again. Now I use it all the time. I took it with me on a business trip and used it for watching netflix. I also have a stream of news and web comics and things in my google reader, which the android app is great for. Google+ and facebook and the usual things like that. I love using the tablet now. Actually, I use it for probably 80% of my total home computing now, and this is one of the reasons that I rarely boot up the desktop. As long as I turn off the wifi when I am not using it, the battery will last for 2 or 3 days (or longer, maybe). I can watch videos, play games, and do a lot of web reading. Obviously, it is a tablet, so it is lacking in some areas—such as typing. I’ve been tossing around the idea of getting one of the docking stations and hooking a keyboard up to it, though, that would improve that experience.

Things are changing in technology and in the phone/tablet/computer space. In my opinion, wifi-only tablets and laptops will be going away as 4G networks expand and improve. This will likely force some kind of restructure in the cell service provider market, also. I would welcome better mobile type rates in place of using the dreaded time warner cable internet servcie—and on the 4G on my HTC thunderbolt I measured about the same download speeds as my home network (around 12Mbps). I feel that phones, tablets, laptops, and PCs will merge at some point down the line and there will be a big market for this. I would love for the one device that I carry everywhere to be able to do everything.

Microsoft is targeting the phone and tablet space with its new Windows 8 OS because it has to. That is the future of computing, so they had to jump on the bandwagon with Android and iOS. I haven’t used it, but it looks nice. I still love android, though which for now seems to be the future for Linux at the moment. Tizen is coming along, and other Linux variants are or will be compatible with ARM processors so there will still be many options. Probably the herd will be thinned a bit, though, as time goes on. Speaking of ARM, it’s getting to be a pretty amazing architecture also!

This is an exciting time for technology (but…isn’t it always an exciting time in technology??)

And those are my blurry thoughts on all of this at this point. :–)

Family and Etc Update

So I haven’t really been on the computer much at home, so I don’t think about posting and all that. Not that I really have much to post about, but here goes.

Yesterday the wife and I took the kids to the local Natural Science center. We had a lot of fun looking at the dinosaur (models and bones) and all of the real animals outside. Especially the tigers! The male tiger came right up to me (holding the baby) and pawed up and put his face on the glass, and kind of growled a little bit. It was awesome.

On another note, I will be turning 30 this year. I really don’t like doing anything in particular for these type of events, but I guess this is kind of a big one. About 40% of my life will be done, scary thought. Anyway, so my wife is planning a birthday party for me this year, with a Jimmy Buffet type summer theme. She’ll be renting a giant adult water slide thing, one of the inflatable deals. Grilling out, some beer, grilling out (those are really the only 3 things I cared about anyway). Lots of friends will be invited. She’s also getting some special made cookies and other things like that as party favors. Should be a good time.

What else is new? My son is potty trained now, and that’s just amazing. It’s nice to only have one kid in diapers again. I am not sure what it will be like to have NONE in diapers, or what it will be like when they are in school. Time really does fly.

This is why I never update this thing, I can’t hardly complete a whole thought without a kid running around crying or wanting to be held or something. Never fails. :–/

OK. so my buddy Britt has been trying to make his own gong target to shoot at. A gong target basically consists of a stand, and then a hanging piece of steel (usually AR500). So far, the cost has been free, the frame is from some stuff he found, and he rigged it up in a pretty clever but simple construction—basically two tripods with a bar that hangs across the top. The piece of steel he got from a friend who had some scrap—it is 5/8” grade 80 hot rolled steel, which is a farcry from AR500 so we will have to see how it will do. And be very careful while doing it! We may have to build a shield structure out of some cinder blocks or something to hide from ricochets.


Work has been very crazy for the past few weeks, so I haven’t had much of a chance to update this. Unfortunately I haven’t even had a chance to even play Minecraft. Although I did manage to log in and convert my local worlds to the new format, but that’s about the extent of it.

So a while back I received an eeePC 900a from a friend who owed me $25. This thing was completely dismanteled, and in an unknown working condition—and the screen is cracked. I started a thread on the LinuxOutlaws forum about what to do with it, and I thought having an SSH box would be a great idea.

I decided to install Debian/testing, however because of the screen being cracked and the video on the external monitor being offset horribly, I couldn’t manage to get into the bios to turn on “boot from USB.” I had to use my USB CDROM drive and an actual disc. It’s an older disc that I have, but you can turn on mirrors and it installs from the network instead of the disc and still be up to date.

In the install, the wireless was configured perfectly, and came right up. I installed the base system and laptop tools, and skipped out on the GUI desktop environment and x etc—I wasn’t going to be needing them. Once it was all set up in that regard, I set up the programs that I would be using predominantly on this remote machine:

  • Identicurse - a CLI identi.ca client that I use frequently
  • GNU Screen - this is probably the most awesome thing I have seen for using only CLI. it allows multiple “screens” which can all be doing different things and the active screen can be switched between them. Running applications keep running, even if screen is exited. very cool.
  • Alppi - CLI email client (I have it hooked to my Gmail, see here)
  • irssi - CLI IRC client. I don’t use IRC often, but when I do this is it.
  • elinks - text WWW browser
  • Tor Project - Tor, for anonymity and such. I don’t use this often because it goes rather slow, and I just wanted to see if I could set it up and get it working.

Those are pretty much the only applications that I use on here, but I may add more as I get into it.
I’ve subsequently had problems with the wireless connecting, it was rather flaky, so I just moved the eeePC next to my router and plugged in a cable. Then I installed my SSH keys and forwarded the port on my router and it has been good to go!

I can log in from just about anywhere, as well as set up my tunnel.

The specs on this eee aren’t too great: 1GHz Atom (360? I think, not sure though). 1GB RAM. 4GB SSD.

but let me tell you, with no Xorg or anything with a GUI this thing flies. I have not been disappointed.

My next step: hook up an external USB drive, and then back files up to it. Or maybe even set up my own git or fossil repo (or mercurial, which I have been looking into).

Lots of fun stuff can be done :)

Tags: #sshbox #tunnel

original filename: 165


I’ve mentioned recently that I started using Git for my version control needs.
This has worked out well for me, both on my personal projects at home (mostly this blog stuff), and at work.

Now at work in my department we only have two software guys: another guy and myself.
We both have a few independent projects, and then we have one main one where we overlap on bug fixes and things. On this project, the other guy is the lead. Anyway, we had talked about version control for a while because of the sheer amount of bug fixes and additions that have been going on. If I make changes for a fix, or implement a new test procedure or anything, what I currently have to do is send the changes in some kind of text format to him and then he manually implements the changes. Hardly efficient, but it has worked okay up until this point. Now this whole project is so big and complex it has become very tedious and time consuming to do it this way.

I have been using git, and love it. Steve (the other guy) has heard of fossil, and wanted me to evaluate these two main contenders. While I did this testing, I took LOTS of notes, and this post will basically show what I came up with.

Go ahead and skip it if you aren’t already interested :–)


My wife sells stuff on Etsy, and occasionally does some giveaway type things. She’s been using random.org, which is a great TRUE random generator site—however, many of their better services are not free.

I then took it upon myself to set up a pretty decent Pseudo-random generator that can do the things that she needs to do: mainly, enter a list of names and return one who would be the “winner” of the giveaway. I set up a page to do this at jrobb.org/random, and went to town making some things.
This is all pretty simple, but it is a lot of fun to do and I can always try to make it as random as possible. :)

I wanted to have a pretty good seed, so I reused some of the code from the jezra captcha routine stuff. I am also using the Mersenne Twister, which generates MUCH better random numbers with mt_rand() than the normal PHP rand(). [code]

function mtrand_seed() { //try to create a more random seed $n = ((double)microtime()*1000000); mt_srand($n);//initial seed $ip_address = VISITORS_IP; //get the visitors IP address $appended_ip = $ip_address + date(“zB”); //append the numeric day of the year + Swatch Internet time to the ip_address $salt = genRandomString(); //add some random salt to the appended_ip $salted_string = $appended_ip+$salt; $md5_string = md5($salted_string) ; //get the md5sum of the salted string $first_int = getFirstInt($md5_string); //get the first and last integer of the md5_string $last_int = getLastInt($md5_string);

$n = ((double)microtime()*1000000); if($first_int>$last_int) { $n = $first_int –$last_int + $n ; } else { $n = $last_int – $first_int + $n ; } return $n;

mt_srand($n); }


This seems to work rather well, but I might wind up changing it around a bit as far as how the first_int/last_int are used to manipulate the seed.

Then I read this post which talks about random usage and image generation, and patterns that can appear from using a pseudorandom generator (mostly with the rand() function). This one is also pretty cool and worth a read IMO). I wanted to give this a try, and I made a generator for this as well.

No immediately evident pattern, which is good. I’m sure there is a pattern at some level though.

I made a colored version too:

It is definitely a lot slower to generate than the B&W version.

I’ll keep improving this generator, and adding new random stuff as it comes to me or as I want to fiddle with it.
Plus I’m sure my wife will have suggestions once she uses it some.

Oh, and naturally the source code for all of this random stuff is available on that page under the CC or whatever. I’m just not liable for…anything. ;–)

Tags: #random #PRNG #PHP

original filename: 163


This is very easy…actually I think it is too easy to even blog about… but anyway. I just went here: repos.fedorapeople.org/repos/spot/chromium and then added the repos file to my /etc/yum.repos.d/ directory.


filename: fedora-chromium.repo

Place this file in your /etc/yum.repos.d/ directory

[fedora-chromium] name=Chromium web browser and deps baseurl=http://repos.fedorapeople.org/repos/spot/chromium/fedora-$releasever/$basearch/ enabled=1 gpgcheck=0

[fedora-chromium-source] name=Chromium web browser and deps – Source baseurl=http://repos.fedorapeople.org/repos/spot/chromium/fedora-$releasever/SRPMS/ enabled=0 gpgcheck=0 [/code]

After that, ran a “yum update” and “yum install chromium”, and that was it! easy as pie. now, it’s not Iron, but still it is faster than firefox.
The downside is that google knows all, I guess.

I never thought I would see the day I would be using some other browser besides firefox, but I guess that day has come. Goodbye, Firefox. Maybe I’ll be back one day when there have been some improvements, but thanks for everything!

chromium #chrome #firefox #fedora

original filename: 162


It is a bit embarassing for me to admit this, but I having been using Linux for 10ish years now, and I have never used Git until very recently. Sacrilege, I know! Other version control systems I have also stayed away from—except for launchpad/bazaar, which I used I think 3 commands but never really got into it.

When I started hacking into my blog software, I started realizing that some sort of version control would definitely come in handy even though it is just rather simple PHP.
There are many different version controls in addition to the ones I listed above (like SVN, CVS,…it really does go on and on) but on the LinuxOutlaws forum, there was a discussion, but everyone seems to have a different opinion but github and gitorious were pretty well liked. I looked around at a few of them, and decided that git looked like it makes the most sense to me. And then I decided to go with gitorious—what can I say, it’s a pretty cool name. :–)

Github looks good also, but apparently their framework isn’t open source or something, which is unfortunate. Ultimately it just comes down to user preference.

I thought that using git would be hard to get used to, but after a couple of days (and one of those spent perusing through gitref.org), now git is second nature. Of course…I still haven’t done anything complicated with it—mostly just some branches/merges and lots of commits and pushes.

Today, as I was back at work and merging a bunch of our internal code stuff that I had edited (it is in VB6, currently), I realized that this was really just a ridiculous hassle to do manually. If I make some improvements, I usually have to either keep track of what I change, or go through after the fact doing file compares and compiling the changes to send to the other guy to include in his code. Not very efficient you say? Yeah…I know.

This time I made use of the “diff” program on my cygwin shell, which made file-compare on the entire directory pretty easy. I would have tried to use patch as well, but my co-worker had some other things that he needed to add in as well.

Anyway…why not use Git?!

I went to the Git website and downloaded a Windows version, which came with some kind of GUI that isn’t very productive. Luckily, it installed a git bash shell, so actual use is very similar to using it on my linux machines here at home. I then set up a remote repository on one of my backup servers, and local repository. and bam presto! all was gravy.

I even set this up on another one of my computers there, so that I can merge my code no matter where I am editing it.
Hopefully this will save me from a lot of wasted time. I’m betting so, since I usually go ad try to add features a few different ways and sometimes stuff doesn’t work out—with Git I can just delete that branch, and keep the other code intact!

The “bloated software department” uses perforce, but they haven’t quite come to take us over yet with their .NET monstrosity. hopefully they won’t ever…but that’s another story.

As long as I am able I will promote free and open software in my workplace (when applicable).

To sum up… I love Git!

Tags: #Git

original filename: 161


So after doing a little work, I got the code tags to work in this blog software. Changes and etc can be found on the site: jbs.jrobb.org. Now I can post the bulk of the captcha code that I mentioned in my last post. For the full thing, just download the “jbs” software and check it out.

Terrible name, by the way: “jbs”—if anyone can think of something better, please let me know!

Captcha stuff

This is PHP, but could probably be used with whatever you want to convert it to: [code] function createCaptcha() { // creates captcha problem and stores along with answer in SESSION vars //Thanks to @jezra for this: http://www.jezra.net/blog/creating_a_CAPTCHA

$ip_address = VISITORS_IP; //get the visitors IP address $appended_ip = $ip_address + date(“zB”); //append the numeric day of the year + Swatch Internet time to the ip_address $salt = “go away spammers”; //add some salt to the appended_ip $salted_string = $appended_ip+$salt; $md5_string = md5($salted_string) ; //get the md5sum of the salted string $first_int = getFirstInt($md5_string); //get the first and last integer of the md5_string $last_int = getLastInt($md5_string); //if the first int is greater than the last if($first_int>$last_int) { //this is a subtraction problem $problem = $first_int . “ minus ” . $last_int; $answer = $first_int-$last_int; }else{ //this is an addition problem $problem = $first_int . “ plus ” . $last_int; $answer = $first_int+$last_int; }

//set answer with session var $SESSION[‘canswer’.$problem] = $answer;
SESSION[‘cproblem’] = $problem; //set the problem, so can retrieve the answer later return $problem; } [/code]

Looks like this doesn’t show up in the rss feed at all…I’ll have to fix that in v0.2.1! (edit: fixed now!)

Tags: #site #blog #code #captcha

original filename: 160


So I wanted to enable the commentation on my blog, but hl— does not incorporate any spam control by default.
Luckily, however, @jezra has made a post on this very same subject in the past.

Using his code adapted into my php stuffs, it appears to work perfectly!

I did go back as Jezra suggested and convert it to use a SESSION variable, I also made it change the problem more often.

Then I went back and added an email feature so that if it is enabled, I am sent an email if a comment is posted.

I am now realizing that I need a way to tag quotes and “code” type sections in order to display them properly, otherwise it just looks like crap. That will definitely be my next project for this thing.

Also, I made a “tag cloud” page that just displays and links all of the tags. I wanted to this because it’s an easy way to categorize all of the posts, since hl— does not have any categories or even tags by default. This was pretty easy to do, using the standard tag designation “#” (although I made it so that it could be customized). This tag generator thing just iterates through all of the posts searching for tags and puts them in an array, then links them—pretty easy stuff. If I get that code formatty thing working, I’ll post up how I did this, although there’s nothing amazing to it. I’m sure somebody could use it though, especially if using a simple blog program like hlscript or hl—.

Maybe I will even make a git or launchpad for “my” version of this hl— blog software (which is probably now more like the original hlscript). hl++?

By the way, as if it isn’t obvious, I am decent at programming but terrible at design. This site looks pretty awful, but I’ll call it “spartan and utilitarian” :–)

Tags: #site #tags #captcha #blog

original filename: 159


A long time ago I had a friend who called himself my “arch-nemesis.” Well, I suppose we were better friends in our younger days, but at some point along the way his weirdness kind of took over. We were still friends…just also pseudo-enemies, haha. Yeah, it doesn’t really make any sense.

Anyway, this friend’s name was Ryan (later changed to Frederic). He is actually the person who introduced me to #linux, in the form of #RedHat version 4 or something—it was still a while before they changed the name to “fedora.” Ryan was very, very smart and before we were “enemies” we had worked together on a few websites — the one that I remember the most being webreezes.net. Or maybe it was .com. We always pronounced it “Wee-breezes”, but Ryan always told us that it was “Web-breezes.” He always took things way too seriously in that kind of way. As I became better at designing websites, for whatever reason I think he started seeing me as some kind of competition. Still friendly, though, so my friends and I would hang out frequently at his grandparents’ house where he lived in a suite in the basement.

He was always into technology, and turned me onto PHP and MySQL. I was in university studying Computer Science, and this high school kid was at least on my level—if not beyond me! He was…4 years younger than me, I think. I remember back when I was 17 or so and could drive, he was the only one of my friends riding that would almost always give me some gas money (even though I had my parents’ gas card at the time).

Ryan came up with most of the quotes in my factorQ quote archive (that used to get displayed randomly)—they were just random things he said that we found to be hilarious and quote-worthy. Some of the time if he wasn’t with us somewhere we even MADE UP quotes that sounded like something he would say.

I attribute a lot of my technological interest—especially with the web—to Ryan Little. In the last days we weren’t close at all…I can’t remember the last time I actually saw him, I’m pretty sure it was before he went off to college in Charlotte (another city).
I had been thinking of him though, wanting to get a hold of him and just see how he was doing and if he wanted to hang out sometime. I regret that I never did while I had the chance.

I still think about him sometimes, always the good times, you know how it is when someone isn’t around anymore. Sometimes I’ll google him: today is the first time something didn’t come up. Usually something would come up about forum posts about the old websites and things like that, but today, nothing. That kind of prompted me to go ahead and write out this post since I have never really expressed any of this.

He was 23 years old, found in his college dorm room dead on April 6, 2009. I don’t know if they ever determined if it was suicide or not, but I imagine it was.

RIP Frederic Edmund Cordeau aka Ryan Little.

and Thank you for helping to point me in a technological direction—and for being a friend…as well as an Arch-Nemesis. :–)

Tags: #webreezes #archnemesis

original filename: 158