Ceaseless Student

Things I learn while living life as per usual

Wednesday, June 13, 2007

Let the Speed Reading Begin

I recently got a book called Break-Through Rapid Reading (by Peter Krump). It’s pretty much seen as the best book out there to teach yourself speed reading. Anyhow, I did the first evaluation today and was very unhappy. Previous test that I’d done online showed results of around 400WPM. This time around I got 240WPM. It was a book I don’t really enjoy so I tried with a fiction book and got 360WPM. This is sad. A good friend of mine pushes 2000WPM. That’s more than five times faster than my easy-book pace. The book claims doubling is on the low side for the results it yields; we’ll see. It’s a six-week long program if you go a chapter a day (which they recommend) so I should be blazing through stuff (about triple speed with more retention they claim) by August. Meanwhile, it is incremental so I’m supposed to expect significant (30%ish increase) results within a week. Sounds a bit out there, but we’ll find out. /me crosses fingers.

In other news, podcasts are pretty awesome. I’ve taken to listening to the news in French and German. This only works out because the German one comes with full text that I can paste into a translator. I read through the German (out loud b/c that’s the only way it happes at all), read through the English butchering and then listen to the podcast while reading the German (usually with occasional glances at the translation for missing words. I really enjoy when they translate people’s names to English… Here’s a good place to find foreign language podcasts. Oh and while I’m at it: Netvibes rocks! that’s where I play my podcasts and the place I call home on the internet.

posted by boris at 5:00 am  

Tuesday, June 12, 2007

Peltier

So there’s this cool thing called the Peltier effect. Basically, you line up n and p doped semiconductor in such a way that when you run current along the underside of the semiconductor all of the holes and electrons travel down. These electrons and semiconductors actually carry some heat so you can cool one side of the device while warming the other; the current will be directly proportional to the temperature difference. If you then hook up a heat sink and a fan to the heated side, you have a sweet cooler. I’m making one for beverages. It should be cool. I recommend wikipedia’s article on this for anyone interested. There’s also an inverse effect that uses a temperature differential to generate electricity; evidently there are even some watches that power off of the temperature differential that your body heat makes. Neat.

I just got myself an 80 watt, 8 Amp pelt (as they are known in the computer over-clocking world). And, wouldn’t you know it, I have an 80 watt max, 8 Amp max source that plugs into a cigarette lighter socket. I’m gonna rig it up with a heat sink and some holder that will allow me to hold a drink with the heat sink being where the AC pumps air out. I’m gonna have some nice cool drinks and a nice cool circuit in my car.

:-)

posted by boris at 6:57 pm  

Monday, June 11, 2007

NASA projects

So I now know what I’m working on.

I’ll be on a team that’s making an x-ray flux meter. This will pretty much count photons per unit time above some energy threshold. Ideally, we’d be able to figure out the energy of each incoming photon so that we could build up a spectrogram.

The other team I’m on is actually doing two projects. The first involves making a cheap x-ray imaging device by either hacking the software from a webcam or making our own camera. The second is something I’ve taken to calling ISPS - Inter-Stellar Positioning system. This is a lot like GPS except it can tell you where you are in space; it’s somewhat harder than GPS b/c there’s an extra dimension and we don’t have satellites anywhere except around Earth. The idea is to use millisecond pulsars (neutron stars that send out x-rays at an extraordinarily steady interval) instead of the satellites. We’re not actually even sure if this can be done, but hopefully it can and hopefully we can put together some software that could do it.

Anyhow, I’m super-excited. W00t!

posted by boris at 9:20 pm  

Sunday, June 10, 2007

Cool stuff from NASA

As some of you may know, I’m working for NASA at Olin this summer. On Friday we went down to Goddard Space Flight Center to talk to some people and get some projects to do for the summer. There’s some cool stuff; check it out:

We’re working with the x-ray group so you might see some obvious correlation…

-Interstellar GPS: Millisecond pulsars that emit x-rays at extremely constant intervals could be used to determine your position in space. We would study how to implement such a system and perhaps do some of the hardware/software too.

-Mounting Mirrors: X-ray mirrors need to get in space without breaking; this one’s a lot of FEA analysis and stuff.

-Hacking a webcam: Hacking the software from a cheap webcam to get crude x-ray images on the cheap.

-Flux Meter: Make a hand-held USB peripheral that can measure x-ray flux.

-3d XRD study: NASA recently developed a 3d x-ray diffractometer (used for identifying minerals), but they don’t currently know how best use the data. This one’s sifting through data and figuring out how much useful information we can extract and how.

Those are our projects; I’ll be working on two of them and will know which tomorrow.

On a completely separate note, I got to see something cool when our plane was breaking. You could see air resistance in action in the form of water vapor. So cool!

posted by boris at 9:39 pm  

Saturday, June 9, 2007

OlinDocs datbase generation (part the last)

All right so we left off with databases in all of the directories. Now it’s time to put everything together and get it all in its final form. If you haven’t been reading, this is not the place to start; try this instead.

This is all actually fairly easy and short. To combine all of the databases in all of the directories I use this little function.

def combine(path):
_mydb= open(’/…/OlinDocs/docdb.txt’,'w’)

_for location in path:
__tmp=open(location+’/part_db.txt’,'r’)
__mydb.write(tmp.read())
__tmp.close()

_mydb.close()

Since path is a list of all of my locations already this just checks the directories where I just made some partial databases, reads the whole thing and puts it into the main database. Just iterate and enjoy the fun. The rest is actually just manipulating text to put it in the form I described in part two for the javascript so I won’t really go into it. One little trick I will mention, is using str() on a list to get something in that exact format that can be written to a text file.

This gets me my final database! Now i just chuck the database.js online and the index.html and all of the documents on olindocs.com in the home directory. (I won’t push the html on people, but I encourage the interested to look at the source code of olindocs; it’s mostly iteration and is fairly easy to understand.)

posted by boris at 7:48 pm  

Thursday, June 7, 2007

OlinDocs datbase generation (part 2)

OK so back to some Python. Here’s the general setup I have (if you’re just tuning in, you’ll want to start here):

I have every document in a series of directories such that its location is …\semester\class\prof\author.

Single Directory Database

This is mostly what we did yesterday (undersores represent tabbing b/c I seem to be having some trouble putting tabs in right in blogger. Stupid html):

def prelim(location):
_import os

_params = location.split(’/')
_sem=params[-4]
_class_=params[-3]
_prof=params[-2]
_author=params[-1]

__db = open( location+’/part_db.txt’, ‘w’ )

_for fileName in os.listdir (location):
_if fileName==’part_db.txt’:
__continue

_temp = fileName.split(’.')
_file_name = temp[0]
_file_type = temp[1]

_…more stuff…
_db.write(’\t’)
_db.write(’\t’)
_db.write(’{a href=”http://olindocs.com/’)
_db.write(fileName)
_db.write(’”}’)
_db.write(file_type)
_db.write(’{/a}’)
_…more stuff…
_db.close()

path_file=open(’/…/OlinDocs/path.txt’,'r’)
path=path_file.read().replace(’C:’,”).replace(’\\’,'/’).split(’\n’)
for location in path:
_prelim(location)

First it imports the module for looking at directories. Then it gets out all the metadata that we previously embedded in its location. by splitting the location at every /. Then I just assign each portion of the location to the variable it defines. You’ll notice that I use negative indices so that I don’t have to wory about how many directories in I’m looking. This works just as well from C:\\ as it does from C:\\~\~\~\~\~\ (that’s actually a little bit of a lie b/c windows sucks, but we’ll get to that later). I have a little if statement to skip adding part_db.txt to the database; this is a file that I’m using to build up a database and not something that needs to be on OlinDocs. What goes on next is just writing out a text file. I do end up doing dome cool things like having the text file have some html (I have <> in the real program) so that the metadata can include links. Then we close the file and we’re done. We have a database that describes all of the documents in the directory. It’s actually not in its final format because I just wrote the data for each file in a new line instead of doing the one line of names and one line of metadata thing. This is really easy to change later so I’m just keeping this step simple.

Cool. Now all of our directories have a file called part_db.txt that tells us about the documents in it, but it’s in the wrong format and scatter everywhere. This is getting long, so we’ll merge these databases and put them in the right format tomorrow.

posted by boris at 3:42 am  

Wednesday, June 6, 2007

OlinDocs datbase generation (part 1)

All right. I’m finally going to talk a bit more about OlinDocs. (btw, I’m sad that I haven’t gotten, like, anything)

Let’s talk making a database with Python. In order for this site to work, I need to put variables that define the documents and their metadata into an easy to access array. My setup is basically one line gets all the names and one line gets all the meta data. For example:

data_names=['my car','my pen'];
// brand,name,weight
data=[['Honda',''Accord','like a ton'],['Pilot','G2','something in ounces']];

I think I’ll talk about some Python stuff today and put it all together tomorrow. That being said, here’s a link to the text file for my generator. And if you want to get the .py file you can right-click here and save it.

File management in Python:
-First we need to import os. This let’s us use all the other commands that we’ll need.
-Now try
location=’/Documents and Settings/’
for file in os.listdir(location):
print file

Nice. This lets us see files. We can pretty much do anything like copy files, remove files, make directories, rename files etc. but I won’t put that all here; that’s what the internet’s for.

Making
files:
Making text files in python is useful for myriad reasons. For example, they’re persistent (thus useful for saving data) and usable by other programs. The way you make a text file is just by opening it:
new = open(location+’/newfile.txt’,'w’)

The w means open it in write mode. You can also open it in append mode or read mode (a and r respectively).

Now that it’s open we can put stuff in it:
new.write(’Hello World’)

If you need tabs or new lines use \t or \n. If you need a \ you will have to escape that to \\.

If it were open in read mode, we could do new.read() or new.readline() to get a string that has the entire file or the next line of it.

String Tricks
This is likely old hat to a lot of you but strings can be manipulated in a lot of powerful ways. For example we can use replace to find a string and change it with another string by using string.replace(’s1′,’s2′). And there’s also one of my favorite things in Python: string.split(’s3′). This returns a list of items that were separated by some marker (eg comma-separated value files [.csv]). These can be used in-line to give you a lot of firepower for very little real-estate. A cute thing that my program does is
path_file=open(’/Documents and Settings/bdieseldorff/My Documents/OlinDocs/path.txt’,'r’)
path=path_file.read().replace(’C:’,”).replace(’\\’,'/’).split(’\n’)

This baby takes a text document that has a path with all the directories I need to look at in a form that I can copy and paste from Windows explorer and turns it into a list of locations that python understands. -First it reads the whole file
-Then it replaces C: with nothing to leave just \dir\subdir\subsub etc.
-Then it changes all of the \ with / (remember \ is escaped)
-Finally it makes a list of locations with every line break defining a new location in the list.
Pretty neat. So much stuff in so little space. Sweet.

Cool now my program nows where to look and we know how to write stuff in files. Tune in tomorrow for more on how we get from this to a complete database.

In other news I played a little bit of soccer today. I am incredibly out of shape. I’m gonna start running daily (starting tomorrow evening actually).

posted by boris at 9:40 pm  

Tuesday, June 5, 2007

Startup cost of life & PortableApps

I have burned through far too much money since i got to Olin for the summer. I’ve purchased cutlery, plates, bowls, mugs, pitchers, salt, pepper, a pillow, etc. but I’m counting these as startup costs. Actually, even some of the consumables are kinda like startup costs: 18 packs of hot cocoa will last a long time. I’ve also started buying groceries to eat and stuff; it’s messed up.

I’m also getting new glasses; I just feel like I’m buying stuff for being old. It’s a little bit saddening but I temper it with bouts of playing Magic and Smash Bros. Oh yeah. I also purchased a Smash Bros. cartridge.

Anyhow, I’m excited to see what NASA has in store for us on Friday. We’re currently just learning stuff about x-rays and imaging and the beginning of the universe and whatnot. Also some modeling. I got to model some circuits today: hooray circuits!

———————-
To make this more lifehackerish like I like it, let me tell you about portable apps. These rock. They’re stand-alone executables which means you can run them from anywhere like, say, a USB drive. They’re super-handy! There’s a few that make this suite priceless:

-LCISO Creator > tell it what drive you want to make an iso from and your done. so simple. so beautiful. my cd carrying baggy thing will soon be obsolete. (I suggest you get VCDrom to mount the iso files so that you don’t need to use your cd drive again!)

-Deepburner > not quite Nero, but way better than the junk they package with new computers

-OpenOffice Portable > that’s correct. a full office suite on a stick.

-explore2fs > incredibly cool. browse your files stored in linux from windows!

-wireless keyview > see WEP keys that are registered on a computer real fast-like! great for when you visit someone and they don’t know they’re own WEP key. Also good for being an extremely lame hax0r!

-7zip > uncompress anything and get some lean mean compression.

-Firefox, Filezilla, Gaim and you are online!

-foxit reader and vlc media player mean you have better ways of seeing pdfs and every sound and video format imagineable than comes on a normal computer.

+ a lot of programs to look at your computer’s inner workings (processes, registry etc.)

You can also have antivirus stuff etc to get ppl out of fixes…

I love these b/c I can use them on the computers of people too lame to have decent programs. :-)

posted by boris at 7:23 pm  

Monday, June 4, 2007

Blog name change

Hi all,

My blogging hiatus is over. I’m now at Olin for the summer and my blog will get some loving again.

So. I changed my blog name b/c I’m pretty much a total tool. You see, Eternal Student didn’t do well on Google. Other people had already thought of it and I was like the 23rd result or so. Not terrible, but I’d kinda started to thing of the Eternal thing as, well, me. So I googled some and went with ceaseless. I considered stalwart too, but I recently started a photoblog that tipped the scales for ceaseless. (I won’t be putting the photoblog on Planet Olin, but it has it’s own rss if y’all do that…)

posted by boris at 7:34 pm  
« Previous Page

Powered by WordPress

bdieseldorff