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.

Thursday, February 28, 2008

In case you were wondering what we do in estimation

We're doing problems like this one that I typed up for my portfolio (a deliverable for the IS). This one's actually a super-early one; some of the newer ones are more intersting IMO. Click through if you'd like the example problem to be large enough to read. Oh yeah - the small caps are kinda vocabulary terms. They're estimation techniques that we got from a text and that I define elsewhere in my IS portfolio. I'm going to assume you guys can figure it out, but I'll be happy to define them if comments make it clear that I am unclear.

Tuesday, February 26, 2008

That was weird

So I started the semester with 22 credits.

Then I dropped intermediate differential equations and swapped in Sci-Fi instead.

Then I asked for permission to overload to 24 credits so I could add a class that was still in the works - Analog Filters.

Then I was not really digging on Advanced Digital Systems... so I dropped that. I figured this would leave me with 20 credits. And SigSys NINJAing and, uhmmm, life. So I dropped that.

But now it looks like Analog Filters isn't going to happen. So I'll be back down to 18 credits. Which I find quite humorous.

I'm OK with all of this though - after all I'm doing my OSS. I have an arbitrary amount of (enjoyable) work to do whenever I please. Awesome.

Also. The new Smash Bros is coming out in March - bring it.

Friday, February 22, 2008

My OSS is pretty

I'm doing my OSS is the history of analog circuit design. So I've been studying the history of translinear circuits and the history of log-domain filters to date. Until this week, it was all just reading, but I just put up an article on Wikipedia that I really, really like. I was originally just planning to add or expand the history section of the circuit classes I studied (which I'll do for, say, op-amps), but as it turns out, translinear circuits and log-domain filters don't have articles yet. Or didn't. Now, translinear circuits have a sweet article and the one for log-domain filters is likely to be coming to a free encyclopedia near you.

In short. My OSS feels much more real now that I've done something. It feels extra real b/c it looks like a pro wiki article what with citations left and right etc.

:D

Wednesday, February 20, 2008

Motivation in classes

So this is is some correspondence after nobody in the Advanced Digital Systems class turned in their second lab on time. Our teacher offered help; I responded by suggesting that maybe the issue was really motivation and not technical stuff so much (although that issue also exists).

What motivates you to work in classes?

(Names are hidden b/c I don't like floating people's names on the internet - most readers know who's who ).

======================================================

Hi Boris,

I appreciate the honesty of your answer. What motivates
you in other classes?

-###

======================================================

Hey ###,

Hmmmm... I'm not sure I have a direct answer, but I'll just say things that seem relevant instead.

I'll start with a disclaimer. I /do/ work. I even enjoy independent work and big projects. I'm doing my OSS right now, I'm in my second Independent Study, I've done research for a couple of profs (although motivation actually /did/ kill one of those).

-----------------
On class types:
-----------------

One type of class is just problems. You do them you're done with them - great. This is a common set-up for math classes etc.

A more open-ended type is based around a big project. These tend to need self-motivation. I'm not really sure where it comes from, but I know I did a lot of research for my VLSI class starting months before anything was due because I thought it was absolutely awesome. That all being said, the end-game of actually making a chip was less than stellar for me (although I did finish) and Olin has yet to get a working chip back from this class (3 years). POE also has a similar feel to it and some groups take to it great while other groups flounder for a long time before getting things started. I'm not sure if this is relevant, but both of these classes do small labs at the beginning and then have one /huge/ project compared to ADS' large project every two weeks.

Then there's the type where things are very straightforward and linear. These can be arbitrarily hard, but there's always a clear problem that needs solving next (###'s circuits class or last year's Communications class with ### are good examples of this).

-----------------
Back to ADS:
-----------------

Now, ADS is mostly open-ended. I feel it could do with more of a path. Or, alternatively, more guidance. The class effectively asks students to reach a goal. In two weeks. Students have about a decade and a half's worth of practice procrastinating - this one is easy. Time goes by and the problem starts to seem intractable. Where does one start? Well. I know I have to do this tristate thing. I know I have to simulate the mouse. I know I have to read the PS/2 spec. So I don't do much at all instead. Yeah. I don't actually have a solution.

ADS labs are 2 weeks long - they are huge. They require /lots/ of debugging - in fact, debugging is likely the brunt part of the work. In short: they're big, they're frustrating, they have no clear starting point, and the work itself is mostly uninteresting (debugging). The carrot is great (it actually works and does something) but the path makes it look like it's not worth it.

So. If I had to guess. I really enjoy analog more than digital - that could be part of the motivation. There's also a class dynamic aspect of it where the entire class dreads the labs. So it could be the topic or the social structure. Here's one more thought. The projects are large, but I don't feel that I own them. They feel impersonal and difficult and that makes it hard to justify (as compared to big project classes where you design and implement your own idea).

Sorry I went on for so long,

-Boris

Tuesday, February 19, 2008

Numbers revisited

So I've actually been trying to use my number system and have decided some things are clunky. One change that was easy was a writing thing. I now do 3M4 (read 3mag4) and 5N3 (read 5neg3). That just makes things faster.

But the worst thing was actually pointed out to me by someone in my estimation IS. They said negative numbers were easy to confuse with negative orders of magnitude. I'm not sure what the best solution here is - I'm thinking the original setup is best, but ideas would be mighty useful.

Positive stuff is great:

Light year 15M9.5 m 9.5x10^15 m

I just love that. It feels great. But then we have negatives... here's the original set-up.

psi 4N1.5 Pa 1.5x10^-4 N/m^2

Now, that's a little hard to read b/c N and M don't look very different, but it's unambiguous. Here's a different idea to get rid of "neg" because it mucks things up...

psi -4M1.5 Pa

That would be great if it didn't have an issue with this next one. under my original scheme:

Electron charge -19N1.6 Pa -1.6x10^-19 N/m^2

But getting rid of "neg" leaves me kinda confused here....

Electron charge -(-19M1.6 Pa)

Yeah. Gross.

So currently the negative sign shows that the whole number is negative and the N shows that the magnitude is negative. Do people think this works well enough? Ideas for improvement?

Just a parting thought... would it be better with Pos and Neg instead of Mag and Neg? P and N are easier to see so it might be better like:
-19N1.6 and 15P9.5.

On Machiavelli

So I'm reading The Prince. I have yet to find it cruel or even intense. I tend to agree with Machiavelli on most things. I wonder what that speaks to - me or The Prince.

Wednesday, February 13, 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...

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

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.

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?

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.