Last week I gave a presentation on creating interactive web experiences using jQuery at the Wharton UIConf/Higher Ed Web Symposium over at the University of Pennsylvania.

For the presentation I took a plain HTML student schedule form and added a bunch of interactive features: a floating modal dialog box, visual animations, dynamic event handling, and AJAX content refreshes and server posts. Then I walked through the core features of jQuery that make it an invaluable tool for developing web applications that are both interactive and maintainable.

The demo applications are available here:
http://uiconf10-jquery-app.heroku.com/

The slides are available here:
http://uiconf10-jquery.heroku.com/

Read the rest of this entry »

This week I gave a presentation on security issues facing web developers to members of PANMA, the Philadelphia Area New Media Association, along with security expert Justin Klein Keane.

View the slide deck in PDF format

View related web security resources

My presentation covered common web security risks including cross-site scripting, injection, cross-site request forgery, and a few others listed in the OWASP Top 10 project. The presentation is meant to be a starting point to help web developers get into a security mindset. There’s valuable lessons in there for folks running any kind of web system using PHP, .NET, Ruby on Rails, or any other web platform.

I recently wrote a series titled Spec’ing the Specs for my employer’s blog on the topic of software project planning.

The posts aren’t focused on a specific approach or methodology. They offer up some practices to help keep communication and collaboration alive throughout the life of a software project from conception to deployment.

What kind of planning practices have you tried on your own projects? What’s been an amazing improvement? What’s been a failure?

Spec’ing the Specs

  1. What should my software do?
  2. Rethink the manual
  3. Keeping a project on track

Some web developers avoid systems work like the plague. I can understand a developer’s reluctance to take a position that comes with systems responsibilities. Systems roles usually come with thankless maintenance work and after hours on-call duties. It’s the kind of work that gets you reprimands when services are unavailable but goes otherwise unnoticed when things are running smoothly.

So why do developers need to worry about systems? Because we’re increasing the complexity of our apps with new development platforms, single-focus software solutions, and interconnected cloud services. These new tools help us release features faster and make our applications more reliable and performant. But with every extra bit of complexity we’re adding new infrastructure demands to support our apps. Read the rest of this entry »

ASP.NET Master Pages are a great way to make reusable web page templates. A Master Page template file can hold all the common HTML markup, CSS and JavaScript references, and .NET controls that appear throughout the pages of your web site. Each of your web pages injects only its own specialized content into the shell of the Master Page.

Once you start using Master Pages as shared templates it’s tempting to start putting shared functionality into them. After all, Master Pages fire their own events like regular web form pages. They can be referenced as objects from the pages that use them. So they may seem like a good place to keep common functions and properties that you need throughout the pages in your site. But there are a few Master Page gotchas that make this a poor practice.

Read the rest of this entry »

Last week I attended the Philly Emerging Technologies for the Enterprise conference (#PhillyETE). It was my first time attending the five year old conference organized by Chariot Solutions. From start to finish it was a good event for software developers looking to get up to speed on some technologies that are well on their way to critical mass in the industry. Three hotel meals a day and open bar happy hour events didn’t hurt either.

A lot of the topics on the agenda weren’t news to attendees. But the chatter surrounding them indicate growing acceptance of the tools and concepts as industry standards. The elusive “enterprise” is a beast that takes time to come around. But smaller, more agile shops are tackling enterprise problems more than ever. And with that shift comes a quickening pace of the variety of tools folks are using to tackle those problems. Static, monolithic solutions are being replaced, or at the very least enhanced, one by one by quickly evolving, narrow focus options.

Read the rest of this entry »

So, Gruber thinks that Google’s The meaning of open blog post is the biggest pile of horseshit he’s ever seen from Google. I couldn’t disagree more.

The Google post is long. On first skim I can see coming away thinking it flip-flops. But the core principals in there are solid and clear. It lays out an alternative model for business that the general public often has trouble grasping: Open.

Read the rest of this entry »

BarCamp Philly rocked this weekend. Somewhere around 200 people piled into the University of the Arts with amazing amounts of energy to share ideas on tech and community. I met a lot of great people from the local area that I hadn’t met before. There were people from all kinds of backgrounds: development, design, community organization, marketing, and social media. The organizers, Roz Duffy and JP Toto, and all the volunteers deserve lots of credit for making the event a huge success.

Read the rest of this entry »

BarCamp Philly I’m really excited that Philly will host its first BarCamp “un”conference in just a few weeks. There’s a ton of energy around the event with lots of folks from different backgrounds signed up to attend. The planners have put together a great location for the day in classroom space at the University of the Arts in Center City.

Read the rest of this entry »

Craigslist is my goto site for second-hand gear. Concert tickets, computer hardware, gaming systems… No matter what I’m looking for I know eventually someone will put one up for sale.

Scanning through endless listings of unrelated garbage though is boring. That’s why I use Google Alerts to do the boring work for me. Google Alerts keeps an eye on Craigslist and sends me an email whenever keywords that I’m interested in are posted anywhere on the site.

Read the rest of this entry »