Showing posts with label Autodidact. Show all posts
Showing posts with label Autodidact. Show all posts

Sunday, March 16, 2008

Quietness Experiment

Some of you might have noticed a period starting two weekends ago and going through about last Tuesday where I was substantially quieter than usual. I was trying a bit of an experiment to see if I could be both quiet and passive as opposed to loud and borderline aggressive. It was hard, but also quite eye-opening.

I started on a Friday evening and pretty much just failed. I would just be frustrated for a while as I actively tried anything in order not to talk and then I'd eventually let my guard down for a second (usually because my willpower was being drained at incredible speeds) and I'd be back at full volume imposing my views on as many people as humanly possible. Not great. Also, I got sweet headaches from the failed effort of trying to be quiet.

This would be that pattern for a few days. Eventually, with a great deal of self-programming (mostly by a hybrid meditation/self-hypnosis thing I've had going since high school) and force of will, my volume decreased. I started listening to what others had to say. Mostly, I tended to agree with what loud-Boris would've had to say on the subject, but I simply didn't say it. Sometimes, I found myself noticing that there was more thought behind some of the things others said than I would normally see (as they would've been interrupted before it became evident). I found myself enjoying being quiet sometimes. It started being classified as a default state. I met a friend's girlfriend and was introduced as "This is Boris. He used to be loud, but... uhmmm... now he's not... anyways, he's a good kid." Another friend told me that my default volume was not only lower than my old volume, but actually lower than the average person's default volume. I was feeling pretty proud.

In addition to the volume thing, I was also doing the passive thing. This meant lots of things. For example, I had to wait at the dinner table until someone left in order to leave instead of causing an exodus myself. Something I found rather amusing was that many groups had very solidified roles for people. Any group that relied on me to start conversations had incredibly funny awkward silences. To the point where one group spent most of a conversation talking about how they wished the other loud person in the group was there so that they'd have something to talk about. It was hilarious. Oh. And frustrating. Did I mention that? Anyways, this went on for a while and I was debating keeping it. Ultimately, the goal was to reach a state where both my volume and my level of assertiveness were things I could dynamically modify. But until then, I'd need a default. I was actually considering making it quietness. I wasn't going to do passive, but I though I might go for assertive and quiet.

But then I decided to go back to a loud default. Why, you ask? Well, I seem to be unable to separate out the assertion from the volume easily. I started being really unhappy with myself when I'd occasionally decide to say something and then never say it because I wouldn't interrupt anyone. By the time a hole in the conversation popped up... well - it just wasn't relevant anymore. So I'm back to old, loud Boris.

*sigh*

Maybe I'll try separating out assertiveness and volume again sometime soon. It seems like a prerequisite for the end goal of having full, real-time control of both of these variables independently.

---------------------
On an entirely different note, I've had a headache since I got home. I think it's because of a lack of pressure. It's kind of hilarious really.

Sunday, March 9, 2008

Shorthand and the Major Memory System

So I ended up dredging up a couple of old pals today. In the past, I've learned a couple of forms of shorthand (Speed-Writing and Teeline) and I'd read about (and tried) a variety of memory systems. These have all been entertaining for a while and then been left by the roadside, but it has not been a waste.

I still remember Teeline just fine and occasionally use it to jot things that I'd rather not have others read or simply because I don't have room in a margin to write things out longhand. I'm certainly not faster at Teeline than normal writing anymore. (pdf of the Teeline system)

The Major System (wiki) is an infinitely generalizable peg memory system. The idea is that you link whatever you want to remember with a particular image that represents an index. The neat thing about this system is that each digit is represented by a consonant sound. For example, a 1 is a d or t sound. So my index for 1 is 'toe' and my index for 11 is 'dead.' If I want remember a list of scientific discoveries, for example (Times top ten list), where #1 is a method for making skin cells behave like embryonic stem cells - I could picture some skin from a toe being scraped off and grown into various organs.

Now here's my favorite part. Teeline uses only consonants. The Major system makes everything a consonant. I think they like each other. It certainly helps add an additional few elements of memory (I can remember writing out and seeing the Teeline symbol). More importantly, it got me excited. Time to relearn both. Maybe this time I'll stick with the major system. It is conceptually incredibly powerful. If anyone wants to practice either at Olin, let me know.

Friday, February 29, 2008

MIT OCW and a couple of revelations

First a neat tidbit. OpenCourseWare is neat. If you're an Olin student who likes complaining about not getting intro circuits taught to you, try just listening to the videos for MIT's 6.002 while you do other things.

--- Something a bit less about learning ---

I'm a very layered person. I have a pragmatic side, an idealistic side, an ideal side and a true belief side. Pretty much all of my views on these are irresistibly opposing (eg pragmatic capitalist vs. idealistic socialist). It's kind of great. Often it's just annoying. I rarely dip farther than my idealistic side, because it just doesn't come up - if it does, I'm just likely to get depressed. Things I recently learned (although I'd suspected the second one):

  • As it turns out, I'm actually sensitive to attacks on stuff deeper than my idealistic side.
  • Also, evidently my beliefs are such that I can seriously disturb people by simply mentioning them.
Sometimes I wonder.

Saturday, August 11, 2007

Neat magic trick

I just learned a fantastic magic trick. It's really quite simple. It's one of those tricks that depends on manual dexterity and quick talking instead of complex design. Truly fantastic.

I'll put up a youtube video when I give up on it. You can either see it there or from me (if giving up turns out to be unnecessary).

Tuesday, July 10, 2007

The Intersection of Reading and Sleeping

So I've been looking at my reading rates for four different drills since is started my new mode of sleep. All the scores have plummeted. There's been close to a 30% loss in speed.

Unfortunately there are confounding variables. Here's a few reasons I might be going slower

-I am sleeping less; therefore, I'm more tired
-I am drilling at 6:30 AM; therefore, I'm not as effective
-I am understanding more; therefore, I can't go as fast


The more I think about it the more it feels like that last reason is the big one. Today I read a passage at nearly 1400WPM with a comprehension that felt comparable to what I get when I go at normal speed. It's worth noting that this isn't a difficult book and that I've read it more than once in the past. On the other hand this is about four times faster than my original reading rate calculated from the same book.


If there is an effect from the first two, that will hopefully go away as soon as I start actually uhmm.... sleeping?... during my naps. Yeah...

Saturday, July 7, 2007

Speed-Reading progress

Yay! I can use the title box!

Anyhow, I did the first treview test in my speed-reading book. I was rather dissapointed with my results. I got about 536 WPM (words per minute). I got about 240 WPM the first time I tested. So. I've more than doubled my speed since June 16th. This should feel nuts, but here's the catch:

When I've been calculating my WPM after practice and such I tend to get things around 700-800WPM when I'm getting full comprehension and up to around 1400WPM when I sacrifice some understanding for speed. I think I might have wanted to make sure that the speed increase I saw wasn't simply due to understanding less of the text. That seems like a Boris thing to do for a test.

Anyhow, I'm now completely confident in saying that I've more than doubled my reading rate in less than a month. That's pretty sweet. Also, I missed like 7ish days in there due to assorted visitors and other things that occasionally kept me busy. I'm pretty impressed.

But I was expecting to be far more impressed. I might test again tomorrow just for the hell of it to see if my result was a fluke on the low side of things... I'm not a very graceful loser sometimes.

Saturday, June 16, 2007

Boris is amazed

I learned a new drill called practice reading. The idea is that you read for a set amount of time (say 3 minutes) and make a mark where you end. Then you read the same passage again in the same amount of time. Now you reduce the amount of time (to say 2 minutes) and read up to the same mark. Then you reduce it again (maybe to 1 minute) and read to the same mark. At this point there is no way you can actually read this fast, but the key is to get your finger to move at that speed. Ideally you'd like to see all the words but not have time to process them. Now here's what floored me.

After doing this practice, read something new. Calculate your reading rate. I got over 900WPM both times I've measure after doing this this drill so far. That's a massive jump (I came close to doubling my previous fastest).

I imagine I didn't retain as much, but I feel like I was actually reading... wow.

Speed-Reading

This seems to actually be doing stuff. I started at a speed of 240WPM for a serious-ish book and 360WPM for a fun book. Since then the exercises have only been with an easy fun book, but I've gotten 408, 478 and 373 WPM. Not bad considering I have to be thinking about new stuff.

The big things they've done up to now are using your finger as a pacer by moving it under the line you're reading (move it across to the right, then pick it up [sounds obvious but I never thought of it] and move it to the left), posture/lighting (the book should be at about 45 degrees and the lighting should be diffuse and soft), and fixing regression (this is when you go back and reread things). Also they mentioned getting glasses that are right; my new ones should be coming any day now...

In practice, I've found that using my finger makes me liable to rush and then need to reread more... I'm so impatient. I'll soon get a handle on this... *crosses fingers*

So far, so good. My goal is 1000WPM for easy books. Why 1000WPM you ask? Because it's a nice round number. And I get an extra digit; that's pretty cool. For reference, Ship of Gold has somewhat more than 400 words per page. At 1000WPM that comes out to less than 3 and a half hours to finish the book; at 240WPM that comes out to just about 14 hours. I could dig on some speed...

Anyhow, I finally have a good deal of work to do for NASA. I have to learn Verilog so I can use FPGAs and I have to make a simulation of mirror stuff with x-rays. w00t!

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.

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.)

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.

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).