Perhaps worse than a do-nothing congress is a “try to do everything at all right and fail” congress. Unable to compromise when cooler heads would’ve resulted in better laws (healthcare) and unable to lay off on a hot topic when that’s what would be best for the country.
The latest example of…
Well said, Mr. Coster.
So yeah, I haven’t posted anything in a while. My workplace, in the wisdom of a large, unwieldy bureaucracy, blacklisted tumblr in the web proxy, and can’t seem to undo the setting even after being asked to.
So I’m stuck emailing myself a list of links at the end of every day, as if it were 1994. I am going to start posting to tumblr via email, once I have it configured.
However, there are a couple of things that I’ve found recently that are too cool not to post.
About two weeks ago, I was doing some research on how to get node.js to talk to Neo4j. I thought about Clojure/JRuby => Java => JNI => C++ => V8 Javascript, and immediately recoiled in horror. I began writing a node.js wrapper for neo4j-rest, and got it all spec’d out, but then wondered if I would negate the performance gains of node.js by incurring network latency for every datastore transaction. I pondered and researched about sockets, and was encouraged by how straightforward they seemed. However, I would have to do lots of low-level stuff to get that to work: designing a protocol, error checking, managing concurrency and locks, etc. and it seemed like the learning curve would be up there with JNI.
Then today I found ZeroMQ. ZeroMQ is billed as being many things: a very fast message queue, a “Scalability Layer” for the web, an async network programming library (like node.js) with many language bindings, a concurrency framework. But it’s also just a really nice abstraction on top of BSD sockets for lazy programmers like me who like to avoid the low-level details and stick to the more interesting aspects of the business domain. So if I wanted to, I could use Node.js/express.js as my web server for my JSON REST API (so as to stay in the Javascript paradigm for both request and response), and then speak via 0MQ to a Java/Clojure/JRuby JVM process acting as my persistence layer talking to Neo4j.
Or I could skip straight to Mongrel2 instead of Node.js, and because Mongrel2 is built on ZeroMQ, I can have any number of application components written in any language running on any number of machines all providing functionality to my webapp. That makes me excited. I am imagining adding lots of cool stuff to what was going to be simply a RESTful data service and some mobile and desktop clients: XMPP chat, Websocket notifications, etc. I can even imagine a business process engine (perhaps that implementation of YAWL I’ve been pondering for a few years) that can dynamically notify participants in a variety of ways—email, chat, application pop-up notification, text message, carrier pigeon.
Of course all of this is possible using a combination of other existing technologies. But it is nice to combine a low-config web server with this flexible network or interprocess programming fabric. It feels like these two technologies abstract away some of the nastier aspects of systems integration, and leave me free to focus on the business problem using languages and frameworks I’m already comfortable in. Bravo to the good folks behind these libraries.
Picture this, I’m sitting on the couch watching TV, researching, and writing some code at about 8:45 PM. My wife, who is 8 months pregnant and who spends her day running after a very energetic 17 month old boy, is sleeping in the bedroom.
She opens the bedroom door, emerges from the room looking sleepy and very concerned. I imagine she’s going to say “Could you turn that down?” or “Is the baby asleep?”
Instead she asks, brow furrowed, “Do you think we should be ninjas for halloween?” and I laugh for the next 2 minutes.
I love my wife.
JavaScript is really coming into its own lately. Cool stuff from Processing.js.
Their first product, which they’ve open sourced, is an automated configuration management tool called Chef.
What’s got 622 thumbs and an IQ down there with Congressional Republicans?
Section 9006 of the health care bill — just a few lines buried in the 2,409-page document — mandates that beginning in 2012 all companies will have to issue 1099 tax forms not just to contract workers but to any individual or corporation from which they buy more than $600 in goods or services in a tax year.
Congressional Democrats, that’s what. What the hell kind of asinine malarky is this?
But under the new rules, if a freelance designer buys a new iMac from the Apple Store, they’ll have to send Apple a 1099. A laundromat that buys soap each week from a local distributor will have to send the supplier a 1099 at the end of the year tallying up their purchases.
For rizzle dizzle?
A Democratic aide for the Senate Finance Committee, which authored the changes, defended the move.
“Information reporting improves tax compliance without raising taxes on small businesses,” the aide said. “Health care reform includes more than $35 billion in tax cuts for small businesses … indicating that during these tough economic times, Congress is delivering the tax breaks small businesses need to thrive.”
There’s so much Congressional bullshitese in that statement that the aide (unnamed, of course, real bold there) could have leveraged the synergies off anyone’s pants.
I’m not a tax accountant - I just run the books for a small business - but I’m guessing that unless the IRS actually increases its audits, this “transparency reporting” isn’t going to make a whole lot more transparent. Is there additional funding for the IRS to conduct more audits?
You know, this whole transparency thing is supposed to be about the government, not cataloging server hosting charges.
Some commentary, in light of the Apple v. Adobe feud, on Apple’s strategic adherance to some types of open standards, while leaving its platforms closed. Remember, platform openness is not the same as web openness, and I think Apple’s use of standards walks the very thin line of being a viable business model without being evil.
Apple likes to control the platform because they own the user experience. Their brand is built on the delight users have come to expect while using Apple devices. So it is critical that Apple controls everything that happens from the screen/UI outward. That may mean constricting developers (who shouldn’t complain while making a mint piggybacking on Apple’s successfully designed platform), and it may mean locking down some aspects of the software hardware platforms to protect against security threats, potentially nefarious app developers, and for that matter against copycat manufacturers.
However, Apple wisely adopts standards when it comes to the interaction of the device with the web and with other devices. This move is both for the sake of openness because open standards are virtuous and important, and because it saves costly and unnecessary re-inventing of the wheel. They use standards and technologies relating to communication, because those are the only useful types of standards.
And yes, this design decision could mean that the Apple doesn’t adopt a particular technology, like Flash. HTML5 is here as a possible alternative, and perhaps they won’t need to adopt Flash. But the bottom line is they don’t feel like Flash helps their platform and user experience. If they’re right, they’ll make money. If they’re wrong, they’ll lose money. Standards and openness and all that stuff really boil down to business. Those businesses who delight users win, those who don’t lose. And in that competitive climate, the user ends up winning.