Showing posts with label development. Show all posts
Showing posts with label development. Show all posts

Wednesday, February 14, 2007

setting up parts.mit.edu/igem07

Also see the earlier post on setting up drupal 5.0 in osx 10.4.
  • setup crontab (also see here):
    crontab -e
    # m h  dom mon dow   command
    55 23,5,11,17 * * * /usr/bin/wget -O - -q http://parts.mit.edu/igem07/cron.php
  • Setup files directory (Note: on osx apache runs as user 'www'. It's different on our server, which is running some flavor of ubuntu/debian: the user is 'www-data'. Find apache's username on your system with 'ps aux | grep apache'.)
    sudo mkdir files
    sudo chown www-data:admin files
    sudo chmod 755 files

Wednesday, February 07, 2007

iGEM2007.com drupal dev notes, feb 07

TODO:

I'll update this list as I learn.

OpenWetWare 2.0

TK pointed out in a conversation today that theoretically, what we really need for recording labwork digitally is something that provides the episodic, syndicated content of blogs with the collaborative and revision qualities of a wiki.

Much of the utility of such a system would come not just from having a record of your work online, but from the network effects engendered when that information was well-formed and tagged and shared in a quasi-standard way (the lower-case semantic web) with a community of similar users. The devil is in the details, and sharing information at such a fine level of granularity in a way that lets users pay attention to just what content is most likely to be relevant (via tags and perhaps some predictive metrics) could help users not make the same mistake collectively more than once. It might even allow users to perceive and draw conclusions about phenomena that were too subtle or rare to be investigated previously.

Help develop iGEM's drupal-powered site!

Hello, are you experienced with building sites based on drupal and/or knowledgeable of PHP and not averse to learning about drupal? If so, join us!

The International Genetically Engineered Machines Competition is now entering its third year and is expecting an increase in participation from 34 undergraduate teams from around the world to about 80-100. The teams spend the summer learning & doing genetic engineering and then present their work at the beginning of November here in Boston at MIT.

Last year we required all the teams to document their projects on a mediawiki server (http://parts.mit.edu/igem) - iGEM is not just an event that happens in November, although that's when it is most visible, but throughout the whole summer, and we wanted to capture as much of that experience online as possible. We built another website to explain the competition and link into each team's wiki page from a world map (http://igem2006.com).

I am developing a dynamic, community-driven site for the iGEM 2007 competition. I've spent the last two weeks investigating CMSs and laying out what features we want the new site to have, and I'm fairly sure Drupal is the base from which we should start. However, it's clear that we are going to need to develop a couple custom modules to support unusual features of the site. For instance, we will have about 1000 users, each a member of a certain team. We don't really want user accounts for anyone else. So we need to develop permissions for users based on which team they are in, and streamline how participants are given accounts ( i.e. manually authorizing 80-100 team leaders, who then can authorize their own team members). We also want each team to have its own portal page, dynamically generated from posts to the team's collective blog, recent forum activity, recent activity on our genetic parts database, and from certain pages from that team's space on our mediawiki.

I am trying to learn drupal and php as fast as I can to implement what we want, but I don't think it will be fast enough. Would you be interested in helping, or know anyone who might? How much would consultation / module development cost? If nothing else, pointers into the right direction would be very helpful.

If you are interested, I encourage you to check out our introductory site (I didn't design it!) at http://igem2006.com, and perhaps my development blog at http://cis-action.com.

Tuesday, January 30, 2007

Microformats

As far as I understand it, besides using templates and categories, there is no way to really structure the content on a mediawiki page. For example, every team on the iGEM 2006 wiki provided a picture and a project abstract somewhere. The information was available, but not accessible without visiting every single team's page and actively looking for it. This year, one of our goals for the iGEM 2007 website & wiki is to make sure this kind of information is tagged, or marked-up, or annotated, or put in a special area on a template, or by some other method standardized across all the teams. If information common to all teams is standardized, it will be much easier to find and reuse, from both a human and machine perspective.

I haven't learned much about it yet, but I'm excited about microformats (also see Alex Faaborg's blog). If you already know about them, please let me know what you think. Here's popular definition from the microformats website: "simple conventions for embedding semantics in HTML to enable decentralized development." They are basically just standardized xhtml tags, and so should be easy to integrate with mediawiki content. The biggest hurdle would be making them simple for users to use.

Here's an example of the adr microformat:
32 Vassar st.
MIT 32-314
Cambridge, MA 02139
U.S.A.

N 42° 21'42.94
W 71° 05'28.36

It looks normal, but check out the source - the address has actually been marked up with the extra xhtml. Software agents, either in the browser (see operator) or scraping the page from elsewhere, should be able to understand the address.

The registry is one attempt at combining a database of user-submitted structured data and totally freeform wiki pages: special perl scripts provide a seamless interface between the registry database and what looks like normal wiki pages with forms on them. However, that solution does not seem as flexible or granular as the microformats; we need to find a way to make standardizing so easy everyone will do it most of the time. The microformats are good at letting users standardize a little bit of information on any wiki page. It would be hard to anticipate what or where that information would be in advance and then build forms.

I imagine special little buttons on the wiki wysiwyg editor that appears when users edit a page that forms their information in the right way. A user can press the address button which produces a template of the xhtml right in their article, just like the link and media buttons do.

EDIT: I just realized that Operator doesn't support the adr microformat (as I understand it), so I'm adding our lat & lon in the geo format.

Friday, January 26, 2007

Content Abstraction in the Joomla! CMS

I've been evaluating Joomla and Drupal (and looked briefly at Plone) for the CMS of iGEM2007.com Superficially, I've gotten some bad vibes about Drupal from the developer of a big site that is based on it, popsugar.com, and from attendees of MashupCamp3. Joomla seems newer and brighter and in a way, more promising. But it doesn't seem to have as robust documentation or as established a user & development community as Drupal, and it also doesn't seem to be as flexible in terms of extending it in ways the core developers hadn't expected. I feel pretty confident that we could use and extend Drupal to do what we want, but I'm not sure about Joomla, so I'm giving it one last hard look-over. I'd like to use it if we can.

I found the following buried in a visual tutorial in part of the Help section of Joomla.org. I don't know why it isn't prominently displayed on the first page of the developer docs - I think it should be.
One way of looking at Joomla is that a Joomla site really only consists of one page (plus a lot of content stored in a database). As you click on menu items, Joomla rebuilds the content of that one page, as if you are navigating to another page.

When you click on a menu item, that menu item is going to load a single main piece of content, such as an article or list of articles, or calendar or whatever else into wherever you've specified to be the main content area in index.php.

In addition, modules, that is, all of the smaller items such as menus, are going to either display or not depending on whether you've configured them to show for that menu item.

The idea of Joomla is to build a site not by creating pages, but by configuring menu items. A given menu item will load a particular main content item, plus whatever modules you want. The modules are always displayed in the location as set up by index.php. (However, you can make it appear as if modules move to different places on the page, however, by cloning modules, placing them in more than one location, and then hiding or showing them depending on the menu item.)
Great insight! But I'm still leaning towards drupal...

Thursday, January 18, 2007

MashupCamp3 (at MIT) - post 2

Lots of links from MashupCamp3. I really should put them into del.icio.us, but my tags are so messy and unorganized I will just list them here until I have time to overhaul my bookmarks.
Be sure to check out Dapper & openkapow - they are awesome. The names alone are almost enough for this crappy non-metadata flat list, and I'll add tags and descriptions when I put them into del.icio.us, but just how much more useful will the contextualized collection be? What are the positive benefits, in all practicality, of using a site like del.icio.us? Network effects of the folksonomy?

MashupCamp3 (at MIT) - post 2

Lots of links from MashupCamp3. I really should put them into del.icio.us, but my tags are so messy and unorganized I will just list them here until I have time to overhaul my bookmarks.
Be sure to check out Dapper & openkapow - they are awesome. The names alone are almost enough for this crappy non-metadata flat list, and I'll add tags and descriptions when I put them into del.icio.us, but just how much more useful will the contextualized collection be? What are the positive benefits, in all practicality, of using a site like del.icio.us? Network effects of the folksonomy?

Wednesday, January 17, 2007

MashupCamp3 (at MIT) - post 1

Well, I got back from BioSysBio 2007 and 2 great days of iGEM2007 work in Cambridge, UK yesterday afternoon, crashed for about 12 hours, and woke up for MashupCamp3, which happens to be located at Hotel@MIT this year and occurring today and tomorrow. I'm really hoping I get a chance to run some of the iGEM2007 ideas by the experience and expertise concentrated at this conference. Right this second, everyone in the room here at MashupCamp3 is determining the schedule of sessions for the day, because MashupCamp is an Unconference. It seems like many of the sessions are about mobile technologies and geospatial mashups.

Saturday, January 06, 2007

Vanilla Forums... so sweet, so tasty

Vanilla is a forum engine that is simply beautiful. It is not clunky. It seems straightforward. It seems very extensible. It rocks. And I am hoping it will make one sweet foundation for our community forums at the igem2.0 website.

Anyway, after reading a bunch of the information at onLamp.com, I downloaded and installed MySQL 5.0.27 and enabled the PHP module in apache. There was a some confusion in all the documentation I was following as to how to set the mysql socket to the right location... apparently the binary I installed from MySQL.com (for Mac OS X 10.4 (x86)) sets the socket to /tmp/mysql.sock, but PHP expects it to be at /var/mysql/mysql.sock. Two Apple docs here and here indicate that /var/mysql/mysql.sock is better for security purposes, so I attempted to change the MySQL defaults to move the socket by making a MySQL configuration file at /etc/my.cnf that contained
[mysqld]
socket=/var/mysql/mysql.sock

[client]
socket=/var/mysql/mysql.sock
Unfortunately, this didn't quite fix things immediately, but with some very non-scientific, uncontrolled fiddling and reconfiguring, I got the the server online. So now we have a pretty cool forum. Oh, also, for the record, I tried hardening the default install of MySQL by removing anonymous access and defining real, encrypted passwords for the remaining accounts... but I have no idea what gaping holes I'm leaving open.

Next up, extensions for Vanilla and choosing a blog content management system.

Friday, January 05, 2007

parts.mit.edu/igem 2.0

Over the next month or so I'll be redesigning and rebuilding the iGEM website. My design goals are to make it prettier, simpler, easier to use, much more dynamic, and above all, overflowing with features and functionality that naturally generate a much stronger sense of community than what we currently have.

So far Randy and Meagan and I have done some brainstorming and I've started doing some detailed concept sketches of the features we talked about. After I finish with those, I'll make some even more detailed mock-ups in photoshop. I'll explain and show a bunch of these features in another post. This is just to get my foot through the blogging door again.

While the main site is in development, we want to have a discussion board and mailing list online at a skeletal interim site about iGEM2007. I am really excited about the Vanilla discussion forum. It looks... awesome. Today my goal is to get a test version of it running on my machine here, blamo. I found some nice tutorials on getting into the superficial layers of apache in OS X at O'Reilly's onlamp.com.