HN user

eworoshow

124 karma

For the curious: http://ericw.ca/. It says more about me than you'll likely care to know. That, and it's sure to be updated more often than my HN profile box!

Posts5
Comments26
View on HN

Any specific recommendations from that set? I was looking at Qemu earlier but I'm curious to hear from HN folks who have had experience with these emulators.

I became interested in ARM assembly after reading the x86 assembly Forth tutorial that was recently posted on HN. Lacking an ARM processor, though, I'm wondering what emulation options are available? I'm looking for a dead-simple setup that will let me test and run whatever toy ARM assembly programs I write.

Khronos is working on C++ bindings. But having the core API in pure C should make adding bindings to other languages a (relatively) easy thing to do.

Yes, Cowan wants to buy ARM processors. I believe he is planning on soliciting funding from the Mathematics Endowment Fund this term. (disclosure: I'm the MEF Director)

Ah, I guess the course requirements have changed in the intervening years. We got somewhat less time to work on the OS "thanks" to renovations in the lab; none of us had time to get a full, graphical VGA display running.

That said, I think your display better demonstrates real-time-ness than my somewhat-less-than-rigorous measurements. By the time you account for all the assumptions I made to get semi-complete numbers, a working demonstration of a real-time process is far more convincing!

You're right, targeting the x86 architecture added a lot of complexity without any tangible benefit. Poring over the subpar Intel documentation consumed an inordinate amount of time.

That said, it only took a little over a month to build the OS itself, while the other two months I spent working on the train control program. All the equipment is notoriously flaky so coping with real-world brokenness was probably the biggest time sink.

Ah, thanks for clarifying things. Now I have the code licensed under an MIT license. Out of curiosity, what are the implications of changing the license on software you've already released?

Demonstrating that the OS was real-ish time consisted of showing that (1) it never dynamically allocates memory, (2) it uses constant-time algorithms. More practically I did a bunch of timing to show that, under real loads, it generated responses under certain (arbitrary) thresholds. In conclusion: a process lacking even the smoke and mirrors of rigor.

Aha, well I'm an only child! Either way, I added some text saying everything is licensed under a Creative Commons Attribution 2.5 Canada License; thanks for the advice.

I'll plead ignorance with your second sentence. AVRs? And why should it depress you that it took me three months? (Keeping in mind that I was taking other classes at the time, and that there was a ton of competition for lab space.)

It was fun! Well, fun modulo writing and debugging all the code in three months.

As for drivers, the OS really only interfaces with 8250 UARTs; both the VT100 terminal and the Marklin digital interface for the trains were connected via RS-232 serial ports. There is also, embedded in the kernel, a micro VGA driver for displaying debug messages.

I don't exactly have a specific open source license in mind. Right now I suppose you could say it's public domain. I'd be happy for it to stay that way, unless somebody would like to convince me otherwise?

I wrote a toy operating system for school that I recently(ish) released to the world. It comes with source code and design documents so I thought it might be interesting for people to poke around in.

That's a good point, about responsibility. My glib comment on a change of scenery wasn't very insightful. For the first time in San Fransico I lived alone and knew nobody so it was me, and only me, that was responsible for doing everything. In retrospect, I think the situation forced me into being functional.

An interesting approach to iterative design. I have always felt that considering application design from a game design perspective might yield interesting/valuable results. In this case, I think the advice to prototype many features and invest in the best is good advice. A sort of "discard features early and often".

I think your comment is right on the mark. The cycle you describe paints an unfortunately accurate picture of many of my high school and university years. I derived not just self esteem but much of my identity from having people perceive me as smart. I learned early on that people don't readily equate perky with intelligent so I dampened my enthusiasm for, well, effectively everything. Loneliness, too, played a role. Being "the smart one" shut me out of a lot of social situations which fed into my depression. But the exclusion also fueled my image of intelligence. I'm sure you can see how this situation has vicious cycle written all over it.

Thankfully I can write about this in the past tense. What changed? I moved to San Francisco for four months for an internship. I didn't know a single person in the city and used the opportunity to forge a new identity. Day after day, person after person, I would try a new Eric. I pretended, on various occasions, to be a cook, a banker, a mechanical engineer, a park ranger, any number of other professions. And, funny thing, I was happiest just being me. When I moved back to finish my degree I was happier than I had ever been. So it all came down to a change of scenery!

Someone (Paul Graham?) mentioned that Omnisio was also recoring the proceedings. (At the very least there were certainly two cameras so we can be reasonably confident a second version will appear.)

Alas, I was a year too early and thus doomed to take the CS 133/134 sequence. It was terrible. (The day our professor suggested Java had operator overloading I stopped going to class.) By all accounts the CS 135/6/45 sequence is excellent; kudos to Prabhakar Ragde for pioneering it. Waterloo's first-year CS sequence has been in a constant state of flux for quite a while now so with any luck this change will provide some stability.