How to build a simple site using Drupal and other open source software
All the computers in my life are littered with failed Drupal sites. Usually after installing Drupal, I'd poke around the admin UI, try to edit some files, get flustered, give up. I didn't know where to start. Well, I finally I succeeded in getting a very basic Drupal site up and running. In case some of you might be interested in learning more about Drupal, here is a summary of how I went about teaching myself the little I know.
- I started by watching some screencasts from Lullabot Had I seen the screencasts on Drupal.org, I probably would have watched a few of those, too
- Visited drupal.org and took a looked at some sites built using Drupal, and looked at the kinds of modules that are available
- I downloaded MAMP (for Mac). Or XAMPP (for Win, Linux, Solaris, or Mac)
- I read a book about Drupal by David Mercer, and started to learn a few of the many Drupalisms
- I downloaded Drupal
- And installed it using the Drupal Installation Guide
- Read this tutorial on theming and started to follow it (big warning: there are quite a few errors and ommissions in this tutorial, so you'll need to be comfortable with troubleshooting and debugging things, generally)
- I flailed for about 4 weeks while image uploading was failing, and eventually got help via the imagecache troubleshooting guide
- After I got things working, more or less, I tackled ratings by following Lullabot's Building views with Fivestar and Voting API
- I logged in as admin and set the permissions I wanted, built the site menu, tacked on a logo, tried out a various site names, etc.
- I showed it to a few people at work who helped me catch bugs, and helped me realize we needed notifications
- I started using it to post real ideas that related to the product I'm working on
- I set up an action that sends an email to the idea creator when a comment is made
- Then I Installed and set up the Notify module to send everyone (who doesn't opt-out) emails about new ideas and comments. Knowing what I know today, maybe I should have tried out Notifications module first
Right now we're using this site inside The Economist
to crowdsource product development ideas, to pitch and evaluate new features and technologies, and to generate new ideas for making money. The site is internal at this point, but my goal is to improve it (it needs work) and perhaps eventually incorporate it into The Economist
, so that we could collaborate with our users to invent new stuff. That would be fun.
While I can't show you the site we're using at The Economist, I can show you a similar site that has some placeholder content at the moment. It is called Plus One at the moment, and is in search of a new name and a purpose. Perhaps we can use it to gather ideas for how to practice agile user experience design?
I'd love it if the spirit would move you to sign up, and start posting ideas about agile UX design, your work, solutions or insights that relate to Agile and UX, and related topics. I'd also love it if you sent me bugs, or features you think are missing (like better profile pages, and ways to browse by author, or to view all ideas in a certain category...).
Hope you enjoy experimenting with Drupal. Keep me posted on how it goes.
Labels: Drupal, how to, open source
Where do Twitter users live, and other data-driven maps
Here's a map of the USA showing where Twitter users live. The map is generated by CartographerJS, http://cartographer.visualmotive.com/, using data from http://tweemap.com/.
CartographerJS via Andrew Otwell's FriendFeed.
Posted via email from Stefan's posterous
Santa's taking the N train this year
As I write, Katherine is sewing Astrid's Christmas stocking and I'm thinking of past Christmases. Like the year one of my uncles brought cans of Silly String to the Christmas eve party, and I ended up with red and orange strings permanently stuck to the bottoms of my footie pajamas. I remember waking up from the music and laughter, and walking out into the bright lights to see if it might be Santa. Now our baby Astrid is asleep, and we're listening to Otis Redding sing White Christmas. In a few years Astrid might walk out of her room and ask if Santa has arrived yet. I can't wait.
Here's to a wonderful Christmas for you and your families, and a much, much better 2010!
Stefan, Katherine, and Astrid
Posted via email from Stefan's posterous
Failing and learning: Algorithm design and user friendliness
Here's a lecture from MIT professor Charles Leiserson
on algorithm design. I didn't study computer science in college. I was more of a literature, art, architecture, philosophy guy. But my work has put me in touch with many ideas from computer science, including algorithm design. I find it all fascinating.
In this first lecture of the course, Professor Leiserson asks what is more important than performance? He gets some interesting answers. One student says that user friendliness (I'm not a fan of that term...seems so fuzzy) is more important than system performance. I guess you might call 'user friendliness' human performance. In response, Leiserson points out that performance is actually closely tied to user friendliness. True, true, true. The faster a user fails, the more the user learns. The same is true of programs and failure. At least good ones!
This course is also taught by Erik Demaine
who, I hear, is a MacArthur Fellow. I have a feeling this might be an interesting course to follow.
Using Google Maps API and open source mapping solutions in Drupal
5 Dec 2009
Notes from the Mapping and Open Layers session by Thomas Turnbull and Sam Tressler at DrupalCamp NYC 7. Corrected URL for opengreenmap.org and attributed Sam Tressler to the Lance Armstrong map.
, is a free, editable map of the whole world. It's possible to toggle Open Street Maps, Gmap, Y! maps, and custom tiles on/off.
, (corrected the URL, thanks Thomas!) where Thomas Turnbull worked. Has a mobile version (user agent sniffing)
is a company that makes/uses OpenStreetMaps, it is the wikipedia of street mapping, you can style your maps (Make primary streets golden, make secondary streets yellow)
, and click on Map of events, uses Gmap API and the Drupal Locations module
, uses open layers and Google Map tiles, together. Allows UI to switch between them. Slick, slick, slick!
Google Earth Module (?) and Gmaps can output KML, and import that into Google Earth
OPEN LAYERS module
is a module that hooks into openStreetMaps. A map is a large collection of tiles, and there are several sizes of tiles (from zoomed out, to zoomed in). These map tiles are background images for your custom markers / layers. OpenLayers is positioning your custom markers on the BG img.
You can create width, height, lat for the center, and the zoom level defaults. Controls: attribution: on/off, layer switcher avail to user, etc.
You can set the projection type
When you geocode with Google, they return metres, even though it looks like lat/long
Ships with zipcode and lat/long data for 8 countries. Can be used as auto-complete, you type in city name, and then prepop everything else.
Locations module allows you to geocode a location name and turn it into a Lat / Long
GMAP API allows you to display map with markers for each location
This is the array you send to Locations Module
Postal code, required
Street address, optional
Minimum is you need both state and zip, Zip codes are not unique (identical in USA and France). Of course, if you send a string like "NYC: to Google's Location Extraction Server (the thing that geo-codes locations) even without a zip code, it's probably going to figure it out.
Shape file data comes in, pre-built, with the lat long, and other layers.
Treats a location as an actual physical space, using GIS standards
Locations module doesn't treat the buildings as a space, but as a pin point
MySQL uses PostGris as standard for locations, so does Geo Module
Some notes on implementation:
Location is a new content type
Locative info fieldset is displayed in the node editing screen:
You set the min mumber of locations, collection settigns, name, street, additions, city (these can be defaulted)
Geo-IP module, or add_geo-IP could be used to determine the country and city of the user and pre-populate content in the form, making entry faster, smarter.
Use a node reference to say "this event is at this location."
THE HEART OF IT: VIEWS
In the view, you use a new Page, with the name of your map, and a "Style" of GMAP and use row style of "Fields", list the fields "latitude and longitude" and list the location field, too.
"Relationship" section uses the node ref that joins the location and the event together (need more info here)
You can add an Attachment to the page, which will display below the map a list of locations. This is good for SEO and usability, because you can browser/search in the page, and click the link which takes you to the infobubble.
So, go and start mapping the world.