June 25, 2008 20:47 by Jim
I live in an old fashioned NYC railroad apartment – long, skinny, and impossible to cool down with air conditioning in any reasonable amount of time. After returning from work, lugging my bicycle up the stairs, and flipping on the AC, I get the very special treat of sitting around for 45 minutes in molten-hot swamp air while waiting for my living room to cool down.
The bottom line: I can now turn my air conditioning off and on from my phone before I head home.
I took the DIY approach - X10 or a similar solution would have been too expensive and impractical, plus the AC is controlled by remote or a power button, so simply plugging the unit in isn’t enough to turn it on. My solution was to trigger the remote control in order to turn the unit off and on.
The project cost under $10 along with a spare USB keyboard that I already had. Why a keyboard, you ask? Well, the tricky part was figuring out how to trigger a relay from the computer. I found this instructable which suggests using the LEDs on the keyboard (I ended up using only scroll lock, the most useless of all locks) to trigger the relay. When the relay is triggered it closes the circuit where the power button used to be. I used a 5VDC/1A SPST Reed Relay from Radio Shack (suggested by the fine folks over at the Make Forums) which conveniently triggers at 5V, which is the same voltage as the output on the LED. The relay was then soldered directly to the innards of the remote (we had to sand away the protective coating and very delicately apply the solder). Once this was put together it was pretty convenient to test as all we had to do was press the scroll lock button on the computer and we’d know if things were working.
Frankie and I accomplished this on a late Friday evening (we really intended to go out in the Lower East Side, but sometimes soldering just gets out of control). Once everything was working, the project was put in a casing. I drilled some holes for cables and LEDs. The whole thing looks pretty smart, although inside all of the components are kind of jammed in there.
The application to control the AC runs on my laptop. Running in the system tray I have an application which allows me to control the AC when I’m home (of course I could use the phone as well). This application also exposes a .NET Remoting service over TCP on port 6567 (yep, that’s decimal ASCII code for ‘AC’) – it seems like in order to use the win32 call that emulates a keyboard press (in this case toggling scroll lock for 200ms) the process needs to run in the desktop session, although there might be a more low level way to do this. Unfortunately the Compact Framework doesn’t support Remoting, so I needed to write an additional web service to expose this functionality to the CF client on the PocketPC. This web service exposes the same methods and proxies them over, via Remoting, to the WinForms app that’s hosting the Remoting service. If you'd like a copy of the source code just send me an email at jim<at>s57.com
So, this is the basic flow of how things go down (perhaps also illustrating how appropriate the title of this post is):
The system tray application is loaded on the host machine (my laptop, which has the USB remote contraption attached). The application instantiates an ACService remotable class and marshals the object on port 6567. This was the ony approach that allowed this object to interact with the desktop.
CF app is loaded on the Windows Mobile 6 PocketPC .
Status is retrieved from the server (on or off).
When the button is pressed (‘Turn AC On’ or ‘Turn AC Off’, depending) the web service is invoked.
The web service invokes the Remoting service on the local machine.
The Remoting service makes a win32 call to activate the scroll lock key and then sleeps for 200ms before deactivating it.
Where once stood a scroll lock LED now stands two wires leading to the relay. When the scroll lock is pressed the relay closes and allows current to pass between the two nodes for the remote control’s former power button.
The AC turns on / off!
This diagram shows how the circuit works.
Now I just need to add some security to ensure that some intrepid port sniffing hacker doesn’t end up turning on my AC in January.
Currently rated 5.0 by 5 people - Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5
We got us somethin' comfy fer our asses.
Productivity is off the charts. Business is booming.
Currently rated 5.0 by 5 people - Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5
Hot n’ spicy. Mmmm.
Monday, June 2nd marked the first ever company wide chili cook-off here at Stream57, featuring 9 bean-stuffed, veggie-loaded, meat-packed tubs of delicious spicy goodness – enough gas power to fuel a small town.
From Ben’s multi-meat offering to Jim’s veg-friendly feast; Jeremy’s holy-hell-that’s-hot to Daniel’s Indian-influenced stew; the chili’s were quite varied yet remarkably delicious all around.
Our esteemed tasting panel was lead by graphic designer extraordinaire (and resident snack-junkie) Jesse Miksic, a prince of the palatable potencies. Rounding out his crew of saucy spice-lovers were friends of the Mik-man, Dominic a hockey-playing world-traveling designer from Brooklyn; Anthony, a Boston-based cartoon-costumed wrestler with an appetite; and Johnny, a dumpster-diving ‘Nawleans boy who’s just happy to get a free meal without fighting a raccoon (apparently this “freegan” lifestyle of his is a legit thing…).
The 4-man scoring squad sat sequestered in our lovely conference- slash-dining-room for what seemed like at least 45 minutes before emerging with delicately deliberated scores and results, ranking each pot-o’-fire for complexity and subtlety of the flavor (including any noxious aromas), texture and consistency of the pasty and/or soupy mess, and, of course, the “kick” of the peppers and spices.
Super designer / Siberian superstar Kat once again proved her excellence-in-all-things-awesome with a resoundingly delicious Russian-style chili that utilized whole potatoes and sour cream to distinguish it from its peers. Her presentation of carefully-design recipe cards and a full-color label only added to its appeal.
Rounding out the top tier was head honcho Ben’s beef-and-beer chili and Daniel’s curry-spiced creation. Jeremy’s sweet-yet-f@#$ing-spicy chili (which he refused to even taste himself) won the special “hot” prize.
All in all, we were really just treated to a week’s worth of chili leftovers and a whole slew of foreign beers in our fridge. And we’re all just about as regular as can be.
Currently rated 5.0 by 4 people - Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5
May 19, 2008 17:16 by Jim
Ah, air travel. To book a transcontinental trip is to impose
torture on oneself, yet we do it nevertheless for the promise of beautiful
people and lands hitherto unseen. As I write this, I sit in the coach section
of a severely aging Boeing 757-200 bound for the North American continent, and,
ultimately, the site of Newark Liberty Airport. A placard by the window reads
‘recline on this seat is restricted due to federal safety regulations’ – an
omen of discomfort to come as I unwittingly attempt to compress my 6’5” frame
into a space meant for a much smaller stature. On my left, a sea of flat clouds
conceals the vast Atlantic and our many fish friends beneath (allegedly the
famed ‘vampire squid from hell’ lurks somewhere within that placid aquarium,
plotting his next fiendish move). On my right sits Steve Geiger with a movie
playing on his laptop, Bose earphones delivering crisp audio straight to his
eardrums without chance of aural contamination, while he contemplates and, subsequently,
makes the appropriate adjustments to a wayward cuticle bridging the cusp of the
fingernail on his left ring finger. This, friends, this is the good life.
But wait, how did we get here? What adventures preceded this
epic return to New Jersey via Continental’s ‘economy’ class? The answer, dear
reader, is that Steve and I crossed the Atlantic to visit none other than the
home of both that delectable sweet-bread and the viciously deadly ‘man o war’:
Portugal.
It all started by the water cooler (of all places) at our
Fashion Avenue office. Steve and Ben were discussing an upcoming webcast in the
aforementioned sweet-bread capitol when I smartly injected myself into the
conversation, inquiring about the details of the event in an attempt to raise
concerns over the technical acumen required to execute the event successfully.
The Stream57 MVW (most valuable webcaster) would need to be sent. None other
than yours truly would fit the bill.
Steve, who had been eyeballing the trip to the country of his
ancestral roots, would have none of it, as he had already envisioned his
glorious descent upon the warm coastal city of Lisbon (although I presume he
also imagined that his descent would also include a chair with a ‘recline’
feature, but, alas). No, I surely would not take his place in Lisbon, but an
alternative was proposed: we would both go: chums, pals, merry makers, co-vacationers,
co-workers, and, most importantly, dear friends. The genius of the solution was
striking. I was already mentally packing my bags.
Now is an important time to note that if you are a Stream57
client with an upcoming live webcast in an exotic and / or enticing location,
Steve and I are accepting reservations and will gladly boot the normal webcast
crew off of the job. The best approach is to call Ben Chodor directly and
demand, in no uncertain terms, our presence (best not to make mention of this
blog post). If you are not highly demanding we cannot guarantee much – for
added effect it is best to call him on his mobile phone, late at night, and to
make a little whimpering noise in between sentences, if possible. Before
calling however, please note that both Steve and I are quite cosmopolitan and
our definitions of ‘exotic’ and ‘enticing’ are probably more demanding than
most, so feel free to give a ring to determine if your location meets the
Phelan / Geiger litmus test for travel appeal and bragging rights. Generally if
the land in question is home to any of the following it is permissible:
marsupials (especially duck billed platypuses), camels, meerkats (wild),
sloths, panda bears, Guinness, man o wars.
We arrived in Lisbon and headed for our destination of
Caiscais, a stunning fishing town situated about 30km west of Lisbon. Here
began our quarrels of currency: we had minimal American currency and a slew of
debit and credit cards, yet for the next 24 hours we couldn’t get a single one
to work. Our first day and a half in Lisbon was a complete comedy of errors –
as Steve and I bumbled from bank to bank, currency exchange to currency
exchange, and devised master plans for the extraction of funds from the banking
institutions of Portugal, our time to investigate Lisbon slipped away. All said
and done, the vast majority of one day was needlessly squandered on a trivial
but necessary act – getting money to buy beer.
With the limited funds we had squirreled away in our luggage
we managed to get out and have some rollicking times on our first night in
Lisbon. Perhaps the pinnacle moment in that evening’s activities was a stop we
made at a small bar where we met Rebecca, a young Norwegian woman who aspired
to musical fame. Clearly inebriated, Becs managed to say every sentence almost
completely backward; there wasn’t a chance that she was picking up on our cues
to leave us and our frothy beverages in peace. At one point she quickly
advanced towards Steve, who, thankfully, is agile and a lean thinker and quickly
blocked the approach with the hand on which he wears his wedding ring. There was one moment,
however, that could not be avoided: Rebecca leaned in to whisper an
(incoherent) thought in Steve’s ear, but instead of pulling away, she gave him
an extended, slobbery neck licking. Ewww.
The next day, after we finally caused a machine to dispense
sweet, sweet Euros, we met our comrades and counterparts from In Situ
Productions to test the site of the event and then enjoy some of the
aforementioned beers. The sun had barely begun to spew photons at our
delightful patio deck when we arose the next day for the early event. Some
decadent room service and a coffee slurp or two later and we were off to
broadcast Portugal to the world.
As for the webcast, Steve and the In Situ boys did most of
the work while I wandered around with my hands clasped behind my back and tried
to look austere. Success was the matter of celebration later in the evening –
despite some challenges prior to the webcast (where’d the Internet connection
go?) we made it happen.
Naturally, Steve and I booked a couple extra days in order
to fulfill our ulterior mission – to track down the ubiquitous but often
elusive ‘euromullet’ in the wild and dispel the mysteries surrounding it. We
paraded around Lisbon with cameras in tow for two full days before we could
gain enough proximity to an actual subject to photograph that wicked hairstyle
in its natural environ. We were in Bairro Alto, an elevated part of Lisbon
marked with windy stone roads and an abundance of drinking establishments, when
we noticed a silver haired gentleman sporting the E.M. slip into a local
watering hole.
I snapped a few photos of the mulleteer from outside the
bar, but with the low light I wasn’t sure how well they’d come out. Soon,
however, we saw mulletman hit the streets to enjoy an outdoor brew with his
compatriots, and I knew what needed to be done. I quickly proposed pseudonyms
and a back story – we were reporters for a New York newspaper, writing an
article on nightlife and culture in Lisbon.
I boldly approached the group and explained our situation.
Might we take their picture (I secretly composed in my mind a mullet solo shot
while I awaited their response). It went down something like this:
Me: Hi, I’m a
reporter from the US doing an article on Portuguese culture. My I snap a photo of you handsome gents?
Them: (some grunting,
nothing else for a minute).
Me: Guys?
Their spokesman (not
mullet guy): No.
Me: Mind if I ask
why?
Spokesman:
Because we hate Americans. [Editorial note: seriously, that’s what he said]
Me: [slightly
startled] I see. So you hate all Americans? Why, is it our president?
Spokesman: Yes.
Me: Ok, well we
don’t even know each other. Do you hate me?
Spokesman: Are
you American?
Me: Yes.
Spokesman: I hate
you.
Mullet guy: [nods
in agreement]
Me: Oh. [At this
point I walked away, nearly unable to contain my laughter]
Moral of the
story: People with euromullets hate freedom.
The rest of our trip contained some more sightseeing and
beer imbibing. Although more detail is deserved, this has become a lengthy
tome, perhaps too much so for a brog post, so I shall retire to viewing a
censored version of Spiderman 3 on a
four inch, 256 color LCD whilst masticating stale cocktail peanuts. I’ve never
wanted so badly to see New Jersey.
Currently rated 5.0 by 4 people - Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5
May 13, 2008 15:37 by Jim
We received a contact request from our website today kindly
suggesting to ‘tell Ben to swallow the gum he's chewing in his video clip’.
Hmm, we’re not sure what video clip that is… wait, could it be this one?
If you
don’t know him, Ben’s our president and an all around nice guy (clearly he’s
got a sense of humor or we wouldn’t dare post an image so disparaging).
Note: this is not the first time that we’ve used Ben’s
iconic figure in conjunction with well known Internet memes / war propaganda to
elicit a warm and fuzzy feeling in those who apprehend it. This image,
conspicuously posted in the developer ‘pen,’ reminds coders to do their civic
duty and document their code.
Currently rated 5.0 by 4 people - Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5
April 15, 2008 18:13 by Angelo
Occasionally (read: always) there is something nerdy going on in the dev/creative department. Sometimes it's uber nerdy, like rattling off the meaning of some obscure acronym like CMOS (fyi it's Complimentary Metal Oxide Semiconductor, hellllllooooooo??). This past weekend involved an 80% nerdy and 100% friendly competition between Frankie and me to see whose computer could encode the same movie faster using Handbrake. Which movie, you ask? Never you mind, but just be assured that it involved a lot of codec-challenging motion and a little bit of 80's cheese.
The reason this competition was interesting is that it was between my ultra modern home built Intel Core 2 Duo E8400 processor overclocked to 4.15ghz at a 520mhz FSB versus Frankie's slightly aging Mac containing dual Intel Xeon 5030 processors at 2.66ghz and a 333mhz FSB. That pits two very fast and slightly more efficient cores versus four slower, less efficient cores. To give you an idea, it's sort of like comparing the impact of a lightweight car travelling at 100mph versus a heavier car travelling at 65mph. It really had the entire office biting their nails, let me tell you... Yeah, no one in the office even knew about this aside from our department.
When the dust settled Frankie came out on top but only by about 15 minutes. All things considered I think my little car did just fine. And had we competed in something more single threaded like calculating millions of digits of Pi, oh baby. Now if you'll excuse me, I have like thirty million hot women to date that are hot to know what BIOS stands for.
Currently rated 5.0 by 7 people - Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5
April 1, 2008 16:26 by Jesse
 Stream57 has built team spirit in myriad questionable ways... through gambling (Poker night), substance abuse (beer and wine tasting), and rock and roll (guitar hero). A couple weekends ago, we moved to a fresh, untested sin: wrath and violence. The vehicle for this depraved team-building exercise was the infamous New Jersey outpost "Paintball Depot."
This place is in West Milford, New Jersey, a bothersome forty-five minute creepy van ride from the midtown office. We all loaded up, bright and early… earlier than many of us get up for real work, in fact. The town is an empty sprawl of "flora" (whoever thought there were so many trees?) and "fauna" (we saw turkeys, but restrained ourselves from shooting them), as well as awesome hick-y bars where people wear lots of denim.

Once upon a time, this game might have been a scrimmage, but with our recent growth, it was nothing short of a war in the wilderness, the meeting of vast forces laying waste to the landscape. The designated teams were the noble "Phelanators" and the evil "Geiger Counters," captained by two of your dedicated bloggers, and there were around thirteen people under each standard. We were identifiable by red and white armbands, respectively, that were bright enough to inspire comraderie but subtle enough that you had to squint for a few seconds to figure out who you were shooting at. As far as stand-out players, the Geiger Counters had Jeremy, their Achilles, a seasoned paintball veteran with his very own equipment; the Phelanators had little but our warriors’ spirit.
Oh, and Kat, our well-kept secret weapon, a lithe, non-threatening graphic designer who turned out to be the physical embodiment of total destruction.

It was a cold day... a damn cold day. Luckily, we were all outfitted with baggy camo jumpsuits and goggles, which were essential, because those paintballs could definitely take out an eye. Even as it was, a few people got mouthfuls of paint, which, according to Jim, is "kind of sweet, but not in a good way." People will tell you it really hurts when you get hit with a paintball, and they do indeed travel at high speeds, but I assure you – it’s a good kind of pain.
There were some truly brilliant key moments – Angelo’s execution and Aaron and Matt’s standoffs in the trenches, Jeremy and Steve’s elaborate approaches and Bruce’s pitched defenses. The Geiger Counters were formidable, winning their fair share of confrontations, although the Phelanators’ victorious assault on the hill before lunch will echo in history, like the Alamo or the battle of Thermopylae. The final, epic game of capture the flag, a battle of attrition and desperation, will be remembered forever, as well... it is inscribed in the marble of our corporate memory.

After the matches, and the pizza, we went to one of those bars we were talking about. "Jiggs," I think it was. Nachos and celebratory brews were shared, and the rivals reconvened as brothers and sisters to reminisce on the day’s events. We made it back by early evening, tired and satisfied.
Make no mistake... teams were built. Morale was bolstered. Great webcasting innovations were tossed around and field-tested. Pictures were taken. Lunch was eaten. Good times were had by all.
Currently rated 5.0 by 4 people - Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5
February 5, 2008 22:28 by Jim
We generally use an UnsupportedOperationException to denote
a scenario which is...uh...unsupported. This might be in a 'fake' ActionScript
abstract class (ActionScript doesn't have a special support for abstract
classes) or in a specific case where it doesn't make sense to support the
operation. Sometimes, however, you want to support a particular case -
just not right now. That's where ProgrammerTooLazyException comes in - it
clearly marks in code why you didn't support the operation and gives you
the added benefit of making sure these cases get implemented before code goes into
production. My one concern would be that perhaps we're encouraging folks to
refer to themselves as lazy, but hey, lazy instantiation is lazy, and we like
that.
Currently rated 5.0 by 5 people - Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5
February 5, 2008 21:48 by Jim
 It's common knowledge that when a coworker demands that his
or her birthday remain unobserved that action must be immediately taken to the opposite
effect. Today marked Andy Parker's (Stream57's Marketing Director) birthday and
we needed to come up with something groundbreaking to embarrass him. We
scratched our heads, stroked our goatees, and ultimately decided that the only
acceptable course of action was to bring in outside talent. We procured a very
talented singing and dancing chicken from Big Apple Singing Telegrams and staged
a companywide meeting. It was a hoot – in the end we had a whole line of folks
doing the so-called ‘chicken dance’ and we followed the whole fiasco with an impromptu
all-or-nothing Nerf gun war.
Currently rated 5.0 by 5 people - Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5
|
|
|