Senior Project


Time is an illusion. Lunchtime doubly so.
Douglas Adams - The Hitchhiker’s Guide to the Galaxy (Wikiquote)

Okay, I realize this is no excuse for not posting for two weeks, but it makes me laugh. Before it seems like I’m trying to avoid the inevitable admission, let me tell you now, my Constant Reader, that unfortunately I am behind by about three weeks. Over these past three weeks, when anyone has asked me how my senior project is going, I always had the same answer: a blank stare. After they kindly inform me that I haven’t said anything for 20 min, I usually say something along the lines of “slowly”, or “I’m making progress, just not as much as I’d like”. This was not so much a euphemism, as it was just a way of ending the conversation quickly so I could get back to work.

I am not ashamed of the progress I have made over the past three weeks, but I am about my timeline estimation. Although, I have been adamantly preaching the gospel of 37signals in both my blog world and physical world, my timeline did not reflect one of the key philosophies I have developed from them. My epicenter, the Profiles, rightly leads my timeline, but it does not reflect its importance in scale. I have almost completed this core of my site to the point where it could stand on its own, but it has taken a lot of work. The development, conceptually, for everything from the interface to the database took almost a week, and I have been programming ever since. Every day I have become exponentially more familiar with Drupal and, for the first time, jQuery. I have no doubt that this education was a valuable investment that will bear even sweeter fruit over the next seven weeks.

Anyway, let me quickly tell you what I have been up to so I can get back to work. I wanted give users the freedom to define themselves however they would like while still encouraging them to harmonize (sounds better than conform) their descriptors with the community at large. I have started a module called “tagharmony” to accomplish this. Contrary to my idea in the profiling and searching post, I am not segregating any categories or skills for diffrent majors. There is no reason why Graphic Designers wouldn’t have “Acting Skills”, or Dancers wouldn’t know “Programming Languages”. Any categories and skills created by the administration will be available to everyone on creation of their profile, and when users go to search they can use these preordained categories and skills to filter their results. Also, I am still going to allow the users to create their own taxonomy for their skills and the categorization of those skills. These skills will be visible to any user looking at their public profile information and are searchable by keyword. However, the custom categories and skills one user creates will not be a visible option for another when they are managing their profile. (Of course if more than one user creates the same custom category or skill, the system will allow for that). This will prevent users from having to wade through potentially thousands of options in the new equal-opportunity system. However, I am so arrogant to believe that I can generate the best taxonomy for all the students of UArts, and I wanted to harmonize tags that are repeated ad nauseam for the benefit of both profilers and searchers. I have a plan for this I will discuss later, but it has been demoted in priority so let me go over what I have completed. The following is live and without error (as far as I can tell).

Walkthrough

Walkthrough

Along with their other profile categories, users are presented with a “Manage Skills” subpage. This page is divided into two sections: “Yours” and “Ours”. It should probably be said here that I am flexible on any and all wording changes up until launch. “Yours” are the categories and skills of their profile, and what is going to be associated with them in the public veiw of their profile (on a different page). “Ours” is the database of categories and skills provided by the administration.

  • They can start by adding skills from “Ours” to “Yours”. The “Skills” box in both “Yours” and “Ours” remain empty until there is a category selected or in focus. Skills can be added from “Ours” by clicking the plus icon next it.
  • The users will get a brief “searching…” in the skills box between categories.
  • If the user wishes to add custom skills to one of their harmonized categories they can use the form underneath the skills box in “Yours”. Any custom categories or skills are highlighted a different color than the harmonized ones.
  • The users can use the form to the far right in “Yours” to add custom categories as well. The user must start a new custom category with a new skill. Once the new custom category is in “Your Categories” they can continue to add skills to it with the form underneath the “Your Skills” box.

At anytime the users can use the minus icon next to their skills in “Your Skills” to remove them from their personal database. Much of the time I spent developing this section went into efficiency seeing as it should be as painless and quick as possible. For example, as you add and delete skills from the system adds and deletes categories automatically to save time. It does not at anytime allow you to double categories or skills even as a custom addition. The “searching…” gif is necessary for a half second delay while the system uses AJAX to retrieve information from the database. This is so the users don’t have to wait an inordinate amount of time in the beginning to load a lot of information that would most likely not be used. No information is sent to the database and saved until the user clicks the “Save” button at the bottom of the page. In other words all the adding and subtracting is done instantaneously visually. It also enabled me to prevent redundant requests being sent at the time of confirmation. For example, if a user adds a skill changes their mind and subtracts it, the system simply deletes the add command from the queue of commands to be sent to SQL.

It goes without saying, that despite the time spent to complete it, it’s quite a brilliant system. The visual interface could probably still use some work, but rather than wasting too much time guessing, I’ll leave what changes need to be made up to the user testing before launch. Another thing I would like to add to this page is next to each harmonized category and skill in “Ours” the number of users that have already added it (maybe by major), and the ability to visually sort by this field. I think this will help users who want to think even less.

Now, onto my plan for harmonization. I want to create a collapsible section of this page (so that it can be unobtrusive) that will enable users to harmonize their tags. Let’s start from the administrator’s/moderator’s POV. I or my moderators will see a table of all the latest skills added in the community on a restricted admin page. If there are any skills that seem to match up with others, the admin writes the id of the potentially harmonizing skill in a field next to that custom skill. If the admin sees that certain skills seem to come up a LOT, they may add that skill in the master list of harmony (a great name for a band btw), in a previous harmony category or in a new harmony category. Then the admin goes back to the table of latest skills and makes the suggestion. The admin saves the changes and the system does its magic. Now, over to the user’s POV. In this “Skill Harmony” section of their “Manage Skills” page, they see a table that looks like this:

…only not like it was hand drawn in my notebook. It is a list of all their skills the admins felt would harmonize well with other skills. They have the option of approving (the [A] button) or disapproving (the [D] button) this suggestion. Upon either action that row disappears from their table (but not from the admin’s POV table). If they approve it, the skill is changed in their personal database of skills and, if it is not already there, the harmonized category is added to store it in. If they actively disapprove it, they simply won’t be bothered about it ever again. They also have the option of “Always Harmonize”, if they trust the admins and the community and they don’t want to be bothered with this. However, “Always Ask for Approval” would be set for each user by default.

I have received mixed feedback about this section. Most of the negative, concerns the users not want to be bothered with this, and this potentially becoming too much work for the admins. Although I disagree with both for now, I’m going to put more consideration into it before development and implementation. Here is my new timeline:

task completed by date
Sept.
Drupal site is initialized; 09/23/08
Profile: public and private view, start Bio input and view screens;
Home/Search: new registration/login
Home/Search: show latest registrations 09/30/08
Oct.
Profiles: develop awesome module 10/07/08
Profiles: develop awesome module 10/14/08
Profiles: develop awesome module 10/21/08
Profiles: finish awesome module to create and search profile bios; 10/28/08
Nov.
Profile: Blogs, Private Messaging (forwarding to email, ability to send, inbox); 11/04/08
Profile: subscription to other profile blogs;
Home/Search: show latest blogs made;
User Testing: Phase I start;
Forum/Links: start; 11/11/08
Profiles: public can view what forum/link posts the user has made;
Profiles: user can subscribe to forums/links;
Forum/Links: finalized; 11/18/08
User Testing: Phase II start;
Branding: concept finalized, skin/visual schematics;
Profile: skinned; 11/25/08
Forum/Links: skinned;
Home/Search: skinned;
Branding: digital promotional materials;
User Testing: Phase III start;
Dec.
Branding: printed promotional materials, begin distribution; 12/02/08
Launch Date 12/09/08
Start of Exams 12/15/08

I want to keep the same launch date, so I have have condensed features that I am confident I can complete faster now that I am much more familiar with Drupal and jQuery. I have also condensed the branding and skinning of the site, which are constraints I am just going to have to live with for now. I am okay with the skinning being minimal if it gets the functionality completed on time.

As always, my Constant Reader, any comments, questions, or suggestions are welcome.

Here are some quotes I came up with for the viral marketing I talked about in this post:

  1. Myth: Collaborative Art is unattainable
  2. Myth: We can’t have Collaborative Arts
  3. Myth: Art Collaboration is unattainable
  4. Myth: We can’t have Art Collaboration
  5. Myth: Students from different departments can’t get along.
  6. Myth: I have to do everything myself
  7. Myth: DANCERS don’t talk to DESIGNERS
  8. Myth: ACTORS don’t talk to ANIMATORS
  9. Myth: Help is expensive
  10. Myth: Stock media is a necessary evil

One plan would be to make a large quantity each of maybe 5 of these to distribute around the school. I could also include one of #1-#4 along with one of the other sayings on each card. So each card would have 1 of 5 unique sayings along with a general tagline. Again, the idea is to implant curiosity and begin familiarity of the logo. The cards will not include the exact name or a URL. I will update this post as I think of more. Please comment with suggestions for sayings or execution.

NOTE: Throughout this post I keep using the terms “profilers” and “searchers” this is to define the roles of users when they create/edit their profiles and when they search others profiles. I realize that all users are both, but I feel they put on different hats in each section and have diffrent expectations.

I have been doing some research on advanced searching methods on popular sites like Amazon, CNet Reviews, Facebook, LinkedIn, Monster, CareerBuilder, UArtsCareers, and yes, Toggin. I have also been looking at the way they profile users. I found a lot of good inspirations mostly from Facebook, LinkedIn and UArtsCareers. I also have always enjoyed Amazon and CNet Reviews filtering methods, where you essentially just select a general department, and just filter and filter until you have a select group.

All of this research, however, got me thinking that maybe none of these paradigms are the best fit for this project. Knowing how people categorize themselves and the fields of study they are passionate about, is a complicated procedure. I figure I can:

  1. Do a LOT of research and force people to chose between lists of categories and options of my choosing. Although this would make searching easier, it would probably feel confining and inaccurate to the profilers.
  2. Leave open-ended text fields for the profilers something along the lines of: “List your skills seperated by commas”. This would be harder on searchers who don’t know what they are looking for and who may have to search for “Actionscript” as well as “Action Script” as well as “AS3″ as well as “AS 3.0″.
  3. Do something a little experimental…

My experiment I am considering is basically to allow users to create their own categories. The best way to explain it is to give you a case study:

  • I am a multimedia student who is creating/editing my profile. I see that no one else in multimedia, or the administrator himself, has created a “programming languages” category. I create it and list the programming languages I know: “Actionscript 2.0, Actionscript 3.0, C++, PHP”. I also list some languages I know about but don’t know myself: “PERL, ASP, etc”. I also add a note describing “programming languages” for the sake of the searchers. I check off for MY profile only the languages that I know and log out.
  • I am a different multimedia student who is creating/editing my profile. I know HTML, and I see that someone in multimedia has created a “programming languages” category. I’m not sure if I consider HTML a “programming language”, I consider it more of a “markup language” but I will add it to that list anyway for the sake of the community. It doesn’t benefit the searchers to have too many categories if they are not familiar with this field of study (at least that’s what the administrator’s note says in the “create a category” section of the page). I also see someone has created a “graphics software” category, and while they included Photoshop and Illustrator, the neglected Fireworks and MS Paint. I add both to the category, and for my own profile I include Photoshop, Illustrator, and MS Paint.
  • I am an acting major who has been struggling with a personal website, and I want to pay someone to create a flash video player for me. I search under multimedia because the administrator’s notes says multimedia majors include graphic artists, web designers, etc. There is a list of categories to search/filter from including “graphics software” and “programming languages”. I can see from the description that I probably want to search “programming languages” so even though I can select multiple categories, I only select that one. Then I can see from the list of programming languages, I want to select a search/filter of “Actionscript 2.0″, “Actionscript 3.0″, and “HTML”. I also select the search/filter to include graphic design majors because they have a category for “web design” and a list item for “Flash”. My search results return both multimedia majors and graphic designers.

This obviously would require a lot of programing and moderation on the back end, but I believe, if it was used properly, it would be a great benefit to the end users. My major concerns are:

  • is it too complex for profilers and searchers who are or are not web savvy
  • would users abuse it (i.e. create a “porn skills” category, and list “yo momma”)
  • would profilers not be willing to generalize their skills (i.e. putting HTML in a “markup languages” category), making it more confusing on the searchers
  • would necessary moderation appear too authoritarian by users (i.e. editing their category descriptions, combining categories, etc)
  • would the research and time involved in implementing this be worth it

I keep trying to think about what 37signals would say. On one hand it greatly benefits my epicenter, the profiles. On the other it is in some ways expanding the project rather than focusing it.

It’s a little ironic that I haven’t posted anything scince my timeline. The purpose of which was to keep on track with updates. Oh wait, I don’t mean “ironic”, I mean excessively detrimental. Yea, that’s it. In all honesty, I am a little behind, but my spirits are high. I have been getting extremely intimate with Drupal, and we are starting to understand each other a lot better. We are even finishing each other’s syntax. I’m seriously considering taking this relationship to the next level. Yeah, that’s right: I may end up putting “Drupal Developer” on my resume. I know it’s a serious commitment but I think we’re there.

In case you are reading this, and don’t actually care about my <insert euphemism for vomit-inducing/> relationship with programming, let me tell you what’s been up. I have installed and started setting up Drupal at collaborateArts.com. I am currently using a slightly modified deco theme, for no other reason then so I have something pleasant to look at while I am developing. The ease I have found at modifying themes is extremely encouraging, especially with the ‘Theme Developer’ module in the Devel suite. Thanks to my Pro Drupal Develompment book. I have not only been able to create a new module from scratch, but I’m also comfortable modifying the pre-existing modules. The only real discouragement with Drupal is the reality that while it’s easy to find a LOT of support for Drupal, Drupal Mods and Drupal Themes, it’s sometimes difficult to filter or find the latest updates for 6.x.

One sort of weird hurtle I found towards the beginning was when I couldn’t figure out how to implement some really simple PHP without creating a mod. As it turns out it’s a simple matter of turning on the PHP Filter pre-installed mod and adding administrator privileges to that input format. Drupal wasn’t trying to make it hard, they just didn’t turn it on by default, which I guess makes sense.

I have established profiles and the distinctions between a public and private/edit view of them. I have created a home page and put the latest registrations on it. I have modified the registration page with the help of the LogginToboggan mod and a little creative PHP to make it so the email address and username are one in the same. I am also forcing the user to start enter their first name, last name and major upon registration. I don’t think it’s too much, and it makes categorization later on a LOT easier. Any other profile info can always be added later. The site emails the user, with a random password, and waits for confirmation before allowing login.

The Deval suite also has a Deval Generate mod that I have done a great deal of modification to so that I can generate hundreds of random users at a time WITH profile information. This way I can see actual implementation of my site in progress.

I have also created a page for browsing the users. It categorizes them by Department then by Major. I was faced with a little uncertainty here, because I had to decide what constitutes a major. This obviously isn’t ACTUALLY up to me, but I was trying to determine how students would define their “major” in some circumstances. I essentially went through the Academics section of the UArts site and assumed every degree offered here (undergraduate + graduate) would be a good place to start. I also include “Continuing Education”, under a Continuing Studies department, and “(undeclared)”, under the UNDECLARED department. I will have to do some research to make sure this list is accurate and complete. Once again I want to include everyone with a UArts email. I think the current system accommodates most teachers but I wonder about other faculty, and students/teachers in more than one major/department.

I want to create a Search engine before I move on to the next phase of my timeline, so I’m a little behind. We saw a talk given by one of the founders of 37signals (I’ll try to find the link) in my Dynamic Web Development class that was…yeah, you guessed it: inspiring. I truly love their philosophies. I am also reminded that if I stay true to my epicenter, the profiles, and I’m still falling behind towards the end, it is an indication that I need to scale back and not sacrifice the quality of the product’s goals. Still, I’m pretty confident, and my pace with Drupal is not just speeding up, but accelerating.

I am considering doing some viral marketing for the site soon. Something along the lines of the collaborateArts logo on a small card with the text like: “Myth: UArts students from diffrent departments can’t get along” or “Myth: You don’t have anything to offer to students in other departments” or “Myth: Help is expensive”. The cards would not include a url, but I could place these around the school to peak interest, and when the actual posters come out the logo will be reminded them of their curiosity.


P.S.
Still only one other UArts user on Toggin.com. I’m not sure if I should find this encouraging or discouraging. My professor assures me that the distinction between the projects should be clear to anyone, but it still keeps me up at nights.

    …plans are useless but planning is indispensable.
Dwight D. Eisenhower (Wikiquote)

That being said, this timeline is written in pencil….HTML pencil.

task completed by date
Sept.
Drupal site is initialized; 09/23/08
Profile: public and private view, start Bio input and view screens;
Home/Search: new registration/login
Home/Search: show latest registrations, ability to search profile bios; 09/30/08
Oct.
Profile: Blogs, Private Messaging (forwarding to email, ability to send, inbox); 10/07/08
Profile: subscription to other profile blogs; 10/14/08
Home/Search: show latest blogs;
User Testing: Phase I start;
Forum/Links: setup; 10/21/08
Profiles: public view of forum/link posts;
Forum/Links: finalized; 10/28/08
Profiles: ability to subscribe to forums/links;
Nov.
Site Logistics: About, Contact (support), Terms of Use, etc.; 11/04/08
User Testing: Phase II start;
Branding: concept finalized, skin/visual schematics; 11/11/08
Profile: skinned; 11/18/08
Forum/Links: skinned;
Home/Search: skinned; 11/25/08
Branding: digital promotional materials;
User Testing: Phase III start;
Dec.
Branding: printed promotional materials, begin distribution; 12/02/08
Launch Date 12/09/08
Start of Exams 12/15/08

I just recently found out about this website Toggin.com that seems to for some reason hate me and any potential success I might have. There have been posters for it around school that would unethical to tear down. Although I don’t see it as a direct competitor because it has a more social focus, and it is not specifically for UArts, I am worried about being associated with it. At first glance our sites may seem similar, which is why my marketing will have to make the goals of collaborateArts.com very clear. Currently there are only two UArts members that I have seen on the site (myself included - I have to keep an “I” on it). You can filter by University for profiles and for Forum posts, but the goal of the site seems to be about hooking up for friendships or relationships. I’m worried about collaborateArts.com being categorized with it because if a UArts student joins it and likes it, they will see no reason to join cA.com because they already have that service, if a UArts student joins it and doesn’t like it they will see no reason to join cA.com because they already tried it. That being said, I like the general vibe and interface of the site and I might use a similar approach if it is successful.

I am tempted to start marketing right now to make a name for the cA, but I feel like my energies would be best spend developing.

btw,
What the heck IS “Toggin”? There is no answer, or any real site information, in the About Us.

Epicenter: The point on the Earth’s surface directly above the focus of an earthquake (WordWeb)

Epicenter was a term used in the 37signals “Getting Real” to talk about defining a project by a single, minimal core, and building outwards from that. I like this definition in reference to my project, because it implies my project is a groundbreaking (pun intended), earth-shattering (ditto), revolutionary event that is going to ROCK THE WORLD. Welcome to the internet of the real.

I decided that if the most minimalistic goal of my project was to connect students of the University of the Arts,

then the epicenter of my project should be the Profiles. If the users can use this site to more easily find that collaborator in the University they have been dying for, and they connect with that person offline, then I would still feel like the website had been a success. The close-knit community of the site (applied to UArts) is also what I believe makes it more unique than anything else on the web. This gave the project map of the site more focus:

So then I thought about how the other aspects of the site could build upon the Profiles. That’s when I realized that the Forum and Link Reference modules of the site could be combined into one easy reference. They both are divided in roughly the same categories, and if a user is interested in subscribing to one, chances are they would be interested in subscribing to the other.

The Articles module, I felt could be played down and integrated into the Profiles themselves as a form of user blog. In this way, if a user is interested in what a particular student has to say, they would logically go to their profile page. Thus the project map had streamlined to the following:

Each Profile has restrictions on what is public and private:

Public Private
Bio Subscribed Forum/Link Boards
Forum/Link Boards Subscribed Profiles
Blogs PM Inbox
Send Private Message

I recently read (most of) the 37signals book and I highly recommend it to anyone. These were some observations I made with logging for my Dynamic Web Development Course:

I’m going to write this log as I read it, so I can get the most out of this documentation. (I’ll try not to contradict myself). I really like the less is more philosophy they present in this reading. It is becoming quicker, cheaper and easier to publish poorly designed Web 2.0 projects on the Internet, so you see them everywhere. The only way to stand out as an educated designer of new media, is to design less well. To perfect the craft of solving a single problem with a custom solution, rather than throwing all the latest widgets at it to see what sticks.
This would seem to contradict my reasoning for voting for the Drupal path in this course rather than the Flex, and it seems that way because it DOES. I think it is incredibly valuable to learn how to perfect certain key features of a web project. However, I stand by my decision, because I still believe that is a self-taught discipline and requires more self-conditioning than peer critiquing. I want to use this course to learn how to take all the power of Drupal and whittle it down to a specific solution to a specific problem.
The concepts of the third chapter seem repetitive of the second. While I believe you can produce a lot quicker with a small qualified team, I believe it is difficult to the sort of people that can fill that role effectively. These are people who are multifaceted, end-user-driven, and can communicate well outside of their expertise. In other words, not everyone is a graduate of the Multimedia department of UArts. (I kid). (Sort of).
Chapter 5 speaks to me when I think about wanting to provide users with 1001 ways of accessing the same content. What I’m getting from this chapter is that users feel more comfortable finding their own way with fewer paths that are wider and more flexible, then many very specific, very constrained paths.
I really enjoy the definition of Web 2.0 by Seth Godin, “Web 2.0, the world where we start by assuming that everyone already uses the web.” While some might say it over-simplifies the user, I think it admits a rare level of respect for them. It simultaneously gives the developer a sense of humility when it comes to thinking that it is ever possible to anticipate every problem, and a sense of confidence to move forward and let your users debug your product.
A lot of Chapter 6 to me speaks about confidence. “This isn’t brain surgery, it’s a web app.” “I don’t want to hear people’s ideas. I’m not interested until I see their execution.” “Next time someone tries to pin you down for an exact answer to an unknowable question…say ‘I don’t know.’” If your core concept is strong (where there is strength in simplicity and specificity), just keep moving forward and don’t get hung up on having all the answers right now.
Chapters 9 and 10 have very good referential information. Balances to keep in mind throughout the entire project. Don’t expect to know every hole, just have a general net to catch errors underneath. Code quickly, but remember to revisit recurring glitches. I’m also, so glad to hear I’m not the only one who hears code speaking to them sometimes…
I have experienced the documents referred to in Chapter 11 from both the developer and customer points of view, and agree that they can be extremely counter-productive. I also like the priority they put on using “real words” instead of Lorem Ipsum. I picked up this bad habit, and I use it as an easy way out. This is why interactive designers are not supposed to hang out with graphic designers.

Overall, I think this is a brilliant book conceptually, and as a reference. I love the humility they show in short sweet points rather than long tirades repeating the ideas, and in quoting so many outside sources. There were times when I felt like this book was just an excuse to brag about how great Basecamp and their team are, but really they are just exemplifying the confidence we should all show as designers that takes a good idea to fruition.

This is the first of hopefully many updates I am going to keep on my Senior Project this semester. I say hopefully because I realize that I have <insert euphemism for deep psychotic issues> with documenting my thoughts.

For those that don’t know this is my second semester of a two semester senior thesis project in the Multimedia Dept. of the University of the Arts. My first semester was riddled with repetitive, and in some ways, unproductive critiques because I was not expressing all the details of my concepts and methods to my professors and fellow classmates. I learned that the more documentation the better. This post is my affirmation of change.

So as not to make this a 5000+ word post (with shnazzy images) I have posted a summarized binder that I had to turn in at the end of the last semester _here_. If you are not familiar with my project go there first. Don’t worry I’ll be right here when you get back.

…..done? Awesome! My goal this week is to streamline and solidify <like ice> the eventual form of this collaborateArts.com. In order to accomplish this the major updates to the binder are as follows:

  • The site will simply focus on the user profiles, forums and a references section
  • I will also be using Drupal to create the site itself (it turns out to be a more flexible, trusted and widely used facilitator for rapid development of interactive sites than I had originally perceived)
  • I will be using about 3/4 of the semester developing the site, and about 1/4 of it on the marketing (just in time for finals)

One of my professors, DeAngela Duff, recently told my Web Development Studio that 37signals has an article that expresses their philosophy of rapid prototyping that involves starting with a core feature of a site and building outward rather than trying to take a project on as a whole. I am going to look more thoroughly into this this week. My goal with the site (loosely) is to Bring students together for collaboration on projects in the most efficient way possible. I need to figure out the most invaluable feature of my site that meets this goal and then develop the other features support it.