Fallout 3 Terminal Hacker

Date Jan 30, 2009 at 08:53 PM | Games, Javascript, Software

I recently started playing the game Fallout 3 a little more and I came across a terminal I could actually attempt to hack. After a few failed attempts at it, I thought I would poke around on the Internet and see if anyone had any guides for hacking the things. Instead, I found this online terminal hacker, among others (this was the best one though). I thought, “man, that’s pretty slick, but I wish I has something that I could run locally in the event my Internet was down.” I poked around online a little and found a bunch of people claiming to be prepping downloadable, standalone versions, but nobody had yet delivered. Then I thought, “I bet I could write me own,” and that’s exactly what I did.

The rules for hacking the terminals are:

  • You get 4 tries, after which you can never try again
  • If you exit before the 4 tries are up, your available tries reset to 4, but so does the puzzle
  • For each word you pick, you will be told how many matching letters you got
  • That count is how many matching letters there are in the SAME position of the correct word

Originally, I was going to write it in Python. That way I could potentially execute it from anywhere I could install the Python interpreter and it would give me a reason to dive in to Python. Then I decided I wanted it done quick, and in an even more portable way; as a raw HTML page. So, I decided to write my version in Javascript, and here it is!

I used the one over at mediumexposure.com as a benchmark and honed mine down a bit (I didn’t catch that last rule when I was playing the game, which is why I could never figure the puzzles out). I will admit, mine isn’t as smart as his since it doesn’t take past guesses and matches into account, only the most recent guess and the remaining list of possible words. So, there’s a chance mine won’t guess correctly in the 4 attempts, but in the handful of tests I ran, I always managed to get it.

Now, I know what you might be thinking. “Hey, this is just another online file, how is this portable? How can I run it from my machine?!” Simple, save the html file to your computer and open it locally. All of the magic happens in the Javascript code (which I commented so you can follow along), which will run from your machine without the need for any extrernal processing or server. Go ahead, give it a spin and be sure let me know what you think in the comments. It’s a work in progress, so when I make it smarter, I’ll update the file and post again. Enjoy!

Comment No Comments

Multiple Drive Failures in RAID-5

Date Jan 29, 2009 at 01:14 PM | Computers & Technology, Hardware, Linux

I have a server set up with a RAID-5 array that I use to back up pretty much all of the data I have. Sure I have a bunch of things burned to DVD, but at only 4.3GB a pop, that can very quickly add up to a number of DVDs, and in fact already has. My server is actually an upgraded version of my old machine, running 4 500GB drives in a RAID-5 configuration. Since I’m cheap and don’t care all too much about performance, I use software RAID in Debian with mdadm running the show.

A short while ago, I had a drive that started clicking every time I would transfer large amounts of data to of from the box. Since all of the drives are mounted on the same bracket, it was nearly impossible to tell which drive was actually doing the clicking. I had a spare that I picked up a while back, so I figured I would wait for the drive to fail and then simply replace it. The problem was, when the drive finally did fail, another drive also failed with it, and if you know anything about RAID-5, you know it can only handle 1 drive failing at a time. Things were looking bad.
Read Read more…

Comment No Comments

Building a Better CAPTCHA

Date Jan 03, 2009 at 12:46 AM | Computers & Technology, Software, Usability, Web Development

CAPTCHAs can be good for stopping SPAM, but the last thing most of them are are usable. Don’t take my word for it, it’s a fact. One of the coolest ideas I ever saw was a HotOrNot mashup where you had to pick the three best looking ladies to prove you are a human. It was both usable and easy for a normal person, like my Grandparents, to use. That’s pretty unique and hard to come by, and that’s why I liked it.

One of the other easier CAPTCHAs I’ve used at work is a little dynamic images that asks you to do a little simple math. It’s an idea I saw on another site so I thought I would give it a try and it’s been extremely effective despite it’s ease of being broken. Surprisingly, it has completely stopped all SPAM coming through our contact form.

Another one I tried, much less effectively, is a colored word and a dropdown with a number of colors to choose from. It literally asks “What color is this text?” and offers a number of possibilities. This, however, was not effective for more than a week or so. The form still sees about one or two SPAM messages a day, which is especially strange because it’s a site that sees far less traffic. I think if I added more colors that weren’t even valid selections and changed the order it might be more effective, but I still need to find something better.

I’m thinking a system that would show three images and ask which one doesn’t belong could be usable, but it’s a little more difficult to implement; where do I get the images, how do I randomize the data, etc. I really like the HotOrNot CAPTCHA because the images always change and all of the images and data are crowdsourced, nothing for you to manage.

So, what can one do? Sadly, I don’t have an answer, but there is a lot of work being done on the topic. I think I need to just keep looking and mull this all over for a bit. We’ll see what I can find or come up with.

Comment No Comments

Drupal’s On Hold

Date Nov 17, 2008 at 06:16 PM | CodeIgniter, Drupal, Open Source, PHP, Software, Symfony, Web Development

I know I said before that I would be replacing Wordpress with Drupal around here, and I did start working on that. However, the more I read about Drupal, the harder it seems to do custom things. Actually, it’s more a problem of poor documentation than it is a lack of flexibility. Still, if I don’t know what I’m doing, it’s hard to learn anything.

Granted, I could easily replace Wordpress for the sake of my blog here (and probably still will at some point), but that’s not why I was planning to learn it. I wanted something that would allow me to crank out new pages quickly without constantly restarting from scratch. I do have a very weak framework I’ve written to try to achieve this, but every time I start a new site, I feel compelled to re-do at least part of it, so in the end I don’t save any time. In fact, I lose time because I have to re-learn the changes I made for each site when I need to maintain them.
Read Read more…

Comment No Comments

Media Playback in Ubuntu

Date Aug 23, 2008 at 01:32 PM | Computers & Technology, Linux, Open Source, Software

So, I had some Real Media (rm) videos that I wanted to view in Linux. But, like so many other sane people out there, I didn’t want anything to do with the official Real Player for Linux. I’ve never been a fan of Real and I’ve always thought their software was a bloated mess. Plus, why install yet another media player when I know I can get the job done with the mighty Mplayer?!

A quick search on Ubuntu Forums yielded this post. Following the link posted, here’s how I got it working from the command line:

$ sudo wget http://www.medibuntu.org/sources.list.d/hardy.list -O /etc/apt/sources.list.d medibuntu.list
$ wget -q http://packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add - && sudo apt-get update
$ sudo apt-get install non-free-codecs w32codecs

After that, the videos fired right up without a hitch. Brilliant! One thing to note: these codecs may be illegal in the US. I’ve read warning about them in the past anyway, though I didn’t happen to see any this time around. It’s kind of a legal gray area I guess, and while you’re not likely to get in trouble for using them, it’s something you should probably know. In any event, if you’re having problems playing videos in Linux (especially rm files), give this a shot.

Comment No Comments

Farewell Wordpress

Date Aug 18, 2008 at 10:09 PM | Drupal, Open Source, PHP, Site News, Software, Symfony, Web Development

In an effort to save time when I put together sites for people, I’ve been working on a universal engine I can use. It is modeled loosely off the MercuryBoard code and, for the most part, has served me pretty well. Recently, I’ve tried to revamp it with more object oriented code, integrating PEAR and a few other niceties. Still, the more and more I use it, the more I realize it saves me very little time. In fact, it actually costs me time when I have to go back and update the sites. It seems, sadly, the idea of a flexible CMS or framework is just too abstract for my skills.

I’ve spent some time reading about Symfony, which looks like an amazing project. I’m positive I can make it do anything I would need, but the learning curve is pretty steep and I’m worried that the time I’d take to learn it wouldn’t really pay off in the end. I like a lot of the concepts, but I’m just not completely sold on it.

So what does that have to do with Wordpress? Well, I’ve recently revisited a project that I spent some time with in the past but never really did much with. That project is Drupal.
Read Read more…

Comment No Comments

A History of Coding and Computers

Date Aug 02, 2008 at 04:49 PM | Computers & Technology, Software, Web Development

Apparently one of the people Aaron works with called him out on his programming and computer use history and he posted his response on his blog. In that blog, he took the liberty of calling out a few of his friends, myself included. I put off responding because my computer crapped out on me again. Now that I’m back up and running, here is my response. Enjoy.
Read Read more…

Comment No Comments

Mootools, I Choose You

Date Jul 04, 2008 at 10:00 AM | Javascript, MooTools, Open Source, Software, Web Development

I’ve always been a “do it yourself” kind of web developer, but after reinventing the wheel time and time again and struggling to make my code work in the various different browsers out there, I’ve come to appreciate that I can save a TON of time through different libraries and toolkits. I’m no Javascript pro (though I am the resident guru at work), but I find the language interesting. Ever since Google came along and showed the world that Javascript can be used for more than just popups and other web annoyances, I’ve been enthralled with some of the cool things people have done with Javascript. From AJAX to Comet, simple DHTML to animations, it’s simply been an amazing evolution.

About a year ago, Aaron tipped me off to the magic of Javascript toolkits, specifically Dojo. For a while, I was a proponent of it, opting to use it exclusively to drive an internal application that I had written from the ground up at work. It’s an extremely powerful toolkit which has been steadily adding more functionality as it ages to that point that it’s arguably the most powerful toolkit on the market. Unfortunately, I’ve also found it to be one of the most poorly documented toolkits available as well, which I’m sure was due in part to my lackluster understanding of some of the more advanced Javascript concepts. Still, looking at some of the more advanced Dojo examples I’ve seen from Aaron and other sources online, most of the syntax escapes me completely, even as I continue to learn more and more about Javascript.
Read Read more…

Comment No Comments

Skirting ISP Torrent Filtering Reset Requests

Date Jun 07, 2008 at 09:24 AM | Computers & Technology, Linux, Software

Many ISPs these days employ traffic shaping to make their networks run smoother. In the most basic sense, they give priority to more critical traffic, like VoIP for instance, and slow down less important traffic, like HTTP and Torrents. Lately, many ISPs have been doing their best to slap down any peer-to-peer (p2p) traffic, especially Bittorrent, because users are are consuming more bandwidth than the ISPs can handle. This is a result of the ISPs grossly overselling their networks and expecting most consumers to use a tiny fraction of their connection, a practice that worked great until more and more users became heavy consumers thanks to sites like YouTube and technologies like BitTorrent.

Now, I’m not saying that ISPs are doing anything wrong in overselling per se, but I do have a problem with them not properly planning for the future. Now that they have this bandwidth problem, instead of expending their networks to try and meet demands, they are using more and more restrictive filtering, sometimes even resorting to hacker-style packet injection in their traffic, nearly crippling whatever technology it is that people would like to use (and pay to use). Not only is this a very shady thing to do on their part, but in nearly all cases, they hide this fact from consumers and outright deny that anything is going on. They get away with all of this thanks to their monopolies in their select markets. But I won’t get in to all of that.

As in any other situation where one party tries to control another party, people are finding that there are many ways to get around this type of filtering. Read Read more…

Comment No Comments

I’ll Have One of Your Finest Arduinos, Please

Date May 27, 2008 at 09:14 PM | Arduino, Computers & Technology, Hardware, Linux, Open Source, Software

I’ve seen all kinds of really cool projects that use the fancy new Arduino microcontroller. I’m not the biggest fan of C or C++ (to be honest, I hate them both), but the Wiring model and the Processing environment seems interesting. So much so that I decided over this long weekend that I wanted to get in on the fun on purchased a kit from Adafruit. Sure I could have gotten it cheaper and ditched all the extras, but it seemed reasonable given that it comes with the Protoshield, breadboard, a couple power options, USB cable and some extra goodies to get me started out of the box. I figured it was all worth it.

I have some ideas for the normal automated plant watering, temperature-based fan controls and email and chat LED alerts, but I don’t have any revolutionary plans for the device. Talking to Jason, he gave me the idea of controlling motors with the unit which got me thinking back to the Assembly-based cars we coded for in college. I can see putting together a little car that can sense and route around obstacles and he suggested mounting some IR transmitters to turn TVs in the area on and off at random, which would be pretty fun too. I caught this “Large scale DOT Matric printer” on Hackaday too, which made me think about feeding images into the device and having it drive motors to actually create them on a large scale either like a DOT Matrix printer or a planer.

Anyway, we’ll see how much I do with this thing and how far I get. If nothing else, it’s an excuse to get back into hardware hacking. And if things go well, I can actually start posting projects up here. If you have any ideas for cool things to try out or questions about the unit, please post in the comments.

Comment No Comments