This is a really interesting take on a online bookstore that is really optimized for free form exploration with a very intuitive interface for those accoustomed to a mouse with a scroll wheel.
Interesting User Interface, and it brings up some thought provoking usability questions.
This type of experimentation is going to lead to some very interesting Information architecture in the future.
I don’t know why I’m still surprised by the Internet, but there’s a guy who ranks loan calculators.
Fortunately he liked webdigs.com‘s mortgage calculator:
A new version of the mortgage calculator will be out soon, maybe we’ll break 9.
Many times using scripts I find on the Internet turns into kind of a hassle. They are usually unfinished side projects, or are kind of bloated and slow.
TableKit is not one of those scripts, it’s fast & easy to implement. Development time was low, and the designers didn’t complain too much about working with it. What it lets you do is create a html table slap in some ID’s & classes, load the js, and you have a really nice sortable table. This sort of elegance in design is never easy and the folks at Millstream Web Software have done a great job on this.
I used it on the Real Estate site I’m working on webdigs.com/mywebdigs (free sign up required) to organize our users favorite saved houses. I’ve found myself using it a lot for my own home search.
This last week has been really got me feeling pretty positive about the future of the Symfony PHP framework.
Last Thursday called me and is the first recruiter to ask me if I knew the Symfony framework. She’s got a pretty awesome opportunity near Boston, MA to fill if anyone is interested.
The next Tuesday I went to a presentation at Sierra Bravo here in Minneapolis, MN about the Zend Framework and Lucene. Maybe I’m a fanboy but it really looks like Zend has some catching up to do. Lucene is impressive and there is a Symfony plugin for it. Justin, Tom, and the rest of the Sierra Bravo Crew have already cranked out 5 Zend Framework sites but when I showed them the development environment in Symfony someone in the crowd literally said “wow”. It was admittedly a pretty nerdy bunch, when Justin (the presenter) mentioned a design patterns book he liked the guy next to me tapped his chest and made the peace line and said “that’s who I’m down with” 🙂 If you are interested in attending their next presentation RSVP here.
The 3rd thing that reminded me how great Symfony is was just today when I showed a client an Admin Crud that I had created in about 30 min. He was pretty excited, and it’s nice to have happy clients.
Yahoo Pipes allows anyone to create their own mashup in a method very similar to creating a flowchart.
After messing around just a little I was able to create 2 pretty cool little mashups:
The first one geocodes garage sale locations and puts them on a map. Not very well, but it was really easy to do, so it was still worth the effort
The second one combines 5 different Job search feeds into one, checks to see if the titles are unique, and then sorts the results in descending order by published date. I still prefer indeed.com for looking for Job information, but if I can also grab the feed to format myself to fix those problems.
All in all, it’s pretty cool stuff. I think I have a real world use for an aggregated real estate news feed on www.webdigs.com already
This is a narrative of my experience with the Symfony PHP 5 framework over the last 10 months. The short story is that I’m a fan, but it’s not perfect.
Continue reading “Symfony PHP Framework – My first 10 months”
I should be receiving a “PHP Web 2.0 Mashup Projects” from PACKT publishing in the mail sometime soon, once I get it I’ll try to have a review up in a couple of weeks.
If you are interested check out the full book description at PACKT publishing
I’m pretty excited about it, I was planning on starting a personal mashup project to link Craigslist garage sale postings with google maps, so this book is coming along at exactly the right time.
So I was taking my morning stroll through popUrls when I came across two articles. One about CrazyEgg, a really cool tool for gathering usability statistics, and the other this really random, unconventional, whimsical, unprofessional, unattractive, outdated, not entirely original, and really really effective website for some hippie named Miranda July. (FYI – I call anyone who puts effort into being creative a hippie, although if they are mall style crafty I just block them out of my mind)
Anyway Miranda July’s site is a mess, she did it with a camera, a fridge, & a stove. However, despite me being 100% UNinterested in her product I read ALL THE AD COPY. I haven’t even read all the add copy for sites I’ve made myself, it’s miserable marketing gobly-gook because that’s what clients expect from “professionals”.
I think this sort of grass-roots, direct from the source w/0 any middle men, advertising is what will cut through the ad clutter so well described in this Frontline episode.
The lesson here is that once again “Content is King” and the ROI on details is difficult to gauge and probably not a high as most people think.
However…. if we go back to the the majority of the the marketing messages I(we) need to communicate a camera and a kitchen full of appliances might not be a sufficient tool-set, and a client probably wouldn’t “get it” anyway.
Enter CrazyEgg I read a really good introduction at Read/Write Web. I haven’t tried it yet but I think I’m going to push for it on my current project.
I’m tired of writing
So last Thursday the majority of the MoCo Web Development team and I attended the MySQL Meetup featuring Jay Pipes of MySQL. It was hosted at Metro State U. in Minneapolis, MN the facility was top notch (read: they had pie and coffee 😉
Jay Pipes is an excellent speaker whose enthusiasm about MySQL is contagious. If you get a chance to hear him speak or back him into a corner for 20 questions I highly suggest it.
The thing Jay Spoke about that was most relevent to what I’m doing now was Horizontal Partitioning [article] [manual] which is taking a table with a very large amount of rows and breaking that heap into a series of smaller groups that can be intelligently loaded into memory on a as needed basis.
The obvious way for to do this for my, and I’d assume many projects is by, year. This would speed things up because my project’s users are most likely to only need to access the current year’s information. If I only ask MySQL to load up a table containing the current year then that’s a much smaller bite to chew.
Horizontal Partitioning can also be done with a hash of one or more other columns, which makes it very flexible, and very useful for medium to huge projects.
On a related topic I also realized that I’ve been asked by my supervisor to investigate the benefits of Vertical Partitioning before either of us knew what to call it. Essentially it’s breaking up tables and adding one-to-one relationships between them. This allows frequently accessed sections of the original table to be accessed in isolation without having to load a bunch of unused fields to memory. I’m lead to believe that some db’s handle this pragmatically but MySQL does not.
Another key points were that the most cost effective way to mitigate a MySQL bottleneck is to add more RAM to the server. This is essentially throwing money at the problem, but less money that the equivalent labor costs associated with other solutions.
Lastly the common yet important advice of “use the smallest data container possible” because “a BigINT is twice the size of a INT but a INT is twice as fast”.
There were many many other gems from this lecture, but I forgot my notes at work and I’m tired of writing
Update (4/1/06 9:21PM) — I found this useful list of tips & tricks also partially written by Jay Pipes http://forge.mysql.com/wiki/Top10SQLPerformanceTips