Categories
Books Technology

Node’s the thing

I just finished my fourth chapter for my newest book for O’Reilly. I never feel a book is solid and real until the fourth chapter. By the fourth chapter, you have a book, not just an idea or outline.

My newest work is titled “Learning Node”, about Node, or Node.js for the purists among you. It’s a good fit with my other JavaScript books, and is focused on an interesting and rather fun technology.

I wasn’t sure about Node when it first came out. My very first JavaScript gig wasn’t client-side development, it was a server application for a company in Portland, Oregon. I can’t remember the name of the company, or even what the application was about (I have done a lot of contract work in the last 25 years) but I remember working with a contractor from Vietnam who is one of the nicest people I have ever worked with.

I also remember that server-side development with JavaScript died quickly, and there went another skill down the toilet. So when Node came around, I didn’t embrace it as profoundly as many people did.

In time, though, Node won me over. I like it—not in the giddy, bubbling-over-with-enthusiasm embrace I may have felt about server-side JavaScript (and Java, and EJB, and the earlier Cloud computing, and DHTML), but I like it. I think it’s useful. I think it is a very solid technology.

What won me over to Node? The fact that it’s based in JavaScript helped. I’m not going to join the effete in condemning JavaScript, because I like JavaScript. I think Dart is dead on arrival, and JavaScript is only going to get better over time. However, there’s also CoffeeScript for those who just can’t embrace JavaScript.

I like that we don’t have to worry about working with threads, that modules are the norm, and that Node doesn’t pretend to be the definitive solution for every problem. I also like the community support and how uncomplicated it is to create complicated applications. I don’t want to use “easy”, but Node doesn’t demand that the developer jump through an extraordinary number of loops to get a job done. For all the new geewhiz quality about Node, it’s a very pragmatic technology.

Node is also mature enough to last—no lost skills with it. The very fact that the creator of Node, Ryan Dahl, decided to step down as gatekeeper for Node, and his decision didn’t cause any earthquakes in the Node community, attests to the maturity of both the technology and the community.

The HTML5 community could learn a lot from the Node community in this regard.

If there’s a problem with Node is that many of the those who work with Node come from a Ruby/Rails/Extreme Programming background, and many of the concepts and explanations about Node reflect assumptions that can actually form a barrier to understanding. In some ways, Node can present itself as more complex than it really is, primarily because much of the terminology reflects a background that not everyone shares.

Another problem is that documentation is an interesting mix of the nonexistent, cryptic, and/or flippant—none of which is generally helpful. Then there’s the oddly peculiar “Node web style”, with web sites in dark gray backgrounds with pale gray writing, (or white background with pale tan/green/gray writing) where the only way you can see the text is by turning up the brightness of your monitor until your head hurts.

Still, times are a changing. Cloud9’s new new Node Manual web site is a solid start in the right direction, and I have high hopes for the official Node.js site, too.

Then there’s my book, which I’m sure you’ll want—if for no other reason in that it’s a nice break from me bitching about HTML5.

Categories
Critters

Debe Bell update: Guilty

Just a quick update, to finish out earlier stories on Debe Bell and the Six Bells Rabbitry.

Debe Bell was found guilty of 35 counts of animal abuse.

Surprisingly, some of the rabbits were hearty enough to survive, and once they were nursed back to health, they were readied for adoption through the Foothills Animal Shelter. However, (clarification) the Jeffco DA’s office says twenty of them were dead, including a number of animals found in a farm freezer.

Although necropsies on the dead animals suggested that they had experienced pain and suffering before expiring, the jury considering the case ruled Bell not guilty in their death. But that still left 35 counts of animal cruelty on which she was convicted, with each one bringing a potential eighteen months in jail.

Bell had said only a few rabbits were dead. Truth will out.

I wonder what those who have been defending her will say about these facts?

Earlier stories:

Bunnies again, but this time Six Bells Farms

Putting Lies into Context: Debe Bell and the Six Bell’s Registry

Categories
Connecting

sans comment

My butterfly, all in black, with the words: Stop SOPA

O’Reilly Media’s Stop SOPA page, describing what this is all about.

Categories
Critters

Rabbit Ridge: of Starving Dogs and Extreme Heat

The USDA has released a relatively complete set of inspections for Rabbit Ridge including the missing August 2nd inspection, as well as newer ones at the end of November. However, they did remove the inspection for November 29, but not before I got a copy (pages twothreefour, and five).

Though the inspections state that the USDA APHIS inspector was accompanied by a VMO, which I believe is a representative from the Missouri Department of Agriculture, the MDA shows no new inspections since August, 2011.

From the August 2 inspection:

There was a black Schnauzer puppy (with no ID, DOB 6-2-2011) who had recently had his ears cropped. The licensee stated that he cropped the ears himself in the Whelping Building when the dog was 3 weeks old. He said he gave the puppies a shot to put them down. He stated it was the same stuff the vet uses. He stated he used Rompun at a dose of 0.1cc/pound but no pain-relieving drugs. He stated he waited 10 minutes after injection before performing the surgery. He stated if bleeding occurred, he used blood stop sticks. The licensee showed the inspectors the table and equipment he used to conduct the surgery. The table was a wooden counter in a room containing a variety of items such as dog food, trash bins, a refrigerator, and medications. The walls, floors, and ceilings in that room were dirty and grimy, The licensee stated he dipped the equipment in rubbing alcohol prior to use. The bottle of alcohol he showed the inspectors contained a liquid that was discolored and yellow in appearance, did not smell like alcohol, containing a dead floating insect, and no cap. The licensee showed the inspectors the clamps and the razor blades used to cut the ears. The licensee is not a veterinarian and is not trained or qualified to safely conduct painful, surgical procedures involving the amputation of tissue.

But wait…there’s more…

The whelping building had a temperature of 98.8F with a heat index of 120.5F at approximately 1730 hours. There were 15 puppies showing signs such as: excessive wide mouths, panting, vocalizing, and/or tongue lolling. The puppies were lying separated from one another rather than close together. All of the puppies were lethargic and some did not respond to being stepped on by their littermates. One male Daschund puppy (DOB 21 June 2011) was propped against his water bowl, wobbling his head and then suddenly slumped over and fell on his side.

A heat index of 120.5 F. What could possibly exceed this?

Unfortunately, we found out in November. On November 29:

A black male poodle (identification number 143) is emaciated. There is virtually no fleshy covering over his ribs, hip bones, or back bone. The muscle mass over his thighs and shoulders is greatly reduced. His shoulder structures, including his scapulas, are very prominent with virtually no fleshy covering. The licensee stated that the dog has been moved from an outdoor enclosure to its current sheltered enclosure one week ago and was “normal” at that time. He stated that this dog has not previously been housed with its two current cage mates. One food receptacle with dog food was located in the outside half of the enclosure; the dog was in the sheltered part of the enclosure at the time of the inspection. The licensee stated he knew that the dog had difficulty going in and out of the dog door to move between the indoor and outdoor portions of the enclosure. He stated he had been trying to teach the dog to use the door and had propped it open slightly. Dogs can lose large amounts of weight due to poor nutrition, lack of access to food, or a variety of serious medical conditions.

From a follow up inspection, on November 30.

The non-compliant item has been corrected: the dog was euthanized by the Attending Veterinarian.

What more is there for me to say? To the USDA and MDA, what amounts to starving a dog to death is acceptable.

This is the “compromise” arranged by Governor Nixon. This, the result from the state legislature overriding the vote of the people to undermine Proposition B.

So Happy New Year Governor Nixon, MDA Director Jon Hagler, and Missouri representatives, such as Brian Munzlinger, who has complained because we in the animal welfare community have been harassing this fine upstanding breeder. Happy New Year, AG Koster, who seems to have found only four bad breeders among all the thousands in Missouri (and only seems interested in unlicensed breeders).

Congratulations on a job well done in 2011.

Categories
Browsers

Firefox: Continuous scrolling and continuous freezing

This morning I logged into Twitter, opened my HTML5 list, and started scrolling down the page to see what new outrage/toy/publication/conference was generating excitement today. Of course, I use “page” loosely, since Twitter uses the “continuous scrolling” technique to retrieve and display older tweets. You never actually get to the end of the page, you just keep getting more tweets.

I dislike the “continuous scrolling” technique with a passion that I usually reserve for governors who harass teenagers who tweet. Many times I have scrolled to an interesting looking tweet, which is suddenly moved out of view because of an awkwardly done “page” update that pushes the previously scrolled tweets out of view. The same happens, though not as abruptly, with Facebook and Google+—a less than clever use of technology to replace what the developers seem to think is beyond their users: to click the damn “More” link.

Worse than losing that tweet that piques my interest, though, is that lately when I’m using Firefox to scroll down the page of updates, the browser freezes up. At times, it can seem to unfreeze itself if I just patiently wait for it to deal with whatever internal upset it’s currently dealing with. Other times, I’ve had to kill the browser.

In the past few weeks, though, I’ve had Firefox freeze up to the point where I couldn’t use my Windows 7 system. I can’t bring up the task manager to kill Firefox. I don’t get any response from any key combination. The only recourse I’ve had in these circumstances is to hard boot my system.

Hard booting a system is not a good idea, and it’s one I shouldn’t have to be taking. However, when your system is frozen and your laptop fan is whirring like mad, you take desperate measures. Desperate measures that came close to losing my system today.

I hard booted up my less than one year old Toshiba laptop after a Firefox/Twitter freeze this morning, except that rather than the Windows prompt asking me if I wanted to start Windows in Safe Mode, I got the ominous message that the system could not find my hard drive. I tried again in a couple of minutes, but received the same message. Waiting a short time later, I was able to get to the Windows restore/repair dialog, and tried an automatic repair. This seemingly failed, and I was faced with having to restore my system using the Toshiba recovery program, which basically overwrites your disc with a brand new installation of Windows.

Before taking such a drastic step, I tried to restart my system one more time, and this time, success!

Right now, I’m backing up all of my writing research folders to my internet site, and various other files to external USB drives. I’m also using Google Chrome to write this, because, frankly, I’m wary of using Firefox for anything at this point.

It is not the browser company’s fault that web sites use JavaScript to create some chi-chi clever effect that taxes the browser’s resources, and that most of us don’t really need, and didn’t really ask for. However, it is the browser company’s fault when it can’t deal with whatever good or bad JavaScript it encounters. No browser should allow any JavaScript to freeze the application up so badly that it has to be forcibly closed. And no browser should ever be so badly coded that it can literally crash the OS.

The only extensions I use with Firefox are Firebug, AdBlocks, and Web Developer Toolkit. I suppose one of these three could be to blame for the freezing problem, but it’s the responsibility of the browser company to ensure that its extension environment is solid so that an extension can’t cause these kinds of serious problems.

Whatever happened to my favorite Firefox of bygone years? Whatever happened to the rock solid but still innovative browser I once depended on? In its desperation to beat out Chrome and it’s aggressively pushed schedule to release new browser versions seemingly every few weeks, Firefox has become increasingly erratic and unstable. I could live with the mouse cursor landing in the web page just below a form field when tabbing (and having to click on the field to realign), but I can’t live with the freezing and crashing.

After all these years, I’m going to have to switch to another browser. Right now, I’m typing this post using Chrome, but I’m not overfond of Chrome. It’s not a bad browser, but the same issue with Firefox also applies to Chrome: aggressive release schedules and seeming indifference to stability. (“Stability? We don’t need no stinken stability!”) Apple’s support for Safari on Windows seems tepid, at best, which leaves Microsoft IE and Opera. The newer versions of IE are actually fine products, and Opera seems to have found the right point between implementing the latest gewgaw and delivering a stable product—but dammit, I’m used to Firefox.