I’ve been busily working on the next release of tweetz™ these last couple of weeks and have mostly ignored my blogging duties as a result. Codemash 2009 was a real wake call for me in that I realized that I needed to update my skills in a number of areas. If you take your craft seriously, you realize that getting “comfortable” is the kiss of death, skills wise. Especially in the profession of programming.
So, after seeing all the cool JavaScript/jQuery (and other stuff like Ruby) at Codemash, I arrived back, cracked open the tweetz code and set about to employ the new techniques I learned. I was immediately hit with a sad and disquieting realization however. The code really “sucked”.
It’s my own fault perhaps but consider that tweetz started out as just a few changes to a gadget called Twadget. It was written way back in 2006 using jQuery 1.1. Much has changed since then.
The code suffered from a classic case of lack of separation of concerns. You see this a lot in Web programming. Here’s this fat old DOM sitting out there just begging to have data and handlers hung on it like a Christmas tree. I followed suit with my “incremental” improvements and well, the result wasn’t pretty.
If I’ve learned anything about programming over the years, it’s that I suck at it. That sounds harsh but consider that we all “suck” at programming to varying degrees. As Jeff Atwood has said many times in his blog, “The goal is to suck a little less as time goes on”.
So I started over with tweetz. It wasn’t really worth “saving” in it’s current state and I had the opportunity to “do it right” this time around. I’ve also learned a tremendous amount about JavaScript and jQuery over the last few months. It’s really been an eye-opening trip of discovery. JavaScript is more powerful and robust than I realized.
Tweetz™ 2.0 has a real data model now. The controller and views are separated (mostly), and the generated markup is and much leaner and therefore faster. Many of the odd quirks and behaviors have disappeared in this new version. The code still sucks. It just sucks a whole lot less.
I keep thinking I’ll release the new version any day, but then realize there are many features the new version doesn’t support yet. As much as I’ve maligned the old tweetz, it was feature rich and did it’s job well for the most part. The new one is better so far and like any craftsman, I’m enjoying the process as much as the result. It may be a few days or a few weeks before tweetz 2.0 debuts, but trust me, it’s coming.
Part of the fun of writing programs is hearing about the unique and interesting ways they get used. Here’s an example:
I work as an automation services assistant, which is just a fancy term for IT tech, at the Rochester Public Library in Rochester, MN. A library environment presents some unique challenges. We have computers available for use by the general public, and those computers have to be easy to use. However, for obvious reasons, they also have to be extremely secure. The security aspect is frustrating for some of the patrons because they don’t always understand why we can’t allow them to access files and programs, etc. the way they do at home. To help alleviate some of that confusion, we prefer to have everything patrons are allowed to use available directly from the desktop.
Before we used Desk Drive, our librarians spent a good portion of their time acting as interactive instruction manuals for accessing and saving files from the public workstations. Many of the patrons who use our computers are elderly or otherwise technologically challenged. Having drives that mount to the desktop when inserted makes finding and saving to the media much more intuitive. Additionally, even tech savvy users appreciate the convenience of having access to their flash drives right from the desktop. Desk Drive allows our librarians to spend more time being librarians and it allows the patrons easy and convenient access to their files, which makes life easier for all involved. When the librarians and patrons are content, it makes life easier for the IT staff.
Automation Services Assistant
Rochester Public Library
Rochester, MN
It’s fun to hear that my little program has had a positive impact. Anyone else have some cool Desk Drive stories to share?
Programming Computers
Adventures in MVVM – Generalized Command Behavior Attachments - There are several examples on the web that describe the “Attached Behavior” pattern in Silverlight and WPF. This pattern works really well for binding commands in the ViewModel to controls in the View. The problem with this is that for every behavior, there is a LOT of boilerplate code that goes along with it. Because the DepencencyProperties need to be static, they cannot be easily abstracted into a common class.
Test Driving a WPF application using MVVM and TDD - Advantages of the MVP-like architectures, such as being able to test my UI without actually running the UI, but without the overhead of wiring all that junk up.
Defining Terms » Blog Archive » C#, The Ternary Operator, and Mono - It’s a bit amusing that an open source project supports the spec better than Microsoft itself, but there are probably also cases where it goes the other way.
Rick Byers : AnyCPU Exes are usually more trouble than they're worth - I think we've converged on a consensus that most of the time they're not what you want and so shouldn't be the default in Visual Studio. I suspect this topic may interest (and even shock) some folks, so I thought I'd share the rationale with you here.
TestDriven.Net 2.23 Beta – Faster! - TestDriven.NET by Jamie Cansdale - If you’re using TestDriven.Net 2.23 on a 64-bit OS, you should find that running tests is almost twice as fast!
NCover - NCover Blog - Code Coverage for .NET Developers - Great new features to NCover and a ton of improvements and bug fixes that make NCover Explorer simpler to use and easier to configure.
Using your Personal Computer
Get Behind the Shield! Hotspot Shield by AnchorFree – If you surf on free Wi-Fi at coffee shops and hotels, this tool can protect your activities by creating a VPN to their site and then out to the Internet.
Immunet releases free cloud-powered antivirus for Windows - They're not the first company to push out a cloud-based Windows antivirus product, but Immunet is hoping to make a splash with their newly-released beta ofImmunet Protect.
How to Block Ads in Google Chrome - Proxy – Lifehacker - In short, you use the free Privoxy web proxy software, which blocks web sites serving ads, and configure Google Chrome to use the proxy. Here's how to do it.
Science and the Environment
Newly Discovered Carnivorous Jungle Plant Gobbles Rats Whole | Popular Science - Scientists recently discovered this new species of pitcher plant on the verdant face of Mount Victoria in the Philippines. (Warning, gross picture of Rat being consumed)
IBM Scientists Harness DNA Self-Assembly to Build Faster, Cheaper Chips | Popular Science - The next generation of semiconductor technology could take a page from nature’s book, letting DNA do the heavy lifting. Straight-laced researchers at IBM, afraid of breaking Moore’s Law, have figured out a way to combine lithographic patterning and DNA self-assembly to create semiconductors that built themselves into chips that are smaller, more efficient and less expensive than anything made conventionally.
Water Quality Improves After Lawn Fertilizer Ban, Study Shows - Do the ordinances really help reduce phosphorus pollution?
DNA Evidence Can Be Fabricated, Scientists Show - NYTimes.com - Scientists in Israel have demonstrated that it is possible to fabricate DNA evidence, undermining the credibility of what has been considered the gold standard of proof in criminal cases.
Tiny Flares Responsible for Outsized Heat of Sun’s Atmosphere - The mystery of why temperatures in the solar corona, the sun’s outer atmosphere, soar to several million degrees Kelvin (K) —much hotter than temperatures nearer the sun’s surface—has puzzled scientists for decades.
On the Web
Repower America - Just launched the Repower America Hotline. It's a number you can call anytime to leave a message for your Senators, and we'll make sure it gets to their offices. Just call 1-877-9-REPOWER. Enter your zip code when prompted so we know which Senators should receive your message.
Feel The Need The Need For Speed With Google Earth’s Flight Simulator - Google Earth has a pretty nifty feature called the “Flight Simulator.” The flight simulator basically allows for users to take control of a plane as they navigate around locations, mountains, oceans, and landmarks of their choosing.
Gmail Nudges Past AOL Email In The U.S. To Take No. 3 Spot - In July, Gmail nudged past AOL Email with 37 million unique visitors compared to 36.4 million for AOL.
Stuff I just Dig
John Scalzi's Guide to the Most Epic FAILs in Star Wars Design - Star Wars has a badly-designed universe; so poorly-designed, in fact, that one can say that a significant goal of all those Star Wars novels is to rationalize and mitigate the bad design choices of the movies. Need examples? Here's ten.
Hubble's Deepest Look Into Space, Now Rendered In 3D | Popular Science - Over a period of four months in late 2003, the Hubble telescope assembled an image that represents the deepest look into space every composed. Here's what it looks like in 3D.
Pick of the Week
Input Director – Control more than one computer with a single mouse and keyboard. If you have multiple systems in your cube like I do, this is a real time saver.
Posted
Saturday, August 22, 2009 |
0
Comments
Tags
.Net,
C#,
Freebies,
Gadgets,
Life,
Links,
PC Tips,
Programming,
Science,
Technology,
Security
Programming Computers
ZipStorer - A Pure C# Class to Store Files in Zip - Small C# class to store and extract uncompressed and deflated files in new or existing Zip files, without any external library. Check out my SimpleZip as an even more lightweight (and less featured) alternative.
Windows 7 Training Kit for Developers – Comes complete with 2 packages of Kool-Aid.
CLR Team Blog : Improvements to Interop Marshaling in V4: IL Stubs Everywhere - Faster interop marshaling: the more complex the signature the greater the speed-up.
Text Effects in Silverlight - It's So Simple - SvLite Effects library providers text effect control to create text animations in Silverlight. The control is easy to use and can be configured in multiple ways to create different text animations.
Expression Trees, Take Two – Introducing System.Linq.Expressions v4.0 - NET 4.0 introduces statement trees as an extension to the existing expression tree API.
Daniel Cazzulino's Blog : Linq to Mocks is finally born - . What the next version of Moq (early beta readily available now) allows you to express in a very declarative way essentially is: “from the universe of mocks, get me those that behave like this.”
Using your Personal Computer
Windows 7: How low can you go? - Do you really need a computer with the minimum specs as outlined by Microsoft?
You must obey: Unwritten laws of technology - PC World – Humor.
Science and the Environment
BBC - Earth News - Giant 'meat-eating' plant found - The plant is among the largest of all carnivorous plant species and produces spectacular traps as large as other species which catch not only insects, but also rodents as large as rats.
Chevy Volt to pull 230 mpg in city | Green Tech - GM is confident that the combined highway and city mileage for the Chevy Volt, due to go on sale in late 2010, will be in the triple digits. Expressed in electrical terms, the performance will be 25 kilowatt-hours for 100 miles.
Scientists Launch The First Standard Graphical Notation For Biology - Visual language should make it easier to exchange complex information, so that biological models are depicted more accurately, consistently, and in a more readily understandable way.
On the Web
Why Apple and Google Rule - A webcomic by Eric Burke that is sad but true. I posted this one outside my cube at work.
Microsoft’s SharePoint Thrives in the Recession - Bits Blog - SharePoint broke the $1 billion revenue mark last year and continued to rise past that total this year, making it the hottest selling server-side product ever for the company.
Coding Horror: COBOL: Everywhere and Nowhere - Most impressive perhaps, is that 200 times as many COBOL transactions take place each day than Google searches - a figure which puts the influence of Web 2.0 into stark perspective.
HootSuite Organizes Your Twitter Activity in Your Browser - Social Networking - You can also have HootSuite schedule a tweet to be sent later and automatically send tweets from your blog feed.
RockMelt 101: A Quick Guide to the Mysterious Browser - PC World - Have you met RockMelt? Neither have most people, it seems -- but the Web is definitely a-buzzin' with word of the mysterious new browser.
Stuff I just Dig
Toolmonger » Blog Archive » Conductive Epoxy - Soldering isn’t your only option for an electrically conductive connection. MG Chemicals sells one alternative — the two-part silver conductive epoxy.
Orbis Scooter Concept Shrinks Your Segway | Popular Science - As much as there is to like about the Segway, it’s not the most practical option out there – it’s bulky and expensive. The Orbis Urban Mobility Vehicle, on the other hand, could do a lot to make scooting a smidge more plausible. The Orbis’ polycarboate-and-aluminum body weighs 25 pounds to the Segway’s 105. The scooter rides around 13mph on its one wheel.
Guitar Legend And Innovator Les Paul Dies : NPR – I remember endless hours of jamming in my friend’s basement with his “Star Burst” finish Les Paul guitar.
16-Megapixel Infrared Satellite Camera Can Monitor An Entire Continent In a Single Shot | Popular Science - Now, while that may sound very 1984 to the tin-foil hat crowd, the sensor is primarily designed for missile detection and guidance.
Pick of the Week
bxAutoZip – If you use Outlook (or in my case you are forced to use Outlook, yuch!), this extension will automatically convert your attachments into a zip file. Very handy.
Posted
Saturday, August 15, 2009 |
0
Comments
Tags
.Net,
C#,
Freebies,
Life,
Links,
Online Applications,
PC Tips,
Programming,
Science,
Technology
previous | next
powered by Bloget™