Archive for the ‘Design’ category

Web freelancer conference

July 21st, 2010

indieconf – the conference for independent web professionals – is now open for registation.

What is indieconf? It’s a conference that brings together the topics that affect freelance web people with experts who’ve been there and done that.  I’ve attended a number of tech/web conferences over the past 12 years or so, and while they’ve all been ‘good’, there’s usually very little in the way of information that helps me in the business side of my work.  As an independent, there’s questions about bookkeeping, outsourcing, legal issues, time management, billing, sales and marketing, and more that don’t typically get addressed at the typical tech conference.  And at ‘small business’ events (conferences, networking meetings, etc), there tend to be very few ‘web geeks’ who speak my own language and understand the particular challenges that I face.

So, from that quandary, indieconf was born.

I’ve been contemplating this for a while, focused the idea some, and have been working for the past 6 weeks organizing a core set of speakers/sessions, location, paperwork, and more ‘stuff’ that goes on with a conference.  I’m not even half done, but have been having a great time so far.  I think we’ve got a pretty solid line up of speakers and sessions so far, although we’ve got room for a few more (planning between 15 and 18, and we’ve got about 9 or 10 nailed down).

One of the things I’ve tried to do with this is to get speakers from outside the Raleigh area.  Right now we’ve got speakers from California, Texas and Pennsylvania as well as the Raleigh area and the Carolina coast.  Even people who’ve been to many local or regional events in the NC area likely won’t have crossed paths with all of these speakers, which I hope is seen as a good thing (I think it is!).

So whether you’re a PHP guru just starting out freelancing, a PSD master who’s been at it for years, or someone just considering getting in to the world of freelance web work, I think indieconf will have something for you.  With that said, what are some other types of sessions/info you’d like to get out of a conference like this?  I’ve got some more topics planned based on early feedback from people, and would like to take on a bit more before making more decisions.

I look forward to seeing you in Raleigh this November at indieconf!

UserFly Usability Checking via Screen Recording

March 9th, 2010

UserFlyI recently found UserFly.com, a service which will record videos of the visitors to your site, allowing you to play them back and watch where users go (and how they move their mouse around on the screen).

I was flabbergasted at how easy this was to use – I tried the free version and had recordings going in 2 minutes. It was that easy. It has to be seen to be believed.

As a techie, I’d tried to build something similar 4 years ago. Owing to my own limitations, as well as the much more fractured browser landscape 4 years ago, I never got this working to the level that I liked. Having attempted just a small portion of what userfly is doing, I can truly appreciate the engineering that went in to this service.

If you’re interested in testing it out, please follow my referral link (yes, it’s an affiliate link). They offer a free version to get going, and paid versions start at $25/month $10/month. The $50/month plan would be what I’d recommend if you have any ecommerce or security, as it will handle SSL pages. But the free or $25/month packages might be fine for basic sites.

Why is Twitter using XMPP/Jabber protocols?

May 21st, 2008

This is probably going to make me look dumb, but that’s never stopped me from posting before.  Was reading another article this morning about how Twitter’s been down *again*, which got me to thinking about other options, then to think more about the technical hurdles facing Twitter.  One thing I’ve read a few places is that Twitter uses XMPP (Jabber’s protocol) for pushing data around.  I’m over simplifying here, partially because that’s about as much as I know :)   I was able to get Twitter to send me an XMPP subscription to their full feed, and I set up a jabber server to listen and collect the data for awhile.  Interesting concept, and perhaps that’s why they did it that way – to allow for a truer ‘publishing’ model.  However, it seems that the overhead of that process might be causing them problems.

Am I too naive in thinking that straight polling would be easier, more scalable and perhaps more efficient?  Publishing involves having to keep track of listeners and sending information (writing) multiple times.  A straight polling approach would convert the app to more of a ‘read’-heavy app – something which most databases are very good at.  Why is XMPP in the mix at all at Twitter?

Again, yes, there’s probably a perfectly good technical rationale for this, but since the technical infrastructure has seemd to remain largely a secret (yes we know they use Ruby on Rails and that couldn’t possibly have any bearing on their scaling issues because they’ve solved that scaling issue over and over…) I’m just guessing here.  Can someone more informed than me shed more light on this?  Thanks.  :)

WebDevRadio podcast series – Interview with Brian Moon on scaling LAMP

May 3rd, 2008

This is the last in my MySQL conference series.  Brian Moon, author of Phorum and Sr Developer at Dealnews.com, sat down and gave a recap of his two presentations.  We have here nearly a full hour of his insights in to PHP/MySQL scalability, both with an app like Phorum and a more complex environment like Dealnews.  The sound was pretty good, although there was a hum in the background I tried to get rid of via ‘noise removal’.  I think this still sounds decent.  Let me know if the sound is too awkward and I’ll give it another pass if need be.

Thanks to Brian for going over things in such detail!  I hardly asked any questions, as I was trying to soak up as much as possible for myself, and I picked up more than a few useful nuggets.  He also touched on the future of the PHP//MySQL combination with the MyQSLnd (“next driver”?  I forget now!) driver being developed.  There’s some great info in here – listen up!

Also, as a reminder, if you have any job postings for your company, please help build up the WebDevRadio Jobs board at http://jobs.webdevradio.com, and thanks to the first few posters who’ve helped get things rolling.  :)

facebook or linkedin app I’d like to see

April 25th, 2008

TechCrunch has a story on a recently funded Facebook app which, frankly, seems stupid.  Buying and selling ‘friends’ as ‘pets’.  People have already sold me somehow on Facebook, and I just ignore it.  I don’t get it.  I thought MySpace was the place for stupid/flitty ideas, but it seems Facebook is moving in that direction, having grown their network to towering heights.

So, perhaps LinkedIn is the place to turn for apps with some sense, but I don’t see that you can write your own apps for LinkedIn, yet, anyway.  Can you?

What I’d like to see is a time tracking/project tool with invoicing capabilities.  This would turn LinkedIn or Facebook or whatever into a social business portal.  Guru and ODesk and others seem to be doing OK with this, but you’re relying on people you’ve never met, with a race to the bottom in terms of price competition from overseas.  If LinkedIn had a job/work type thing which would allow people to put out small chunks of work, the ability to find quality, recommended people from inside your own network would be huge.  They already have a ‘jobs’ thing, but it’s pretty limited.  Extending it to allow project tracking would rock.  However, it’s probably outside of their core focus, and it may never happen.

Will someone be able to build something like this on top of Facebook instead of more stupid ‘zombie’ apps?  Technically, probably yes, but I fear Facebook has devolved so much in to a place where professional stuff won’t ever take place on any real scale.  Am I wrong?

My project checklist – what are yours?

April 23rd, 2008

I’ve been taking on a lot of small projects lately, and have been noticing the same problems over and over.  I’ve seen these for years, but I’ve dealt with far more projects in a short time than I ever did in the past.

The checklist below wouldn’t necessarily determine if I’d take a project or not, but would likely influence the rate and schedule.

  • Does the current project already have unit tests (or even just an integration test plan) in place?  (I don’t expect 100% from anyone, but having *some* in place tells me something)
  • Is there any continuous integration in place?  Will you (client) balk at me spending time to set it up?
  • Is the current codebase even *unit testable*?  Most codebases I’ve come across, at least in the PHP and Perl world – are not.
  • Is the code portable?  I would like to be able to recreate a development environment on a brand new machine in 30-60 minutes with minimal configuration (which should be documented).
  • Can I speak with previous team members?  Being able to send some emails to ask questions to someone who worked on the project before can save a lot of time.  I try to make myself available for code I’ve written in the past as well (to a point – I can’t remember everything!)
  • Where is the documentation?  Locally written is OK, or on some web-base project system is OK too.  On your office whiteboard may even be OK as a start.
  • Where are the specs?  I fully expect written specs to change, but you’ve got to have some semblance of written specs to start with.
  • What sort of project management / project tracking system do you use?
  • How available is someone to answer my questions via im/skype/phone/email?

This is likely not a full list, but some of the basics that I’ve seen over and over plague multiple projects.  What would be some qualifying questions you’d use in a checklist like this?

I’m setting up phpUnderControl right now, and configuring it with phpUnit, and will need to start a test plan process for a client in the next few days.

Social filters on your inbox

March 23rd, 2008

Michael Arrington posted a fresh lament about the state of his inbox. He’s got 2400+ emails in his inbox right now, and he will likely nuke them all and start over (yet again) shortly. This got me to thinking (yet again!) about email/spam/inboxes. The article rightly pointed out that right now we only have ‘spam’ and ‘not spam’ in most email filters. Perhaps some systems like I’m about to describe already exist, but I haven’t seen them yet, or heard of them.

In a nutshell, I’m envisioning a filtering system that would apply filters based on the ‘from’ email (validated to whatever extent you can with SPF-type systems). The filter would consult your address book and analyze your behaviour with that person before. If you routinely reply to bob@aol.com within a few minutes of receiving emails from bob, the filter would apply certain flags/labels to that email, perhaps things like “urgent” or “frequent contact” or something like that. Your email program would then allow you to construct views based on those labels.

However, I’m envisioning taking that a step further, as most email systems have a rather limited view of your ‘address book’. Merge in your social media contacts via their feeds, and you have another set of data to filter against. If I get an email (or generic incoming message routed through this ‘system’) from someone I follow on Twitter, then a ‘someone I follow’ flag/label is applied to the message. If I’m following a corporate blog and get email from someone at that company, it gets another flag/label, and so on…

There are likely a dozen or more logical holes in this I might be missing, but at a conceptual level this sort of thing will eventually be built, I’m pretty sure. We’ve only seen ‘social media’ *really* take hold in the last couple of year, so I’m not too surprised that this concept hasn’t gone mainstream, but I do think it will. And it might not end up being applied *just* to email – the ‘inbox of the future’ might end up looking something like friendfeed.com (I hope not from a visual standpoint) for a majority of people.

What do you think?

Speech to take off as a search interface? No way…

February 22nd, 2008

Bill Gates is predicting that we’ll interact with computers via speech and touchscreens more in the future.

In five years, Microsoft expects more Internet searches to be done through speech than through typing on a keyboard, Gates told about 1,200 students and faculty members Thursday at Carnegie Mellon University.

I just can’t see this happening without a major redesign of work areas.  Far too many people are in shared offices where constant speech is a distraction.  Also, think of how we search for data now – we find data, look at it, decide this isn’t what we needed, and search again, perhaps for only a slight variation of what we originally searched for.  Now imagine *hearing* your co-worker do this.  Constantly.  All day long.

Imagine being in a library and wanting or needing to search for an unpopular topic.  Now imagine doing it with speech

Keyboards and mice aren’t 100% perfect, but they are *quiet*, and don’t distract others around you nearly as much as someone talking.  Keyboards and mice also offer a level of privacy that speech just never will.

Now, if Gates was predicting *thought* interaction – just think about stuff and the computer would help you search for it – I’d agree 100% that it’s good and we should be striving towards that.  But speech?  I’m perhaps just a stick in the mud, but I don’t see it taking off, except for niche vertical markets (customer service kiosks, perhaps, or medical systems for disabled individuals).

What do you think?  Am I missing some killer use cases?

Grails multiple select tag

January 6th, 2008

I was a bit disheartened to learn that the standard Grails GSP tag for ‘select’ didn’t accept a list in the ‘value’ parameter.  This is necessary when building HTML SELECTs with multiple options preselected.   So I wrote a patch, then realized it was already an issue, but hadn’t been looked at since May 07.  I pestered the mailing list, and it might be looked at again for inclusion before the final 1.0 release (fingers crossed!).

This morning I realized that I could just make a new taglib.  It’s not ideal, but what the heck, right?  It gets me over my situation, and can make a slight mod to my code if/when Grails natively  supports this functionality.  In the meantime, I contibuted back my taglib.  It’s mostly a pared down version of the stock FormTagLib.groovy file from Grails already, with non-select functionality removed, and my few extra lines added.  The code is up here if you need this for your next Grails project.

CSS oversight

January 5th, 2008

I was speaking to a friend this evening about a new site he’d put up, and I noticed yet again something that’s perplexed me for years.

I changed my Firefox settings to use a gray background instead of white.  It’s easier on the eyes in many cases, and I’ve had it set that way for years.  I’ve also set my Windows settings to a gray background custom theme when using Windows as well, so that all the applications will reflect that, as they are able.  Anywho… I noticed again tonight that this new site my friend had put up had many custom visual settings in the CSS file, but none for the background color.  Font colors, images, div backgrounds, etc. were all set to look good, assuming you had a white background.  If you didn’t have a white background, it was difficult to read.  Not impossible, but difficult.

Now, I *know* I’m in the minority of people who change their default settings.  I understand that.  What I don’t understand, I guess, is going through all the trouble of setting dozens of colors on every conceivable aspect of your UI *except* the background color.  Just an oversight, but it’s a rather pervasive; even Yahoo.com doesn’t set a background-color, yet they set a font color for the body.  If my custom background color was the same as their font color, I’d certainly miss out on some of the text, no?

So I put it out to you designers out there – do you set a background-color on your HTML body element?  If not, why not?