Tuesday, October 20, 2009

Near-space for cheap

I've recently been examining several attempts to reach near space using simple tools and materials available to nearly everyone. Most of them use weather balloons acquired on the internet, and somehow accomplish reaching near space (>80000ft) for only a few hundred dollars. While I think I have the know-how and skills to eventually pull it off, I am satisfied watching the videos and looking at the pictures from others.

An attempt called the BEAR-4 really caught my attention:


These guys managed to get an HD video camera up, getting some pretty decent images and footage. A couple of things strike me:

* First, they used hydrogen rather than helium as the gas for the balloon. Hydrogen may be more available (I'm not sure), and has the advantage of being producible at home. It is probably also a lot cheaper than the helium that has been used ever since the Hindenburg.

* When the balloon pops (well into the video), the strap seems to flop around for quite a while. In fact, it almost seems to be orbiting the camera, which makes sense when you think about it- with no air resistance to speak of, there's nothing to slow it down. All of the energy introduced into it through the balloon pop and strap tension is kept in motion, as it won't bleed off very fast.

* It would be really cool to see this thing pop and burn with the amount of hydrogen in it!

Saturday, June 20, 2009

The importance of an identity in the global namespace

When somebody wants to find you on the internet, there are multiple ways of doing so. Names can be googled. You can search for some notable piece of a person's work, or look for their page on a university site that they might be affiliated with (for academic-type people, of course). However, for most of us, there really isn't a good way for people to keep up with us and our work, or even for us to track ourselves on the internet!

The solution to this appears to be to use a kind of username, an identity, a textual avatar wherever you go. It should be a string of characters, a kind of common username to you. Make it the same everywhere. Make it unique.

Facebook has recently latched onto this concept, and as I don't use facebook much, it looks like I missed the boat on getting my identity in. They have required everybody to obtain a username, instead of just using the email addresses that made facebook what it is today. Since almost everybody (on the Internet who has friends) has an account now, they've forced everyone to conform and register themselves into the one facebook (= global) namespace. I missed the boat, but still got a substring of my normal name.

What makes up a good identity string thing
It really has to be unique. Many sites (facebook, gmail, etc) suggest unique usernames for people by adding numbers to the end of the name, or other simple tricks. Don't do this. You want your name to be memorable, or unique. Random numbers don't have meaning, and in fact, point out th lack of creativity that you had in choosing your name.

It also should be one word, one string. Making it one word, consistently formatted together, helps search engines link all of your identities. You really, really want it all to come up in a single google search. This greatly helps you be found.

Should I use my real name?

I do.

For a while, I used two separate identities on forums and other sites requiring accounts or registration. 'foreignkid' represented me in realms that had no real world connections to me (GameDev, for instance- where I asked programming questions) and really had no intention of ever meeting or encountering anybody from the site in real life (though it does occasionally happen). 'leecbaker' represented me in places where I had real friends, who I contacted in the real world as well as on the internet (NMTORC, for instance). The initial motivation for this was to keep my real world identity a bit more of a secret on the internet. We all hear putting personal information on the internet is bad, right? Who needs my name anyway?

I thought about it for a while, and decided that putting my real name up wasn't bad. All sorts of people do it, and don't complain of having their identities stolen all the time, right? Richard Stallman, Linus Torvalds, Joel Spolsky, and many other internet semi-celebreties. Why can't I do the same? So, I decided to limit the amount of information I put on it. Name was OK, and since GMail/Google Apps has pretty good spam filtering, I put my email up a couple of places. A few years later, I've had no adverse affects of this, other than significantly increased spam (but only into my spam box!).

Later, as I got on through college, I put my resume up on a forum to ask for feedback. It had my real name, and was connected with my non-real-world identity- a breach of the firewall between Internet me and real me. It also let my phone number out into the wild, where useless data aggregators such as this guy have posted it up. And still, no adverse affects. No calls from crazy internet people- I think there are just too many phone numbers out there for anything bad to happen specifically just to me, but I also think that the partial protection of who can cold call me from US law helps a bit.

So, here we are. I have my username (leecbaker) tied to my real name (guess...) as well as my phone number, resume, and job history, with no ill effects (yet). The thing that ties all of this together is pretty important- I have a single string that ties together all of my identities across the internet. Search for me in Google by name ("Lee Baker"), and I think you'll find the first mention of me around result #73, but search for "leecbaker" and you'll find that I not only come up first, but result #37 is the first that isn't me. I have the first three pages of Google all to myself, which I think is a pretty good SNR, especially for how little is on my website. It actually pleasantly surprised me to find this out.

Here's a success story from the other side (of the should-I-use-my-name thing). A guy that I have occasionally collaborated with, w1zzard, of ATITool and TechPowerUP fame, doesn't really go by his name (which I hear is actually Michael). I know he lives in Stuttgart, and that we were in University at the same time, but really don't know much about him at the time. I think he just picked a cool sounding username with a unique twist (the 1), and stuck with it. He told me one time that he goes with w2zzard on the occasions where somebody has beat him to the punch, but I don't think it happens very often.

Gotchas
Of course, there are several gotchas. Make it professional, if you intend to use this identity for any business purpose, or if it is associated with your name. Don't try to steal somebody else's cool name that you saw somewhere- that's just unprofessional, and is likely to get you confused with somebody.

Cement yourself in now. The earlier on in the internet you cement yourself in (by using it!), the more likely that you will own that string. For instance, Richard Stallman (rms) has gotten his initials to represent him on the internet, mostly by just being on the internet since the beginning (though, the beard may help too).

Summary
The point of this wandering narrative is this- if you want to establish yourself on the internet, you have to give youself an identity. Its an identity that you can grab onto, that search engines can find, and that will work for a username everywhere you are. It's important that it is unique. Nobody else has 'leecbaker', and with how well it is established, I doubt anybody will take it (well, anybody significant at least).

I hope I've gotten the following across:
- Be unique
- Choose one that isn't heavily used (yet)
- It doesn't have to represent you, though it can
- Get one, while they're hot!

Saturday, May 23, 2009

LED lighting project concluded

So, I have finished the LED lighting project. If you are just tuning in now, this is the conclusion of a project described in a previous post.

After looking at parts for a while, I decided that the best approach was to get a lighting system going, and then enhance it as I saw fit. The most flexible and cheap system that I could find was to order a few pieces from www.bigclive.com, a site where a guy sells some PCBs and kits from projects that he has done in the past.

I selected his RGB controller kit due to its flexibility. It runs at a variety of different voltages, and can PWM  a large amount of current. The through hole parts that it is build with make the soldering easy. I also ordered a few of the boards that he designed for a color array of super flux LEDs, and some 5 chip 100mA Superflux LEDs from Ebay. That gave me enough to get a good starting point going.

The total cost came out a bit more than I would have liked to spend on the starting point of this project, but the more I'm out of school the more I realize that I have more money to spend than free time to spend. I don't have to be quite as dollar-conservative as I once was.

The PIC that comes pre-programmed with the kit is pretty impressive. A wide variety of effect stuff is programmed on the chip that comes with the board, and is appropriate for driving all kinds of stuff. You can find a "datasheet" for the chip on his website, though I would call it more of a quick reference guide.

I've dropped plans to come up with my own controller, as I have basically lost interest. I may resume this in the future, but for now I'm content working with the Big Clive controller.

Really, the only complaint that I have is packaging. I'm running fifty-something of the 100mA LEDs on the big clive board at something like half current, and the resistors on the board still get extremely hot. They are close to the LEDs, and conduct heat into the LEDs, probably reducing their lifespan. I would really like to eventualy do a design like this, but with a real current regulator for the LEDs. I think something more like a TO-220 package current regulator (See National Semiconductor LM340 series) would be a better option, as it is easier to cool and precisely regulate heat. Maybe next time.

Why I didn't work at Google

For many Computer Science students, Google is their dream job. They have heard stories on the internet about how working at Google has all sorts of perks- free food whenever you want it, fun colored buildings, smart people all around, even massages whenever you want them. Apparently, working at Google is like going to Disneyland every day.

I was lucky enough to be contacted by the big G. Somebody in the Platforms group found my resume on the internet, and wanted to phone interview. So, I called and talked to them for a while. It wasn't until I actually got to interview at the Googleplex (yep, thats what they call it) that I got more of a feel for what the platforms group does.

There was then two significant parts to the platforms group: software, and hardware. I should explain that Google designs their own hardware platforms to run on- they have essentially their own server designs, motherboards and everything. Some information on their machines was recently released (and that's why I'm a bit more willing to talk about this now). When I was on site, I didn't really know much about what I would be doing- I just found out that Google does a bit of hardware development for their server platforms, and the platforms software group works on the OS, drivers, and file system configuration to run on the platform. Other groups are responsible for the actual application/server software that runs on the machines- the platforms group has the responsibility for adding servers to the network in a scalable way- other groups write software to run on them.

The Googleplex was really interesting- maybe another day I will write a bit on that.

The interview was a sequence of six or seven interviews, each fourty five minutes long. My first impression of the interviewers was that they all seemed very hurried- every was busy. It was like seeing a normal company before a big deadline. Everyone had too much to do, and was running around trying to accomplish stuff. The interviewers were very good at interviewing, and trying to really see how I thought and what I was good at, rather than asking trivia/knowledge questions. Questions centered on solving a bunch of problems or brain teasers for which the answers weren't immediately apparent. On a lot of the questions, it seemed the goal was more to see how I thought than to see if I would immediately get the correct solution. I was given hints pretty quickly when I didn't know how to solve a problem, and was encouraged to describe my thinking process out loud. I think I did exceptionally well at most of these types of questions, describing what I was thinking as I attempted to solve several problems. The interveiwers for the most part did a great job- Joel Spolsky would be proud.

There was also a lot of code written- a lot of simple functions. I had one interviewer who focused entirely on dimming LEDs for 45 minutes. I wrote code for most of the time, just changing colors of a RGB LED, doing PWM to control the color output, fading from one PWM setting to another, color space conversion (!), LED color/voltage nonlinearity, etc. This really was a perfect thing to quiz me on in retrospect- it is simple, can be easily explained, but yet requires a demonstration of knowledge about PWM, C, and other embedded and microcontroller programming. I probably wrote several hundred lines of easy code on the whiteboards in that conference room by the time the day was over. It was easy code for the most part.

I really didn't do to well on the hardware portion. I was interviewed by people from both the hardware and software halves of the platform group- and apparently the software people liked me a lot more. I remember in particular screwing up a question really bad from one of the hardware group interviewers. I was asked how to blink a LED from a microcontroller- what would the drive circuit look like? Like most of the questions, it started out easy. The microcontroller pin had enough current to drive the LED, so I just added a series resistor. Then, like in most of the other questions I was asked, it got more and more complicated until I couldn't answer it. On almost everything, they enjoyed giving you a question that has an easy answer, and then adding complications until you reach the limit of your knowledge.

My failure in this interview question was that I couldn't name the three pins of a MOSFET. It hd been a while since I had done any circuit design in school (I had been finished with EE classes for a while), and I could name the source and gate, but couldn't name the drain for the life of me. The interviewer even seemed a bit surprised that I had a EE degree and was doing so bad. I felt a bit discouranged, and didn't ever really seem to fully redeem myself with that interviewer.

I cast off the discouragement, and took the chance to start new with each interviewer. They were all great at getting useful stuff done in their 45 minute interviews. I asked the first guy how many people he interviewed per week, and I think he said something like five per week. Thats one per day. Almost a full hour a day talking to potential hires. That really says something about Google's growth rate, which really hit harder later.

The guy that interviewed me during my free lunch was one of the more interesting people. I mentioned offroading, and he said that was something that he occasionally did. Four-wheeling in his Audi. Yep.

He also said that he had started with the platforms group when it was about 25 people, and it now had around 150. This group had apparently grown very fast as it became more and more important with the rise of Google, and the number of employees in the group doubled every six months.

I didn't initially write this to describe the interview, so back to the primary topic- Why didn't I work at Google?

I was driving down the road in Sunnyvale after the interview, and my parents called. It is probably illegal in California to talk on the cell phone and drive (a minor gripe, but still a gripe), so I looked for somewhere to pull off the road and park. Every parking lot had some kind of restriction- for customers only, employees only, etc. Land appeared to be so expensive, that there really weren't just free parking spaces. I eventually found a gas station, but I realized that I really didn't like how expensive everything was. I don't like California, and I thought about how if I worked there, so much time would be spent communting and most of my income paying rent, that I really would have much less free time, less access to the outdoors, and less spending money.

I still really liked Google- they were a great organization, doing lots of cool stuff. I liked the work, and the company, but really California is why I didn't work there. For a while, I waited for an offer to compare to my current employer. I was told that I had an offer on the table, but they couldn't send it out due to a last minute hiring freeze from the top. Something about how the company needed to figure out how many employees they had after the Doubleclick acquisition. The freeze hit at the wrong time. I had already pushed my current employer for time so that I could fly out and evaluate Google, but my employer was getting impatient. So, I made the decision. It was cool job and no free time, not liking where I would live versus what I saw as an OK job in a decent area.

Some credit to Google- thanks to the recruiter, MB for pushing things through really fast for me. I appreciate your work flying me out ASAP, and getting a response back always quickly. The interviewers were all great, and the entire Google organization is great.

As one of my interviewers said, Google doesn't want to be a huge company with huge company politics, overhead and such, but it is getting dragged kicking and screaming toward becoming a huge company. The next IBM as I see it. However, they still have great products. Great tools. And one day, maybe they will have to change into a regular company who has to work on products that generate income, rather than the free services (blogger, gmail, search, etc) that most people know Google for. For now though, I was happy to see a little bit inside the huge and different monster that Google currently is.

Saturday, April 25, 2009

Some notes on netflix watch now

Some things I encountered today on Netflix:

- They have the first four seasons of The Office on "Watch now," which is great. I've seen a couple of episodes, and I think I'm going to try to watch a few more.

I booted the ole computer up, and tried to watch them. First off, I tried Google Chrome, which is what I use for everything else I do. No luck- its unsupported. Not only is it unsupported, but they don't let you even try to run it, just in case it works (a pet peeve of mine).

Second, I try firefox. Almost everything works in firefox (even the archaic and crusty Deltek timecard system). Doesnt work- it give me an error about how my browser is unsupported, and I should upgrade to IE or Firefox 2 or newer. I'm currently using Firefox 3.0.8, so I just assume that my version of Firefox is too new.

Third attempt, I use an add-on to firefox that lets IE render a single tab within firefox. Its supposed to resolve these kinds of issues. This time, Firefox took a dump. Crashed. Windows caught it, and recommended that I update flash player to resolve the issue (The old netflix player was based on flash).  I did that, and nothing changed- Firefox took a dump again, windows recommending updating my freshly updated flash player.

So I broke down and tried IE. At this point, I'm getting tired of typing http://www.netflix.com, the office, and clicking on season 1. IE fails, and tells me that my browser is unsupported, and I should upgrade to firefox or IE 6 (again). Whee...

After some googling, I find that IE 64 bit is unsupported on Netflix (but this isn't documented on the Netflix site). I try IE32 bit (which comes on 64 bit machines). After another failed attempt, I find out (again by googling) that 32 bit Internet explorer uses 64 bit flash on 64 bit machines, which is, you guessed it, not supported. At this point, I can't think of anything more to do with my desktop short of trying to run it in a 32 bit VM, and so I start with option 2.

I run some more CAT-5 cable to my bedroom in the hopes that I can get my laptop working. Its a 32 bit machine, running XP, so I anticipate this being not bad. After booting up the machine, I find that it can't stream either. I get the player installed (after solving a compatibility issue with a previous version of the netflix player installed on my system), and finally get to a page that looks like its loading up a player. I let it install Silverlight after it asks. Silverlight installs really quickly- I hope its actually doing something in the installer other than uploading my personal data to microsoft!

The player doesn't work. "Error 1001." It's so non-descriptive, its like going back to the Mac OS 7 days- "An error has occurred." No clue to the source. I continue troubleshooting, including an uninstall and reinstall of Silverlight. After a few minutes, I find some hints that suggest adding netflix.com (both http and https protocols) as Trusted Sites in Internet options may fix the problem. This doesn't change anything (for me).

So at this point, I remember clicking something once asking me to opt in to Netflix's new player. Apparently, this one replaces Flash with Silverlight. Apparently, this one doesn't work for a whole bunch of people. Apparently, they don't want to you to opt out (see here).

So, I'm about to call Netflix, and I'm not expecting much. From what I've read, they blame the problem on Microsoft and tell you to call them to fix it. Maybe I'll have them cancel my subscription.

:-(

Update- I'm on hold with Netflix support. The guy seems to know what he's talking about, and I run him through my experiences:
- No Chrome
- Firefox doesn't work either
- After IE doesn't work, I identify this as a 64 bit issue
- Laptop doesn't work initially
- Updating silverlight doesn't fix it
- Updating netflix player doesn't fix it

He wants me to try watching Heroes Season 1- it dies again.

He gives me the phone number for MS Silverlight support- (866-234-6020, 5am-9pm weekdays). I tell him that I've heard that they aren't very helpful, and he agrees.

He does direct me back to the desktop machine, and says that in Vista 64, you can get the netflix silverlight player to work in 32 bit IE. Strangely, this works this time. :-/

Happy ending I guess. However, the laptop still doesn't work (??).

Sunday, November 9, 2008

Current electronics project- wall flood lighting

Recently, I've been looking for a some colored mood lighting for a couple of my rooms. I've thought that there has to be some kind of a LED powered programmable lighting solution, but in what I've seen, there really isn't much that is affordable on the market. There are some LED DMX lights and stuff, but nothing small or intended for the consumer. So, I've started looking into doing things myself.

Here's what I intend to get- a programmable color lighting source to do wall flooding behind my TV. It's really that simple. Since I've realized that I'm going to be either partially or totally designing my solution, I've added a few more requirements- cheap power supply, programmable color and brightness, and exstensibility (ability to add more/remote lighting modules). I really am disappointed that there aren't more solutions available!

Design details: I've about settled on a two part design. The first component would be a microcontroller on a board (control board), and lighting boards with LEDs on them. The control board will a USB port for programmability (and optionally, power), as well as ports to be used to connect multiple remote lighting boards, probably in the form of two pin headers (easy to do) or something witty like an RJ11 (people already have the hookup cables). The lighting boards will simply some LEDs, driving circuitry, power circuitry, and the two wire control interface. I'm currently envisioning each lighting board only having one color of LED on it.

LED selection and driver selection have been the main focuses so far, since they are by far the most difficult elements. I thought for a while that I was just going to get one of each of the brightest affordable LEDs I could find- OSRAM W5 series, 1.4A apiece, but they were a bit expensive and require quite large current drivers. I bought a TI evaluation board that has three W5SMs (350ma, RGB SMT) on it with a microcontroller. The board is actually an eval board for a power regulator (TPS62260), but I'm finding that the current regulators, despite being very efficient (96%?) buck regulators, they are more than is needed cost-wise. I've basically settled on Allegro LED driver ICs for now.

The LEDs have really been the harder thing to narrow down. I'm down to two options:
* Kingbright Superflux. These are the ones that Garrett uses for the ShiftBrite. They are 7000mcd (7kmcd? 7cd?), 20ma with RGB all in one package and Zeners for each one so you can feed them excess voltage if necessary. He is using an Allegro chip with built in PWM, which is nice on the processing end (you don't have to program PWM..), but means that it requires a bit more sophisticated interface (for the shift register). I would probably use a similar chip, maybe without built in PWM. If i went with this option, i would need a bunch of LEDs per board, as they can't be near as bright as option two. These are available for under 50c per.
* OSRAM W5SM/SN. This is what the TI eval board has, and what I suspect that I will end up with. They have a lot higher current draw, and have heat dissipation challeneges, but are a bit simpler. They are really bright, and a bit more expensive at around $3-5 per 1. I would have the capability of putting several of these on each light board.

I've got some of the OSRAM parts on the TI board, and I ordered a couple of Shiftbrites to evaluate that part. I'm anticipating making a bunch of boards for this project, and selling a good deal of them to try to finance the manufacture of the project.

Software details: 
* LED boards: none.
* Controller board: microcontroller firmware. Interfaces with a PC (optionally connected) via FTDI USB interface chip. Provides dimming functionality to connected boards. On startup, it cycles through RGB colors on all connected boards. Allows for other firmwares to be loaded via JTAG.
* Computer: I will probably write a demo application that will allow a user to set the color of LEDS and such so that the full functionality is available to people that don't have the ability or know-how to program the microcontroller. I'll likely post the project up on Gamedev.net just in case anybody there is interested in buying one/developing software.

Microcontroller details:
I haven't picked one yet, but it will probably be a PIC, ATmega, or a MSP with built in PWM, an ADC or two (for more functionality that I haven't described :D), and small size/power requirements.

Feel free to comment on the design- I haven't bought parts yet! I hope to update on the LED selection once the ShiftBrites get here, and maybe post up comparison pictures.

Wednesday, October 15, 2008

Do not call registry- a partial failure

Like many Americans, I have been receiving many calls from political candidates, most of them local to my area (southern New Mexico). I quickly went to the National Do Not Call Registry (link), and verified that my number was indeed on the list, which it has been since the creation of the list. I re-registered just in case. Shortly after I did this, I received a call from a political polling agency. I don't have the name of the agency, but I can tell you that they were polling about a local candidate. I informed them that they were in violation of United States Law (they weren't, see below) as my number was on the do not call list (it is).

I usually tell people calling for political candidates that I am giving them a final warning that they should not call, and if they call again, I will never vote for their candidate (may or may not be true- depends on the candidate). However, this doesn't work for tele-surveying agencies.

Anyway, I was disappointed to find out that being on the DNC list doesn't prevent people calling you with unsolicited political messages. Beyond that, the list doesn't prevent telephone surveyors from calling. This really disappoints, but does not surprise me, as we really can't expect today's politicians from (essentially) self-regulating their own telemarketing activities.

While researching this, I stumbled on an interesting page looking at political messages and the claim that John McCain "invented" it. Summary- he didn't.

Just for reference, here are the"violators" of my no-call policy:

Tom Udall for US Senate campaign
(866) 849-3243
(800) 222-2222 (forged caller ID)
(505) 319-6506