Friday, November 04, 2005

Dynamically Typed Languages and Code Completion

Ruby is nice, it's a very concise Object Oriented language with a good community around it. But there is some weirdness. One selling point of Ruby is that it is dynamically typed- you don't have to declare variable types, which allows for a lot of flexibility. However, there is a cost in that those of us lazy types that have been saving the part of our brain that remembers and types out method names on objects for more important things. Well, I'm actually just letting that part of my brain rest. Now, with Ruby, I can't hit the [.] key and get a list of all of the legal calls, because, I could literally type anything and it would work. There is a magic thing called method_missing that lets you call things that don't exist.

Anyway, I think I should at least be able to get the list methods that are available in the object and its super classes, if the IDE knows what class we are dealing with, which is possible when you have the types declared. I am downloading Komodo now to see if that pans out, results here tomorrow?

Thursday, November 03, 2005

Yahoo! Maps Geocoding API

I think this is the key API advantage on Yahoo Maps- the geocoding API. It uses a REST model. My cousin says that the REST people are like the Amish. I think they are just practical. Still, it will be more practical once I wrap it into a JavaScript function, so that I can use it in the same js code that is running my Google Map.

Yahoo!Maps Beta

The new Yahoo!Maps beta looks like a decent ripoff of Google Maps GUI. They added a very cool overview window that previews your zoom extent. They even updated the Ajax API. Very nice. I was a little disheartened to see all of the Flash APIs. I really hope web development doesn't go in that direction, as I don't really like the interaction between those components and the rest of the page. However the JS-Flash API appears to make everything accessible with no Flash programming required, so maybe that is least evil way forward.

Tuesday, November 01, 2005

Agile can mean more process

I used to work for a government customer that had (has?) a hideously bloated and rigid process for building software systems, that completely forgets about the actual building of it. I recognize and appreciate the parts of that process that have to do with project selection and budgeting and the like. However, it has completely glossed over the building of the actual software. In a 3 year schedule template, only 30 days are devoted to actual development. It's inside out. It also doesn't work.

Anyway, I was in there before trying to sell agile processes- and basically failing. It was hard enough to get them to buy into iterations, becuase their whole mindset was based on control gates as the measure of progress. Of course, the only control gate with any teeth was "user acceptance review", so you had to wait until the bitter end of the project to find out how far things were off course.

Now I am realizing that the agile process I was trying to introduce need to be sold as MORE process, not less, as I had presumed. We are really addressing massive gaps in their structure. The problem becomes layering this inside of a existing framework of control gates. So, if we have a systems requirements review, the waterfall methodology suggests that we cannot pass this control gate until we have all of the requirements gathered in specific enough detail to begin design. Of course, this is an out of control gate you just sail through, unless your reqs happen to tramp in someone else's turf, in which case you have to fight to have a widget in your app, because some other project is in charge of those types of widgets.

The real mindset change is, after a certain point, replace control gates with measures of actual progress, such as running features. But how do we know if the requirements are right if we don't have a requirements review control gate? Well, first, the control gate never did work, so maybe the requirements review=the acceptance test. The only control gate with real teeth is the one we should use. How do we validate the design? Performance test it. By bringing these tests earlier in the cycle, I feel like there is a way to actually evolve the current process, rather than to blow it up.

Agile is scary for lots of reasons, but I think they are good reasons. It's kind of scary to say that you have to have working code early enough to do an acceptance test on it at the beginning, but that's exactly the kind of scare that is need to ensure quality gets built in from the start. It's kind of scary to give up control gates, but what about replacing these control gates with ones that actually have teeth? It means you might fail earlier, rather than being able to coast along for a long time without having to show results.

Sunday, October 30, 2005

CSS for tables

The web has the answers- I was looking for some nice css to style a table on my pages, and this site is quite nice.

Wednesday, October 26, 2005

Patenting XML

"Who Owns XML"

This is a ridiculous article and a ridiculous patent. The patent has no more to do with XML namespaces than it does to spreadsheets or SQL. Scientigo are nothing more than thieves. Rather than get the company spin, why wouldn't a "Tech Review" evaluate the contents of the patent, which seem to refer to ideas of what inventions could be created, rather than containing the specifications for actual inventions.

Monday, October 24, 2005

How Quickly We Lose Interest In Video Games (and work)

Techdirt comment "While folks are fretting about the impact of video games on aggressive thoughts and behaviors, Clive Thompson is taking an interesting look at how many gamers suddenly get sick of a game they've obsessed over for weeks. His theory is that once you've uncovered all the 'layers' of how a game works, it loses much of its excitement. "

Continuing a loose thread on boredom- which I think is a rather large issue with people- I think this is the case with a lot of things. I quickly become obsessed with finding out how all of the layers of a thing work, and then find that I just lose interest. What does this say about the jobs we create for people? They are not necessarily puzzles, we aren't there to create puzzles, but we should refrain from giving people jobs that they can easily master. I think there is a positive side effect of continuous improvement efforts in that they can lead us to always push forward, and pushing forward keeps things interesting.

Thursday, October 20, 2005

Cloning

I love this slate article on why South Korea is so good at cloning. I would like to create an analagous environment in the company that we are creating. Well, at least the "scientist as hero" part, not so much the "being attacked by China and Japan and having a crazy cousin at my northern border" part. I have been searching for how the dna of the company can be forced to take a certain shape, how to incentivize the right kind of behavior, and how to cook things so that the right chemistry emerges. How big can you get and still remain agile? What do you need to be the driving intellectual force that keeps things focused on the right goal, focused enough to get through the really really boring parts that are necessary to make great software, necessary to ensure that the fun creative parts are utilized in the right way. I don't think you can cook it too much, a lot it just happens by getting smart, open minded people into the groove together and seeing what comes out. Let me know if you are reading this and want to join up.

Tuesday, October 18, 2005

Stop the patent madness!

Federal Court Shuts Down Pay As You Go Wireless
"BCGI has been found guilty of infringing on pay-as-you-go wireless patents owned by Freedom Wireless. This heralds a farewell to Cingular's Go Phone and Sprint-Nextel's Boost services, both powered by BCGI.'"


I think it is insane that the patent office is letting people patent business models over technology. Stupid patent approvals are a major factor damaging US innovation. Good patents protect technical innovation, they aren't there to create monopolies around a function.

Intel's Robson tech speeds laptop startup and saves juice

Intel's Robson tech speeds laptop startup and saves juice: "

Intel is showing off some prototype Centrino systems that rock the instant startup due to integrated NAND flash memory chips. Intel’s system puts common files like system data and applications onto the flash memory, speeding up their access and reducing battery consumption...we’ve been waiting around for insta-boot for like 5 million billion years.


I have been waiting for this for sooooo long. Why limit it to laptops? The base files for Windows should have been on memory chips for ages. Flash memory is sort of the perfect solution. ROM is too difficult to update, but flash is pretty quick (faster than disk) and updatable. And lots of computers are coming with flash card slots. My printer/fax even has one. Maybe I could boot windows off of my printer....