Archive for the ‘Computers’ Category

The economy of tinkering

Wednesday, April 21st, 2010

If you haven’t read Cory Doctorow’s post about the iPad, you should go read that first.  No really, go read it.

Okay, now that you’ve read that, here’s a response/continuation from a college student named Carolyn referencing Doctorow’s with some expounding on the potential issues resulting from the iPad’s closed-ness.

Now it’s my turn – to start, I am not an iPad owner and I do not plan to be in the near future.  Though I would not turn it down if one was offered to me, I do not see the benefit of this particular device at this particular time in my life.  Rather, I should say I cannot justify the expense for the benefit gained from it.

I have a problem with Doctorow’s argument at the root.  He basically ascribes a desire to tinker with a product he owns is his right, and I completely agree.  Where his argument becomes invalid is when he makes this statement:

The original Apple ][+ came with schematics for the circuit boards, and birthed a generation of hardware and software hackers who upended the world for the better.

What he fails to mention is the price point of that Apple ][+.  According to wikipedia, that would be $1200 in June of 1979.  According the the March 2010 Consumer Price Index (pdf link) (CPI) from the Bureau of Labor and Statistics, the June 1979 CPI was 72.3.  In January of 2010, when the iPad was announced with pricing, the CPI was 216.687.  To calculate the value of the 1979 $1200 with the value of today's dollar, we use this equation:

Year A Value * (Year B CPI / Year A CPI) = Year B Value

Which, for our numbers yields:

1200 * (216.687/72.3) = $3596.46

So for the equivalent price of a new Apple ][+ you could buy more iPads than one person needs (7 of the base model at $499 and 4 of the top-end model at $829).  All of the above was said to make a single point: comparing the iPad to the Apple ][+ is completely and totally ridiculous.

The state of the economy of tinkering no longer relies on a completely developed product like the Apple ][+.  With products like the Arduino, PIC, and AVR, and sites like Sparkfun and Adafruit, the barrier for entry into the tinkering market is incredibly low.  For tens of dollars you can get a basic toolkit, and a project kit to learn about how to program a microcontroller and make it do something.  And if you break it, well, another part is only a few dollars away.

The iPad is not a toy for a tinkerer, it wasn’t designed to be.  Do I like the fact that I can’t tinker with it if I want to – not particularly.  I also don’t have to buy one because it’s not the only option available!  The advancements that have come along with making the home/handheld computers do things that no one could have dreamed about in the late 70s has come at a cost – they aren’t open to someone wanting to learn about the principles of engineering.  Luckily, in the advancing world of mass-production and feature size reduction, the physically larger components now are available at prices which make learning fun and easy on the budget.

Doctorow’s statements are legitimate, and he’s entitled to his opinion and decision to not purchase an iPad.  But I think to limit his opinion to the iPad is a little silly.  But that’s just my opinion…

USB Charging/Docking station

Saturday, September 6th, 2008

I’ve been looking for a setup to handle all of the USB devices I have, which also need to be plugged in to charge. I’ve seen a few plans for nice charging stations to make, but nothing that incorporates the computer connectivity. Why would I want to build two things stations when a single one would do?

So I started looking at the USB 2.0 spec about power requirements. As it turns out, externally powered hubs are required to supply 500 mA to all ports. It is also recommended that the hub draw its power from the bus, to allow continued operation in the absence of the external power source. What is not specified is if the hub is required to deliver power to the ports when it is not receiving power from the bus. If the device does power the ports when the bus-supplied power is absent (e.g. – when the computer is off), then it should work as a charging station for USB-connected devices.

The downside to this is that I’m pretty sure the boxes of these hubs aren’t going to advertise whether or not they deliver power to the ports when the bus power is removed, which means trial-and-error. I am going to guess that the cheaper hubs probably wouldn’t go to the trouble to handle switching power to the ports based on the availability of the bus power. So hopefully my trial-and-error won’t cost me too much.

Now I just need to decide what I want this station to look like, and how I’m going to flush-mount access to the unused ports. Maybe the hub also needs to be easily disassembled :)

Computer Nerd Test

Tuesday, July 29th, 2008

Think you’re a computer guru? Not just someone who ‘knows a bit about computers’, but someone who lives, eats, and breathes the world of computers? Take the quiz and see how you do. Okay, InfoWorld didn’t call it the Computer Nerd Test, and I normally don’t think of them as the type that would put out a quiz with this level of nerdiness required. There’s an answer guide at the end.

Out of a possible 100 points, I got 55…guess I’m not as big of a nerd as I thought! Leave your scores in the comments!

Take the Computer Nerd Test

Spoiled by work?!?

Thursday, August 30th, 2007

I think working at Xetron has spoiled me some. Sure, if you talk to me I’ll complain from time-to-time about the political issues in the company, but that’s probably present in all companies. What I mean, is that the pace of the work, and the expectation for picking up new material quickly has really pushed me to the point where classes like the one I’m at are really only useful for the materials which are given to us.

Since I’ve done some device driver work (very little, but some) before, I knew a little bit about the topic which I was coming into. Apparently, the little work I had done was at a large enough scale to cover a lot of the topics I didn’t already know from my architecture, compiler, and OS classes from grad school. So today I find myself sitting in the class thinking mostly about the work that is piling up back at work.

Timing of this trip has turned out to be less than optimal as I now have a rapidly approaching deadline to hit back home – woohoo for overtime I guess. I have one more trip out this direction (though for a much shorter period of time), and school starting before the deadline, not to mention 2/3 (of my 3 person team) will be gone for one of the weeks as well. So, we’ll see how quickly we can get things done I suppose :)

In other news, the presentation of the material in this class is somewhat less than what I expected. The book we were given is nice, though I would like an index for quicker searching. The materials the presenter is using doesn’t match our book however (he’s the author of the book, and so teaches from his “beta” copy), and is in exactly the same docbook-eque format. Now, I’m all for using some format like docbook for books (go figure), but for a presentation? He’s constantly scrolling around the screen, which after 4 days is kinda making me sick – and I can’t directly follow along with the book because, as I mentioned, it’s not exactly the same – though a lot of it is.

At least do what a lot of my professors have done – make landscape pdf pages of what you want to show, then go full screen and use the page up/down do move through the content! It’s much more presentable and can still be generated automatically from the source (not sure about docbook, but certainly from LaTeX). The other things that’s bugged me is the out-of-order presentation of the material. We’ve been jumping around to different chapters, making it hard to get an idea of what builds on what (if at all), and where we’re at in the progress of the course. Not a huge deal, just something my engineering brain doesn’t like to deal with. Anyway, if this is par for a RedHat course, I won’t be finding myself at another one anytime soon.

Training and the Internet

Tuesday, August 28th, 2007

I’ve had the chance over the past few days to have more access to the internet than normal – a lot more access. I’ve become very used to only getting on the internet for a few minutes a day while at work (unless I’m researching something), and then to check my email and things at home (which doesn’t take very long).

Currently, I’m in Baltimore at a device driver training class. The class for the most part is interesting, some material I already knew from the little device driver work I’ve done. After two days I certainly feel more comfortable digging around in kernel code, but the classes seem very long to me. Part of this can probably be attributed to the fact that I don’t know anyone else in the class. Anyway, the lack of discussion on my part leaves me with time, staring at a computer with an internet connection. After about 20 minutes total during the day to ready the news, I’ve got nothing else to do. And just like in high school, the labs don’t really appeal to me, since I can’t find much practical use for most of them in my daily activities.

Anyway, this break is almost over, and we start discussing race conditions and synchronization methods – a topic which I have fairly extensive experience with, despite most of my professors saying that most people don’t do concurrent programming (and almost no one does them correctly). There will be some new things – spinlocks , and the kernel lock and such, which should be interesting, but I think I could probably get most of it from the book. Oh well – maybe next time I can get someone to come to the training with me…

Iterator suffers a blow

Tuesday, March 27th, 2007

I came home tonight to work on HTG things since the prof for Advanced OS has called off class the rest of the week and didn’t have the decency to give us any of the papers to read. I turned the machine on, connected to the network, and then went to check my email. Suddenly, the system freezes – which has never happened on my system (X has frozen, but never the whole system). I reboot, thinking that this is just some new symptom of the hardware.

I am greeted with a kernel panic. Hmm…this doesn’t look right, maybe a new kernel was installed and I missed it. Reboot. Kernel panic. Okay…verging on insanity, another reboot. And another kernel panic. But this time I booted to the “recovery mode” kernel (which really just prints out more info). For some reason it shows no memory! Time for memcheck.

Now, I only have 768MB of RAM in this system – it’s about a 4-year old Inspiron 8500. The memory is on the bottom middle, and gets VERY warm during normal operation, and down-right toasty during heavy usage. Memcheck alost immediately started tossing errors. Sure enough, a bit is dead on one of the chips. Now to figure out which one. I pull larger chip out first and test the 256B DIMM – no errors. This is not going to be fun. I put in the 512MB DIMM and….no boot. No POST screen, just a blinking caps-lock light. Of course, this means that it is definitely dead.

I could put a new DIMM in the thing, but I’ve been looking into replacing it anyway. So now it’s time to start looking….

Cry Circular Dependences!!

Sunday, October 15th, 2006

So I’m reading Appendix A of the Computer Architecture book, which is all about pipelining.  Dr. Wilsey told us in no uncertain terms that if we couldn’t wrap our heads around the material in this chapter we would not understand anything the rest of the quarter.  The material: pipelining – some really cool stuff, but some really deep stuff at the same time (no pun intended for those who get it – for those who don’t, a deep pipeline is one that is very long and can take a lot of time to get through).

Anyway, Chapter 3 of the book is about more advanced concepts in pipelining – different dynamic scheduling techniques and the like, and we were told to read Appendix A before chapter three.  So I am most of the way through the appendix, and it says to read the first few pages of chapter three for some background information on the dynamic scheduling concept.  Flipping back ~900 pages, I get to chapter 3 and start reading the introduction – which promptly tells me to read appendix A before continuing with chapters 3 and 4!  This is where I cry circular dependences!

I briefly go forward to see what chapter 4 is about, and find that chapter 3 is ~100 pages.  At this point I say “Joe, what have you gotten yourself into?!?”  I reach for the pot of coffee, and decide to take a mental break to write this and fold my laundry. Luckily, chapters 3 and 4 are not on the first midterm…

Yes, dependences is a real word – though I think it is some English (that would be British English, not American English) extension of the word dependence.  Miriam Webster and Dictionary.com do not mention this form of the word directly, but bring up the entry for dependence.  I still have my doubts, but Kelly insists it’s the “cool” word to use…

Mythbox Lives Again!

Saturday, September 9th, 2006

Upon graduating college (literally on the way home from commencement) I purchased a working mythbox from a friend of mine before he made his way out to California. It was a nice fanless Via setup in a console-like case. Over a year later, I finally get around to working on it (hey, I’ve been a little busy).

It’s a system built on gentoo, so I had to remember a few things I haven’t done in quite a while to get the system updated. First off was to reset the root password, because I didn’t know what it was and neither did Rick. After searching through CD’s, I found a gentoo 2004.0 cd in the system itself! It was old, but it got me to the point where I could chroot to the disk and reset the password. Next step – update some severly out of date software (2 years of open source software must be like 20 in dog years or something like that).

It seems like the lirc build process is messed up badly – saying that it needs a version of autoconf at least 2.50, and I have 2.59 installed. Oh well, I’ll figure that one out eventually. Maybe I just need to reboot it for something in portage to catch up. MythTV is currently building. No chance of this thing being a compute CPU anytime soon. The ultimate goal of it it to be simply a MythtV frontend and I’ll do all recording on another machine. We’ll see how that works out!

Excel Conditional Formatting

Monday, June 19th, 2006

It’s a feature I have found handy in one major place: highlighting every other row in an excel sheet. You’d think they would have a button to do it, but conditional formatting is a suitable alternative.

  1. Highlight the area to apply the formatting to (all of it in my case)
  2. Go to Format->Conditional Formatting.
  3. Change the drop-down value to “Formula Is”
  4. Enter “=MOD(ROW(),2)=0″ (without the quotes) into the formula box.
  5. Click the formatting button and choose your format, and you’re done!

This information taken from Microsoft’s Help site.

Cray XT3 Supercomputer

Friday, June 2nd, 2006

I was out being a good nerd looking up specs (in this case processor specs) on some systems that I could never personally own (we’re talking multi-million USD systems here), when I came across this little tidbit of information I was not aware of: the new Cray XT3 systems use Opterons on their Processor Element boards! That’s pretty cool! Cray has pretty much always stuck to custom vector processors in the past. A few other things on the XT3 page that piqued my geek interest, and I will probably look into more soon include:

  • The Cray XT3 system incorporates a high bandwidth, low latency interconnect, comprised of Cray SeaStar chips and high speed links based on HyperTransport and proprietary protocols. The interconnect directly connects all processing elements in a Cray XT3 system in a 3D torus topology, eliminating the cost and complexity of external switches.
  • The Cray XT3 operating system UNICOS/lc is designed to run large complex applications and scale efficiently to 30,000 processors.
  • The Cray XT3 system maintains a single root file system across all nodes, ensuring that modifications are immediately visible throughout the system without transmitting changes to each individual PE. Â Fast boot times ensure that software upgrades can be completed quickly, with minimal downtime. Â In addition, the Cray XT3 system provides a set of administration tools for tracking and rolling back modifications to the root file system.
  • To maximize I/O performance Lustre is integrated directly into applications running on the system microkernel. Data moves directly between applications space and the Lustre servers on the I/O PEs without the need for an intervening data copy through the lightweight kernel.

These Cray guys certainly are up to some cool things, which for someone getting ready to enter the world of grad school in CS/CompE makes me look at their work a little closer!