-
Now we’ve seen everything.
-
Nice little article talking about making a move to a DVCS and Git, Mercurial and Bazaar in particular. He barely gets into it, but I think Mercurial’s superior branching/merging is a big reason to move from svn.
-
Follow-up to Dave’s post about DVCSs, in which he explains why he chose Mercurial. Personally, I’ve come to Mercurial for much the same reasons.
Archive for December, 2007
Steve Yegge attracts some attention with Code’s Worst Enemy, in which he uses many, many words to say that “big, bloated software sucks to maintain”. He talks about a 500,000 line Java-based game that he wrote that is unmanageable. Though he’s railing against code bloat in general, he does rant a bit about Java in particular. I’ll come back to Java… First off, I agree with the basic idea that having too much code to manage in a single conceptual unit (a program) makes life very difficult. The first defense against this is good product management. Only add features if they’re good for the product as a whole. If you strip out a lot of fringe features, you can end up with a much leaner product that is both easier for you to maintain and easier for users to get into using. Scribbles brings this to mind. The app is focused on creating drawings and provides a UI that is completely streamlined to the task. I would guess that the code for Scribbles is not out of control, because it would be similarly focused. The next thing to consider is that we all routinely write 1 million+ LOC programs. Consider this case:
Conceptually, programs don’t get much easier than that. But, running that program and seeing its output in a Terminal.app window on my Leopard-based Mac running Python 2.5 undoubtedly touches at least 100,000 lines of code. The trick is that I have faith that Python, Terminal and Leopard are all going to do their jobs (and those big guys have faith in the libraries they use), so that I can effectively ignore 99,999+ lines of code and just focus on the one. There were a couple of commenters on Steve’s blog post that suggested that maybe rather than having a 500,000 line program what he really should have is a 10,000 line program and a bunch of libraries. In one sense, this is the compartmentalization that Steve complains about in his post. Libraries are one effective way of compartmentalizing code that has proven to be very successful over the years. And language features are another way to segment code. That’s part of what the recent hubbub over domain specific languages is all about. Libraries can reduce how much you have to think about as you solve a problem, and DSLs can further reduce this. Which brings me back to Java and Steve’s original point. We can focus on reducing the amount of code we manage by using libraries, and there is certainly plenty of that going on in Javaland. We can also add higher-level features to our languages. Doing so reduces the total lines of code required to solve a problem and the cognitive load required to maintain a program. Here’s an example:
Python’s attribute and property handling means that you don’t need to define random setters and getters all over the place. You just define them where you need them. Think about how many lines of code in Java are wasted on getters and setters that do nothing beyond the standard behavior, and how many times you have to type In a nutshell:
Dec
18
2007
The eBay “Just Sold” ScamPosted by: Kevin Dangoor in Technology, tags: ebay, just sold, phishing, securityToday, I nearly fell prey to a phishing scam. I am totally not the kind of person who falls for phishers, but this was a wild one. I was selling my PowerBook G4 12″ on eBay and the auction ended today. As usual, the bidding intensified at the end, but a winner was declared at a price I was happy with. A short time later, I received an email from eBay saying that a payment has been made and giving me a link for the details. I clicked that link, not suspecting anything because I had, indeed, just sold an item. My browser’s location bar started out at cgi2.ebay.com, and went through a couple of forwards before landing on isapitems.pisem.su. That page was done up with eBay’s logo and login page appearance, and I actually submitted my eBay username and password. Just after I did, something felt fishy about it and then it brought up a page styled like an eBay home page. When I saw that, I knew for sure it was a scam and immediately changed my eBay password. I was really puzzled by this. eBay only lets you contact other members if you have an open transaction with that member. How could I have gotten such a targeted phishing scam? The answer came a couple hours later. eBay’s security people alerted me that the winner of my PowerBook’s account had been tampered with and bids had been made without his knowledge. That’s quite the scam. Take over one eBay account and then win auctions just to get the passwords for more accounts. While I’m glad that I escaped from the phishing net, it was a drag having to re-list the item. eBay deleted the entire auction. Thankfully, Google’s cache still had it so I could just cut and paste the text back in to a new auction. If you’re a seller on eBay, just be aware that even emails with links that route through eBay could lead to phishing sites. p.s. If you’re interested in my PowerBook, the fresh auction runs through Christmas day.
Dec
15
2007
More auctions: PowerBook 12″, iPod nano, Edirol UA-5, more…Posted by: Kevin Dangoor in Random, tags: ebayI’m nearly done revamping my office/music studio in hopes that I will actually have some time to play/make music when I finish all of this. Ending tomorrow, I have an Edirol UA-5 USB audio interface, a 2GB iPod nano and a Yamaha QY-70 portable music making gizmo. The QY-70 is basically a little battery powered synth and sequencer. Ending later in the week: my PowerBook G4 12″, which is a great little laptop. (I have a MacBook Pro now, and I don’t really need or want two laptops). And, my music studio desk with rack spaces is now up on eBay. |



Entries (RSS)