So, I was curious to check out my analytics data today, which I haven't done in quite a while, and I noticed that I got a LOT more traffic than usual (about a 188% gain, to be exact). Of course, I don't have much traffic to begin with, so you can just imagine what "188%" could mean... but anyways.

I looked into it a little further, and it turns out most of my traffic was coming from reddit, about a week ago. "Wow" I thought, "my site is actually being checked out, for once!".

Well, after looking at the referral URL, I came to the conclusion that some people must really hate me. It was a small thread of comments, but apparently my "deflash" program I made was the "worst piece of C++ code I've seen in a while", "practically the definition of "overkill" " (why the quotes on overkill?), and written by a "typical ubuntu user".

Well, those comments on their own don't bother me, and it flatters me that eazy87 assumes I'm a " Ruby or Perl part-time programmer" (is that a bad thing, either way?).

What bothers me is that they would comment and rant their misdirected hate on a page I would probably never see, and make misinformed assumptions about me, and never post a single comment on my site. I'll admit, I'm not the worlds best programmer (period), and I've only been programming in C++ for one year (not to mention C++ is my first language), but come on guys! Show some love! If my code is literally THAT bad, then say something! Don't hide in the back corners hating on people because you can.

As for a  couple of comments, I would like to at least say something in my defense.
First off, about saying it only works in Ubuntu. I will admit, I enjoy Ubuntu, I use Ubuntu, and, naturally, for people who are new to the entire concept of linux, I enjoy making things for "noobs" and showing them how to do things with their system.

What i don't find funny, nor do i appreciate, is being labeled a "typical ubuntu user".
Over the past 3-5 years, I have ran, installed, and used a wide variety of distrobutions, like SuSe, Debian, Mandriva, Gentoo, Slax, Knoppix, OpenBSD unix, Dreamlinux, and many others that I can't even recall (you know how many distros there are). I have used a variety of user interfaces ranging from the popular GNOME and KDE, down to the less used, lxde, Sugar and ude.

Most recently, I have decided to settle with ubuntu because (YES) it's easy. Granted, I don't appreciate them removing and adding so many features and modifications from upgrade to upgrade, but that stuff happens. I find that if the average computer user would even consider switching to a linux kernel based open source operating system, ubuntu would probably be their best bet, because people like me are trying to make it as simple for them as possible for them, without forcing them to do their own research every time they have a problem (like windows users...).

Second, as for my wretched and, as I now understand, frankly ugly code, I have a legitimate excuse for that. I may be horrible at coding, but at the time, I was looking for a simple project to do in C++ or bash script, and my mother needed me to collect all the images from her windows user directory that we backed up onto a USB portable hard drive. She has hundreds of folders with pictures in them, and they are scattered in many different places, so manually going through and copying each picture was a no-no. So, I thought, "what the heck.", and decided to basically make a script in c++. I'm a person who codes to get the job done, and as such, 99/100 time will probably do something overkill, and inefficient. That's me. Anyways, the program worked, and would recursively find all jpeg files, and copy them to one folder.

About one hour after I wrote and ran this program, for some reason (how should I remember?), I went looking for a solution to removing flash cookies under linux, and more specifically, ubuntu. At that point it was 3:00 AM, and I was impatient and looking for a quick solution. After searching google for 5 minutes I read that they were in ".sol" files, and so changed a few lines in my code, and added a few more system commands. I knew nothing of the .adobe directory, and didn't feel like finding out, and besides, you can run this on a windows partition, another users home directory, etc, and it will seek out all the .sol files, instead of limiting it to only YOUR user directory. At (now) 4:00 AM, this was a win-win situation to me, and I called it a day.

Because I made it, I thought I'd share it. Because I shared it, I didn't want to answer questions (don't ask). To avoid questions, I twisted the facts. But what lexical technicality did I o-so obliviously (intentionally) leave buried, never to be recovered by the technologically inept?

Well, I coded it on the Ubuntu distribution.
I tried it on the Ubuntu distribution.
I was too lazy to do any research on compatibility issues between distros, if any.
I was too lazy to even consider dealing with random compatibility issues by dispersing the assumption that it runs on "linux" in general. (while we're on that note, it would be an erroneous assumption to say it runs on "linux", as that is referring only to the kernel, isn't it? My program clearly runs as a pseudo or hard-coded script, using the find command, and shred, among others... )

So naturally, and in a rush, I said it would only work on Ubuntu.
I know; I'm such a bad person.

So I hope you understand where I'm coming from, and If you're really that critical about things, then say something.
To my face. Please. That's what this blog is for, and that's what the comment boxes are for. It's not like I can do anything to you, besides take your advice.

The only thing worse than an idiot is one who doesn't know they are.
Educate the inexperienced, don't break them.
 
 
So I finally got my bus pirate in the mail, and now I'm just orienting myself with it's use.
I thought I did good in buying the bus pirate cable to go with it, only to find out I also need some clips/connectors to go on the end of each cable wire, so I can hook it up to stuff. Connecting them to header pins is useless as they're too big; at least on the cruddy round ones I'm using for my breadboard (they suck, thank you).

I plan on using it for a few projects, all pretty miscellaneous, but this will definitely help in debugging lots of problems, whether they be communications or sniffing protocols off of ICs. I don't really have much in mind for it as of now, but when I do come up with a problem that could use it I'll be sure to post it.

In other news, I was planning on assembling a junk-pc-parts music player / pandora streamer, with a web, ssh, and physical control interface. I had the motherboard, the PSU, the CD drive, and an old 20 GB HDD, and was ready to get to work on installing a minimal linux distro (probably a base debian install, which is about 40-300 MB depending on what you use) or just installing ubuntu server edition and installing the packages for audio support. I hooked everything together, and nervously plugged in the PSU, only to be greeted with the ugly sound of 3 beeps, in a continuous loop. After looking over everything and trying again, I got the same message. I was sure there wasn't anything wrong with the board or PSU, nor the HDD or CD drive, and I had a keyboard plugged in, so I was stumped.

Of course after feeling mentally defeated (didn't take to long...), I finally resorted to searching google for the beep code.
I find it's for lack of RAM.
I look at the motherboard.
Guess what I missed.

Well, besides admitting to being the victim of absentminded idiocy, I couldn't go on with the project, for lack of RAM. I didn't have any modules that were that... ancient.
I'll go scavenge at goodwill or a computer shop for some parts.
I don't need much processing power or other resources to do this project, so almost any decommissioned, rusty, old, 333 MHz, DOS running, serial port wielding, 3.5" floppy booting- okay so I got a little carried away. Almost anything will do.

Maybe another time.
 
 
As a computer-tech guy, I get asked quite often to fix other's  computers in our local congregation. As any private computer repairman (addicted to linux) knows, there WILL come a time when (1) a user's computer is overtaken by an especially malicious virus/trojan, (2) it seem people rarely if ever, seem to have their original Windows install disc, or at least a reinstallation backup partition provided through some OEM installs, (3) as an unofficial, self run computer repairman you know that the only solutions after (1) & (2) have taken place becomes either illegal, inconvenient, or expensive. Seeing as you don't want to deal with illegal copyright/intellectual property mumbo-jumbo, there are only 2 options.

One, you could notify the computer owner that they will have to pay somewhere between $90-$130 for a new Windows installation disc. This can be very inconveniencing to both of you, as it makes you look like EVERY OTHER computer repairman ("He's manipulating the situation for all the money he can get" conspiracy), and it sucks the cash out of their pockets. Nobody likes cash being sucked out of their pockets. Not an enjoyable situation (especially with a dyson).

The second option is to migrate the user to linux. This can be a good solution to those who would rather go the "diy" way, figuring out a dirt-cheap solution in exchange for not dishing up half your wallet. The problem is, for many, switching from windows to linux can be a very scary, very steep learning cure, ESPECIALLY if they don't have the time or motivation to learn a "new computer", and as all linux users know, the knowing how to at least basically operate a terminal shell is just part of that learning curve, you'll have to touch it sooner or later. This is time consuming, especially if all you want to do is research, listen to music, and browse the web.

Nevertheless, I have for the most part been hesitant promoting linux as a solution, because of said cons. Many people I work with would like to have the Watchtower Library, and although it is possible to run Windows' programs under linux, (thanks to the Wine project), it's difficult and confusing, especially if something  goes wrong.

BUT! Have no fear, for I have written an installation package/patch that walks people through installing it directly from cdrom. I spent an entire night writing it to make sure everything works like it should. Here are the steps.

Read More
 
 
So, I've been looking around for a good USB Wireless adapter solution that allows monitor mode and packet injection- don't ask. My laptop's default card is a broadcom chipset, and is painfully difficult to find drivers for, that enable any sort of advanced configurations. After looking around at all the different drivers and chipsets for various devices, I gave up - a long time ago lol. But, just yesterday, I found a USB adapter at wal-mart - the cheapest one there! - on sale for about $30.
Picture
This was great, and I didn't even have to add any driver extentions to my kernel to get monitor mode working on ubuntu 9.04! Just Plug-n-play. I expect to have much fun with this in the meantime while waiting for...

 
 
Hello "strangers"... I am once again severely delinquent in posting new articles- I am very sorry, and I'm sure by now any chance of a(n) SEO'd rank anywhere has been beaten, maimed, shanked, thrown into a pile of garbage, called degrading and humiliating names, kicked in the shins, poked in the eyes, lit on fire, and then thrown down an endless pit of darkness never to return to see the light of day... but I  digress.

I got a nice comment on some code I posted on Ubuntu Forums yesterday, so I am providing it here, with some background info.

read more...
 
 
I was kind of messing around with my (ghetto) home(made) desktop/server for a couple of days on our home network, and I thought it would be sweet listen to and control the music coming through my stereo, without having to constantly go over to the desktop when I wanted to change a song, change volume, etc. Also, partially because I couldn't get any sound from my laptop speakers (I've tried almost EVERYTHING). So, being the (?)creative(?) person I am, I set out to make my server sing - all through SSH-ing to it from my laptop, on the local network. This would be the best way for me to still control and listen to music with my mute laptop, and give my allegedly 1337* terminal skills a run for their money.

* - sorry. I just had to get that out of my system... :)

Here's How you can too...
 
 
I just thought I would post this, partially as a lame excuse for a blog post, and mainly because I think others dealing with sensitive files in linux will find this useful.

As you all know (or should, anyway) when you just delete files, on just about every operating system, the files are not actually gone. For some saving of confusion, I'll briefly cover why.

When you send something to the Trash Bin, or "Recycle Bin", as known in windows, the file gets sent to a temporary holding folder, where it stays, until either you decide you didn't really want to delete the file, and resurrect it, or until you empty the trash bin. The problem is this.

Let's say you have a file, "IMPORTANT.doc", and you sent it to the trash bin a week ago. Now it's time to clean the computer, so you open your trash bin, and empty the recycle bin. When you do this, it warns you that the files is going to be remove permanently, blah blah blah. So you hit yes and your file is gone.

This is not totally true.

What happened was that, when you emptied the recycle bin, the operating system wrote to your hard drive on a part of the file, known as the pointer. This pointer used to say:

 "This file is located here, and the data should not be messed with!".

When you deleted the file, it wrote over that pointer, and changed it to say:

 "This file is no longer important. If you need to put another file on the hard drive, feel free to write over me."

Or however the depressing story goes.

So, as you see, the data is never really deleted, it's just marked as unimportant, like the back of used scrap paper ( You know, that lame half messed up printed on paper your mom gave you to color on when you were a kid... ).

So, theoretically, the file can still be recovered with special software and, in more high profile cases, with an electron microscope.

"Well..." you're saying, "how DO I delete my files, then?". Long story short, in all scientific reasoning, theoretically, there is no way to completely be sure your data is securely removed, beyond recovery- excluding the physical destruction of your hard drive (for just one file? Psh. Come on...).

But there is a way to come close of this. The best way is to use a technique that recursively writes over the file data, multiple times, before removing the pointer. It's kind of like scribbling over a secret message with ink. Permanent ink.

The more passes, the better the chances of the file being unrecoverable. The DoD has it. So why shouldn't you? To begin with, under windows you will usually need a third party application, such as Eraser.
Under linux, the command is already there, you just need to know it!
I have made a simple one-line script tested on ubuntu, so that all you have to do is open a terminal, right-click-and-paste, and then re-open the terminal. Here are the steps, to a more secure linux deletion method:

1. Open your terminal (located in "Applications > Accessories > Terminal".)
2. With terminal open, right click in the window and paste this code:

echo 'alias sdel="shred -f -n 50 -v -z"' >> $HOME/.bashrc & exit

3. The terminal will close, usually almost instantly. This is supposed to happen.
    Open up the terminal again. Now you have a command called "sdel". Use this
    command on any file you would like to securely delete. For example:
 
    sdel IMPORTANT.doc

This will go over the file 50 times with random and repeated data, then fill it with zeros, and THEN, remove the pointer. You have a file that is very likely 99% unrecoverable. Now we can all sleep at night.

Anyway, this isn't too much in terms of a hack, but I just thought I'd throw it out there for people wanting to know if their files are really, truly being removed from their linux computers.
Ciao!

EDIT:

I have come to find out that this trick may not completly apply on newer journaled file systems, such as ext3. This has yet to be confirmed (I'm no expert on FS's), but it is still worth using for that extra assurance.
 
 
Hey, just posting this in the meantime, until the next project...
I was looking over hackaday, and I saw that Lubuntu - a distribution variant of Ubuntu, utilizing the lightweight X11 Desktop Environment, or LXDE - has been released for testing. This is a little late notice, but if you didn't know, now you do. Beta testing is very fun if you're into it- and if you're not, you should start! You may like this distro anyway, because it's very easy on lower-end hardware, and so will work better on older computers (and nicer on new ones ;) ), possibly repurposing old PC's into- whatever you can make linux do...

You can check out the blog page here, as they post the most recent download information.
 
 
Hey everybody, sorry it's been like a month since my last post, which is way too long, but don't give up hope; I will always be here to hack away, and will never just quit posting (unless in a sad event I am killed and thus can no longer post, but you already knew that :/ ). 
    In the meantime, I've been just busy enjoying the summer, and reading LOTS of manuals, and books, from everything JavaScript to using the Processing language to interface with virtual COM port data. Also, a little bit of driving around town has led me to a (hardly) epic discovery. It's about the belkin router crashing exploit that I told you guys about a while ago, where, when you had access to an unsecured belkin router, you just enter a formatted URL that crashes the login program, and ultimately the entire router. Bye-bye internet.
   What I didn't know is that this exploit pretty much works on any belkin router, because the problem is that they use the same web interface on nearly all their routers, including the basic programs that come with it. A flaw in proprietary coding. So, to a certain extent, this is a pretty big thing, because people could just  go wardriving around, crashing any unsecure, or poorly secured (Who uses WEP anymore???) Belkin routers ( For goodness sake, don't use the default router name!).
 
Hello There... 07/08/2009
 

Hi guys I'm back; sorry for the long wait, as I have been pretty busy for the last couple weeks.
I'm sorry I haven't been pushing out as many projects and how-to's  lately, but I plan to soon be back on my game, providing for all!

I recently had a suggestion as to applying new themes on weebly, importing the templates from nuvio.com. After stumbling around for a couple days (as I said, I was busy and didn't get to spend much time on this) I found it very difficult to apply these themes. First off, I'm not very good with CSS, and I need to brush up a little with my HTML.
   So far, because each template is very different, and weebly's dynamic variables are not all listed in the help page (these are markers in your HTML, that make your page dynamic, such as your blog posts and new page tabs, your Archives directory, etc.). So, as of now, it would be very difficult to automate or easily describe how to apply a theme, BUT, if you really need a theme, and if I have the time, drop me a message with the link to the theme you want on nuvio, and your website URL, so I can get a little overview of what to work with, and I may send a customized tutorial for your site, specifically. Again, this is not on a guaranteed basis, and I cannot be absolute it will work,  but if you're pretty much desparate, it won't kill to try :).
    In the meantime, I will be researching and working on a way to at least halfway automate this task.

In other news, I have ordered 2 new Arduino microcontrollers, and hope to get them in the mail soon! These will definitely get me going for new ideas in hardware hacking, especially an upcoming project I hope to finish when getting them; I'm going to voice control things in my room, and specifically, my frustrating electric heater!

Beside these and probably many other projects, If you have any suggestions or help don't be afraid to shout out!