A day in the life of Joe

Tuesday, August 1, 2006, 09:17 PM ( 1 view )
First a little background.

I use Password Safe to manage all of my passwords. This allows me to easily use random passwords on multiple sites. Essentially, you store all of your passwords encrypted with one password, with a relatively friendly interface. This way the single point of failure is isolated to my password safe. If password safe gets compromised, then I'm in trouble. Regardless this is better than using the same password everywhere for everything or writing them down in your wallet.

As opposed to a dictionary password or mnemonic password, it is more difficult for an attacker to "guess" my password on any given account as they are 14 "random" characters which includes A-Za-z0-9 and symbols. This means there are more than 1E26 (that is a one with 26 trailing zeros) different passwords to try. To put this in perspective, even if they could try 1 trillion passwords per second they would witness the sun expanding into a red giant before they ran out of that key space. (That's in about 4-5 billion years)

Unless I'm stupid.

And today I was stupid, well maybe careless is a better description. Password Safe provides a feature called auto-type. First, open the page or login that you wish to authenticate. Now unlock your password safe and select the auto-type feature of the account in interest. Password Safe then enters your username, emulates a tab, enters your password, and then emulates an enter. So effectively it enters your login information without much interaction from you. Unfortunately you cannot target the auto-type intelligently. It must be the previous window you selected. In this case, where I was stupid, it was an IRC channel. Whoops. So, I reduced the time to discover my passwords from the current life of the universe, to one brief second.

Fortunately I trust most of the folks in that chatroom, and it isn't exactly the username/password combo to my bank account. Rather it is the username/password combo to my gmail account. Regardless, I decided to quickly change the password. It is easy to do, one click of a button and password safe generates a new one for you! Neat.

This brings me to my point.

Everything was back to normal. I now have a stronger password, but... now I can't check my email with Thunderbird. Right I need to change my password*.

Wait, how do I do that? Oh right Tools->Options->Privacy->Passwords->View Saved Passwords->Remove Entry. K, done. What it still won't let me login? Sending of password failed? This is the correct password!!! I just logged in to gmail through the web interface!!! What is going on??!

Long story short, and I haven't found this documented anywhere on google, or mozilla. Which you think they of all people would have the first hit for this problem. Right, long story short. You need to verify your password change:

Click Here to Validate

I promise that is the correct link. Here it is again:

https://www.google.com/accounts/UnlockCaptcha

Thank you msink of this forum.

The validate link unlocks your account for POP access, presumably. I've done this and am happily checking my emails again!

*We'll ignore the fact that Thunderbird stores my password, and that this is also a potential security problem. Again, these aren't the keys to the kingdom. More like keys to alot of spam, openssl-users mailing list archives, and automatic emails I send myself.

Wednesday, July 19, 2006, 01:36 PM ( 2 views )
I'm catholic, and have recently been blessed with a new son. I work in an office that is 90% male. Most of them are single and have, uh, colorful views on children. They are also fairly generous when it comes to gift giving. Add in the fact that they'll do anything for a laugh, you should be nearly primed for this. Yep they bought me a box of condoms.

All were amused.

Tuesday, July 11, 2006, 08:38 PM ( 2 views )
First here's the pictures: William Xavier Abbey

I'll get a summary soon

Turns out alt+tab is really close to ctrl+w

Tuesday, June 13, 2006, 10:03 AM ( 2 views )
I've been training for the Chicago Half Marathon for the past three weeks. Part of the training is following Hal Higdon's Novice training. The other part is giving up soft drinks and sugary coffee at work, an overall reduction in my consumption of sugar. I'm replacing the soda and coffee with water.

I decided that it might be a good idea to start tracking the progress of my training. You can check it out here. At the moment I have to manually update my CSV file that contains all my data.

Anyway I hope to get my pace below 10:00 before October 1st, and lose some weight.

See you in Chicago?

Monday, June 12, 2006, 03:48 PM ( 2 views )
Yo,

If you are in the area, and you know me. I am having a cookout tonight at 18:00. Pictures to follow...

Menu:

Hamburgers, Brats, Salads, Beer, and other assorted yummy goodness.

Edited June 13 @ 11:19am

There will be no pictures...

Monday, June 12, 2006, 09:11 AM ( 2 views )
Working...

Thursday, May 18, 2006, 08:16 PM ( 39 views )
I'm always excited to get emails from readers of the blog. It makes me feel good when I know that I've shared knowledge with someone. Especially someone I've never met. That's the case this evening, I received a comment from Andre asking for a circuit diagram of the AC Serial Switch. Not to disappoint, I opened mspaint and doodled a quick diagram.. I tried to make the diagram as true to life as possible.

On the Solid State Relay, each contact is labeled. Contacts 1 and 2 are for completing the AC's circuit. Contacts 3 and 4 are for controlling the completion of the circuit between 1 and 2. Contacts 3 and 4 on this particular relay "support" between 3 and 30VDC. Contacts 3 and 4 are tied to the DTR and GND of the serial port, respectively. The +12VDC that the serial port supplies is more than sufficient to switch the relay.

You'll notice that the AC is grounded to the relay's mounting point. The solid state relay has a heatsink on the back of it, that the ground is secured to.

Jim Vaught and I were extra paranoid, and put a 120V switch and 15A Fuse inline before the current ever got to the relay. Furthermore this is switching the black (hot) wire, that way there is no live current when the switch is open.

Wednesday, May 3, 2006, 11:48 AM ( 2 views )
The Show

Friday, April 28, 2006, 07:22 PM ( 2 views )
Two "hacks" concerning the DIY checkout line at Wal-mart:

1. If you speak English, you may immediately scan items. You do not have to select a language. I'm sure most people know this, but if not, now you know. :)

2. If you are going to pay with a credit card you may swipe it once done scanning items. You do not have to select finish & pay, credit. I didn't know this, I tried it today.

Cheers,

Joe

Friday, April 14, 2006, 11:07 AM ( 2 views )
Work has been crazy.

Everyone seems to have too much to do. This is not a bad thing, as it means there is work to do. However it seems that it has made some edgey, me included.

Fortunately a great deal is about to change. We're getting a full-time IT guy in. Terry and I get to drop a title, and a load of work. Speaking of Terry, hopefully he and the other members of development team will be less stressed soon, as today is code freeze for their project. I'm sure there are lots of bug fixes that await.

Anyway, finally getting good work done on my project. It was hard with a ridiculously high priority IT request, that apparently really wasn't that high priority, getting in the way. But now that's yestiday, so I'm back on track. Code freeze in two weeks. Bring on my bugs???

That's about all for now.

Cheers,

Joe

Tuesday, April 4, 2006, 08:47 AM ( 2 views )
We woke up late this morning, or at least I did. It was about 7:00a when I got up to start the morning grind. You know the normal routine, get up, prepare breakfast, feed Sam, go get Sebastian. Before I got up I heard him over the monitor saying, "Puppy" and other babbles. Everything was going accoriding to the routine, except this time, Sebastian came to us.

As I was making his oatmeal, I recall hearing scuffling in his bed. I thought to myself, it must be Kristen getting him ready. Then I look to my right and I see that Kristen is getting herself ready still. "Hello", shouts Sebastian as he enters the room. Kristen asked, "Did you get him?" I replied no. The young man was quite chipper as he strolled into the kitchen. It was quite a pleasant surprise.

I hope he remembers to stay in bed when it is time to sleep.

Wednesday, March 15, 2006, 05:45 PM ( 2 views )
Hurray another boy is on the way:

Baby Boy

Wednesday, March 15, 2006, 10:28 AM ( 2 views )
Just got back from the Free Coffee Day at Starbucks.

Hurray for free coffee.

I'm drinking 12oz of free Verona.

Cheers!

Tuesday, March 14, 2006, 12:15 PM ( 3 views )
So let's check the temperature.

Here's my Digital Rube Goldberg machine:



You can check it too:

Current Temp

I promise I'll write up a nice howto ASAP.

Specific Topics will include:

Hacking the WGT634U
Porting Packages to OpenWRT
How to find what you need on the Intarwebs/Connect-o-web/Internets

But don't hold your breath.. it will take a while

Monday, March 6, 2006, 02:59 PM ( 2 views )
What is working? Just ask Nate True.

I've built one nearly to the exact same specifications as him.

Expect a write-up as time permits.

Friday, March 3, 2006, 08:52 PM ( 24 views )
Just finished watching "What the bleep do we know?". So if you've seen this movie then you'll understand.

A problem that has bugged me is, "Why do the days seems as though they are getting shorter and shorter?"

The answer it seems is of course perception. There are still 24 hours to a day, right*? There are still 7 days in a week. But it seems Monday quickly rolls into Friday. Then it hits me. What makes a day seem long is if there is something new or different. What makes a day seem short is if a routine is followed. Therefore what makes the length of a day different is what my brain is perceiving. On days that are "short" my brain will go on "auto-pilot" not taking in new information, but rather reenforcing existing neural pathways. Therefore, much like when sleeping, time will seem to "fly by".

But lets take a day like last Saturday. We woke up early, went by the bank, looked at different cars, test drove cars, ended up buying a car, drove home. Multiple new experiences were taken in (compared to staying home and doing the same old same old).

Saturday was a "long" day.

Thoughts?

Here's some thoughts, why did out wedding go by so fast... it was all new.

*one might argue that the days are in fact getting longer due to tidal forces.

Tuesday, February 28, 2006, 04:06 PM ( 2 views )
Much has happened in the month of February.

As such I give you:



Wednesday, February 1, 2006, 06:57 AM ( 1 view )
First some "backstory":

If you're like me then you have too many computers... well more like too many keyboards and mice. While working at my current job, I bought a laptop and brought it into work. Now I could keep moving back and forth from keyboard and mouse to keyboard and trackpad, but that seems inefficient. A co-worker does the same thing I do, he brings in his laptop but he can slide his mouse from one screen to another, and suddenly his desktop machine's keyboard is active on the laptop. Yes, I'm talking about synergy.

Synergy captures the input from the keyboard and mouse and passes it on to the appropriate computer, based on the location of the cursor. This performed by sending the raw data over the network connection when the client has the focus. This becomes a problem because, if you were in a hubbed network or a switched network with arp poisoning, Eve could read every keystroke. My solution to this is ssh. So instead of my synergy client connecting to the synergy server directly, my client connects to localhost (the laptop) on the synergy port (24800) and then ssh takes all communication and passes it over to the ssh server on my desktop, which then forwards the data to port 24800 on the server. Secure Synergy. Also I setup my .ssh/authorized_keys on the desktop to allow for key based authentication instead of password.. so I just run the command in the morning, and synergy is good to go!

Without further ado the command (replace synergyserver with your server!):

ssh -f -N -L 24800:synergyserver:24800 synergyserver


Tuesday, January 31, 2006, 02:10 PM ( 1 view )

A question


I recently got an email requesting elaboration on the serial port controlled relay, and inquiring the number of devices that can be controlled with a single serial port.

An Answer


Essentially I'm using low-level ioctl calls to directly communicate with the pins on the serial port. This allows me to switch the relasy on and off. The reason the Solid State relay works so well is the way is because of the relay uses optical isolation to perform the switching.

Be sure that your circuits are completed as so:

PIN TO BE SET ------ Load ------ SERIAL GND

You can see in my picture:



That I've connected DTR to one side of the relay and GND to the otherside.

About the source code

(and why is may not compile!)
For whatever reason pipes or the character that allows for bit-wise or'ing, do not show up as pipes in simplephpblog.. rather they show up as colons. So when copying and pating be sure to search and replace : for the "pipe" character.

A couple extra comments in the source code

Please see this site as it is a great reference for serial programming for POSIX operating systems.

//Open the devices... /dev/tty or /dev/com....
int device = open("/dev/com2", O_RDONLY : O_NONBLOCK)

//Make sure it opened....
if(device > 0)
{

//First get the status of the relays:
ioctl(device, TIOCMGET, &status);

//Next set the pins that I want
status := TIOCM_DTR; // <- Thats a bit wise or, not Pascal assignment

//Finally tell the serial port what I want.
ioctl(device, TIOCMSET, &status);
}

Now what are the available flags for setting?


IBM PC/AT pinouts
TIOCM_CAR //DCD
TIOCM_DTR //DTR
TIOCM_DSR //DSR
TIOCM_RTS //RTS
TIOCM_CTS //CTS
TIOCM_RNG //RNG

How many devices???


Using a single serial port, gives you the option of easily controlling upto 6 independent devices by or'ing the flags together. You might be able to use TXD as well, but I'm not sure. Some of them are bidirectional, so they could be used for feedback. This is a naive approach, but should work for simple projects.

Disclaimer


Now a disclaimer.. this is pretty much abusing the serial port. I am not responsible in any way for any damages incurred with these instructions. This is not the way the serial port was intended to be interfaced. But... it works. It gives you +12V when on which is enough to switch some relays.

Future considerations


You might consider getting snazzy and add some logic to the relays that actually communicates using serial communication, that way (depending on your design) you could control a virtually unlimited number of devices from a single serial port.


Monday, January 23, 2006, 10:00 AM ( 2 views )
Thanks to Nate True for the javascript.

His script has allowed me to document the lock pick project pretty well:

Lock Picks

Wednesday, January 18, 2006, 08:59 PM ( 2 views )
*nix command that is!

Samba. It can be difficult to configure or it can be easy. I wanted it to be easy. Since I was only allowing internal hosts to connect to the samba server, I pretty much wanted them to have free reign on the shared drive. I want to be able to throw files on it and allow my wife to be able to access them.

Sounds easy. I had the config file written months ago. I had it working, and then suddenly it stopped. I'm not sure what caused the error, but without further ado:

# smbpasswd nobody
Enter NEW password:
Retype NEW password:

Tada, nobody now has no password. Still not a perfect situation, but I now have the shared drive. Also, it may be helpful to note that having everyone in the same workgroup is a good idea.

Hurray!

Monday, January 16, 2006, 04:37 PM ( 2 views )
Got a question from Chad Philips about the combination locks. He's been doing cool stuff with ping pong balls, lasers, and dc relays. Anyhow his question is concerning the combination lock cracker, which is still sadly unfinished.

How did you drive the stepper motor from your laptop? Did you use the parallel port and your own circuit or did you use a serial port?


I used the parallel port. Here's where I found the circuitry for the stepper motor control:

Neil Fraser: Hardware: Stepper Motors: Computer Control

While I didn't get the idea for the combo lock cracker from Neil he has his own approach:

Neil Fraser: Hardware: Locracker

I got my stepper motors here (CHEAP!)

BGmicro

Sadly I paid $$$ out to radio shack for the transistors and breadboard.

In my implementation the high nibble of the parallel data was for a stepper motor that would tighten a bolt to "pull" the shackle. The low nibble of the data would "dial" in the combination. This way I could pull while dialing but ... never got around to it.. :(

Source available upon request.

Cool stuff.

Monday, January 16, 2006, 09:56 AM ( 997 views )
Recenty I was perusing the Make: Blog and happened to come across a howto on Controlling a relay and motor with a serial port. I commented on the project and have received two responses, one from the author, and one from a reader.

Several months ago using a Solid State Relay, I built a serial port controlled switch. This allowed me to turn on any AC device I want with a simple C program.

Crude Circuit Diagram

---------
AC ---- 15 A FUSE ---- Switch ---- : : ------ DTR
: Relay :
AC ------------------------------- : : ------ GND
---------



If you'll notice in the pictures I also left the unused pins connected in the event I found time or use for them. Alas I have not, but the box still does it's job.

Voila:


The "switchbox"


What's in the box??!?!


Phew it's just some components.

And here's the code:

#include <string.h>
#include <stdio.h>
#include <unistd.h>
#include <termio.h>
#include <sys/fcntl.h>

void initAC(int device);
void turnACon(int device);
void turnACoff(int device);

int status;
int nap = 0;

main(int argc, char *argv[])
{
struct termios tp;
int dataRead = 0;
int device;

if ((device = open("/dev/com2", O_RDONLY : O_NONBLOCK)) < 0) {
printf("Couldn't open com2\n");
exit(-1);
}

if (tcgetattr(device, &tp) < 0) {
printf("Couldn't get term attributes");
exit(-1);
}

if(argc == 3){
nap = strtol(argv[2], NULL, 0);
}

printf(" SERIAL ANALYZER V1.0 ");
printf("DCD RXD TXD DTR GND DSR RTS CTS RNG\n");

initAC(device);

while(1){
turnACon(device);
usleep(740000);
turnACoff(device);
usleep(200000);
}

}

void initAC(int device){
ioctl(device, TIOCMGET, &status);
status &= ~TIOCM_RTS;
ioctl(device, TIOCMSET, &status);
printStatus();
}
void turnACon(int device){
ioctl(device, TIOCMGET, &status);
status := TIOCM_DTR; // <- Thats a bit wise or, not Pascal assignment
ioctl(device, TIOCMSET, &status);
printStatus();
}
void turnACoff(int device){
ioctl(device, TIOCMGET, &status);
status &= ~TIOCM_DTR;
ioctl(device, TIOCMSET, &status);
printStatus();
}
printStatus(){

printf("\r");
printf(" %c ", (status & TIOCM_CAR) ? '1' : '0'); //DCD
printf(" * "); //RXD
printf(" * "); //TXD
printf(" %c ", (status & TIOCM_DTR) ? '1' : '0'); //DTR
printf(" * "); //GND
printf(" %c ", (status & TIOCM_DSR) ? '1' : '0'); //DSR
printf(" %c ", (status & TIOCM_RTS) ? '1' : '0'); //RTS
printf(" %c ", (status & TIOCM_CTS) ? '1' : '0'); //CTS
printf(" %c ", (status & TIOCM_RNG) ? '1' : '0'); //RNG

sleep(nap);
}




Thursday, December 29, 2005, 08:02 AM ( 4 views )
I hope that all have been enjoying their holidays. I certainly have.

My parents came up to visit this season. Tomorrow we'll be heading to Chicago to watch my brother graduate from Navy basic training.

A couple days ago my mother's sister and family came to visit us. It was a very nice visit, filled with laughs and Euchre. We were all amazed as my mom stomped us in the TV edition of SceneIt?

My sister-in-law gave me a Vintage Game Collection version of Risk. It is very nice. Instead of the plastic figurines, there are little wood pieces that are used to amass your armies.

Yesterday we played a complete 6 hour game of risk. The highlights were mom had seemed to solidify her position in North America with about 7 armies in each territory. Then my dad, with his southern hemisphere, turns in his three cards and destroys all but three of my territories (good work Kamchatka!) Then my dad once that battalion had been stopped, set his sights on my wife. He destroyed all but two armies in Iceland. My dad's armies now occupied more than half the board. It seemed like it was all over for my wife, but then it was her turn, and suddenly ICELAND HAD 50+ armies. She quickly reclaimed Europe. Then it was my turn, I turned in my cards... and in one turn was able to over take the US. Unfortunately we had not read the rule that you get an opponents cards after they have no armies... alas I was pretty barebones in North America. After two more rounds my father was ready to attack again, he was able to overtake me. Then it was down to my wife and dad. A couple rounds passed and Kristen turned in her cards AGAIN! After two more turns she won!

It was an amazing game.

Have a happy new year!


Monday, December 5, 2005, 05:56 PM ( 23 views )


Not to be a poser, but its fitting

<<First <Back | 1 | 2 | 3 | 4 | 5 | 6 | Next> Last>>