Archive for Life

Ambient Orb

I bought my partner an ambient device a year or two ago. It’s basically a frosted glass orb with some LEDs on the inside and a wireless receiver. The LEDs change color and can pulse at different rates, based on the command received by wireless (same coverage as cell phones). As we were living apart at the time, I paid for the subscription (about $7/month) to be able to change the color of the orb over the internet (it’s called the developer’s channel). I wrote some PHP to map the colors to my mood or my work level, things like that.

The purpose of Ambient Devices’ products are to convey information in neither a pull method (i.e. polling your email for new mail) or a push method (i.e. your phone ringing). In reality, it does both, just at a very low priority. Some people set it to stocks or the weather, or traffic, and whenever they want that information, they can glance at it to see the current state of their chosen subject.

So, with my partner moving in with me next month, I got the hardware developer kit, which is essentially a circuit board that connects to the serial port on your computer, and the other end into a connector on the orb. This way, I can send my own signals, and not pay to use their server to send the wireless commands. They include a small Java GUI to show you how you can control it, and the Java API they’ve created allows you to specify the color and pulse, and then through native code, push that out to the orb.

It’s unclear whether the orb must stay connected to the PC to keep its current state, as it is set to receive wireless signals through Ambient’s servers. These would overwrite the most recent computer command if it were not connected to the computer still.

I’m looking forward to creating something to control it, probably a servlet, although I could use some practice with RMI.

Comments

And… we’re back

It’s been a while. 7 months, to be exact. I have since joined the workforce and am working as a Java developer at an ERP company of sorts, the same company for which I interned. I rejoined the tools team, and they put me right back on the server code.

Within a few weeks, I was drafted into a special interest team whose only goal was to improve “performance” and memory management on the server for high loads. I say “performance” because, like so many managers, the one term can be used in suitably hand-wavy fashion to encompass response time, memory usage, throughput and CPU usage, without actually committing to anything at all.

The most infuriating conversations of all go something like this:
Developer: We’re implementing feature Y because the current feature X uses too much memory.
Manager: Very well, how much will feature Y improve performance?
Developer: It will improve memory usage. I can’t speak to how it will affect throughput until we see it. But we won’t get the OutOfMemoryErrors.

[Next day's meeting]
Manager: So, our developers tell me we’re implementing feature X to improve performance. Can you tell us how much faster feature Y will be than feature X?
Developer: No.
Manager: But you said it would improve performance.

And so on. The issue at its root is that “performance” is a horrible, huge term. And nobody wants to say that we’re willing to sacrifice throughput to help memory usage, even though high memory usage has led to stability problems. So nobody will say “we need to have 100 transactions per second,” instead, they say “we want as many transactions per second as possible.” And around it goes…

So there it is, my life resembling Dilbert more and more every day. Aside from work, I’m looking into a master’s degree in computer science (which necessitates taking the GRE), and I’m still working on a Java certification. The last attempt was held up by an Operating Systems course that required learning C instead of studying on Java.

Until next time…

Comments