Get informed. Make a decision. Then make your voice heard.
Tag Archives: programming
“Why people still believe in the Waterfall model”
Psyc+Tech: Don’t draw diagrams of wrong practices:
The Waterfall model is originally invented by Winston W. Royce in 1970. He wrote a scientific article that contained his personal views on software development. In the first half of the article, he discusses a process that he calls “grandiose”. He even drew a figure of the model, and another showing why it doesn’t work (because the requirements always change). This model is the waterfall. He used it as an example of a process that simply does not work. In the latter half of the article he describes an iterative process that he deems much better.
OK, so why do people still advocate the waterfall? If you look at the scientific articles on software engineering that discuss the waterfall, they all cite Royce’s article. In other words, they’re saying something like “The waterfall is a proven method (Royce, 1970).” So they base their claims on an article that actually says the opposite: that the model does not work.
This is how science (unfortunately) often works – researchers just cite something, because everyone else does so as well, and don’t really read the publications that they refer to. So eventually an often cited claim becomes “fact”.
I would argue that Waterfall methodologies can work, however just like Agile, it depends on the project, the team, and the environment. As always, pick the right tool for the job. A development methology is just another tool. Just another means to an end.
“GData is a new protocol based on Atom 1.0 and RSS 2.0”
Google does an end run around the RSS and Atom war. GData, Google’s new API to read and write from the web, combines elements of both. It’s big additions over the Atom API are authentication and query functionality. RSS 2.0 output is mainly available for reads.
Check out the docs at Google. More on the protocol and authentication.
“Wow… Free Visual Studio versions – still”
From “Software is too expensive to build cheaply…” comes the good news that Microsoft is extending its Visual Studio handout program.
C# isn’t bad. No really! I think I’m going to download one of these and get back to experimenting (in my copius free time of course).
Some objections with Agile, in particular with Extreme Programming, methodologies
I think in some environments, for some products, using XP and other Agile methodologies make sense. Read “The New Methodology” by Martin Fowler for why. However, some promote it as some kind of silver bullet. A panacea. Shelley Powers raises some good points to think about:
…what the makers behind the Manifesto are promoting is incremental releases–the continuous state of beta that we see at Flickr, Google, Yahoo, and other sites. Yup, that’s where it came from folks: agile programming.
The principle isn’t bad: release small, release often, and don’t get stuck in analysis paralysis. However, the problem with the concept is that many applications can’t be released small, and beta is only cool in certain small circles. Most of us don’t want the systems we’re dependent on to be in a permanent state of change, of beta. I don’t want my income taxes managed by beta software. I don’t the hospital lab’s work to be managed through beta software. I certainly don’t want NORAD to use “Radar by Google”.
The release early, release often doesn’t solve the problems of managing larger and critical need software applications. As for applications that have followed this approach, such as Gmail and others of that nature, we’re already seeing a great deal of pushback against features appearing and disappearing without warning, and applications failing, and cute little plumbers popping up saying, “Ooops! Something broke”. It’s wearing thin; it’s no longer so fun.
The Two Webs
Dare Obasanjo: The Two Webs:
This is an interesting distinction and one that makes me re-evaluate my reasons for being interested in RESTful web services. I see two main arguments for using RESTful approaches to building distributed applications on the Web. The first is that it is simpler than other approaches to building distributed applications that the software industry has cooked up. The second is that it has been proven to scale on the Web.
The second reason is where it gets interesting. Once you start reading articles on building RESTful web services such as Joe Gregorio’s How to Create a REST Protocol and Dispatching in a REST Protocol Application you realize that how REST advocates talk about how one should build RESTful applications is actually different from how the Web works. Few web applications support HTTP methods other than GET and POST, few web applications send out the correct MIME types when sending data to clients, many Web applications use cookies for storing application state instead of allowing hypermedia to be the engine of application state (i.e. keeping the state in the URL) and in a suprisingly large number of cases the markup in documents being transmitted is invalid or malformed in some ways. However the Web still works.
REST is an attempt to formalize the workings of the Web ex post facto. However it describes an ideal of how the Web works and in many cases the reality of the Web deviates significantly from what advocates of RESTful approaches preach. The question is whether this disconnect invalidates the teachings of REST. I think the answer is no.
Deleted my del.icio.us account, keeping RawSugar
del.icio.us does not allow me to push my feeds to it, forcing me to spend effort using its service that is better spent elsewhere. The pattern emerged where I would post links on del.icio.us far more frequently then paradox1x or at Philly Future, which, in the end, is counter productive – I already have a publishing platform!
Many of these services have tools that enable you to post on them and have that participation pushed back into your site. Other tools exist to grab your data from these services and pull them into your primary space. That’s not enough.
I predicted earlier that these services will have to acknowledge and leverage what we already do in our own spaces, in our own environments. As each of us start our own blogs – our own publishing systems – what do we gain by posting twice? Three times? Four times? Not all that much when I should be able to post once, in an environment of *my* choosing, syndicate what I want, and be done with it.
RawSugar gives me this capability, saving me a lot of time in sharing what I want to share with a larger community.
I’m happy you kept after to to try it Bill, so I am going to stick with it for now.
“It’s not like you’d find in on Google … right?”
Philadelphia Inquirer’s Kristen A. Graham deserves credit for writing about teenagers and MySpace and not putting out yet another sexual-predator, obscenity, fear-fest as so many others have.
She parses the real issue that few fellow technologists address or want to concern themselves with – how MySpace has empowered millions of children to share their private lives in full public view, the repercussions of which are not yet understood.
In fact, I’ve only seen one post, by Scott Karp, and he was met with a chorus telling him he didn’t get it or that “no one has privacy anyway so who cares”.
One oh his critics attempted to reduce the concern to that of a parent allowing the child to ride a bike, and of course we let our children ride bikes. So why not allow them participate on MySpace? Shoot – we should be encouraging both right?
How great it would be if it were that simple.
When you address privacy concerns on MySpace (or Xanga, or any other social media platform), you MUST address the nature of the web – when you post you are not simply sharing that participation with those who visit your site, but you you are contributing to a store of information that is cached on servers you don’t know of, syndicated to places you have no control over, retrievable, sortable, and searchable again and again and in perpetuity. Forever.
Sure sexual predators are a concern, but threats to living so publicly – in such a scale – permanently – are manifold.
The job we mysteriously couldn’t get. The date who ditched us for some unknown reason. The apartment application denied. The business loan we were turned down for. The incapability of moving on from past mistakes since anyone can now retrieve them and use them for their purposes. That new ‘friend’ of ours telling us about the new shoes that we just have to buy.
Imagine if your credit report was in public view. If you could not get a report of who was requesting it. Think about it.
That’s small fry in comparison to what we are *willingly* doing here.
I’m not some Luddite. I’ve had a web presence since 1996 and a blog since 1998. I don’t know many who have lived so openly on the web. But I do keep somethings close to chest and off my blog, understanding, long ago, the responsibility I had to my employers, my friends, my family, and myself – long term.
I’ve attempted practice, over the years, the good advice Rebecca Blood gives in the article:
“people forget they are publishing when they are blogging. It feels personal, it feels like a conversation – but it’s not.”
In today’s TMI age, it’s a given that that new boyfriend or girlfriend, that recruiter for the job you desperately want, is going to Google you, she said. Then they’ll find out that you’ve written about how you keep multiple sex partners and play endless rounds of Minesweep on company time.
“Whoever you don’t want to read your blog – your mom, your boss – will probably find it. Keep that in mind,” she advised.
You need to wonder why others in the digerati don’t share her concerns… maybe she sounds too old fashioned? Too old school?
Maybe Rebecca Blood just doesn’t get it?
The price we’re all going to pay is huge.
“The only architecture that matters”
lesscode: The pragmatic’s guide to Web architectures :
The Web thrives not because it uses a strict architectural style and a coherent technology stack. It thrives because so many sites pay little attention to REST and choose to focus on their users instead. It thrives because mal-formed HTML pages include GIFs and PNGs and Flash and badly written JavaScript that just works. It thrives because people go on the Web to send e-mail, IM, do VoIP and trade BitTorrent files.
The search for the holy grail, the one technology to rule them all, is as old as technology itself. I’m fine knowing we’ll never settle the score, never know whether Vi is truely better than Emacs, or whether Eclipse shadows them both. But unless you’re a vendor making money on one horse, it doesn’t matter to you.
If you’re a pragmatic developer, you have one tool in your toolbelt that always wins the day. It’s the ability to think, ask questions and make choices. To choose solutions that are best for the problem you’re tackling right now. And to keep learning. Because there will always be some new technology that’s better at solving some use case or another.
The only architecture that matters is the simplest one you can get to solve the problem at hand
atom2rss: a poorly written Atom to RSS converter
Not to vent, but Blogspot’s default of outputting Atom and no RSS for its users gave me all sorts of headaches. A huge expense in time that that drove me away from more important matters at Philly Future. CivicSpace/Drupal’s aggregator does not handle Atom. That means if you are on Blogspot, a site like Philly Future could not include you. An upcoming version of Drupal’s aggregator will have this capability. Bryght’s hosted Drupal solution does right now. However, I couldn’t wait for Drupal to release an aggregator with Atom functionality, and I’m self-managing Philly Future – so I needed my own solution.
A simple service that would, upon passing it a URL of an Atom feed, produce RSS, be best. That way I could avoid hacking Drupal code. A few folks suggested I use Feedburner, and for a while I did, until I read the terms of service. I was, inadvertently, claming I owned those feeds! Once I discovered this, I removed those feeds from my Feedburner account and found another way. After an exhaustive search on Google, I found a few Python implementations of what I was looking for, but no PHP. The hosted web services that I did find wanted to charge money, or warned they were to stop service at any moment. I had to do it myself.
Not that anyone needs converters like this anymore as most services and aggregators handle both Atom and RSS, but I figured it would be a good thing to release for others reuse, so here it is. Using the required Magpie RSS, the PHP RSS Parser library, it retrieves, caches, and parses the passed in Atom feed, iterates over its items, and outputs RSS. A brute force approach, certainly not perfect, nor complete in terms of the metadata it attempts to convert, but one that has worked for the great many Atom feeds Philly Future encounters.