Tuesday, November 4, 2008

VPR Reports Campaign 2008

See VPR Reports Campaign 2008 at its new home on bradley-holt.com.

For coverage of local Vermont and national election news, check out the VPR Reports Campaign 2008 page that we (well, Jason really) put together. The 2008 Election Map is a Flash widget provided by NPR but other than that the page is all XHTML, CSS, and JavaScript (via jQuery and jQuery UI). Check back throughout the evening for updated information and listen to live coverage on VPR starting at 7pm tonight!

Tuesday, October 28, 2008

GTalk Profile on ReadWriteWeb and NYTimes.com

See GTalk Profile on ReadWriteWeb and NYTimes.com at its new home on bradley-holt.com.

GTalk Profile is a website we originally launched three years ago right after Google Talk itself was launched. The website was recently featured on ReadWriteWeb and syndicated to the NYTimes.com technology section. From the article:

Google Talk is probably one of the few messaging clients that doesn't have a way for you to interact with other Google Talk users unless you know their email address. GTalk Profile provides the perfect solution to this problem. Using Google Maps, GTalk Profile allows users to plot where they are on a map and also find other users around the world. Simply type your city and state into the search box and GTalk Profile will provide you with a list of users near you along with a description of each user. Clicking on a name takes you to a profile page where you'll find a longer description, photos, interests, location, and the option to request a user's Google Talk information.
It's unfortunate that we haven't been able to spend any real time working on the website for quite a while and that it's not an example of our best work. However, we're thrilled to have the attention and very glad that people like the service.

Monday, October 27, 2008

Vermont 3.0 Thoughts

See Vermont 3.0 Thoughts at its new home on bradley-holt.com.

On Saturday Jason and I attended Vermont 3.0. We were interested in seeing what it was all about and see if it's something we'd exhibit at in the future if we're looking to hire. We walked the floor and had a chance to to talk with several people we know.

First of all, I think it's great that there is a concerted effort to promote Vermont as a technology center. However, the name "Vermont 3.0" is an immediate turn-off to me. It's an obvious reference to "Web 2.0" — a loaded term that is often misused. Most so-called "Web 2.0" practitioners haven't even gotten Web 1.0 right yet. Sure, we've got technology here in Vermont but I'm not sure how anyone could imply that Vermont has somehow moved on from "Web 2.0" to "Web 3.0". Or maybe I'm wrong and the name is not a reference to "Web 2.0" at all.

Speaking of "Web 2.0" — I didn't see a folksonomy section on the Vermont 3.0 website. A handful of people used the #vt3 hashtag on Twitter but there were several more people talking about it that simply used "Vermont 3.0" in their tweets. Some guidance from the event organizers on suggested tags would have helped to make this content easier to find and encouraged online conversation amongst participants. The event organizers should have suggested tags to use on Twitter, Flickr, Technorati, and any other social media site that a conversation may occur at. I didn't have the Eee PC with me so I'm not sure if wireless internet was available. In my opinion, free wireless internet is a prerequisite for a tech conference.

We dropped in on two of the panel discussions. First the "So you wanna build websites?" panel and then the "So you wanna develop software?" panel. The discussions were definitely geared towards people interested in switching careers (or choosing what career to go into). We've generally been disappointed about the topics on which schools are focusing. It seems that schools are more interested in teaching what's "hot" and will boost enrollment numbers rather than teaching a fundamental base that will serve students throughout their careers. I was pleased to hear Mike Battig, a computer science professor at St. Michael’s College, talk about how a good computer science education will teach students things that will be relevant regardless of changing technologies.

In conclusion, I'm not yet sure if we'd exhibit at Vermont 3.0. I think a career fair might be too narrow a focus. I think it would be much more interesting to have Vermont organizations showing how they are using technology to create value in the world. This would give people a chance to gain much more insight into these organizations and the true state of technology in Vermont.

Friday, October 24, 2008

Vermont 3.0

See Vermont 3.0 at its new home on bradley-holt.com.

Jason and I (from Found Line) will probably be stopping by Vermont 3.0 on Saturday. We're not exhibiting but I'm curious to see what it's all about. If you're planning on being there then let me know. You can either comment on this blog entry or, if you're own Twitter, send an @ reply (I see all replies even if I'm not following you) to BradleyHolt. If you already have my contact info then feel free to send me an email or instant message instead. See you there!

PHP In Google App Engine?

See PHP In Google App Engine? at its new home on bradley-holt.com.

According to the newly posted App Engine Product Roadmap, there are plans to add "support for a new runtime language." In an email to the Google Apps Small Business Solution Providers mailing list Google had this to say:

"Of particular interest, may be payment for additional resource usage and a new runtime language - I can't say what this language is, but you can probably guess if you've been following along with community demand."

Looking at the issue list, support for Java is the most requested item followed by support for PHP, Ruby, then Perl. If you haven't already, please go star the "support for PHP" issue (please don't comment on it as it will email everyone who has already starred it - just star it!). Of course, I'm hoping Zend Framework is the framework of choice for all the App Engine specific APIs as well.

Thursday, October 23, 2008

Zend_Container Thoughts

See Zend_Container Thoughts at its new home on bradley-holt.com.

It seems that there's some interest in my Zend_Container proposal including possibly using it as part of Zend_Application. I still need to move Zend_Container from "New" to "Ready for Review" but first I need to add some more details to the proposal. I want to talk about some thoughts on Zend_Container that may be helpful in understanding how it could be useful. For those who aren't familiar with it, Zend_Container is a proposal for a simple dependency injection container in Zend Framework.

I have been asked to show some more use cases for Zend_Container. I think the main thing that people want to see (correct me if I'm wrong) is how Zend_Container would be used as part of a larger web application. In order for Zend_Container to work, it needs to "contain" all of the components that it will be responsible for managing. This means that every component that will either a) be a dependency for other components or b) have a dependency on other components (or both) needs to get added to the container.

In the proposal I show an example of the getComponent method as a way to get instances out of the container. However, use of this method is discouraged. You should instead use setter injection (I'm not sure yet if the proposal will support constructor injection) and let the container provide the instance for you. Dependency injection is sometimes referred to as "inversion of control (IoC)" because it requires you to invert your thinking. In your individual components you are giving control over to the container and letting it provide your dependencies for you rather than reaching out and fulfilling these dependencies yourself (as is done currently with Zend_Registry). This is why every component needs to be added to the container — how else would the container know what to inject or even be able to perform this injection?

This inevitably leads to the question, how do we bootstrap all of this? In other words, how do we get all of these components into the container in the first place so all of this "magic" can happen? In the proposal, I showed examples of manually adding components using the addComponent method. This is a great way to add components and there is nothing wrong with doing this. However, this could start to become impractical if you have a lot of components to add to the container. Another option is to use configuration to add all of the components. I don't have an example of this yet in the proposal, but the basic idea is to list a bunch of components in your configuration and let Zend_Container add all of the components based on this information. This is more practical when you have a lot of components to add to the container.

Another option, which is not yet in the proposal, is to use a combination of directory/file scanning and reflection to add components. This could be hugely beneficial to modular applications - simply drop in your module directory and Zend_Container could automatically load components from your module. This is the sort of thing that I think the people working on Zend_Application thought might be helpful (let me know if I'm way off-base here). Of course, this opens up a host of potential efficiency issues that would need to be thought through (i.e. components should probably be "lazily" loaded and implementation/interface mappings maybe should be cached).

While I haven't yet provided any more use cases, I hope this information is helpful in understanding the role Zend_Container could play within Zend Framework. As always, I'm open to feedback even though the proposal isn't officially "Ready for Review." So far I've mainly focused on the "pure" dependency injection parts of the proposal so any other ideas on how Zend_Container could be used as part of a larger application would be great.

Wednesday, October 22, 2008

BTV PHP UG Meeting

See BTV PHP UG Meeting at its new home on bradley-holt.com.

The Burlington, VT PHP Users Group will be meeting tomorrow night at Bluehouse Group in Richmond. David Walsh of Standards Technology Group (STG) will be giving a demo of STG's web application. STG will also be providing massive amounts of pizza. Matthew Weier O'Phinney, Software Architect for Zend Framework, will be giving a presentation on using Dojo, a JavaScript framework, within Zend Framework. More details are available here.