Ceaseless Student

Things I learn while living life as per usual

Tuesday, February 12, 2008

Blogospheric balancing

Lots of blogs tend to do the “OMG I’m so dead right now thing.” I thought I’d try to balance the blogosphere out a bit with this. Apparently, robo-Boris (a more efficient version of myself) was here from Saturday to Monday. As a result, I don’t think I have enough work to keep me busy tomorrow (Wednesday’s are nearly mid-weekend for me and are usually used for catching up).
On a related note, I played single-player Halo on a projector screen today. When I stopped playing after a couple of hours, my head started hurting and I felt rather nauseous. The screen is too big…

posted by boris at 10:24 pm  

Thursday, February 7, 2008

Relearning sleep

I was really tired today. I stayed up till 2:30ish helping kids in SigSys and then had to get up at 8 so that I could do the reading for my 10 o’clock class. Long story short - I decided I’d take a wonderful 20 minute nap.

I figured it’d been a while since I’d done these, so I gave myself 25 minutes before a single beep from my cell and 30 before my actual alarm. I figured I’d be good to go with 10 whole minutes to fall asleep. Wrong.

I got maybe 3 minutes of sleep.

So it’s time to train. I should be able to fall asleep within a minute and wake up 30 seconds or so before my alarm rings. This is a skill worth having.

Practice is real easy, but somewhat frustrating.

  1. Set two alarms.
    1. One of them is for 21 minutes from now and is gentle. A single beep or something.
    2. The other is f’serious and is 22 minutes from now.
  2. Get in bed.
  3. Relax. Meditate or whatever. Sleep if you can.
  4. When you hear the beep: Get Up.

That’s it.

It’s annoying until you get good b/c you tend to just be in bed awake for 20 minutes. But one does get good with practice. After a bit, the second alarm will be completely useless and, for me, I started waking up about 30 seconds before the beep after some practice. This is what I did before starting biphasic freshman year and not losing half an hour from each time I went to bed was quite helpful seeing as how that’d be 20-something percent of my sleep time…

posted by boris at 1:41 pm  

Wednesday, February 6, 2008

Asynchronous circuits

Most digital design uses clocks to ensure that everything works in the correct manner. The major idea here is that the system will be correct after everything has settled out (electrons travel through wires, transistors turn on, all the gates complete their functions). The major issue here is that our clock has to be slow enough that the slowest process in our circuit has time to finish. So what’s the solution?

Asynchronous design. The idea here is that instead of having a clock tick once everything must be valid, each module can tell the next module when it’s ready. In other words, the paradigm shifts from a global clock to many local ‘handshakes.’ I really want to just get to the cool parts - so hopefully this won’t lose people…

Let’s say there are two modules. A is the sender and B is the receiver. We’d like to get some data from A to B, but only once B is ready for it. So let’s say A is ready to send. I’ll run through two schemes…

Bundled Data scheme (with active sender):

In this scheme, A pulls the req wire high to let B know that the data line is valid. Then B uses the data and sets its ack line high. When A sees the acknowledge go high, it sets the request line back down to 0. B responds by setting the ack line to 0. So after all of this, the ack and req lines are back to 0 and all’s good. It’s worth noting that there could be any number (N) of data bits here for a total of N+2 wires.

So there’s one issue with this. When A’s data becomes valid, it sets request high… but what happens if B sees the req line go high before the valid data travels all the way down to be. These things all have finite speeds, so in the end we get designs that can move electricity faster down the data line(s) in order to get around the race condition.


DI Dual Rail
scheme (with active sender):

So here’s a set-up that avoids the race condition entirely. Ass such, it qualifies as truly DI (delay insensitive). The idea here is that A has both the true line and the false line low - this is its null state and indicates it has no data. Now when A pulls a line high, B knows what the data is and that it’s valid… ZOMG! Once B has used the data, it lets A know by raising the ack line. A responds by returning to the null state and then B responds by lowering its ack line. Now everything is back where it started and we avoided the race condition!

But wait. This is engineering. I wouldn’t have bothered telling y’all about the bundled scheme if it was always worse. The tradeoff is in the number of wires. N bits will take 2N + 1 wires to implement in a DI dual rail scheme.

Neat.

posted by boris at 10:04 am  

Tuesday, February 5, 2008

A better way to say numbers

So this is actually an old thought, but I haven’t really pushed it around much.

Numbers are really bad at being said. They’re also not good at being thought about or manipulated mentally when they get big or small. They give information in all the wrong places. For example: seven-hundred-and-sixty billion has all of its good information in two places. Most of it is in billion. Then there’s a lot in hundred and some in the fact that its seven hundreds… My point is: it sucks. Whoever designed numbers didn’t do good design. (<-- j/k kids) So let's look at how this has been solved before - scientific notation. 7.6x10^11 Not bad. Especially because the brain handles the whole thing as a unit so it can get the 11 early on. The order of magnitude is by far the most important thing. Even better is 7.6e11. That has less extraneous stuff and says the same thing. But it's not meant to be spoken. Even so, if you say 7.6e11 it's much faster than seven-hundred-and-sixty billion.

But it could be better. The order of magnitude should be first. So what I like is inverting the order of magnitude and the fine grain number and saying the x10^.
Something like: 11mag7.6

And we could get rid of another couple of syllables by hitting small numbers with a contraction for x10^ -

As in a microsecond is 6neg second. Oh yeah. You could just leave out a number and have a 1 be implied.

Just to use it somewhere I’ll copy over a problem from my estimation class. We’re estimating the budget of Pasadena. We’ve found that Pasadena has about 4mag2 acres of land. We estimated the cost of land at $6mag/acre. And we’re going with a property tax of 1%. So:

4mag2 acres * 6mag USD/acre * 2neg USD/USD = 8mag2 USD

I like that we the format of the number makes it natural to do the exponents first (which is the important data. I’m not sure how I feel about something like:

3mag2 * 1neg8 = 2mag16 = 3mag1.6

It should really get into the last form, but the second form is more natural. Meh.

Thoughts?

posted by boris at 8:42 am  

Tuesday, February 5, 2008

Reboot

So it’s been a while.

This semester is looking to be seriously busy. I’m doing enough that Outlook has me booked for 30 hours a week of scheduled stuff. Just classes and SigSys ninja meetings really. Then I have to do the work for all those 30 hours of classes and grading for SigSys and stuff… Oh! And I’ve taken up a hobby! I’m baking bread multiple times a week so that should be exciting - that tends to happen concurrently with reading for something so it doesn’t actually take that much virgin time.

Anyhow. Now that I’m busy I thought I should get back to this blog. After all, it exists to hold neat stuff that I learn and I’m currently learning lots of neat stuff.

So this semester will see some good stuff:

  • Advanced digital systems: We’re making a video game console on an FPGA. I’m not sure how bloggable it’ll be, but the class is certainly cool.
  • Estimation: This is an IS (independent study) I’m doing with a few other kids. It’s a lot of order of magnitude physics estimation, dimensional analysis etc. This is a lot of neat stuff that should be fun to toss here - expect to see it a disproportionate amount.
  • History of Analog Circuit Design: This is what I’m doing for my OSS (Olin Self Study). I’m pretty much trying to see if I can answer the question “How the #$% did someone think of that?!”
  • 6 Books that Changed the World: This class is a half semester gig where we read and analyze a book a week. Books are: The Communist Manifesto, Uncle Tom’s Cabin, Darwin, The Prince, The Art of War and a book of my choice which will likely be John Maynard Keynes’ The General Theory of Employment, Interest, and Money. I’m planning on also reading Adam Smith’s The Wealth of Nations but that might be far too optimistic. Oh well.
  • Controls: Really sweet class on a really sweet subject (feedback, transfer functions etc.) that is of questionable bloggability.
  • MAD VLSI2: This one probably won’t be up here much. Neat stuff, but advanced enough to need more context than I want to provide here or you, dear reader, likely want to read.
  • Signals and Systems: I’m ninjaing this class with two other kids. This is neat stuff. I’ll see if I can toss up concepty stuff here while avoiding the mathy stuff.
  • Intermediate DiffEQ: Yeah. Doubt this will be here ever. It’s also the next half of the semester.
  • Bread: w00t!

So that’s my semester. I’m pretty excited.

posted by boris at 8:14 am  

Tuesday, August 21, 2007

FooPlot

I was just browsing Simple Spark and I came across a lot of neat software that I’d already used, some ok stuff, some interesting stuff and only (so far) one app that really stood out as uniquely awesome.

FooPlot is an exceedingly simple webapp that does it’s job fantastically. It graphs. That’s it.

It does what you’d expect from a TI-83 or such-like. It graphs functions, finds roots and intersections and not much else. IT also has some 3d stuff that makes you think 89. If you want to see all the functions it can handle look at the help tab.

The coolest thing is that you can tell it what to graph via URL. Check it out:

fooplot.com/3x+5
fooplot.com/e^x
fooplot.com/tanh(x)/((sin(x))^2)
fooplot.com/floor(2*sin(x))

Fabulous.

posted by boris at 2:52 pm  

Friday, August 17, 2007

Using polarity in life

Steve Pavlina, one of my favorite bloggers, wrote a cool article about achieving peak motivation.

Now. I’ll go ahead and warn y’all that Pavlina is pretty out there when he goes new-age on you. You’ll notice this in his fear/love usage that just smacks of Donnie Darko.

That all being said, the man is quite insightful. In particular I like his two paths to the same destination viewpoint - I’ll be adopting it with some major changes. Namely, I’ll take off the rather large biases he puts forth and strip the new-age out of it.

Quick Summary
Here’s the train of thought:

  • There exists a point at which one has the maximum leverage to achieve goals
    • In terms of one’s self and one’s relation to the external world, this point is the same regardless of one’s goals
  • This point can be reached in many ways
  • It is easier to keep your eyes on a single goal than multiple balanced goals
  • Thus, one should pick a particular goal

Polarity
So what the hell am I talking about?

//Skip this if you did not read the article I linked to
Pavlina’s idea is that one should polarize and concentrate on either improving one’s own life or improving the lives of others. In his view, people should work towards one of these goals relentlessly. Their overarching goal will help motivate them. In the end they will find that they end up at the same spot regardless of which path they took. The self-serving person will find that helping others gives them more interpersonal leverage and the world-serving person will find that they are in no position to help others if they themselves are in a weak spot. Apart from his new-agey views here I have some issues with the person who lives to serve others. That doesn’t make sense. They are serving themselves - they just happen to enjoy serving others.

//OK. you can start reading again
My view is that there are two sources of motivation for people. These can be described as internal motivation and external motivation; however, it might be more accurate to say that one’s actions can be measured against internal or external metrics. Let’s call the person who uses external metrics an outworker and the person who uses internal metrics an inworker to signify what they are trying to fulfill.

The hypothesis here is largely the same as Pavlina’s. Both inworkers and outworkers will find that they are maximally fulfilling their goals at the same point. Inworkers will find that they must compromise with the outside world in order to further themselves and outworkers will find that they need to maintain enough personal vigor to actively implement their external agendas.

Polarity applied to myself
So where do I stand?

Ok. I suck at this. I love improving myself. I generally have huge inworker tendencies. But then here’s the kicker. The things that I love most are all outworker things.

Helping out a friend in need feels great to me - helping out a friend in want feels trashy. I’m not really sure why, but that’s just how I do things. If you need a ride somewhere I’m not going anyways, do not ask me first. I’ll turn you down merely because you asked me first. True story folks. But if you have to leave in 5 minutes and it’s 02:30 and you’re about to call a taxi because your friend who was going to give you a ride is nowhere to be found… well then I’d love to help you out.

I love how messed up that is. I’m not sure how I reconcile the outworker core I have with my predominantly inworker nature. Of course, there’s no real need to do that, but I do believe that it’s easier to be motivated about a single goal than a couple of goals that are often at odds. It’s especially important in maintaining that motivation for an extended period of time. So what is a silly man like me supposed to do?

Well. I’m a stubborn dude. So I think I’ll conclude that picking a path is the rational thing to do because it makes the rest far easier. And then I’ll ignore that and continue to strive for this mythical point of greatest leverage with out polarizing. :D

Note: I e-mailed quite a few people about thsi article so my inworker/outworker concept is really just Pavlina’s ideas filtered through a bunch of smart people’s thoughts and processed by yours truly. Thanks to those that chatted with me!

posted by boris at 3:17 pm  

Thursday, August 16, 2007

Virtual World

I read a great article from the NY Times about Dr. Bostrom’s theory that we might be living in a virtual world.

The great part was that it used a completely logical argument for this. Here’s a quick run-through. Within around 50 years we will have a computer with the processing power of all of humanity’s brains combined. Within 100 years such machines will be totally commonplace. A simulation of a complete human world will be as easy to run as something like the Sims or WoW is now.
For a number of reasons, future people are likely to simulate humanity. First, scientists will want to know more about the development of their ancestors. Second, playing with people, place or events you’re familiar with is fun - witness the success of the Civilization series. Third, even if this was developed by some non-human race, they’d have fun playing with us too -witness orcs and elves in Warcraft, the aliens in Starcraft or even the near-infinite variability in the much-anticipated Spore.

What’s the point? Well, if there are 9 million people playing WoW right now, it seems like a safe assumption that a similar number will play these new, more intensive games. So. If there’s one ‘real’ world that hosts a million virtual worlds and all we know is that we’re in a world, it’s hugely probable that we’re a simulation of some sort. Also, if computers start to be awesome enough, they’ll be able to simulate things like worlds were simulation techniques are developed. And then you get a million squared. And the argument to cubed and more can follow the same logic. Basically, we are almost certainly virtual unless there is something else correlated with having this powerful a computer. For example, if we believe we’ll blow up Earth earlier than this amount of technology then there will never be virtual worlds (assuming any aliens that could exist also kill themselves off before attaining this level of technology). He brings up other possibilities, but they seem sillier.

Near the end of the article, Dr. Bostrom says his gut feeling is that there’s a 20% chance that our world is virtual. Personally, I’m thinking it’s far far higher. Not that this affects anything for me, but it’s an interesting thought. Please do leave thoughts. I’d particularly like to hear a religious take on this article if anyone’s up for it…

posted by boris at 7:42 am  

Sunday, August 12, 2007

Reading a book real fast-like

I just practice-read Stephen King’s The Gunslinger. Practice-reading is when you try to read faster than you can actually handle. You get pretty bad comprehension, but it helps increase your reading rate. It took me 57 minutes to get through its roughly 300 pages. The first time through I went a page a second (this is to just pick up character names, a rough chronology and a bit of the novel’s structure) and the second time I was going at around 1500 WPM.

This is actually a full 50% faster than my original goal for this whole speed-reading thing. w00t!
Also: it’s about 4 times the speed I read at going in. Hooray!

It’s hard to keep going at breakneck pace - having my computer yell at me every minute and louder every 5th minute helped a lot. I’d end up picking up the pace every time the 5th beep came along as I kept on falling about a minute slow. I ended about 3 minutes slow so I guess it was a bit shy of 1500WPM. Sadly, I don’t actually have many books that are short and easy enough for me to read in one sitting like this…

It looks like a trip to the library is in order.

:-D

PS - The gunslinger series is pretty awesome. Not my all-time favortie but certainly in the top 10 and maybe in the top 5.

posted by boris at 11:02 pm  

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

posted by boris at 9:22 am  
« Previous PageNext Page »

Powered by WordPress

bdieseldorff