Summer, Among Other Things
Posted by Eric Stein - May 3, 2008 @ 01:16:38 EDT
And so it begins. I'm home for the summer, and mostly caught up on sleep, if not caught up on anything else - I think I slep about 20 hours today. Now I get to unpack all my hastily packed things, clean everything, and get some consulting work done. I'll probably be releasing Psyched 0.1.3 within a week or so, as well.
We're still thinking about what exactly my project will be; several ideas have been put out there but there is nothing definite yet. I'm probably going to be doing my project alone, as I've heard plenty of horror stories about MQP partners being incompetent, not being motivated, or just plain not doing any serious work.
To the comments...Radio License!
A few days ago the paperwork finally went through at the FCC - I'm now a licensed HAM, callsign KB1QLE. I don't have a radio yet, but I'm on the lookout for one - preferably a dual band portable, but I might make do with a single band that scans.MQP
I've recently signed on with an MQP advisor, Craig Wills. For those no familiar with the MQP, it's a project drawing heavily on one's major that WPI undergraduates must complete to graduate.We're still thinking about what exactly my project will be; several ideas have been put out there but there is nothing definite yet. I'm probably going to be doing my project alone, as I've heard plenty of horror stories about MQP partners being incompetent, not being motivated, or just plain not doing any serious work.
Scraps of Life
Posted by Eric Stein - April 27, 2008 @ 15:36:59 EDT
Today, I need to do a few things. I woke up relatively early for a Sunday, at 9AM. Feeling the monetary pinch of needing to feed myself, I did a couple hours of consulting work before breakfast - strangely, even though I was working, I felt like I was putting off my schoolwork. I'm not sure how it happened, but I am actually on top of things. It might have something to do with the ridiculous amount of work I did last week.
Back to my original point. I have to do some things today. Amont them are:
Get
Do
It's all pretty managable. I guess junior year is almost done, then. I'll be taking a few weeks before starting my full time job at Mercury to do some consulting work from home, spending time with family, and probably doing not a little bit of open source work on my personal projects. I have a few interesting ideas that I haven't started on yet.
To the comments...Back to my original point. I have to do some things today. Amont them are:
Get
- Some blank tshirts
- Poppy seeds
- Deoderant
- Lemons
- Toothpaste
Do
- Update IQP presentation for tomorrow's meeting
- Same with the report
- Do databases homework (due tomorrow at 9)
- Create a framework for multiple lexical scopes for my Compilers class
- Bake
It's all pretty managable. I guess junior year is almost done, then. I'll be taking a few weeks before starting my full time job at Mercury to do some consulting work from home, spending time with family, and probably doing not a little bit of open source work on my personal projects. I have a few interesting ideas that I haven't started on yet.
Shell Meme
Posted by Eric Stein - April 11, 2008 @ 00:02:18 EDT
I found an interesting meme at stopped clock.
My desktop:
To the comments...My desktop:
$ history|awk '{a[$2]++} END{for(i in a){printf "%5d\t%s\n",a[i],i}}'|sort -rn|head
119 cd
43 rvid
40 l
21 ssh
15 rm
15 mplayer
13 sudo
12 wget
12 ls
9 eog
And my server:119 cd
43 rvid
40 l
21 ssh
15 rm
15 mplayer
13 sudo
12 wget
12 ls
9 eog
$ history|awk '{a[$2]++} END{for(i in a){printf "%5d\t%s\n",a[i],i}}'|sort -rn|head
74 svn
69 l
57 pwt
57 cd
44 vim
35 ./publish
27 s
20 screen
12 rm
12 cat
Interesting, eh?74 svn
69 l
57 pwt
57 cd
44 vim
35 ./publish
27 s
20 screen
12 rm
12 cat
Amateur Radio
Posted by Eric Stein - April 6, 2008 @ 22:13:44 EDT
Many of my friends at WPI use handheld radios to communicate frequently throughout the day. I've realized that it would be much more cost effective and convenient for me to just get a radio rather than using my cell all the time. Radio is also a much more group-friendly communications medium, so organizing things would be that much easier.
So, I'm looking to get licensed as a Technician Class operator by the FCC. The WPI Wireless Associaion is holding a testing on the 17th, when I'm going to try for my license. I hear I can get a decent starter radio on eBay for 60 bucks or so. Radio ahoy!
So, I'm looking to get licensed as a Technician Class operator by the FCC. The WPI Wireless Associaion is holding a testing on the 17th, when I'm going to try for my license. I hear I can get a decent starter radio on eBay for 60 bucks or so. Radio ahoy!
Last Edited April 16, 2008 @ 16:00:53 EDT
To the comments...So I Heard What I Did This Summer
Posted by Eric Stein - April 1, 2008 @ 15:15:40 EDT
As to what I'm going to do with the rest of my life, I haven't the faintest idea. This summer is a different matter - I know what I'll be doing.
I've accepted an internship position at Mercury Computer Systems, where I will be working on networking projects & multiprocessing. It should be a very interesting and educational job that'll look good on my resume - not to mention that it pays well, so I'll live less like a starving college student next year.
I may be living in Worcester this summer, at the apartment I'm leasing for senior year. Depending on how I work out the transportation issue, I may be living at home for part of the summer, too. Hopefully there will be other WPI people living in Worcester this summer.
To the comments...I've accepted an internship position at Mercury Computer Systems, where I will be working on networking projects & multiprocessing. It should be a very interesting and educational job that'll look good on my resume - not to mention that it pays well, so I'll live less like a starving college student next year.
I may be living in Worcester this summer, at the apartment I'm leasing for senior year. Depending on how I work out the transportation issue, I may be living at home for part of the summer, too. Hopefully there will be other WPI people living in Worcester this summer.
Using PGP Again
Posted by Eric Stein - March 26, 2008 @ 13:46:19 EDT
I've decided to start using PGP again. Here's my key:
To the comments...-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.7 (GNU/Linux)
mQGiBEfqbSIRBAC/xj2ICQ11lXsyBxzZWWYvH+LUa2LcCrEatisw5WN9SSKhAKNu
vu0nhMkRrZsZnBz31MqRvJWVjHhOtV39Xf3Xh0oekyUzu99U9+tCa5sl1wy+Izfc
Ze6mii9AZLQ3jVTTaVEhK7UQ+g1JZCMqRx3WJYyf9l722WBf2TSq+ATmfwCgz+GQ
wTxyNp636AyWW4l67HEl/NUD/3lz1LKM14vTqGb0hHKxLMnlXwlyeHD7szZ0FYJz
eEf4d3dL6l6f8ntil+KxFplZAH/axClJtxgKeAL6tquLD4NQq8jCMXeHzUFoX6s3
GBgU7WjDigSZGoXzk3YFx0E/l8O/D9VRuBdCq0IhhCi1ubMQGk3iYLkWK3VIFkr4
uQUGA/9/tvB95Nx/gC+42jeIgl6cYLkOj/zRiTJMhUzp/H7BHcp3/Q1VWJn+17Qk
ihCHsDPweft6FEZdxpo/n5DpJ2/HlpLWXbDehoVoUOGUUS+d2Jg7aECAX22NtFXd
3rXsAm4ln06ZdgwhHzgkgFXcUbTfOKLOUEklnn8kwG/l2mTByLQfRXJpYyBTdGVp
biA8dG9iYUBkZXMudHJ1Y3Qub3JnPohmBBMRAgAmBQJH6m0iAhsjBQkJZgGABgsJ
CAcDAgQVAggDBBYCAwECHgECF4AACgkQg+42HCu88Jws6wCfboVTGlvY05fqTydD
pC1RZiLzHBIAoJwjhMuR1Q1n+Txkp8Q1hjdDaS/cuQINBEfqbSIQCADGj29UkFD0
FiVvWc79LgBfwIALy5A7iM6Cfv04OmraEhc0clf7FqIdQXVOvFgCdONdkEGKSvTh
c4NYaE6ZNlpgL07fm4dLikSi9CIsWK0pLf4cpnjE9+gnwrkbojmIDbHqINeIG/Ao
i+AUZdwIyRCFMZBIbOTO7i7ZAyPLd6Qtl6pdfJwizKiHGsWNFsw97mvTAclqCSRP
dgBjQywLJFHLMqztUXlt/xIkdmukqoehqto6UZZXOm/Hjjezbkx1lYGoNUK28zAD
4R6oP4KrFmg0vTZSqaFXzv4vZKBGZOh76+nk41cRQWjonNVBobzwEme6D4qp64Ze
d8D1jDczl90/AAQNB/4qNANBe3pzqT7puuroUN76tjWFoo8+maNYE2QXR1ZZOQlT
MQPydqE9HVXaWy1mXe6Fh8UU026+qf2LmeNYcNnzIIRlrL97AVhT8NQpNyrMxV+e
uXH03vuJbI/SOTFBzme5GdSXHQR9UlNw593MRuv+ngaQkifrmSS/WK7taGMwZjDd
xLRNGep6xQirKmTr5QgZ55EZVyq8vjdyGkR0tmx191LwkV6CmDF6uQBayEHWNlQr
DGmvCmnnuvchgOXTLqu2Wx7XkmNC0qTidQcmrpvO4PTe1p71GRvnCPXuzwjBOJLk
lJh9Ak2lR69qAg5Bqo1mk+jt/KULbyKj6R14wmmDiE8EGBECAA8FAkfqbSICGwwF
CQlmAYAACgkQg+42HCu88JxUzACgpBwdgkRAzoJ+BFNe8CzBr2cfGFMAnjPsdmJG
5MMtPuV/oqQym6sxr2tM
=RQAZ
-----END PGP PUBLIC KEY BLOCK-----
That's about it. A useful program for using PGP is Enigmail, a plugin for Thunderbird.Version: GnuPG v2.0.7 (GNU/Linux)
mQGiBEfqbSIRBAC/xj2ICQ11lXsyBxzZWWYvH+LUa2LcCrEatisw5WN9SSKhAKNu
vu0nhMkRrZsZnBz31MqRvJWVjHhOtV39Xf3Xh0oekyUzu99U9+tCa5sl1wy+Izfc
Ze6mii9AZLQ3jVTTaVEhK7UQ+g1JZCMqRx3WJYyf9l722WBf2TSq+ATmfwCgz+GQ
wTxyNp636AyWW4l67HEl/NUD/3lz1LKM14vTqGb0hHKxLMnlXwlyeHD7szZ0FYJz
eEf4d3dL6l6f8ntil+KxFplZAH/axClJtxgKeAL6tquLD4NQq8jCMXeHzUFoX6s3
GBgU7WjDigSZGoXzk3YFx0E/l8O/D9VRuBdCq0IhhCi1ubMQGk3iYLkWK3VIFkr4
uQUGA/9/tvB95Nx/gC+42jeIgl6cYLkOj/zRiTJMhUzp/H7BHcp3/Q1VWJn+17Qk
ihCHsDPweft6FEZdxpo/n5DpJ2/HlpLWXbDehoVoUOGUUS+d2Jg7aECAX22NtFXd
3rXsAm4ln06ZdgwhHzgkgFXcUbTfOKLOUEklnn8kwG/l2mTByLQfRXJpYyBTdGVp
biA8dG9iYUBkZXMudHJ1Y3Qub3JnPohmBBMRAgAmBQJH6m0iAhsjBQkJZgGABgsJ
CAcDAgQVAggDBBYCAwECHgECF4AACgkQg+42HCu88Jws6wCfboVTGlvY05fqTydD
pC1RZiLzHBIAoJwjhMuR1Q1n+Txkp8Q1hjdDaS/cuQINBEfqbSIQCADGj29UkFD0
FiVvWc79LgBfwIALy5A7iM6Cfv04OmraEhc0clf7FqIdQXVOvFgCdONdkEGKSvTh
c4NYaE6ZNlpgL07fm4dLikSi9CIsWK0pLf4cpnjE9+gnwrkbojmIDbHqINeIG/Ao
i+AUZdwIyRCFMZBIbOTO7i7ZAyPLd6Qtl6pdfJwizKiHGsWNFsw97mvTAclqCSRP
dgBjQywLJFHLMqztUXlt/xIkdmukqoehqto6UZZXOm/Hjjezbkx1lYGoNUK28zAD
4R6oP4KrFmg0vTZSqaFXzv4vZKBGZOh76+nk41cRQWjonNVBobzwEme6D4qp64Ze
d8D1jDczl90/AAQNB/4qNANBe3pzqT7puuroUN76tjWFoo8+maNYE2QXR1ZZOQlT
MQPydqE9HVXaWy1mXe6Fh8UU026+qf2LmeNYcNnzIIRlrL97AVhT8NQpNyrMxV+e
uXH03vuJbI/SOTFBzme5GdSXHQR9UlNw593MRuv+ngaQkifrmSS/WK7taGMwZjDd
xLRNGep6xQirKmTr5QgZ55EZVyq8vjdyGkR0tmx191LwkV6CmDF6uQBayEHWNlQr
DGmvCmnnuvchgOXTLqu2Wx7XkmNC0qTidQcmrpvO4PTe1p71GRvnCPXuzwjBOJLk
lJh9Ak2lR69qAg5Bqo1mk+jt/KULbyKj6R14wmmDiE8EGBECAA8FAkfqbSICGwwF
CQlmAYAACgkQg+42HCu88JxUzACgpBwdgkRAzoJ+BFNe8CzBr2cfGFMAnjPsdmJG
5MMtPuV/oqQym6sxr2tM
=RQAZ
-----END PGP PUBLIC KEY BLOCK-----
Dangerous Cryptoloop Voodoo
Posted by Eric Stein - March 21, 2008 @ 22:27:04 EDT
Today, I wondered whether I could use cryptoloop to encrypt an already existing partition, in place. This could be useful if you have a large hard drive that you want to encrypt, but you don't have anywhere to copy the files as an intermediary. To test the theory that it was possible, I backed up my flash drive and tried. Here goes!
sting ~ # dd if=/dev/sdb1 of=/dev/loop3
1969632+0 records in
1969632+0 records out
1008451584 bytes (1.0 GB) copied, 449.473 s, 2.2 MB/s
sting ~ # losetup -d /dev/loop3
It works. Of course, I make no guarantees that this will work for you. If you're willing to risk it, good luck. Mind you, doing this while the drive is mounted is an even worse idea.
Encrypting
We're using losetup to create a virtual block device piped through the encryption algorithm to the original partition. That's pretty easy.sting ~ # losetup -e aes-256-cbc /dev/loop3 /dev/sdb1
Password:
Password:
Danger, Will Robinson!
This is the dangerous step. We're block by block copying each original block and immediately sending it back through the cryptoloop device, whch encrypts the data and puts it back on the device itself.sting ~ # dd if=/dev/sdb1 of=/dev/loop3
1969632+0 records in
1969632+0 records out
1008451584 bytes (1.0 GB) copied, 449.473 s, 2.2 MB/s
sting ~ # losetup -d /dev/loop3
Using The Device
Now that we've in-place encrypted the device, we can try mounting it again.sting ~ # losetup -e aes-256-cbc /dev/loop3 /dev/sdb1
Password:
sting ~ # mount /dev/loop3 /mnt/flash
sting ~ # cd /mnt/flash
sting flash # ls
helloworld.txt
sting flash #
Password:
sting ~ # mount /dev/loop3 /mnt/flash
sting ~ # cd /mnt/flash
sting flash # ls
helloworld.txt
sting flash #
It works. Of course, I make no guarantees that this will work for you. If you're willing to risk it, good luck. Mind you, doing this while the drive is mounted is an even worse idea.
Last Edited March 23, 2008 @ 19:37:22 EDT
To the comments...PWT - Command Line Twitter Updater
Posted by Eric Stein - March 17, 2008 @ 15:53:04 EDT
I just spent about an hour writing a small twitter updater script in python. It was quite easy, since I used python-twitter to do all the heavy lifting.
You can follow me on twitter or check out PWT.
To the comments...You can follow me on twitter or check out PWT.
Using git-svn For Fun and Profit
Posted by Eric Stein - March 17, 2008 @ 05:27:01 EDT
For the last few weeks I've been using git-svn while developing offline. It's optimal for me because SVN supports all my online coding flow & I run an SVN server already.
Given git's reputation as a bit of a challenge to use, it's surprisingly easy to get started with git-svn.
This will check out the entire history of your repository into a local git repository. Now, I know that git has a reputation as being large, scary, and complicated, so I'll include a quick primer on how to use git for everday SCM tasks.
Quite easy, really. A little more verbose than svn, but understandable.
That's along the same lines. Nothing that hard!
So you're back from your sojourn in the desert now, and you've been productive. Now it's time to merge your changes into the SVN repository. But first, we need to do the equivalent to svn up before committing:
Looks like it's all clear. Time to actually commit those changes:
Now all your changes are in the main SVN repository as individual commits. Now put git-svn into your toolbox to end the days of shuffling files about by hand, worried that you'll break something.
Cloning an SVN Repository
Given git's reputation as a bit of a challenge to use, it's surprisingly easy to get started with git-svn.
~ $ git-svn clone svn://svn.example.com/project
Initialized empty Git repository in .git/
A FILE
r1 = 30c7f86823da99538fae8afca5ca46d3d43c32f7 (git-svn)
Checked out HEAD:
svn://svn.example.com/project r1
Initialized empty Git repository in .git/
A FILE
r1 = 30c7f86823da99538fae8afca5ca46d3d43c32f7 (git-svn)
Checked out HEAD:
svn://svn.example.com/project r1
Using Your Git Repository Offline
This will check out the entire history of your repository into a local git repository. Now, I know that git has a reputation as being large, scary, and complicated, so I'll include a quick primer on how to use git for everday SCM tasks.
Adding Files
~ $ cd project
~/project $ touch newfile
~/project $ git add newfile
~/project $ git commit -a -m "adding a new file"
Created commit 4312745: adding a new file
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 newfile
~/project $ touch newfile
~/project $ git add newfile
~/project $ git commit -a -m "adding a new file"
Created commit 4312745: adding a new file
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 newfile
Quite easy, really. A little more verbose than svn, but understandable.
Modifying Files
~/project $ cat >> newfile
added a line to the new file
~/project $ git commit -a -m "wrote some data"
Created commit 58efa1c: wrote some data
1 files changed, 1 insertions(+), 0 deletions(-)
added a line to the new file
~/project $ git commit -a -m "wrote some data"
Created commit 58efa1c: wrote some data
1 files changed, 1 insertions(+), 0 deletions(-)
That's along the same lines. Nothing that hard!
But I'm Online Now...
So you're back from your sojourn in the desert now, and you've been productive. Now it's time to merge your changes into the SVN repository. But first, we need to do the equivalent to svn up before committing:
~/project $ git-svn rebase
Current branch master is up to date.
Current branch master is up to date.
Looks like it's all clear. Time to actually commit those changes:
~/project $ git-svn dcommit
Committing to svn://svn.example.com/project ...
A newfile
Committed r2
A newfile
r2 = 4f50219cbf276ed6cf6a94641e1bbce94c2f44a6 (git-svn)
No changes between current HEAD and refs/remotes/git-svn
Resetting to the latest refs/remotes/git-svn
newfile: needs update
M newfile
Committed r3
M newfile
r3 = 518ba784aa23241e74297fd62406591e8d433922 (git-svn)
No changes between current HEAD and refs/remotes/git-svn
Resetting to the latest refs/remotes/git-svn
Committing to svn://svn.example.com/project ...
A newfile
Committed r2
A newfile
r2 = 4f50219cbf276ed6cf6a94641e1bbce94c2f44a6 (git-svn)
No changes between current HEAD and refs/remotes/git-svn
Resetting to the latest refs/remotes/git-svn
newfile: needs update
M newfile
Committed r3
M newfile
r3 = 518ba784aa23241e74297fd62406591e8d433922 (git-svn)
No changes between current HEAD and refs/remotes/git-svn
Resetting to the latest refs/remotes/git-svn
Now all your changes are in the main SVN repository as individual commits. Now put git-svn into your toolbox to end the days of shuffling files about by hand, worried that you'll break something.
Last Edited July 28, 2008 @ 23:45:31 EDT
To the comments...Why I Bake
Posted by Eric Stein - January 19, 2008 @ 18:35:48 EST
Today as I sat at the kitchen table, mixing poppy seeds into cookie dough, my house mate Lynda asked me what motivated me to bake cookies so often. I thought about it for a second, and told her that "I guess they taste good, are cheaper than the ones I could buy, and it's fun." But as I deployed the dough into formation on the cookie sheet, it got me thinking. Really, why do I enjoy baking so much?
Part of it may be my interest in chemistry, which was until a few years ago more important to me than computer science. There's a strong parallel to chemistry in baking; watching all the ingredients combine and react until I've created something that's larger than the sum of its parts.
Both chemistry and programming create something new, but there is much more unpredictability to code - the underlying reality can vary from installation to installation, and it can even change under your feet. Chemistry is solid and predictable. So is baking, now that I've achieved a certain level of skill at it. It's solid, real, and tactile.
When I bake my mind can wander free, unconscious of the worries and stress of the world. I don't have to plan for problems and the unexpected; everything just works.
To the comments...
Part of it may be my interest in chemistry, which was until a few years ago more important to me than computer science. There's a strong parallel to chemistry in baking; watching all the ingredients combine and react until I've created something that's larger than the sum of its parts.
Both chemistry and programming create something new, but there is much more unpredictability to code - the underlying reality can vary from installation to installation, and it can even change under your feet. Chemistry is solid and predictable. So is baking, now that I've achieved a certain level of skill at it. It's solid, real, and tactile.
When I bake my mind can wander free, unconscious of the worries and stress of the world. I don't have to plan for problems and the unexpected; everything just works.