> Trades faster than a day should be simply outlawed, and it should not be possible to own a stock for a > period of less than one day either.
As a practical matter, that's almost how it works anyway.
If you're trading with cash (not on margin), You can legally buy shares, then sell them on the same day... but legally (in the US), you can't use the proceeds from that sale until 3 days later (or something to that effect.... it's actually kind of a gray area that the SEC intentionally keeps kind of gray by design). Why? Technically, when you buy shares, you don't actually own them until 3 days later. So when you sell them before then, you're technically shares you don't physically own yet. The SEC generally humors it up to that point, because the transaction at that point is assured and guaranteed to happen anyway. In fact, most online brokerage firms won't physically stop you from using the funds of the sold shares to buy more shares on the same day (buy-sell-buy). At least, not until the first time they realize you did it, 6-36 hours later. Then they'll send you a *really* nasty email, and threaten to revoke your online trading privileges for 90 days if they catch you doing it again.
The key thing is that enforcement is always after the fact. It can't be realtime, because no sane brokerage firm would ever want to subject itself to the risk of refusing to complete a legitimate transaction. Even if the firm is protected by law, it would come back to hurt them, In the grand scheme of things, the existence of occasional market sins is a lesser evil than the consequences of going overboard to prevent it from happening. At the end of the day, being threatened with having your $2.50 trading privileges taken away and forcibly replaced with $30 broker-assisted trades for 90 days is an exceptionally effective way to make casual investors behave themselves.
As I understand it, the relationship between the SEC, the rule, and the online brokerage firms is itself kind of gray and fuzzy. The SEC made the rule, but when you break it, it's actually your brokerage firm that gets subjected to the consequences. Basically, if they didn't police their customers, they could end up owing millions of dollars that would have to be paid out at 4pm that they themselves wouldn't be receiving until a day or two later. To get the funds, they'd have to borrow them overnight, and borrowing those funds will cost them a lot more money than they'd actually make in profit by allowing the transactions that caused it to happen in the first place. So they tend to be very, very aggressive about catching anyone who does it, and punishing anyone who does it after being warned to never do it again.
It's a pretty nasty rule, because when you first start investing (with a cash account), nobody ever actually comes out and tells you what it is and explains its rationale. You'll see fine print somewhere telling you that you that pattern day trading can't be done with a cash account, but the way it's worded suggests it's either a physical impossibility or something different than what it really is. Imagine two bureaucrats having a shouting match with one another, arguing about two entirely different matters with seemingly nothing in common. That's a fair description of the typical wording you'll read on most online brokerage sites and the wording in the official SEC rule.;-)
Now, if you have a margin account, you can freely buy and sell all day... as long as you have a HUGE amount of equity up front to invest (I think the minimum allowed is $50k or $100k). The SEC's rationale is that day traders are a net benefit to the market by providing liquidity, but requiring a huge amount of cash up front to be allowed to do it skims off 99% of the people who really can't afford to lose that much money (by virtue of not having that much money to begin with).
If you're a brokerage firm, the trading costs involved themselves can vary, depending upon whether your proposed trade increases or decreases the overall liquidity of the market. To individual investors, the transaction cost will always be vastly higher, but if you're someone like Goldman Sachs, the cost to sell a million shares when there aren't a million buyers lined up is higher than the cost to sell a million shares when there are two million buyers lined up, and vice-versa. That's one reason why you have "market-makers", who themselves trade blocks of stock all day that they themselves have no interest in owning, or even holding for more than 5 seconds, but the fact that they bought 3,000 shares 2 seconds ago means they can sell 1,000 shares to each of two buyers who want that many, plus 500 to a third buyer, and 100 shares to each of 5 buyers (grossly oversimplified a bit, but that's the high-level explanation).
Market makers are the reason why you can put in a buy or sell order for just about any amount of shares someone less wealthy than Warren Buffett is likely to ever own, let alone buy or sell in a single transaction, and if your price is within a cent or so of the last transaction, your own transaction will go through almost instantly. It's also part of the reason why if the last trading price is $x, an order for $x won't likely go through until the last price is either a cent more than you offered to sell at, or a cent less than you offered to buy at (unless you're buying a staggeringly HUGE number of shares).
> And Here I was thinking 1080 lines of vertical resolution should be enough for anybody.
Everyone's airing of grievances over the seemingly pervasive march towards fewer vertical pixels than even mid-priced LCD monitors had 3 years ago (ah, the happy days when you could actually buy a laptop with 1920x1440 display) was a different Slashdot topic a few months ago.;-)
They would have been near the top, except just about everyone who owned a WinMo5/6 phone 2 years ago now owns an Android phone. Legacy PalmOS faded away over the span of 5 years in a slow, dignified sunset. Windows Mobile, by comparison, symbolically committed mass suicide and practically vanished from the earth overnight. The last straw was Microsoft's treatment of Touch HD owners -- thanking them for their loyalty and support by telling them they wouldn't be allowed to have the next version of Windows because their phones had two buttons too many. They could hardly have driven more of their last supporters away by paying HTC to port Android to the Touch HD and emailing the download URL to buyers. As it stands, by the end of this year, the Touch HD will have the honor of being one of the finest Android phones you can buy today;-)
> To access an android phone you have to link it to a Google account... you download apps from the google app store... > This is this different than linking to an iTunes account and downloading from the apple apps store how?
Android owners *can* download apps from Android Market... or we can download them from anywhere else, and install whatever we feel like installing without having to play "Mother, may I?" and get anybody's official blessing, first.
iPhone owners officially have no choice. They *MUST* download apps from Apple's AppStore, and *only* from Apple's AppStore.
Android owners bitch because we haven't quite achieved the ideal of end users being able to build our phone's OS from scratch independently of the handset makers, carriers, and Google. We throw public fits, blame HTC for violating the GPL, and eventually get a cookie thrown to us that brings us a step closer to our goal once we combine that cookie with the next rom image ripped from a related newer phone.
Put another way, if Steve Jobs says the iPhone 4 (or an older iPhone) will not do something, it WILL NOT do it. Ever.
If HTC or Sprint says the Hero won't do something, it's only a real limit until someone rips the rom from the next HTC phone, metaphorically bakes it into a new ROM, and everyone gets to have it anyway.
> Isn't this because otherwise you can see through people's clothes with them?
Not really. The Sony trick worked at the beach because the women were wearing skin-tight swimsuits that freely transmitted body heat (and possibly because the cameras' IR sensitivity extended further into the IR spectrum towards heat). It wouldn't work against normally-clothed individuals who were wearing (among other things) normal cotton underwear in addition to everything else. Absent government mandates or rampant lawsuits, you wouldn't see security camera manufacturers voluntarily compromising their ability to see in the dark just because someone might be able to repurpose them for inappropriate use at the beach.
The only time I ever saw IR "sort of" seeing through clothing was at a nightclub in Miami. They had nightvision cameras pointing at a podium for drunk girls to climb up on and dance, and there was a girl dancing on one with a clingy bra-free top that wasn't particularly opaque to begin with. She was hot, sweaty, and her breasts *were* fully visible, nipples and all. The most amusing part was her reaction when she saw herself dancing with a de-facto sheer top on one of the monitors. She stopped dancing, stared at it while looked confused for a moment... then shrugged and started dancing again. Yet another Miami Moment(tm) to remember forever;-)
Is there a "low-light" mode you can turn off that's independent of IR-sensitivity? On my camera, there's a setting with that name that basically works by averaging multiple frames together to increase the grey range and reduce noise. HOWEVER, it renders the camera incapable of taking useful event-triggered snapshots, even in relatively bright room light. I'm pretty sure this is a setting handled by the camera module itself. Try the camera with that "low-light" mode turned off, IR mode turned "on", and the highest framerate your camera supports at the resolution. You might be pleasantly surprised to see it producing decent results in light you previously thought to be impossibly dim.
Try adding halogen illumination to the area. It doesn't even need to be very bright in terms of wattage -- halogen lights radiate almost half their total energy as infrared (CFL and energy-efficient incandescent bulbs emit almost none as infrared), and a few 20-35 watt halogen spotlights can work amazing miracles for your image quality.
If your camera allows you to manually set the exposure and supports bursting on events, try putting a xenon strobe somewhere nearby and triggering it with the camera. 3/4 of the frames will be out of sync with the strobe unless you have some way of properly synchronizing them, but if you can set a strobe period equal to ~1.5-2 times the field rate, you should get at least a few bright frames captured. The strobe doesn't even necessarily have to be white... I have a red strobe from Elk that my Compro IP70 (in IR mode) sees as bright white. In my case this particular experiment didn't yield much, but if you already have the strobe, give it a try some evening.
Well, that's a bit of an over-reaction. Frankly, given the socio-economic status of my neighbors, my biggest threat would be having his lawyer/helicopter-mom sue me for posting the name and pics of her precious spawn breaking into my house on Youtube and potentially hurting his chances of getting into Yale...
I'm a step ahead of you. I already have switches on the doors and windows. They didn't work in this case because the burglar smashed a 4x8 sliding glass door (tempered glass) instead. The sensor on the broken door didn't trigger, because the magnet was glued to the door, and the switch was glued to the frame -- neither of which moved. I have glassbreak, shock, and motion sensors in the room... but all three were disabled because my cats, loud motorcycles, and cars playing loud bass music while driving by kept triggering them (motion detectors are notoriously difficult to use in homes with cats, because "pet-safe" detectors are really "dog-safe" (dogs don't climb and jump the way cats do). Ergo, I reworked a few things. The disabled sensors still don't trigger an alarm, but they DO turn on all the X10-controllable lights in the house and call me on the phone to alert me when they're set off. At that point, I can check the cameras, and manually trigger the alarm from my phone if I want to.
I also bought a few USP 60lb+ pressure mats to put on selected stair treads. I figure that one way or another, a burglar IS going to go upstairs... and to be honest, *I* barely know which steps have sensors, and which don't, so I doubt they'll be able to guess, either. Just to be extra clever, I bought a bunch of 99c floor mats from Ikea, cut them down to be the same size as the pressure mats, and put one or the other under EVERY step, and ran wire from all of them into a thick bundle to the alarm panel (I had plenty of wire), so even if the burglar spots a wire and looks, every step looks like its wired. The fake wires didn't go to waste, either... they're shorted out at the hidden end, and wired in series as a zone in their own right, so if a burglar tries to cut one, it'll set the alarm off, too.
My original intent WAS to use the stair camera to trigger the alarm, but as you noted, cameras are too prone to false-triggering to depend on for alarm purposes.
As far as the outside goes, there's not a whole lot I can do. I already have the whole front and rear yards lit up like stadiums with landscape lights. In fact, the guy broke in in the middle of the afternoon -- when the neighbors and I were all away at work. My long-term plan is to implement a door peephole camera on a digital recorder, because there's no way to approach the house without being in full view of the front door (well, without attracting a LOT more attention by trying to climb over the front fence for no apparent reason, and managing to not scream when he painfully discovers the thin finishing nails I hammered into the tops of the boards so ~1/2" sticks up, cut off the flattened heads, and painted black to camouflage. Officially, there for hanging Christmas lights. At least, that's the story I came up with for the HOA if anyone notices them and asks.
I also want to install a motion detector, and set it up with a circuit to play a faux-windchime rendition of "(I always feel like) Somebody's Watching Me" when triggered. The basic intent is to make it superficially pretty and pleasant... but give an aspiring burglar the creeps as he sees little hints being dropped and have some chills run down his spine when he realizes I'm teasing and taunting him every step of the way, playing with him the way a cat toys with a mouse. If I can find a cheap way to store a few minutes of digital video, turn on the TV, select that player, and start looping it (probably using X10 or Z-Wave), I think it would be hilariously funny to let the aspiring burglar outside see the TV turn on and start looping through a few seconds of 'COPS', proceeding to 'Oz', then the climax of the "Lorena Bobbitt" scene from "I Spit on your Grave". All while the fake windchimes play the themes to the relevant shows on the TV, quietly rising in volume as video progresses.
OK, what I'd really like to do is forget all of that, and just install a set of Secur security blinds from http://www.securityblinds.co.uk/ (they're interior steel bar
Another option that's not quite as widely known, but is slightly different (better in some ways, worse in others, depending on what you're looking for) is the AVRcam ( http://www.jrobot.net/Projects/AVRcam.html ).
Both are basically NTSC/PAL-type monochrome video cameras with a dedicated processor that does things like object-recognition for you and alerts you when it thinks you'll be interested. Neither is likely to be appropriate for astrophotography, but either one will probably do the job nicely if you want to let your robot find a ping pong ball or navigate a maze.
I have a QuickCam Pro 9000 (the one with autofocus Carl Zeiss glass lens, high-res, etc). It's by far the best webcam I've owned, but you're totally right about their intrusive drivers. They simply refuse to be well-behaving citizens of the windows imaging device universe, politely offering imaging services to your thirdparty apps of choice. No, they want to be the sole object of your affection, and have you reaffirm your commitment to them several times per day.
Last year, I was unable to properly shut down or reboot my computer for ~3 months, because every single time I tried, I'd get a bluescreen warning me that Windows detected a USB hardware error and shut down my computer "to protect it from damage" (er, thanks, Microsoft). It turns out, the stupid QuickCam driver was refusing to release the USB hub (or something to that effect). I discovered that one by accident when I had the camera unplugged for some reason, then shut down the computer as a matter of reflex & was shocked to see it NOT bluescreen. I'm not sure whether I should be more pissed at Logitech for having such a rude driver, or at Microsoft for taking a minor problem and turning it into a major one (really? A malfunctioning USB device is going to cause physical damage to my computer? Fine. SHUT OFF THE DAMN 5.0v POWER TO IT, alert me with a balloon window, then get out of the way and LEAVE ME ALONE. Few things piss me off more than Windows' habit of crashing as a precautionary measure...)
A year earlier, I went through a frustrating week trying to figure out why Thunderbird couldn't update itself (the camera latched onto one of Thunderbird's DLLs, and refused to let go so the file could be deleted).
Last year, I resolved to try and buy only hardware with good Linux support from now on. Why, even though I usually run Windows? For the most part, it seems like hardware that behaves nicely and runs well under Linux tends to be equally well-behaved under Windows. If it has open-source Linux drivers, so much the better... someday, when the hardware mfr. has lost interest in supporting the hardware, someone might be able to use it to make an open-source driver for Windows, too.
^^^ Argh. Memo to self: never use the back-arrow when actively posting to Slashdot. It'll repost the same comment you made earlier under whatever comment you happen to be viewing at the time:(
Actually, I got them mainly so I can reassure myself that my house hasn't been broken into again, and my cats are safe. Ergo, the reason why Android-viewability and MJPEG/RTSP support was so important. The only camera that's really likely to make any difference to identifying a future burglar is the Compro IP70, precisely because it's high-res and non-PTZ. PTZ cameras are great for spying on pets, but aren't great witnesses to burglaries because it's easy to leave them pointing at wherever your pets were last instead of carefully reorienting them into useful burglar-identifying positions after use. Not to mention they're low-res;-)
Also, I did go a few steps further. I had 15-mil security film installed on my sliding glass doors and windows, and I'll be getting accordion shutters for the downstairs windows as soon as the homeowners' association is satisfied that they're an acceptable shade of dark bronze. I considered impact glass, but decided to go with film+shutters because a single impact-glass sliding door costs about $2,500, and impact glass will keep a determined burglar out about 10-15 seconds longer than fully-adhered window film will. At least with shutters, whomever shows up at the house first can close and lock them right away instead of leaving a huge hole in the wall where the sliding glass door used to be. Plus, impact glass is kind of like painted bumpers -- it provides protection, but can end up being a source of expensive-to-repair damage itself if we get hit by, say, a medium-grade hurricane like Wilma was. One single 4x8 pane of laminated glass costs around $600, and aluminum shutters can take a certain amount of damage before they actually HAVE to be repaired. It would really suck to get hit by a minor category 1 hurricane (the Dade County equivalent of a snow day in upstate New York) and end up with several thousand dollars worth of damage due almost entirely to coconuts from a neighbor's tree...
I'm not losing sleep over danger. Even the police said my house was almost certainly broken into by a high school student... probably from an upper middle-class family living in my own neighborhood. The evidence? He passed up some seriously expensive computer hardware and electronic gear I had lying around, and ran off with a Blu-Ray porn disc & a bucket of quarters I had on the dresser. It doesn't take a genius to figure out that the Pr0n was probably worth more to him than everything else, because it's the one thing a teenager can't openly and legally buy (if he's a teenager, at least). I have no doubt that if I had a 1.75 liter bottle of rum on my dresser, I'd probably still have the bucket of quarters on my dresser.
> So why hasn't someone taken a sensor with good image quality, downsized to around 1024x768, and put it in a PTZ webcam package with 802.11n wireless for around $500?
They have. Compro (http://www.comprousa.com/en/product/ip540/ip540.html) makes a few, though they don't appear to have reached the US yet. I saw them for around AU$340 at Directron's Australian site.
However, there's a reason why resolution for IP webcams has been relatively slow to increase: light sensitivity and cost. If you stick with CMOS for cost-savings, as a general rule a 1/4" sensor that does 640x480 will output better-quality video in low light than a 1/4" sensor that's 1280x720/960/1024. Also, as the sensor size shrinks, the impact of lens quality and mechanical build increases. That's why 99% of cheap webcams and ip cameras use 1/4" and 1/3" CMOS. It's a sweet spot that's small enough to keep the chip cost down, but large enough to let them get away with sloppy build quality and less than ideal lens designs.
I own one of Compro's cameras (the IP70). It's nice, and it was dirt cheap all things considered ($120 for 1280x1024 resolution), but its "room light" sensitivity is piss poor unless I fall back on its infrared capabilities (which do nasty things to the colors, but work miracles on its ability to effectively produce video under low-light conditions). There's a good reason why all the low-cost cameras have suddenly discovered nightvision-religion: CMOS sensors are actually better at sensing IR than they are at sensing visible light. In fact, until recently, the biggest problem faced by designers of CMOS cameras was how to effectively block infrared light and keep it away from the sensor. It wasn't until someone, somewhere, got the bright idea of letting some of that IR through, and interpreting it as a luminance channel, in a way that was relatively compatible with color video, that it suddenly became useful.
IMHO, an ideal enhancement to the next generation of CMOS cameras would be the ability to sense visible light and near-IR, but keep the IR channel's data separate in the output file. That way, you could rely on the visible light when possible, but enhance it with data from the infrared channel after the fact when necessary, instead of having to make that decision beforehand and live with its consequences forever.
Actually, that reminds me of something else I learned over the weekend: CMOS cameras *LOVE* halogen lights. I had my stairs lit up like a stadium with compact fluorescent lights, and it barely made a difference to the image quality I got from my camera. Then, I read a suggestion from someone online to try replacing one of the 23-watt CFL bulbs with a 40-watt halogen bulb. Good god, it was literally a night and day difference. Reds are badly desaturated (things that reflect red light also tend to reflect near IR, and halogen bulbs emit half their energy as IR), but the detail is razor-sharp. Basically, halogen bulbs give IR-loving CMOS sensors more of the light they crave. Energy-efficient CFL bulbs emit almost no IR, so they starve its sensors. Even though the 40-watt halogen bulb is only about half as (visibly) bright as the 23-watt CFL, it's pumping out more IR than dozens and dozens of discrete camera-mounted IR LEDs.
Make sure you disable the audio. In quite a few jurisdictions (including Florida, and I believe Ohio, Massachusetts, New York, and quite a few others), YOU can conceivably be arrested under old wiretapping laws.
Personally, I'd omit the signs. Why? Information leakage. The burglars will still break in, they'll just be sure they have ski masks or pantyhose over their heads before they're within sight of the cameras. Better to catch 'em off guard.;-)
Of course, there's my deliciously evil (and unfortunately illegal) fantasy... multiple cameras aimed at the stairway, semi-concealed, with xenon flashes. The burglar steps on the pressure switch under the carpet of tread #5 or #6, sets off the xenon flashes, suddenly sees the cameras next to them, covers his face in panic, blindly runs (or backs) down the steps... and trips over the piano wire attached to two swing arms that normally lies flat against the far end of step #2 or #3, but just rotated 90 degrees up into position and locked when he set off the alarm...
Info about hacking Foscam cameras. The last time I checked, they'd figured out how the bootloader worked, and were working on getting its Linux distro to run under an emulator to make experimentation easier:
Foscam's CGI-based web API (for integrating its video into your own app). It's far from perfect, but it's several orders of magnitude better than anything I've seen from companies like D-Link, Linksys, etc. In any case, it beats trying to reverse-engineer what some buggy ActiveX plugin is doing by sniffing the traffic with Wireshark. For comparison, my old PTZ camera is a D-Link DCS5300-W. Its bundled software was quite dire compared to the software that came with my new Compro IP70 and my Foscam FI8988W cameras, and the only thing the D-Link camera has a straightforward means of doing is grabbing a single 320x240 pic (no way to grab 640x480 from it), and I spent HOURS hunting for the elusive URL online.
If you have an Android phone, there's one app I know of for viewing many IP cameras: IP Cam Viewer by Robert Chou. Search for it in Android Market (I think it can also be downloaded directly if you're in a country without access to Android Market).
There are also lots of low-cost thirdparty IP camera apps -- viewers, spoolers, etc. Don't be afraid to ditch the app(s) that came with your camera(s), especially if it has a known public API and/or implements known standards.
If you're planning more than a half-dozen cameras (especially if you can easily run new wires for them), you might be better off with a proper security DVR -- you'll be able to use smaller cameras, and pay about half as much for them.
The cheapest web-accessible host I've found is the Aviosys 9100A (roughly 85 bucks online, including from Amazon). It can host 4 cameras and one mic. HOWEVER, I believe it multiplexes them, so you can only watch one at a time. However, I think it can iterate through your cameras, capture a frame from each, and show them all at once in a single grid if you'd like. In any case, if you're looking for a quick & dirty way to get 4 conventional cameras online, this is probably your best bet. If it had an onboard (micro/mini)SD slot, I probably would have bought one of these, too.
Aviosys also has some interesting "Kameras" that do high-res (like the Compro IP60/IP70), but were more expensive and seemed to do a bit less than Compro's. Still, they might be worth investigating, too.
For small, cheap, and cute, the prize goes to the "IP510" camera (sold online under lots of different names and model numbers... IP-510 from buy.com, IP-400 from dealextreme.com). Alex Kuklin has some good info about it on his blog (kuklin.ru), including the
I forgot to mention -- don't put ANY of these cameras anyplace where you wouldn't mind being viewed by members of the internet-using public unless they're sitting behind a bastion-host firewall/proxy and/or you have a way to physically power them down when you're at home, because their security is largely ceremonial, and trivially easy to bypass if you know what you're doing.
My own setup: my new cameras sit on their own network. The cameras are all powered through X-10 appliance modules, and connect to their own wireless router/access point (itself plugged into an X-10 appliance module). When my security system (Elk M1G) goes into 'away' mode, it cycles through them all twice and sends their 'on' codes once per cycle. When my security system gets disarmed (and hasn't been set off), it sends the 'all off' code to power them down. For now, the second access point is connected via UTP to my main router, with the relevant ports forwarded and double NAT, but at some point over the next few weeks, I'm going to repurpose an old laptop with Debian and use it as both a persistent storage drive and bastion host firewall/proxy (so there will literally be no way to connect directly the cameras from the internet, and so I can use SSL). I'm not thrilled about the wifi security, but it's mitigated by the fact that they're only physically powered up when I'm not at home.
Having just had my house broken into ~2 weeks ago and spending most of the past two weeks researching good-but-affordable security cams as a result, here's a bit of what I learned (and bought):
The best-yet-cheap hi-res IP camera I've found is the Compro IP70 (available in the US from Directron, widely available elsewhere in the English-speaking world and a big chunk of Europe).
* The good: 1280x1024 resolution and 1/3" CMOS sensor, awesome low-light performance, onboard microSD card for persistent storage of snapshots triggered by motion or inputs. Dual codecs, so you can have it simultaneously grabbing 1280x1024@15fps for snapshots or web viewing, as well as 320x240 or 640x480 (among others) for viewing on your Android phone/iPhone/other phone. It explicitly supports MJPEG, h.264, and MPEG-4, plus 3GPP (apparently, this means it might work on Java ME MIDP phones and Symbian).
* The bad: mediocre room-light performance with color that's utterly dire if you have the IR activated, and once an event triggers a snapshot (that can be saved to SD, FTP'ed, and/or emailed), it can't take the next pic for ~4 seconds.
* The mitigating: telnet ${ip} to get a real, honest to god root shell complete with busybox. Very little public documentation, but looks almost shockingly straightforward to figure out what's going on, and maybe even replace the onboard apps with my own. According to 'top', the camera has at least 50-100mb free ram running normally, so implementing a burstmode that can grab a bunch of shots to ram once triggered, then upload/save them to persistent storage later shouldn't be too hard. One big tip if you get this cam: "low light" mode != "IR mode" -- low light mode cuts the framerate to interpolate more gray and average out the noise. The problem is, it utterly ruins the camera's ability to take meaningful event-triggered snapshots. So, if I could request just one improvement to it, it would be, "implement a burst mode whereby the camera will (optionally) take 1-4 pics immediately, turn off low-light mode, then take 1-N pics... saving them to a ramdrive, with another daemon pushing them to persistent storage in the background. If nothing else, this camera has serious potential as a fun embedded linux box with onboard USB (the optional wifi is USB), two isolated inputs, and one isolated output, plus 10/100 ethernet. I bought one so far.
* Other details: it's not PTZ, and it's not weatherproof. It's also pretty huge (~5" x 5" viewed head on), so think twice before planning to stick it somewhere aesthetically obvious in your house.
The IP70 has a baby brother with the same resolution, but without the IR called the IP60 for about $40 less (also available at Directron). I haven't used it, I'm just mentioning it to be complete. Officially it has no IR capabilities, but to some extent just about all CMOS cameras seem to be at least slightly IR-sensitive.
For cheap PTZ Linux-based fun, you can't beat the Foscam FI8908W. Their official US distributor is foscam.us, and they're readily available for less than a hundred bucks on eBay (a non-wireless variant exists; it's rare, but about $10 less). Just be careful and make sure the seller LITERALLY specifies "Foscam FI8908W", as opposed to "Foscam-Type" or just shows a pic. There are a LOT of fakes on eBay. I haven't seen them side by side, but from what I understand, the fakes are basically the same camera body and electronics, bought from the same ODM, but have different firmware, and apparently tend to ship with visibly lower-quality lenses. Apparently, some can be reflashed with Foscam firmware, some will get bricked if you do.
Foscam cameras only do 640x480@30fps with MJPEG, but they make up for it by being one of the only cheap IP cameras that doesn't need Internet Explorer to work. They're also very hackable, with several individuals who've made lots of public progress documenting their hardware, bootloaders, and onboard i/o ports (they support 1 in and 1 out, plus JTAG and a few other ports as well. I'm pretty sure I reme
Forget what's officially on paper regarding the lower 64 bits of an IPv6 address. As a practical matter, the bits are yours to use, or yours to intentionally discard and ignore. Nobody can force you to use an unholy address with 128 pseudo-meaningful bits. In reality, a typical home cable internet or DSL customer should get a/48 address. That means the upper 48 bits are assigned by your ISP, and the lower 80 bits are yours to use or ignore as you please.
48 bits translates into three chunks of the address. Initially, they'll look like this:
2001:xxxx:xxxx
where xxxx:xxxx is unique for your global service provider (read: AT&T, Global Crossing, Telia, etc), and the top few bits are unique to your country. Eventually, the top 16 bits (first chunk) will be unique to a country. So unless you're in Europe, 99% of the addresses you deal with daily will start with the same chunk. A little more annoying than a.b.c.d, but not quite insurmountable.
Now, the lower 80 bits. Officially, there's some nonsense somewhere about using the MAC address to derive it. It's voluntary, and lots of people have said they won't be following it because it turns your ethernet card into a globally-unique cookie that can be shared via out of band means. It's led to no small number of fights between the autoconfiguration faction and the DHCP6 faction. In the long run, the DHCP6 faction will win. So, getting back to those 80 bits...
Right now, you're dealing with 64 bits whether you know it or not: the 32 bits in your public IP address, and the 32 bits in your NAT'ed private addressses. Your home PC's IP address isn't 64.82.19.34, it's 64.82.19.34 + 192.168.100.69, with a port-forwarding router in the middle to glue them together. There's nothing to stop you from treating your IPv6 address the same way, even if it slightly stomps on the original official intent of how the bits should be used. If you want to, your home PC's 80-bit IPv6 address can be::1. More likely than not, your router (still needed for 6-4 translation) will be::1 though, so let's make your home pc::2. So, here's your home PC's new IPv6 address: 2001:aaaa:bbbb:cccc::2 (aaaa, bbbb, and cccc are 16-bit hex values). Or maybe uuuu.aaaa.bbbb.cccc (where "uuuu" is the same for most addresses you encounter at the raw address level daily).
Let's suppose you want to be cute, and have a home network whose 4 and 6 aspects cleanly map to each other, and you don't mind doing some ugly binary math behind the scenes for the sake of human-readability. Your internal network's ipv4 addresses are in the 192.168.100.x block. Your 4-6 router is 192.168.100.1, and your desktop PC is 192.168.100.2. So, you configure your IPv6 addresses to be:
uuuu:aaaa:bbbb:cccc::192:168:100:1 and uuuu:aaaa:bbbb:cccc::192:168:100:2 for the router and PC. Yes, in this case, you're abusing bits and pretending that 0x0192 means something special (the way 192 meant 0xC0, which had a special meaning to the router), but it's mainly to illustrate that IPv6 addresses don't HAVE to be horrific trainwrecks of unmemorable bits. If you're determined, you can make them look quite a bit like ipv4 addresses within the realm of your own network if you really want to. At the end of the day, is
24:3cf2:8d99::2 (your home PC), or even 24:3cf2:8d99::192:168:100:2
really any worse than
64.87.142.98 -> 192.168.100.2 ??
The truth is, the IPv6 crowd has been its own worst enemy by trying to force needless address complexity. IPv6 has lots of bits, and if you ignore the majority that you're entitled to ignore, it doesn't have to be a lot worse than ipv4. It can even be better.
The main problem is that Android 1.5 ended up achieving widespread ubiquity (at least, in America), but 2.0 is really the first version that does more or less everything the people who bought phones with 1.5 expected THEIR phones to be capable of, and 2.1 is the first version that really starts to feel polished. Without 2.0 or better, you can forget about doing anything with Bluetooth besides use a headset, and forget about thirdparty bluetooth apps that do anything besides toggle it on and off, because Android's bluetooth API basically didn't exist prior to 2.0. There are other rough spots on 1.5 compared to 2.0, but bluetooth is the raw, open, festering wound that most people scream about the most loudly. Even 2.1 has some gaping bluetooth deficiencies, like the lack of HID and SPP.
Anyway, that's the essence of the "fragmentation" issue. 1.5 sucks, and thanks to SenseUI and Motoblur, HTC and Motorola have dragged their feet upgrading their first vict^h^h^h^husers from 1.5 to 2.1.
The fact that American carriers suck donkey ass and make it nearly impossible to use any phone besides the tiny, tiny handful they choose to offer their contract-locked captives at any moment in time (yes, that includes our sad excuses for "GSM" carriers for anyone who cares about data service, since AT&T and T-Mobile both do their best to assure mutual 3G-incompatibility with every phone they sell) makes it worse. To this day, there's no official way to get a Sprint phone running 2.1. Sure, you can root and reflash your Hero (raises hand), or wait until June to buy an Evo or CDMA Nexus One, but the fact is, someone stuck with Sprint can't just go out and buy a different Android phone to get 2.1 officially *right this moment*. Before Google released the 850/1900-compatible Nexus One last month, AT&T users were stuck in the same Android 1.5 ghetto.
Incidentally, to anyone reading this with a Sprint Hero, for the love of God and everything holy... drop everything, root your phone, and reflash to any popular 2.1 distro *RIGHT NOW* (I'm partial to DamageControl, but you can't really go wrong with any of 'em). You'll never look back, and you'll start to actually LIKE your phone again:-) Just don't expect anything bluetooth-related that didn't work with 1.5 to work yet... it looks like HTC fucked up the kernel's bluetooth support yet again in the leaked Droid Eris kernel all the popular Hero 2.1 distros use, and until we've got the source and can finally build a proper 2.6.29 kernel with everything related to BlueZ enabled and compiled-in, thirdparty HID and SPP drivers aren't likely to work on a Hero.:(
It's not entirely hopeless... download WinSplit Revolution. It basically allows you to use ctrl-alt + {keypad} to partially-maximize windows. For example, holding ctrl-alt and pressing 4 on the keypad will make the current window full height, half the screen's width, and aligned with the left edge of the display. Pressing it again reduces it to roughly 1/3 the screen's width (still flush with the top, bottom, and left edge). Pressing it a third time enlarges it to 2/3 the screen's width. Stir, rinse, and repeat again from half-width. The other keys on the keypad work similarly... 7/9/1/3 pack and size the window into the corners. 5 makes it full-height and toggles between full-width, 1/3-width, and 2/3-width. Best of all, if you have two or more displays, you can use ctrl-alt-[leftarrow|rightarrow] to throw the current window to the next monitor in the key's direction. At work, I have three 22" 1920x1080 displays, and WinSplit Revolution is basically an app I absolutely couldn't live without.
On the other hand, there's a new problem that arises when you have three displays... limited mouse area. I'm still looking for an app that will let me use keys on the keyboard with my left hand to make the mouse less accelerated (say, decelerate the mouse whenever ctrl-shift-alt is held down). As it stands, I get frustrated a lot, because the mouse acceleration I have to endure to be able to sweep from the leftmost edge of the left screen to the rightmost edge of the right screen makes it damn near impossible to deal with single-pixel grab bars (Java, in particular, has a major fetish with impossibly-precise control requirements that practically require blowing on the mouse to nudge it that last pixel or two into the action zone.
I really wish Microsoft could add some logic to the way physical screen boundaries are handled to make scrollbar regions "sticky" and "inertial", so that if windows sees you sweeping the mouse towards the next screen to the right or left at full speed, it'll blow past the boundary without a hitch, but if it sees you slowing down (or overshooting and backing up), it'll temporarily make the right edge of the display act like a "mouse-pointer barrier". It's sad, but it was actually easier to deal with scrollbars 5 years ago than it is now. Back then, getting to the scrollbar was easy -- slam the mouse right, nudge it left, and click. You didn't even have to really look at the screen to get it right, because you could get away with "Commodore 1541-style alignment and navigation" (slam into something hard and immovable, then measure from there). Now, you literally have to aim. It's gone from being a subconscious reflex to a precision movement. And scrollwheels have their own problems, like web sites that try to make every ****ing pixel on the page react to clicks, so there's literally nowhere safe to click to let Windows know where the scrollwheel focus should be.
> The best ting they could do to make intersections safer is rip out the lights and install round-abouts
I'd love to see a roundabout that could possibly handle the traffic from a "Florida-sized" intersection like Pines Boulevard at Flamingo Road in Pembroke Pines, Florida ( http://tinyurl.com/y7cc3ft ) without completely collapsing into hopeless gridlock -- 8 lanes east/west, 6 lanes north/south, two left-turn lanes in every direction.
Putting it in perspective, more cars heading east and west pass through this intersection every day than used to pass through Broward County on Interstate 95 back when it was first built ~40 years ago.
Ironically, this exact road DOES have a roundabout about 7 miles east of here (in Hollywood -- http://tinyurl.com/y3znyej ), but appearances are deceiving. If you actually watch the traffic flow, you quickly realize it's almost impossible to do anything besides follow the dominant traffic flow east and west unless it's 2am or you're feeling suicidal. It's more like a freeway median with a glorified U-turn lane at both ends.
Sun didn't invent Javascript. Netscape did, under the name "Livescript". The "Javascript" name was pure marketing, and an attempt to benefit from Java's hype and buzz. The most significant thing Javascript has in common with Java is the first four characters of its name. Semantically, Javascript has more in common with Perl than it ever had in common with Java (no, I'm not saying Javascript == Perl, just pointing out that it has LESS in common with Java than it has in common with Perl)
Bluetooth has WAY too much latency. There are hearing aids that can pair with a cell phone via bluetooth, but using bluetooth to connect an audio processor to an earpiece would completely destroy the psychoacoustical cues that enable things like direction-perception. As others have pointed out, hearing aids have a challenge devices made for playing music or radio communications don't have -- the need for absolutely realtime operation, with latency as close to zero as possible. Most of the "cheap and works well" technology we have today doesn't meet the realtime requirement, or at least can't meet it with a $5 chipset.
On the other hand, hearing aids ARE ridiculously expensive in the US, mostly due to their regulation as medical devices and the convenient markup it enables manufacturers to enjoy. At the end of the day, a non-flawless hearing aid isn't like a malfunctioning heart valve or defective contact lens... failure isn't consequence-free, but it's nowhere near the same magnitude of severity, and nowhere close to deserving the same amount of price-boosting regulation.
Nevertheless, there IS a solution for Americans -- go to Mexico to buy one. Same electronics, several orders of magnitude cheaper. If nothing else, you can fund a week's vacation on the beach and all the margaritas you care to drink with the savings.
As of last night, I'm an even happier owner of a Sprint Hero Android phone, because we finally have independent 2.1 builds that really, truly work -- real 2.6.29 kernel, GPS, bluetooth, camera, and all. OK, for some inane reason, the LED under the trackball still doesn't quite work properly... but then again, it never worked *at all* with HTC & Sprint's official 1.5 firmware, so flakiness is still a net improvement over the official status quo.
I'm back to being happy that it doesn't have a physical keyboard. Not because I like onscreen keyboards. Actually, I despise touchscreen keyboards in every meaningful way possible. HOWEVER, now that I have 2.1 and access to android.gestures.*, I can rejoin the true civilized universe, and use Graffiti-1 again.
Finally. Goddamn, I missed Graffiti ever since the day I bought my Hero in October, then discovered that MobileWrite sucked worse than a whore with braces (it lagged so badly, it actually dropped letters because I'd be halfway through letter #3 by the time it finally settled on letter #1), and StrokeKeyboard didn't work on the Hero (or Android 1.5 in general). I felt like I was crippled every time I had to interact with the Hero's virtual keyboard in any meaningful way. Now I feel whole again. I can forget all about that ugly 6-month chapter of my life. Praise Linus, thanks be to Google, and endless gratitude to xda-developers.com for making it all possible.
> Trades faster than a day should be simply outlawed, and it should not be possible to own a stock for a
> period of less than one day either.
As a practical matter, that's almost how it works anyway.
If you're trading with cash (not on margin), You can legally buy shares, then sell them on the same day... but legally (in the US), you can't use the proceeds from that sale until 3 days later (or something to that effect.... it's actually kind of a gray area that the SEC intentionally keeps kind of gray by design). Why? Technically, when you buy shares, you don't actually own them until 3 days later. So when you sell them before then, you're technically shares you don't physically own yet. The SEC generally humors it up to that point, because the transaction at that point is assured and guaranteed to happen anyway. In fact, most online brokerage firms won't physically stop you from using the funds of the sold shares to buy more shares on the same day (buy-sell-buy). At least, not until the first time they realize you did it, 6-36 hours later. Then they'll send you a *really* nasty email, and threaten to revoke your online trading privileges for 90 days if they catch you doing it again.
The key thing is that enforcement is always after the fact. It can't be realtime, because no sane brokerage firm would ever want to subject itself to the risk of refusing to complete a legitimate transaction. Even if the firm is protected by law, it would come back to hurt them, In the grand scheme of things, the existence of occasional market sins is a lesser evil than the consequences of going overboard to prevent it from happening. At the end of the day, being threatened with having your $2.50 trading privileges taken away and forcibly replaced with $30 broker-assisted trades for 90 days is an exceptionally effective way to make casual investors behave themselves.
As I understand it, the relationship between the SEC, the rule, and the online brokerage firms is itself kind of gray and fuzzy. The SEC made the rule, but when you break it, it's actually your brokerage firm that gets subjected to the consequences. Basically, if they didn't police their customers, they could end up owing millions of dollars that would have to be paid out at 4pm that they themselves wouldn't be receiving until a day or two later. To get the funds, they'd have to borrow them overnight, and borrowing those funds will cost them a lot more money than they'd actually make in profit by allowing the transactions that caused it to happen in the first place. So they tend to be very, very aggressive about catching anyone who does it, and punishing anyone who does it after being warned to never do it again.
It's a pretty nasty rule, because when you first start investing (with a cash account), nobody ever actually comes out and tells you what it is and explains its rationale. You'll see fine print somewhere telling you that you that pattern day trading can't be done with a cash account, but the way it's worded suggests it's either a physical impossibility or something different than what it really is. Imagine two bureaucrats having a shouting match with one another, arguing about two entirely different matters with seemingly nothing in common. That's a fair description of the typical wording you'll read on most online brokerage sites and the wording in the official SEC rule. ;-)
Now, if you have a margin account, you can freely buy and sell all day... as long as you have a HUGE amount of equity up front to invest (I think the minimum allowed is $50k or $100k). The SEC's rationale is that day traders are a net benefit to the market by providing liquidity, but requiring a huge amount of cash up front to be allowed to do it skims off 99% of the people who really can't afford to lose that much money (by virtue of not having that much money to begin with).
Actually, I think it's even MORE complicated.
If you're a brokerage firm, the trading costs involved themselves can vary, depending upon whether your proposed trade increases or decreases the overall liquidity of the market. To individual investors, the transaction cost will always be vastly higher, but if you're someone like Goldman Sachs, the cost to sell a million shares when there aren't a million buyers lined up is higher than the cost to sell a million shares when there are two million buyers lined up, and vice-versa. That's one reason why you have "market-makers", who themselves trade blocks of stock all day that they themselves have no interest in owning, or even holding for more than 5 seconds, but the fact that they bought 3,000 shares 2 seconds ago means they can sell 1,000 shares to each of two buyers who want that many, plus 500 to a third buyer, and 100 shares to each of 5 buyers (grossly oversimplified a bit, but that's the high-level explanation).
Market makers are the reason why you can put in a buy or sell order for just about any amount of shares someone less wealthy than Warren Buffett is likely to ever own, let alone buy or sell in a single transaction, and if your price is within a cent or so of the last transaction, your own transaction will go through almost instantly. It's also part of the reason why if the last trading price is $x, an order for $x won't likely go through until the last price is either a cent more than you offered to sell at, or a cent less than you offered to buy at (unless you're buying a staggeringly HUGE number of shares).
> And Here I was thinking 1080 lines of vertical resolution should be enough for anybody.
Everyone's airing of grievances over the seemingly pervasive march towards fewer vertical pixels than even mid-priced LCD monitors had 3 years ago (ah, the happy days when you could actually buy a laptop with 1920x1440 display) was a different Slashdot topic a few months ago. ;-)
> Where were the wince phones on this list again?
They would have been near the top, except just about everyone who owned a WinMo5/6 phone 2 years ago now owns an Android phone. Legacy PalmOS faded away over the span of 5 years in a slow, dignified sunset. Windows Mobile, by comparison, symbolically committed mass suicide and practically vanished from the earth overnight. The last straw was Microsoft's treatment of Touch HD owners -- thanking them for their loyalty and support by telling them they wouldn't be allowed to have the next version of Windows because their phones had two buttons too many. They could hardly have driven more of their last supporters away by paying HTC to port Android to the Touch HD and emailing the download URL to buyers. As it stands, by the end of this year, the Touch HD will have the honor of being one of the finest Android phones you can buy today ;-)
> To access an android phone you have to link it to a Google account... you download apps from the google app store...
> This is this different than linking to an iTunes account and downloading from the apple apps store how?
Android owners *can* download apps from Android Market... or we can download them from anywhere else, and install whatever we feel like installing without having to play "Mother, may I?" and get anybody's official blessing, first.
iPhone owners officially have no choice. They *MUST* download apps from Apple's AppStore, and *only* from Apple's AppStore.
Android owners bitch because we haven't quite achieved the ideal of end users being able to build our phone's OS from scratch independently of the handset makers, carriers, and Google. We throw public fits, blame HTC for violating the GPL, and eventually get a cookie thrown to us that brings us a step closer to our goal once we combine that cookie with the next rom image ripped from a related newer phone.
Put another way, if Steve Jobs says the iPhone 4 (or an older iPhone) will not do something, it WILL NOT do it. Ever.
If HTC or Sprint says the Hero won't do something, it's only a real limit until someone rips the rom from the next HTC phone, metaphorically bakes it into a new ROM, and everyone gets to have it anyway.
> Isn't this because otherwise you can see through people's clothes with them?
Not really. The Sony trick worked at the beach because the women were wearing skin-tight swimsuits that freely transmitted body heat (and possibly because the cameras' IR sensitivity extended further into the IR spectrum towards heat). It wouldn't work against normally-clothed individuals who were wearing (among other things) normal cotton underwear in addition to everything else. Absent government mandates or rampant lawsuits, you wouldn't see security camera manufacturers voluntarily compromising their ability to see in the dark just because someone might be able to repurpose them for inappropriate use at the beach.
The only time I ever saw IR "sort of" seeing through clothing was at a nightclub in Miami. They had nightvision cameras pointing at a podium for drunk girls to climb up on and dance, and there was a girl dancing on one with a clingy bra-free top that wasn't particularly opaque to begin with. She was hot, sweaty, and her breasts *were* fully visible, nipples and all. The most amusing part was her reaction when she saw herself dancing with a de-facto sheer top on one of the monitors. She stopped dancing, stared at it while looked confused for a moment... then shrugged and started dancing again. Yet another Miami Moment(tm) to remember forever ;-)
Is there a "low-light" mode you can turn off that's independent of IR-sensitivity? On my camera, there's a setting with that name that basically works by averaging multiple frames together to increase the grey range and reduce noise. HOWEVER, it renders the camera incapable of taking useful event-triggered snapshots, even in relatively bright room light. I'm pretty sure this is a setting handled by the camera module itself. Try the camera with that "low-light" mode turned off, IR mode turned "on", and the highest framerate your camera supports at the resolution. You might be pleasantly surprised to see it producing decent results in light you previously thought to be impossibly dim.
Try adding halogen illumination to the area. It doesn't even need to be very bright in terms of wattage -- halogen lights radiate almost half their total energy as infrared (CFL and energy-efficient incandescent bulbs emit almost none as infrared), and a few 20-35 watt halogen spotlights can work amazing miracles for your image quality.
If your camera allows you to manually set the exposure and supports bursting on events, try putting a xenon strobe somewhere nearby and triggering it with the camera. 3/4 of the frames will be out of sync with the strobe unless you have some way of properly synchronizing them, but if you can set a strobe period equal to ~1.5-2 times the field rate, you should get at least a few bright frames captured. The strobe doesn't even necessarily have to be white... I have a red strobe from Elk that my Compro IP70 (in IR mode) sees as bright white. In my case this particular experiment didn't yield much, but if you already have the strobe, give it a try some evening.
> I think I'd rather just move house.
Well, that's a bit of an over-reaction. Frankly, given the socio-economic status of my neighbors, my biggest threat would be having his lawyer/helicopter-mom sue me for posting the name and pics of her precious spawn breaking into my house on Youtube and potentially hurting his chances of getting into Yale...
I'm a step ahead of you. I already have switches on the doors and windows. They didn't work in this case because the burglar smashed a 4x8 sliding glass door (tempered glass) instead. The sensor on the broken door didn't trigger, because the magnet was glued to the door, and the switch was glued to the frame -- neither of which moved. I have glassbreak, shock, and motion sensors in the room... but all three were disabled because my cats, loud motorcycles, and cars playing loud bass music while driving by kept triggering them (motion detectors are notoriously difficult to use in homes with cats, because "pet-safe" detectors are really "dog-safe" (dogs don't climb and jump the way cats do). Ergo, I reworked a few things. The disabled sensors still don't trigger an alarm, but they DO turn on all the X10-controllable lights in the house and call me on the phone to alert me when they're set off. At that point, I can check the cameras, and manually trigger the alarm from my phone if I want to.
I also bought a few USP 60lb+ pressure mats to put on selected stair treads. I figure that one way or another, a burglar IS going to go upstairs... and to be honest, *I* barely know which steps have sensors, and which don't, so I doubt they'll be able to guess, either. Just to be extra clever, I bought a bunch of 99c floor mats from Ikea, cut them down to be the same size as the pressure mats, and put one or the other under EVERY step, and ran wire from all of them into a thick bundle to the alarm panel (I had plenty of wire), so even if the burglar spots a wire and looks, every step looks like its wired. The fake wires didn't go to waste, either... they're shorted out at the hidden end, and wired in series as a zone in their own right, so if a burglar tries to cut one, it'll set the alarm off, too.
My original intent WAS to use the stair camera to trigger the alarm, but as you noted, cameras are too prone to false-triggering to depend on for alarm purposes.
As far as the outside goes, there's not a whole lot I can do. I already have the whole front and rear yards lit up like stadiums with landscape lights. In fact, the guy broke in in the middle of the afternoon -- when the neighbors and I were all away at work. My long-term plan is to implement a door peephole camera on a digital recorder, because there's no way to approach the house without being in full view of the front door (well, without attracting a LOT more attention by trying to climb over the front fence for no apparent reason, and managing to not scream when he painfully discovers the thin finishing nails I hammered into the tops of the boards so ~1/2" sticks up, cut off the flattened heads, and painted black to camouflage. Officially, there for hanging Christmas lights. At least, that's the story I came up with for the HOA if anyone notices them and asks.
I also want to install a motion detector, and set it up with a circuit to play a faux-windchime rendition of "(I always feel like) Somebody's Watching Me" when triggered. The basic intent is to make it superficially pretty and pleasant... but give an aspiring burglar the creeps as he sees little hints being dropped and have some chills run down his spine when he realizes I'm teasing and taunting him every step of the way, playing with him the way a cat toys with a mouse. If I can find a cheap way to store a few minutes of digital video, turn on the TV, select that player, and start looping it (probably using X10 or Z-Wave), I think it would be hilariously funny to let the aspiring burglar outside see the TV turn on and start looping through a few seconds of 'COPS', proceeding to 'Oz', then the climax of the "Lorena Bobbitt" scene from "I Spit on your Grave". All while the fake windchimes play the themes to the relevant shows on the TV, quietly rising in volume as video progresses.
OK, what I'd really like to do is forget all of that, and just install a set of Secur security blinds from http://www.securityblinds.co.uk/ (they're interior steel bar
For low-end machine vision, there's one obvious product to suggest: CMUcam ( http://www.cs.cmu.edu/~cmucam/ )
Another option that's not quite as widely known, but is slightly different (better in some ways, worse in others, depending on what you're looking for) is the AVRcam ( http://www.jrobot.net/Projects/AVRcam.html ).
Both are basically NTSC/PAL-type monochrome video cameras with a dedicated processor that does things like object-recognition for you and alerts you when it thinks you'll be interested. Neither is likely to be appropriate for astrophotography, but either one will probably do the job nicely if you want to let your robot find a ping pong ball or navigate a maze.
I have a QuickCam Pro 9000 (the one with autofocus Carl Zeiss glass lens, high-res, etc). It's by far the best webcam I've owned, but you're totally right about their intrusive drivers. They simply refuse to be well-behaving citizens of the windows imaging device universe, politely offering imaging services to your thirdparty apps of choice. No, they want to be the sole object of your affection, and have you reaffirm your commitment to them several times per day.
Last year, I was unable to properly shut down or reboot my computer for ~3 months, because every single time I tried, I'd get a bluescreen warning me that Windows detected a USB hardware error and shut down my computer "to protect it from damage" (er, thanks, Microsoft). It turns out, the stupid QuickCam driver was refusing to release the USB hub (or something to that effect). I discovered that one by accident when I had the camera unplugged for some reason, then shut down the computer as a matter of reflex & was shocked to see it NOT bluescreen. I'm not sure whether I should be more pissed at Logitech for having such a rude driver, or at Microsoft for taking a minor problem and turning it into a major one (really? A malfunctioning USB device is going to cause physical damage to my computer? Fine. SHUT OFF THE DAMN 5.0v POWER TO IT, alert me with a balloon window, then get out of the way and LEAVE ME ALONE. Few things piss me off more than Windows' habit of crashing as a precautionary measure...)
A year earlier, I went through a frustrating week trying to figure out why Thunderbird couldn't update itself (the camera latched onto one of Thunderbird's DLLs, and refused to let go so the file could be deleted).
Last year, I resolved to try and buy only hardware with good Linux support from now on. Why, even though I usually run Windows? For the most part, it seems like hardware that behaves nicely and runs well under Linux tends to be equally well-behaved under Windows. If it has open-source Linux drivers, so much the better... someday, when the hardware mfr. has lost interest in supporting the hardware, someone might be able to use it to make an open-source driver for Windows, too.
^^^ Argh. Memo to self: never use the back-arrow when actively posting to Slashdot. It'll repost the same comment you made earlier under whatever comment you happen to be viewing at the time :(
Actually, I got them mainly so I can reassure myself that my house hasn't been broken into again, and my cats are safe. Ergo, the reason why Android-viewability and MJPEG/RTSP support was so important. The only camera that's really likely to make any difference to identifying a future burglar is the Compro IP70, precisely because it's high-res and non-PTZ. PTZ cameras are great for spying on pets, but aren't great witnesses to burglaries because it's easy to leave them pointing at wherever your pets were last instead of carefully reorienting them into useful burglar-identifying positions after use. Not to mention they're low-res ;-)
Also, I did go a few steps further. I had 15-mil security film installed on my sliding glass doors and windows, and I'll be getting accordion shutters for the downstairs windows as soon as the homeowners' association is satisfied that they're an acceptable shade of dark bronze. I considered impact glass, but decided to go with film+shutters because a single impact-glass sliding door costs about $2,500, and impact glass will keep a determined burglar out about 10-15 seconds longer than fully-adhered window film will. At least with shutters, whomever shows up at the house first can close and lock them right away instead of leaving a huge hole in the wall where the sliding glass door used to be. Plus, impact glass is kind of like painted bumpers -- it provides protection, but can end up being a source of expensive-to-repair damage itself if we get hit by, say, a medium-grade hurricane like Wilma was. One single 4x8 pane of laminated glass costs around $600, and aluminum shutters can take a certain amount of damage before they actually HAVE to be repaired. It would really suck to get hit by a minor category 1 hurricane (the Dade County equivalent of a snow day in upstate New York) and end up with several thousand dollars worth of damage due almost entirely to coconuts from a neighbor's tree...
I'm not losing sleep over danger. Even the police said my house was almost certainly broken into by a high school student... probably from an upper middle-class family living in my own neighborhood. The evidence? He passed up some seriously expensive computer hardware and electronic gear I had lying around, and ran off with a Blu-Ray porn disc & a bucket of quarters I had on the dresser. It doesn't take a genius to figure out that the Pr0n was probably worth more to him than everything else, because it's the one thing a teenager can't openly and legally buy (if he's a teenager, at least). I have no doubt that if I had a 1.75 liter bottle of rum on my dresser, I'd probably still have the bucket of quarters on my dresser.
> So why hasn't someone taken a sensor with good image quality, downsized to around 1024x768, and put it in a PTZ webcam package with 802.11n wireless for around $500?
They have. Compro (http://www.comprousa.com/en/product/ip540/ip540.html) makes a few, though they don't appear to have reached the US yet. I saw them for around AU$340 at Directron's Australian site.
However, there's a reason why resolution for IP webcams has been relatively slow to increase: light sensitivity and cost. If you stick with CMOS for cost-savings, as a general rule a 1/4" sensor that does 640x480 will output better-quality video in low light than a 1/4" sensor that's 1280x720/960/1024. Also, as the sensor size shrinks, the impact of lens quality and mechanical build increases. That's why 99% of cheap webcams and ip cameras use 1/4" and 1/3" CMOS. It's a sweet spot that's small enough to keep the chip cost down, but large enough to let them get away with sloppy build quality and less than ideal lens designs.
I own one of Compro's cameras (the IP70). It's nice, and it was dirt cheap all things considered ($120 for 1280x1024 resolution), but its "room light" sensitivity is piss poor unless I fall back on its infrared capabilities (which do nasty things to the colors, but work miracles on its ability to effectively produce video under low-light conditions). There's a good reason why all the low-cost cameras have suddenly discovered nightvision-religion: CMOS sensors are actually better at sensing IR than they are at sensing visible light. In fact, until recently, the biggest problem faced by designers of CMOS cameras was how to effectively block infrared light and keep it away from the sensor. It wasn't until someone, somewhere, got the bright idea of letting some of that IR through, and interpreting it as a luminance channel, in a way that was relatively compatible with color video, that it suddenly became useful.
IMHO, an ideal enhancement to the next generation of CMOS cameras would be the ability to sense visible light and near-IR, but keep the IR channel's data separate in the output file. That way, you could rely on the visible light when possible, but enhance it with data from the infrared channel after the fact when necessary, instead of having to make that decision beforehand and live with its consequences forever.
Actually, that reminds me of something else I learned over the weekend: CMOS cameras *LOVE* halogen lights. I had my stairs lit up like a stadium with compact fluorescent lights, and it barely made a difference to the image quality I got from my camera. Then, I read a suggestion from someone online to try replacing one of the 23-watt CFL bulbs with a 40-watt halogen bulb. Good god, it was literally a night and day difference. Reds are badly desaturated (things that reflect red light also tend to reflect near IR, and halogen bulbs emit half their energy as IR), but the detail is razor-sharp. Basically, halogen bulbs give IR-loving CMOS sensors more of the light they crave. Energy-efficient CFL bulbs emit almost no IR, so they starve its sensors. Even though the 40-watt halogen bulb is only about half as (visibly) bright as the 23-watt CFL, it's pumping out more IR than dozens and dozens of discrete camera-mounted IR LEDs.
Make sure you disable the audio. In quite a few jurisdictions (including Florida, and I believe Ohio, Massachusetts, New York, and quite a few others), YOU can conceivably be arrested under old wiretapping laws.
Personally, I'd omit the signs. Why? Information leakage. The burglars will still break in, they'll just be sure they have ski masks or pantyhose over their heads before they're within sight of the cameras. Better to catch 'em off guard. ;-)
Of course, there's my deliciously evil (and unfortunately illegal) fantasy... multiple cameras aimed at the stairway, semi-concealed, with xenon flashes. The burglar steps on the pressure switch under the carpet of tread #5 or #6, sets off the xenon flashes, suddenly sees the cameras next to them, covers his face in panic, blindly runs (or backs) down the steps... and trips over the piano wire attached to two swing arms that normally lies flat against the far end of step #2 or #3, but just rotated 90 degrees up into position and locked when he set off the alarm...
While I'm at it, I might as well share the rest of my notes from the past few days...
A lot of info about Foscam's cameras in general, by a blogger whose postings about it became quite popular:
http://www.gadgetvictims.com/2009/06/foscam-wireless-pan-tilt-ip-camera.html
http://www.gadgetvictims.com/2009/07/foscam-ip-camera-part-two.html
Info about hacking Foscam cameras. The last time I checked, they'd figured out how the bootloader worked, and were working on getting its Linux distro to run under an emulator to make experimentation easier:
http://www.computersolutions.cn/blog/category/ip-cam
http://irishjesus.wordpress.com/2010/03/30/hacking-the-foscam-fi8908w
http://www.makehackvoid.com/computers/hacking-foscam-fi8903w-linux-based-ip-camera
Foscam's CGI-based web API (for integrating its video into your own app). It's far from perfect, but it's several orders of magnitude better than anything I've seen from companies like D-Link, Linksys, etc. In any case, it beats trying to reverse-engineer what some buggy ActiveX plugin is doing by sniffing the traffic with Wireshark. For comparison, my old PTZ camera is a D-Link DCS5300-W. Its bundled software was quite dire compared to the software that came with my new Compro IP70 and my Foscam FI8988W cameras, and the only thing the D-Link camera has a straightforward means of doing is grabbing a single 320x240 pic (no way to grab 640x480 from it), and I spent HOURS hunting for the elusive URL online.
http://www.drivehq.com/file/df.aspx/publish/bubbah/PublicFolder/IPCAMCGISDKV1.7.pdf
If you have an Android phone, there's one app I know of for viewing many IP cameras: IP Cam Viewer by Robert Chou. Search for it in Android Market (I think it can also be downloaded directly if you're in a country without access to Android Market).
There are also lots of low-cost thirdparty IP camera apps -- viewers, spoolers, etc. Don't be afraid to ditch the app(s) that came with your camera(s), especially if it has a known public API and/or implements known standards.
If you're planning more than a half-dozen cameras (especially if you can easily run new wires for them), you might be better off with a proper security DVR -- you'll be able to use smaller cameras, and pay about half as much for them.
The cheapest web-accessible host I've found is the Aviosys 9100A (roughly 85 bucks online, including from Amazon). It can host 4 cameras and one mic. HOWEVER, I believe it multiplexes them, so you can only watch one at a time. However, I think it can iterate through your cameras, capture a frame from each, and show them all at once in a single grid if you'd like. In any case, if you're looking for a quick & dirty way to get 4 conventional cameras online, this is probably your best bet. If it had an onboard (micro/mini)SD slot, I probably would have bought one of these, too.
Aviosys also has some interesting "Kameras" that do high-res (like the Compro IP60/IP70), but were more expensive and seemed to do a bit less than Compro's. Still, they might be worth investigating, too.
For small, cheap, and cute, the prize goes to the "IP510" camera (sold online under lots of different names and model numbers... IP-510 from buy.com, IP-400 from dealextreme.com). Alex Kuklin has some good info about it on his blog (kuklin.ru), including the
I forgot to mention -- don't put ANY of these cameras anyplace where you wouldn't mind being viewed by members of the internet-using public unless they're sitting behind a bastion-host firewall/proxy and/or you have a way to physically power them down when you're at home, because their security is largely ceremonial, and trivially easy to bypass if you know what you're doing.
My own setup: my new cameras sit on their own network. The cameras are all powered through X-10 appliance modules, and connect to their own wireless router/access point (itself plugged into an X-10 appliance module). When my security system (Elk M1G) goes into 'away' mode, it cycles through them all twice and sends their 'on' codes once per cycle. When my security system gets disarmed (and hasn't been set off), it sends the 'all off' code to power them down. For now, the second access point is connected via UTP to my main router, with the relevant ports forwarded and double NAT, but at some point over the next few weeks, I'm going to repurpose an old laptop with Debian and use it as both a persistent storage drive and bastion host firewall/proxy (so there will literally be no way to connect directly the cameras from the internet, and so I can use SSL). I'm not thrilled about the wifi security, but it's mitigated by the fact that they're only physically powered up when I'm not at home.
Having just had my house broken into ~2 weeks ago and spending most of the past two weeks researching good-but-affordable security cams as a result, here's a bit of what I learned (and bought):
The best-yet-cheap hi-res IP camera I've found is the Compro IP70 (available in the US from Directron, widely available elsewhere in the English-speaking world and a big chunk of Europe).
* The good: 1280x1024 resolution and 1/3" CMOS sensor, awesome low-light performance, onboard microSD card for persistent storage of snapshots triggered by motion or inputs. Dual codecs, so you can have it simultaneously grabbing 1280x1024@15fps for snapshots or web viewing, as well as 320x240 or 640x480 (among others) for viewing on your Android phone/iPhone/other phone. It explicitly supports MJPEG, h.264, and MPEG-4, plus 3GPP (apparently, this means it might work on Java ME MIDP phones and Symbian).
* The bad: mediocre room-light performance with color that's utterly dire if you have the IR activated, and once an event triggers a snapshot (that can be saved to SD, FTP'ed, and/or emailed), it can't take the next pic for ~4 seconds.
* The mitigating: telnet ${ip} to get a real, honest to god root shell complete with busybox. Very little public documentation, but looks almost shockingly straightforward to figure out what's going on, and maybe even replace the onboard apps with my own. According to 'top', the camera has at least 50-100mb free ram running normally, so implementing a burstmode that can grab a bunch of shots to ram once triggered, then upload/save them to persistent storage later shouldn't be too hard. One big tip if you get this cam: "low light" mode != "IR mode" -- low light mode cuts the framerate to interpolate more gray and average out the noise. The problem is, it utterly ruins the camera's ability to take meaningful event-triggered snapshots. So, if I could request just one improvement to it, it would be, "implement a burst mode whereby the camera will (optionally) take 1-4 pics immediately, turn off low-light mode, then take 1-N pics... saving them to a ramdrive, with another daemon pushing them to persistent storage in the background. If nothing else, this camera has serious potential as a fun embedded linux box with onboard USB (the optional wifi is USB), two isolated inputs, and one isolated output, plus 10/100 ethernet. I bought one so far.
* Other details: it's not PTZ, and it's not weatherproof. It's also pretty huge (~5" x 5" viewed head on), so think twice before planning to stick it somewhere aesthetically obvious in your house.
The IP70 has a baby brother with the same resolution, but without the IR called the IP60 for about $40 less (also available at Directron). I haven't used it, I'm just mentioning it to be complete. Officially it has no IR capabilities, but to some extent just about all CMOS cameras seem to be at least slightly IR-sensitive.
For cheap PTZ Linux-based fun, you can't beat the Foscam FI8908W. Their official US distributor is foscam.us, and they're readily available for less than a hundred bucks on eBay (a non-wireless variant exists; it's rare, but about $10 less). Just be careful and make sure the seller LITERALLY specifies "Foscam FI8908W", as opposed to "Foscam-Type" or just shows a pic. There are a LOT of fakes on eBay. I haven't seen them side by side, but from what I understand, the fakes are basically the same camera body and electronics, bought from the same ODM, but have different firmware, and apparently tend to ship with visibly lower-quality lenses. Apparently, some can be reflashed with Foscam firmware, some will get bricked if you do.
Foscam cameras only do 640x480@30fps with MJPEG, but they make up for it by being one of the only cheap IP cameras that doesn't need Internet Explorer to work. They're also very hackable, with several individuals who've made lots of public progress documenting their hardware, bootloaders, and onboard i/o ports (they support 1 in and 1 out, plus JTAG and a few other ports as well. I'm pretty sure I reme
Forget what's officially on paper regarding the lower 64 bits of an IPv6 address. As a practical matter, the bits are yours to use, or yours to intentionally discard and ignore. Nobody can force you to use an unholy address with 128 pseudo-meaningful bits. In reality, a typical home cable internet or DSL customer should get a /48 address. That means the upper 48 bits are assigned by your ISP, and the lower 80 bits are yours to use or ignore as you please.
48 bits translates into three chunks of the address. Initially, they'll look like this:
2001:xxxx:xxxx
where xxxx:xxxx is unique for your global service provider (read: AT&T, Global Crossing, Telia, etc), and the top few bits are unique to your country. Eventually, the top 16 bits (first chunk) will be unique to a country. So unless you're in Europe, 99% of the addresses you deal with daily will start with the same chunk. A little more annoying than a.b.c.d, but not quite insurmountable.
Now, the lower 80 bits. Officially, there's some nonsense somewhere about using the MAC address to derive it. It's voluntary, and lots of people have said they won't be following it because it turns your ethernet card into a globally-unique cookie that can be shared via out of band means. It's led to no small number of fights between the autoconfiguration faction and the DHCP6 faction. In the long run, the DHCP6 faction will win. So, getting back to those 80 bits...
Right now, you're dealing with 64 bits whether you know it or not: the 32 bits in your public IP address, and the 32 bits in your NAT'ed private addressses. Your home PC's IP address isn't 64.82.19.34, it's 64.82.19.34 + 192.168.100.69, with a port-forwarding router in the middle to glue them together. There's nothing to stop you from treating your IPv6 address the same way, even if it slightly stomps on the original official intent of how the bits should be used. If you want to, your home PC's 80-bit IPv6 address can be ::1. More likely than not, your router (still needed for 6-4 translation) will be ::1 though, so let's make your home pc ::2. So, here's your home PC's new IPv6 address: 2001:aaaa:bbbb:cccc::2 (aaaa, bbbb, and cccc are 16-bit hex values). Or maybe uuuu.aaaa.bbbb.cccc (where "uuuu" is the same for most addresses you encounter at the raw address level daily).
Let's suppose you want to be cute, and have a home network whose 4 and 6 aspects cleanly map to each other, and you don't mind doing some ugly binary math behind the scenes for the sake of human-readability. Your internal network's ipv4 addresses are in the 192.168.100.x block. Your 4-6 router is 192.168.100.1, and your desktop PC is 192.168.100.2. So, you configure your IPv6 addresses to be:
uuuu:aaaa:bbbb:cccc::192:168:100:1 and uuuu:aaaa:bbbb:cccc::192:168:100:2 for the router and PC. Yes, in this case, you're abusing bits and pretending that 0x0192 means something special (the way 192 meant 0xC0, which had a special meaning to the router), but it's mainly to illustrate that IPv6 addresses don't HAVE to be horrific trainwrecks of unmemorable bits. If you're determined, you can make them look quite a bit like ipv4 addresses within the realm of your own network if you really want to. At the end of the day, is
24:3cf2:8d99::2 (your home PC), or even 24:3cf2:8d99::192:168:100:2
really any worse than
64.87.142.98 -> 192.168.100.2 ??
The truth is, the IPv6 crowd has been its own worst enemy by trying to force needless address complexity. IPv6 has lots of bits, and if you ignore the majority that you're entitled to ignore, it doesn't have to be a lot worse than ipv4. It can even be better.
The main problem is that Android 1.5 ended up achieving widespread ubiquity (at least, in America), but 2.0 is really the first version that does more or less everything the people who bought phones with 1.5 expected THEIR phones to be capable of, and 2.1 is the first version that really starts to feel polished. Without 2.0 or better, you can forget about doing anything with Bluetooth besides use a headset, and forget about thirdparty bluetooth apps that do anything besides toggle it on and off, because Android's bluetooth API basically didn't exist prior to 2.0. There are other rough spots on 1.5 compared to 2.0, but bluetooth is the raw, open, festering wound that most people scream about the most loudly. Even 2.1 has some gaping bluetooth deficiencies, like the lack of HID and SPP.
Anyway, that's the essence of the "fragmentation" issue. 1.5 sucks, and thanks to SenseUI and Motoblur, HTC and Motorola have dragged their feet upgrading their first vict^h^h^h^husers from 1.5 to 2.1.
The fact that American carriers suck donkey ass and make it nearly impossible to use any phone besides the tiny, tiny handful they choose to offer their contract-locked captives at any moment in time (yes, that includes our sad excuses for "GSM" carriers for anyone who cares about data service, since AT&T and T-Mobile both do their best to assure mutual 3G-incompatibility with every phone they sell) makes it worse. To this day, there's no official way to get a Sprint phone running 2.1. Sure, you can root and reflash your Hero (raises hand), or wait until June to buy an Evo or CDMA Nexus One, but the fact is, someone stuck with Sprint can't just go out and buy a different Android phone to get 2.1 officially *right this moment*. Before Google released the 850/1900-compatible Nexus One last month, AT&T users were stuck in the same Android 1.5 ghetto.
Incidentally, to anyone reading this with a Sprint Hero, for the love of God and everything holy... drop everything, root your phone, and reflash to any popular 2.1 distro *RIGHT NOW* (I'm partial to DamageControl, but you can't really go wrong with any of 'em). You'll never look back, and you'll start to actually LIKE your phone again :-) Just don't expect anything bluetooth-related that didn't work with 1.5 to work yet... it looks like HTC fucked up the kernel's bluetooth support yet again in the leaked Droid Eris kernel all the popular Hero 2.1 distros use, and until we've got the source and can finally build a proper 2.6.29 kernel with everything related to BlueZ enabled and compiled-in, thirdparty HID and SPP drivers aren't likely to work on a Hero. :(
It's not entirely hopeless... download WinSplit Revolution. It basically allows you to use ctrl-alt + {keypad} to partially-maximize windows. For example, holding ctrl-alt and pressing 4 on the keypad will make the current window full height, half the screen's width, and aligned with the left edge of the display. Pressing it again reduces it to roughly 1/3 the screen's width (still flush with the top, bottom, and left edge). Pressing it a third time enlarges it to 2/3 the screen's width. Stir, rinse, and repeat again from half-width. The other keys on the keypad work similarly... 7/9/1/3 pack and size the window into the corners. 5 makes it full-height and toggles between full-width, 1/3-width, and 2/3-width. Best of all, if you have two or more displays, you can use ctrl-alt-[leftarrow|rightarrow] to throw the current window to the next monitor in the key's direction. At work, I have three 22" 1920x1080 displays, and WinSplit Revolution is basically an app I absolutely couldn't live without.
On the other hand, there's a new problem that arises when you have three displays... limited mouse area. I'm still looking for an app that will let me use keys on the keyboard with my left hand to make the mouse less accelerated (say, decelerate the mouse whenever ctrl-shift-alt is held down). As it stands, I get frustrated a lot, because the mouse acceleration I have to endure to be able to sweep from the leftmost edge of the left screen to the rightmost edge of the right screen makes it damn near impossible to deal with single-pixel grab bars (Java, in particular, has a major fetish with impossibly-precise control requirements that practically require blowing on the mouse to nudge it that last pixel or two into the action zone.
I really wish Microsoft could add some logic to the way physical screen boundaries are handled to make scrollbar regions "sticky" and "inertial", so that if windows sees you sweeping the mouse towards the next screen to the right or left at full speed, it'll blow past the boundary without a hitch, but if it sees you slowing down (or overshooting and backing up), it'll temporarily make the right edge of the display act like a "mouse-pointer barrier". It's sad, but it was actually easier to deal with scrollbars 5 years ago than it is now. Back then, getting to the scrollbar was easy -- slam the mouse right, nudge it left, and click. You didn't even have to really look at the screen to get it right, because you could get away with "Commodore 1541-style alignment and navigation" (slam into something hard and immovable, then measure from there). Now, you literally have to aim. It's gone from being a subconscious reflex to a precision movement. And scrollwheels have their own problems, like web sites that try to make every ****ing pixel on the page react to clicks, so there's literally nowhere safe to click to let Windows know where the scrollwheel focus should be.
> The best ting they could do to make intersections safer is rip out the lights and install round-abouts
I'd love to see a roundabout that could possibly handle the traffic from a "Florida-sized" intersection like Pines Boulevard at Flamingo Road in Pembroke Pines, Florida ( http://tinyurl.com/y7cc3ft ) without completely collapsing into hopeless gridlock -- 8 lanes east/west, 6 lanes north/south, two left-turn lanes in every direction.
Putting it in perspective, more cars heading east and west pass through this intersection every day than used to pass through Broward County on Interstate 95 back when it was first built ~40 years ago.
Ironically, this exact road DOES have a roundabout about 7 miles east of here (in Hollywood -- http://tinyurl.com/y3znyej ), but appearances are deceiving. If you actually watch the traffic flow, you quickly realize it's almost impossible to do anything besides follow the dominant traffic flow east and west unless it's 2am or you're feeling suicidal. It's more like a freeway median with a glorified U-turn lane at both ends.
Sun didn't invent Javascript. Netscape did, under the name "Livescript". The "Javascript" name was pure marketing, and an attempt to benefit from Java's hype and buzz. The most significant thing Javascript has in common with Java is the first four characters of its name. Semantically, Javascript has more in common with Perl than it ever had in common with Java (no, I'm not saying Javascript == Perl, just pointing out that it has LESS in common with Java than it has in common with Perl)
Bluetooth has WAY too much latency. There are hearing aids that can pair with a cell phone via bluetooth, but using bluetooth to connect an audio processor to an earpiece would completely destroy the psychoacoustical cues that enable things like direction-perception. As others have pointed out, hearing aids have a challenge devices made for playing music or radio communications don't have -- the need for absolutely realtime operation, with latency as close to zero as possible. Most of the "cheap and works well" technology we have today doesn't meet the realtime requirement, or at least can't meet it with a $5 chipset.
On the other hand, hearing aids ARE ridiculously expensive in the US, mostly due to their regulation as medical devices and the convenient markup it enables manufacturers to enjoy. At the end of the day, a non-flawless hearing aid isn't like a malfunctioning heart valve or defective contact lens... failure isn't consequence-free, but it's nowhere near the same magnitude of severity, and nowhere close to deserving the same amount of price-boosting regulation.
Nevertheless, there IS a solution for Americans -- go to Mexico to buy one. Same electronics, several orders of magnitude cheaper. If nothing else, you can fund a week's vacation on the beach and all the margaritas you care to drink with the savings.
As of last night, I'm an even happier owner of a Sprint Hero Android phone, because we finally have independent 2.1 builds that really, truly work -- real 2.6.29 kernel, GPS, bluetooth, camera, and all. OK, for some inane reason, the LED under the trackball still doesn't quite work properly... but then again, it never worked *at all* with HTC & Sprint's official 1.5 firmware, so flakiness is still a net improvement over the official status quo.
I'm back to being happy that it doesn't have a physical keyboard. Not because I like onscreen keyboards. Actually, I despise touchscreen keyboards in every meaningful way possible. HOWEVER, now that I have 2.1 and access to android.gestures.*, I can rejoin the true civilized universe, and use Graffiti-1 again.
Finally. Goddamn, I missed Graffiti ever since the day I bought my Hero in October, then discovered that MobileWrite sucked worse than a whore with braces (it lagged so badly, it actually dropped letters because I'd be halfway through letter #3 by the time it finally settled on letter #1), and StrokeKeyboard didn't work on the Hero (or Android 1.5 in general). I felt like I was crippled every time I had to interact with the Hero's virtual keyboard in any meaningful way. Now I feel whole again. I can forget all about that ugly 6-month chapter of my life. Praise Linus, thanks be to Google, and endless gratitude to xda-developers.com for making it all possible.