<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5480583170723705926</id><updated>2011-11-28T12:14:38.472+11:00</updated><title type='text'>Studio 2 Process Diary</title><subtitle type='html'>This blog is a recording of my weekly work and progress in Studio 2. It will contain a full description of all the work I do, research completed for the project, individual designs, brainstorming, storyboards, 
diagrams, drawings, code etc., a critical evaluation of my performance highlighting successes and failures, and
critical evaluation of the work of my team.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>30</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-6639373134257354750</id><published>2007-10-16T00:33:00.000+10:00</published><updated>2007-10-16T00:46:06.350+10:00</updated><title type='text'>Task list</title><content type='html'>This evening I gave Long a hand finishing off the task list. He asked me to write code that let users change the name of tasks and tick tasks off when they were finished. It sounds simple but the tasks have a lot of other functionality associated with them, like drag-and-drop re-ordering and dynamic adding and removing, so it became a complicated operation.&lt;br /&gt;&lt;br /&gt;There is a plugin for the drag-and-drop functionality, and another plugin for the click-to-edit, and they were interferring with each other. I modified the click-to-edit function so that it deactivates the other function while it is being used.&lt;br /&gt;&lt;br /&gt;I had a lot of frustrating moments this evening when things would just not work for no apparent reason, but I've made it through in the end and got the task list completed. It's nice to use in the end. Here's a screenshot:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_h_Pff3-G0SM/RxN8-vb_a9I/AAAAAAAAAEs/fZgEQ6GRBI4/s1600-h/Untitled-1.gif"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_h_Pff3-G0SM/RxN8-vb_a9I/AAAAAAAAAEs/fZgEQ6GRBI4/s400/Untitled-1.gif" alt="" id="BLOGGER_PHOTO_ID_5121574618577988562" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-6639373134257354750?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/6639373134257354750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=6639373134257354750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/6639373134257354750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/6639373134257354750'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/10/task-list.html' title='Task list'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_h_Pff3-G0SM/RxN8-vb_a9I/AAAAAAAAAEs/fZgEQ6GRBI4/s72-c/Untitled-1.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-2410856604780652868</id><published>2007-10-15T17:34:00.001+10:00</published><updated>2007-10-15T17:38:26.483+10:00</updated><title type='text'>Error checking</title><content type='html'>This morning Long, Justin and I went through the website and created a list of things to fix on the website.&lt;br /&gt;&lt;br /&gt;JUSTIN&lt;br /&gt;-------&lt;br /&gt;1) X  Duplicate document type icons for .docx, .pptx and .xlsx&lt;br /&gt;2) X  Fix little icons on the New Version and New Doc Comment panes&lt;br /&gt;3) X  Make the word 'task' and 'project' in the Welcome message detect whether to pluralise or not (copy from Docs page)&lt;br /&gt;4) X  Dashboard titles for My Tasks and News Feed aren't there with brand new User&lt;br /&gt;5) X  When creating a new user, need to add folder when they choose to add a project&lt;br /&gt;6) X  The default task when a new Project is created needs to be assigned to the user creating the project&lt;br /&gt;7) X  Sample description needs to be inserted into database when new project is created upon registering a user&lt;br /&gt;8)    '0 secs to go' bug with commenting system&lt;br /&gt;9)    On Project page, if description = '', then make it 'click here to add project description'&lt;br /&gt;10)   Reorder My Projects list on Dashboard to be newest to oldest&lt;br /&gt;&lt;br /&gt;LONG&lt;br /&gt;-------&lt;br /&gt;1) X Login page error messages for Incorrect Email/Password&lt;br /&gt;2)   Project and Document history and News Feed needs to be truncatable ('Show more' button)&lt;br /&gt;3)   Fix commenting on project error&lt;br /&gt;4)   Edit tasks&lt;br /&gt;5)   Add tasks needs to add without a page refresh&lt;br /&gt;6)   Document comments box bug&lt;br /&gt;7)   Change powerpoint slide from 'Things to fix' to 'Improvements'&lt;br /&gt;8)   Restyle AutoComplete&lt;br /&gt;9)   Create New Project styling in IE&lt;br /&gt;&lt;br /&gt;KEEGAN&lt;br /&gt;-------&lt;br /&gt;1) X Remove the numbering on document versions&lt;br /&gt;2)   Need to be able to select yourself when assigning a task&lt;br /&gt;3) X Skip the second page of the Create Project wizard if no collaborators are added&lt;br /&gt;4)   Need to make News Feed recognise items since last login and not just list everything&lt;br /&gt;5)   Validation on Create New Document&lt;br /&gt;6)   create_project2.php - with collaborators bug (asks for a project name)&lt;br /&gt;7)   First file version with a New Document needs the new filename code&lt;br /&gt;8)   Update project last updated time throughout&lt;br /&gt;&lt;br /&gt;I finished the items I was assigned. Here's what the dashboard looks like now:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_h_Pff3-G0SM/RxMYFfb_a8I/AAAAAAAAAEk/dR79BdtIAlA/s1600-h/Untitled-1.gif"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_h_Pff3-G0SM/RxMYFfb_a8I/AAAAAAAAAEk/dR79BdtIAlA/s400/Untitled-1.gif" alt="" id="BLOGGER_PHOTO_ID_5121463683867700162" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-2410856604780652868?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/2410856604780652868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=2410856604780652868' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/2410856604780652868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/2410856604780652868'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/10/error-checking.html' title='Error checking'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_h_Pff3-G0SM/RxMYFfb_a8I/AAAAAAAAAEk/dR79BdtIAlA/s72-c/Untitled-1.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-6663642086469393775</id><published>2007-10-14T22:31:00.001+10:00</published><updated>2007-10-14T22:34:14.977+10:00</updated><title type='text'>Almost finished</title><content type='html'>We have finished all of the main functionality of Tabletop. Tomorrow we will go through the website and write a list of things that need to be fixed. There will doubtlessly be many bugs, but we should be able to iron them all out before the presentation on Wednesday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-6663642086469393775?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/6663642086469393775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=6663642086469393775' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/6663642086469393775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/6663642086469393775'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/10/almost-finished.html' title='Almost finished'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-2765633081361926610</id><published>2007-10-08T21:08:00.000+10:00</published><updated>2007-10-08T21:54:56.061+10:00</updated><title type='text'>Javascript problem of the day.. and a solution YAY :-)</title><content type='html'>This evening I have been working on the "Add a New Task" section of the project page. I copied across some code from the "Create a New Project" page, because both pages involve selecting person/s, entering a date and time. I got the calendar and time selector to work with no problems, but the autocompleter for the name input exhibited some strange behaviour. It is meant to show suggestions immediately below the input box, but it was showing them in the top corner of the page. See the screenshot below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_h_Pff3-G0SM/RwoTMfb_a6I/AAAAAAAAAEU/198LOMNT2_U/s1600-h/Untitled-1.gif"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_h_Pff3-G0SM/RwoTMfb_a6I/AAAAAAAAAEU/198LOMNT2_U/s400/Untitled-1.gif" alt="" id="BLOGGER_PHOTO_ID_5118925031778249634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There is a lot of functionality on this page, and it has a huge amount of Javascript (including 7 different jQuery utilities). My first thought was that something else was interfering with the autocompleter, probably with its CSS.&lt;br /&gt;&lt;br /&gt;But another possibility occured to me. On this page, the form is located in a DIV that is hidden until the user clicks to show it. That is different to the "Create a New Project" page where I have the autocompleter working. Maybe that difference was the reason it wasn't working. To test my theory, I stopped the DIV from being hidden and refreshed the page. Low and behold, the autocomplete suggestions were shown in the correct position:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_h_Pff3-G0SM/RwoVuvb_a7I/AAAAAAAAAEc/p39DOeMJtdA/s1600-h/Untitled-2.gif"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_h_Pff3-G0SM/RwoVuvb_a7I/AAAAAAAAAEc/p39DOeMJtdA/s400/Untitled-2.gif" alt="" id="BLOGGER_PHOTO_ID_5118927819212024754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I had identified what was causing the error. But I didn't have an adequate solution, because we can't leave that ugly form on the page when the user doesn't need to use it. I continued examining the page's behaviour and stepping through my code. I noted that when I clicked "Add a New Task", followed by "Cancel Adding Task", followed by "Add a New Task" again, the autocomplete suggestions were not displayed at all, let alone in the correct position. All the "Cancel Adding Task" link does is hide the DIV that the form is in, so once again, the problem was linked to the DIV being hidden.&lt;br /&gt;&lt;br /&gt;That gave me an idea. Maybe I could initialise the autocomplete function whenever the form was shown, rather than when the page was loaded. So I changed this line of code:&lt;br /&gt;&lt;blockquote&gt;$(document).ready(function() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$("div#addnewtask input.person").autocomplete(...);&lt;br /&gt;});&lt;/blockquote&gt;to this:&lt;br /&gt;&lt;blockquote&gt;$("button#addtask").click(function() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$("div#addnewtask input.person").autocomplete(...);&lt;br /&gt;});&lt;/blockquote&gt;And it worked! Hoorah!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-2765633081361926610?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/2765633081361926610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=2765633081361926610' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/2765633081361926610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/2765633081361926610'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/10/javascript-problem-of-day-and-solution.html' title='Javascript problem of the day.. and a solution YAY :-)'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_h_Pff3-G0SM/RwoTMfb_a6I/AAAAAAAAAEU/198LOMNT2_U/s72-c/Untitled-1.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-6775259983046434168</id><published>2007-10-05T18:49:00.000+10:00</published><updated>2007-10-08T19:01:20.989+10:00</updated><title type='text'>Uploading new file versions and commenting on them</title><content type='html'>I did some work on the Documents page, so that now users can upload new versions of files and leave comments on them. I was worried that I would have difficulty getting the file upload functionality to work. We are letting users upload any type of file, and I though that would be harder than the display picture upload, which is just images. In fact, the opposite was true. We don't need to check what the file type is and so its really easy to upload files.&lt;br /&gt;&lt;br /&gt;We have always planned to rename uploaded files in the following format: {file_version_id}.{extension}. In our original database design, we intended to save this filename in the database. But I realised that by including the file version id we are creating redundant data by storing the primary key twice. So I decided to only store the file extension. We will work out file names on the fly when we need them, by joining the file version id with the extension.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_h_Pff3-G0SM/Rwnwgvb_a5I/AAAAAAAAAEM/w9TMi2I_cRY/s1600-h/Picture+4.png"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_h_Pff3-G0SM/Rwnwgvb_a5I/AAAAAAAAAEM/w9TMi2I_cRY/s400/Picture+4.png" alt="" id="BLOGGER_PHOTO_ID_5118886896763628434" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-6775259983046434168?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/6775259983046434168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=6775259983046434168' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/6775259983046434168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/6775259983046434168'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/10/uploading-new-file-versions-and.html' title='Uploading new file versions and commenting on them'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_h_Pff3-G0SM/Rwnwgvb_a5I/AAAAAAAAAEM/w9TMi2I_cRY/s72-c/Picture+4.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-2873918162558524523</id><published>2007-10-03T18:40:00.000+10:00</published><updated>2007-10-08T18:57:38.335+10:00</updated><title type='text'>Comments on documents</title><content type='html'>I wrote a little section for the Project page Long has been working on. Now people can write comments on the page. It follows the same-page AJAX functionality we have used elsewhere. I'm getting the hang of AJAX now.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_h_Pff3-G0SM/Rwntpvb_a4I/AAAAAAAAAEE/kHvguGbAuFE/s1600-h/Picture+2.png"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_h_Pff3-G0SM/Rwntpvb_a4I/AAAAAAAAAEE/kHvguGbAuFE/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5118883752847567746" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-2873918162558524523?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/2873918162558524523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=2873918162558524523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/2873918162558524523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/2873918162558524523'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/10/comments-on-documents.html' title='Comments on documents'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_h_Pff3-G0SM/Rwntpvb_a4I/AAAAAAAAAEE/kHvguGbAuFE/s72-c/Picture+2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-7427672433746456795</id><published>2007-09-29T20:03:00.000+10:00</published><updated>2007-09-29T20:16:38.848+10:00</updated><title type='text'>Making fields autocomplete in the way users expect</title><content type='html'>It is a good idea to follow usability conventions in your website, because then people will know how to use it without having to learn anything new. This evening I spent some time modifying our autocomplete function so it behaves in a way similar to other websites, &lt;a href="http://gmail.com/"&gt;gmail &lt;/a&gt;in particular.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://just-tech.blogspot.com/2006/12/jquery-tweaking-auto-complete-plugin.html"&gt;JQuery autocomplete function&lt;/a&gt; we are using is for the most part very good, but it had a few little quirks that I wanted to iron out so that it functioned exactly how our users would expect. It used a | as a separator, and it removed spaces in between entries. So a list of email addresses would be entered like this:&lt;br /&gt;&lt;blockquote&gt;email@address.com|email2@address.com|email3@address.com&lt;/blockquote&gt;&lt;br /&gt;I changed the separator to a comma, and automatically added one space in between email addresses. This is what gmail does, and I think it is what our users will expect.&lt;br /&gt;&lt;blockquote&gt;email@address.com, email2@address.com, email3@address.com&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-7427672433746456795?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/7427672433746456795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=7427672433746456795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/7427672433746456795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/7427672433746456795'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/09/making-fields-autocomplete-in-way-users.html' title='Making fields autocomplete in the way users expect'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-2077627046943539885</id><published>2007-09-28T15:58:00.000+10:00</published><updated>2007-09-28T16:01:03.718+10:00</updated><title type='text'>Bloody cache!</title><content type='html'>Argh I am so annoyed. I just spent an hour trying to figure out why some of my Javascript wasn't working, and it was because the page I was working on was being read from cache so none of my changes were even being processed! On a brighter note, users can finally register new projects. I think I will come back to this on another day...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-2077627046943539885?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/2077627046943539885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=2077627046943539885' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/2077627046943539885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/2077627046943539885'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/09/bloody-cache.html' title='Bloody cache!'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-8885626731847193251</id><published>2007-09-28T15:08:00.000+10:00</published><updated>2007-10-08T21:57:43.239+10:00</updated><title type='text'>Sending email with PHP is so frustrating</title><content type='html'>OK so I got the send mail function working yesterday on my home server, but now when I get to uni it doesn't work! The Uniform Server we are using doesn't let us send emails, and when we upload this website to mytabletop.com, that server will be different again. Its frustrating having to modify things so they work on different servers. I'm going to stop working on the send email function, and do it after everything else is finished and we have the website hosted on the final server. There's no point spending more time on it now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-8885626731847193251?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/8885626731847193251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=8885626731847193251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/8885626731847193251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/8885626731847193251'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/09/sending-email-with-php-is-so.html' title='Sending email with PHP is so frustrating'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-5787323857565143886</id><published>2007-09-27T14:31:00.000+10:00</published><updated>2007-09-27T14:33:38.289+10:00</updated><title type='text'>Solution for sending email with PHP</title><content type='html'>I submitted a ticket on the support desk of my web host, MD Webhosting, explaining my problem with the PHP mail() function. They told me to use PEAR:Mail to send the email instead of mail(). I tried this, and it worked. So the problem is fixed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-5787323857565143886?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/5787323857565143886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=5787323857565143886' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/5787323857565143886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/5787323857565143886'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/09/solution-for-sending-email-with-php.html' title='Solution for sending email with PHP'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-7469354299019246086</id><published>2007-09-27T12:53:00.000+10:00</published><updated>2007-09-27T12:56:02.103+10:00</updated><title type='text'>Problem sending email with PHP mail() function</title><content type='html'>Today I have encountered a problem while trying to send emails to people who the user would like to invite to their projects. It seems that I can send emails to some addresses, like ...@keeganstreet.net and ...@readymedia.com.au, but not to gmail or hotmail accounts. I don't know why this is so I am looking into it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-7469354299019246086?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/7469354299019246086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=7469354299019246086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/7469354299019246086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/7469354299019246086'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/09/problem-sending-email-with-php-mail.html' title='Problem sending email with PHP mail() function'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-2071789569730504995</id><published>2007-09-26T12:41:00.000+10:00</published><updated>2007-09-27T12:53:52.604+10:00</updated><title type='text'>Creating new projects</title><content type='html'>Long, Justin and I worked all day at uni today, and got a fair bit done. I worked on the "Create a new project" page. I spent most of my time working on the part that collects data from the user, but I haven't got around to actually storing that data yet!&lt;br /&gt;&lt;br /&gt;This page has taken quite a while to develop because I had to make an auto-complete function for the "add people to this project" field, and a clickable calendar for the project's due date. I didn't write these myself, but I had to find them and modify them to work with our product. When a user creates a project, they can invite other people to work on it as well. To do this they can either enter a list of email addresses, or when they start typing characters, suggestions of people they have worked with in the past will be shown. See the screenshot below:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_h_Pff3-G0SM/RvsZ1Pb_a2I/AAAAAAAAAD0/QOq-YKCHD-A/s1600-h/Untitled-1.gif"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_h_Pff3-G0SM/RvsZ1Pb_a2I/AAAAAAAAAD0/QOq-YKCHD-A/s400/Untitled-1.gif" alt="" id="BLOGGER_PHOTO_ID_5114710204277025634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Users also have the option of entering in a due date for their new projects. This is what the due date input field looks like:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_h_Pff3-G0SM/RvsaPfb_a3I/AAAAAAAAAD8/IBX9mvaj_ZA/s1600-h/Untitled-2.gif"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_h_Pff3-G0SM/RvsaPfb_a3I/AAAAAAAAAD8/IBX9mvaj_ZA/s400/Untitled-2.gif" alt="" id="BLOGGER_PHOTO_ID_5114710655248591730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The auto-complete function and calendar are both add-ons for the jQuery Javascript Library, so it was a good move by us to use this library. Modifying these pre-made components was much more efficient than trying to create our own from scratch.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-2071789569730504995?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/2071789569730504995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=2071789569730504995' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/2071789569730504995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/2071789569730504995'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/09/creating-new-projects.html' title='Creating new projects'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_h_Pff3-G0SM/RvsZ1Pb_a2I/AAAAAAAAAD0/QOq-YKCHD-A/s72-c/Untitled-1.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-3308170657301800698</id><published>2007-09-16T19:03:00.000+10:00</published><updated>2007-09-16T19:21:11.717+10:00</updated><title type='text'>Display image distortion on edit profile page</title><content type='html'>I noticed that when I upload a rectangular image as a display picture, it is not resized correctly, and is distorted into a square. I stepped through my resizing algorithm, and all seemed to be OK, so I had a look at the HTML page where the image was being displayed. It turns out that the image had been resized correctly when it was uploaded, but we were then squashing it into a square shape in our style sheet:&lt;br /&gt;&lt;blockquote&gt;&lt;div class="cssHead"&gt;&lt;span class="cssSelector"&gt;img.avatar&lt;/span&gt; {&lt;/div&gt;&lt;div class="cssProp editGroup"&gt;&lt;span class="cssPropName editable"&gt;    border&lt;/span&gt;&lt;span class="cssColon"&gt;:&lt;/span&gt;&lt;span class="cssPropValue editable"&gt;3px solid #1C8B35&lt;/span&gt;&lt;span class="cssSemi"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="cssProp editGroup"&gt;&lt;span class="cssPropName editable"&gt;    height&lt;/span&gt;&lt;span class="cssColon"&gt;:&lt;/span&gt;&lt;span class="cssPropValue editable"&gt;96px&lt;/span&gt;&lt;span class="cssSemi"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="cssProp editGroup"&gt;&lt;span class="cssPropName editable"&gt;    width&lt;/span&gt;&lt;span class="cssColon"&gt;:&lt;/span&gt;&lt;span class="cssPropValue editable"&gt;96px&lt;/span&gt;&lt;span class="cssSemi"&gt;;&lt;/span&gt;&lt;/div&gt;}&lt;/blockquote&gt;I have removed the size restriction from our CSS, and I will tell Justin and Long on Wednesday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-3308170657301800698?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/3308170657301800698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=3308170657301800698' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/3308170657301800698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/3308170657301800698'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/09/display-image-distortion-on-edit.html' title='Display image distortion on edit profile page'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-1429374654602817886</id><published>2007-09-12T19:12:00.000+10:00</published><updated>2007-09-16T19:19:47.092+10:00</updated><title type='text'>Not much progress this week</title><content type='html'>I missed class this week for a job interview with Eclipse Group. It turned out that my interviewer, Jarrod Dumble, is one of Matt Butler's mates. I haven't made much progress with my Studio this week because of the interview and lots of work in my other subject.&lt;br /&gt;&lt;br /&gt;I sent an email to Justin and Long to let them know I wouldn't be coming:&lt;br /&gt;&lt;blockquote&gt;Hi Long &amp;amp; Justin,&lt;br /&gt;&lt;br /&gt;I won't be able to come to studio today because of my job interview with Eclipse Group.&lt;br /&gt;&lt;br /&gt;Here's my tabletop files. During the last week I have been working on the register section.&lt;br /&gt;&lt;br /&gt;Please note that it is not working, because of a database issue. In our schema file, I forgot to make the primary keys AUTO_INCREMENT. We need to change this in our database before it will work. I have attached a new schema file and test data file which *should* work, but they are untested. Compare them with your current schema file and test data file to see what I did.&lt;br /&gt;&lt;br /&gt;Good luck!&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;Keegan Street&lt;br /&gt;&lt;br /&gt;President&lt;br /&gt;Monash Union of Berwick Students Inc&lt;br /&gt;Phone: 03 9904 7092&lt;br /&gt;Mobile: 0400 188 581&lt;br /&gt;Fax: 03 9904 7134&lt;br /&gt;Email: &lt;a href="mailto:president@mubs.com.au" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt; president@mubs.com.au&lt;/a&gt;&lt;br /&gt;Web: &lt;a href="http://www.mubs.com.au/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;www.mubs.com.au&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Proprietor&lt;br /&gt;Ready Media&lt;br /&gt;User focused web development&lt;br /&gt;ABN: 19 640 210 286&lt;br /&gt;Phone: 0400 188 581&lt;br /&gt;Email: &lt;a href="mailto:keegan@readymedia.com.au" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt; keegan@readymedia.com.au&lt;/a&gt;&lt;br /&gt;Web: &lt;a href="http://www.readymedia.com.au/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;www.readymedia.com.au&lt;/a&gt; &lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-1429374654602817886?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/1429374654602817886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=1429374654602817886' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/1429374654602817886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/1429374654602817886'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/09/not-much-progress-this-week.html' title='Not much progress this week'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-4313598001223228843</id><published>2007-09-09T14:53:00.002+10:00</published><updated>2007-09-16T19:18:06.400+10:00</updated><title type='text'>Using the jQuery Javascript library</title><content type='html'>After researching some different Javascript libraries and considering writing our own Javascript, our group has decided to use the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;jQuery&lt;/span&gt; Javascript library for Tabletop. This library will help speed up our development process because we won't have to write functions that other people have already written for us. The library includes things like form validation, visual effects and AJAX functions. It makes writing Javascript a lot easier. I no longer have to write this:&lt;br /&gt;&lt;blockquote&gt;document.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;getElementById&lt;/span&gt;("message").&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;innerHTML&lt;/span&gt;="Your changes have been saved."; &lt;/blockquote&gt;Because I can achieve the same thing with this:&lt;br /&gt;&lt;blockquote&gt;$("#message").html("Your changes have been saved.");&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-4313598001223228843?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/4313598001223228843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=4313598001223228843' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/4313598001223228843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/4313598001223228843'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/09/using-jquery-javascript-library.html' title='Using the jQuery Javascript library'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-6424694797386194876</id><published>2007-08-29T11:47:00.000+10:00</published><updated>2007-08-29T12:05:26.354+10:00</updated><title type='text'>To use a Javascript framework?</title><content type='html'>I haven't been using a Javascript framework to write my AJAX, so I've been writing everything in raw Javascript. Today Justin Morris (not the Justin in our group), noticed that, and suggested I consider using a Javascript framework because it would make the coding more efficient. However using raw Javascript is a good learning experience. I will discuss this with my group members today.&lt;br /&gt;&lt;br /&gt;Justin recommended two good Javascript frameworks:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;jQuery&lt;/li&gt;&lt;li&gt;Prototype&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-6424694797386194876?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/6424694797386194876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=6424694797386194876' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/6424694797386194876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/6424694797386194876'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/08/to-use-javascript-framework.html' title='To use a Javascript framework?'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-5616068522385792675</id><published>2007-08-29T11:06:00.001+10:00</published><updated>2007-08-29T11:08:30.381+10:00</updated><title type='text'>AJAX on the Profile and Settings Page</title><content type='html'>The Profile and Settings page is almost completely functional now. Users can change their email address, name and password. Later today they should be able to change their display pictures. I have enjoyed learning AJAX over the last few days for this page.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_h_Pff3-G0SM/RtTG9JmJJhI/AAAAAAAAADk/qbavgSevmxE/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_h_Pff3-G0SM/RtTG9JmJJhI/AAAAAAAAADk/qbavgSevmxE/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5103923031567836690" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-5616068522385792675?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/5616068522385792675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=5616068522385792675' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/5616068522385792675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/5616068522385792675'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/08/ajax-on-profile-and-settings-page.html' title='AJAX on the Profile and Settings Page'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_h_Pff3-G0SM/RtTG9JmJJhI/AAAAAAAAADk/qbavgSevmxE/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-2331243386379727145</id><published>2007-08-24T17:55:00.000+10:00</published><updated>2007-08-24T18:05:33.875+10:00</updated><title type='text'>Using AJAX in Tabletop</title><content type='html'>Early in the design stage of Tabletop we decided that we wanted it to be fast to use, and that would mean using AJAX to perform functions without loading new pages. Over the last couple of days I have been learning how to use AJAX. The best tutorial I found was at &lt;a href="http://www.w3schools.com/ajax/default.asp"&gt;w3schools&lt;/a&gt;. I have been working on the "Edit Profile" page. Data is collected on a form and sent to a PHP file, which validates the data before saving it to the database. An appropriate message is shown to the user on the original page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-2331243386379727145?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/2331243386379727145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=2331243386379727145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/2331243386379727145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/2331243386379727145'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/08/using-ajax-in-tabletop.html' title='Using AJAX in Tabletop'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-4814527953817729731</id><published>2007-08-22T17:35:00.000+10:00</published><updated>2007-08-29T11:04:18.099+10:00</updated><title type='text'>Combining Long's login system with Justin's timestamp formatter and my news feed</title><content type='html'>Today Long, Justin and I combined what we had each been working on over the week. Long had created a login system that verified a username and password and created a session for logged in users. Justin had written a function that took a timestamp as input and gave it back in English (i.e. it turns "1185955434" into "two days ago" and "1185959034" into "next week"). I had created the dashboard page, including a news feed of recent activity and a task list. When we put them all together, here's what we got:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_h_Pff3-G0SM/RtTDX5mJJgI/AAAAAAAAADc/cW4ManX6ytA/s1600-h/Picture+2.png"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_h_Pff3-G0SM/RtTDX5mJJgI/AAAAAAAAADc/cW4ManX6ytA/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5103919093082826242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As you can see it is starting to look a bit nicer. We had to tweak a few things to get our work to fit together, but nothing major had to be done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-4814527953817729731?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/4814527953817729731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=4814527953817729731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/4814527953817729731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/4814527953817729731'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/08/combining-longs-login-system-with.html' title='Combining Long&apos;s login system with Justin&apos;s timestamp formatter and my news feed'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_h_Pff3-G0SM/RtTDX5mJJgI/AAAAAAAAADc/cW4ManX6ytA/s72-c/Picture+2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-5784775526327854502</id><published>2007-08-18T13:48:00.000+10:00</published><updated>2007-08-18T13:57:16.297+10:00</updated><title type='text'>Dilemma solution</title><content type='html'>I will define the difference between the way to-do list items are displayed and ordered on the dashboard and project pages.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Dashboard page&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Displays only the to-do list items that are assigned to the logged in user, but for all of their projects.&lt;/li&gt;&lt;li&gt;Items are ordered by due date, and are categorised under the following headings: &lt;span style="font-style: italic;"&gt;Overdue, Due Today, Due Monday, Due Tuesday, Due Wednesday, Due Thursday, Due Friday, Due Saturday, Due Sunday&lt;/span&gt; and&lt;span style="font-style: italic;"&gt; Upcoming Tasks&lt;/span&gt;. Items without a due date are put at the bottom under the "Upcoming Tasks" heading.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Project page&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Displays all of the to-do list items associated with a project, no matter which person they are assigned to. Doesn't show items from other projects.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Items are by default ordered in the order they were created, and can be re-ordered by clicking and dragging.&lt;/li&gt;&lt;/ul&gt;Here is a screenshot of the task list on the dashboard.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_h_Pff3-G0SM/RsZty5mJJfI/AAAAAAAAADU/JMlWkPXI87c/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_h_Pff3-G0SM/RsZty5mJJfI/AAAAAAAAADU/JMlWkPXI87c/s400/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5099884349265356274" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-5784775526327854502?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/5784775526327854502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=5784775526327854502' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/5784775526327854502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/5784775526327854502'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/08/dilemma-solution.html' title='Dilemma solution'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_h_Pff3-G0SM/RsZty5mJJfI/AAAAAAAAADU/JMlWkPXI87c/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-6035109411496212379</id><published>2007-08-18T12:38:00.000+10:00</published><updated>2007-08-18T12:56:04.610+10:00</updated><title type='text'>The dilemma of how to order items in the to-do list</title><content type='html'>Due dates are optional for to-do list items in Tabletop. This is because when people work on projects, some of their tasks will have due dates and some won't, and we need to reflect this reality.&lt;br /&gt;&lt;br /&gt;However, this introduces a challenge for our development team. If all tasks had due dates, then it would seem intuitive to order them by due date. But how do you order a list by due date when some of the items don't have one?&lt;br /&gt;&lt;br /&gt;We have previously discussed this dilemma in our group. We noted that effective people work on important, rather than urgent, tasks first. So we decided that it is important for users to be able to re-order their to-do lists, and move the most important tasks to the top. The default order for to-do lists in Tabletop will be the order in which the items were added, not their due dates. Users will be able to drag and drop tasks into the desired order.&lt;br /&gt;&lt;br /&gt;This introduces a problem for me today as I work on the Dashboard page. I need to collect to-do list items from all of a user's projects, and put them into a list so the user can see what to work on. I would like this list to be due-date based, so overdue tasks appear red, today's tasks are bold, etc. But I am wondering if this conflicts with our earlier decision...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-6035109411496212379?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/6035109411496212379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=6035109411496212379' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/6035109411496212379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/6035109411496212379'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/08/dilemma-of-how-to-order-items-in-to-do.html' title='The dilemma of how to order items in the to-do list'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-1464179732092139451</id><published>2007-08-15T19:04:00.000+10:00</published><updated>2007-08-15T19:10:38.311+10:00</updated><title type='text'>Creating the skeleton</title><content type='html'>Today Long, Justin and I began working on the PHP for our website. Long was mainly focusing on creating a login system with sessions. I started working on the dashboard page, which gives users an overview of their projects. I got the page to show a list of the user's projects and a News Feed of recent activity. This screen shot shows how much I got done:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_h_Pff3-G0SM/RsLCaw7ofyI/AAAAAAAAADE/ScXOOKnmy8Q/s1600-h/Untitled-1.gif"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_h_Pff3-G0SM/RsLCaw7ofyI/AAAAAAAAADE/ScXOOKnmy8Q/s400/Untitled-1.gif" alt="" id="BLOGGER_PHOTO_ID_5098851493204229922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I ran into my first problem with the database design today. I forgot to include a variable in the user table for last_login_date and in the to_do_list_item table for created_date. I needed these to be stored for the news feed. So I amended the schema.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-1464179732092139451?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/1464179732092139451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=1464179732092139451' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/1464179732092139451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/1464179732092139451'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/08/creating-skeleton.html' title='Creating the skeleton'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_h_Pff3-G0SM/RsLCaw7ofyI/AAAAAAAAADE/ScXOOKnmy8Q/s72-c/Untitled-1.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-7501881267848383009</id><published>2007-08-08T16:11:00.000+10:00</published><updated>2007-08-14T16:17:53.055+10:00</updated><title type='text'>Completing Process Diary</title><content type='html'>Today we handed in our project proposal. Long had almost finished it, so today I wrote the technical requirements and file naming conventions, and Justin and I added the database plans and project timeline. We proof-read, edited and printed the document, and then handed it in.&lt;br /&gt;&lt;br /&gt;Over the next week, I am going to start to write some PHP functions for the website. Justin is going to do some research into PHP and AJAX.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-7501881267848383009?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/7501881267848383009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=7501881267848383009' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/7501881267848383009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/7501881267848383009'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/08/completing-process-diary.html' title='Completing Process Diary'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-1783233676652095674</id><published>2007-08-01T21:43:00.000+10:00</published><updated>2007-08-02T09:25:47.152+10:00</updated><title type='text'>Reviewing the Project Scope as a Group</title><content type='html'>In studio today we stepped through the process a user would go through when they used our website. We figured out a few changes I would have to make to the database. They included adding a project_description to the project table.&lt;br /&gt;&lt;br /&gt;We also made these decisions:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;When a user invites people to a project, the invitees are sent an email and have to click a confirmation link before they are added as a member of the project.&lt;/li&gt;&lt;li&gt;We will use automatically appearing input-text boxes (like on flickr), for users to change text on the website.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Users can drag and drop items in their to-do list to re-order them. We will save their position in the database.&lt;/li&gt;&lt;li&gt;When a project is created, if it has a due date we will automatically create a to-do list item called "Project due" on the due date.&lt;/li&gt;&lt;li&gt;Comments can be deleted NOT edited.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;We want to highlight unread comments to users on our website. I think we should store an unread/read value for every user/comment combination, but Long thinks this is too inefficient. I understand that it will create a huge number of entries in our database ([C x U] x P, where C=avr no of comments in a project, U=avr no of users in a project, and P=number of projects in our database). But databases are made to handle heaps of records. Plus we will only be storing two integers and a boolean for each record so it won't be much storage space.&lt;br /&gt;&lt;br /&gt;After class I stayed back til 8pm and made the appropriate changes to our database design. I then exported a schema and a test data insert file, and checked them for errors. I eventually got everything ironed out, so we've got a working MySQL database that is propagated with test data. We can now start writing functions as soon as we like.&lt;br /&gt;&lt;br /&gt;Long is going to a Microsoft conference on the Gold Coast next week (lucky guy!.. except for the Microsoft part), so he is going to finish all his work by the end of the week, and that will give Justin and I a chance to go over it before the plan is due next Wednesday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-1783233676652095674?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/1783233676652095674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=1783233676652095674' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/1783233676652095674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/1783233676652095674'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/08/reviewing-project-scope-as-group.html' title='Reviewing the Project Scope as a Group'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-5252524074019868342</id><published>2007-07-28T16:46:00.000+10:00</published><updated>2007-08-02T09:02:09.550+10:00</updated><title type='text'>Computer-Aided Database Design</title><content type='html'>After designing the database on paper, I used Database Design Studio to redo it on the computer. DDS helps create a schema with proper foreign keys and everything. This is the Entity Relationship Diagram made in DDS:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_h_Pff3-G0SM/RrEQDQ7ofwI/AAAAAAAAACs/I2UeBG6GgJU/s1600-h/Entity+relationship+diagram.gif"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_h_Pff3-G0SM/RrEQDQ7ofwI/AAAAAAAAACs/I2UeBG6GgJU/s400/Entity+relationship+diagram.gif" alt="" id="BLOGGER_PHOTO_ID_5093870301803478786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This is the Data Structure Diagram:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_h_Pff3-G0SM/RrEQaA7ofxI/AAAAAAAAAC0/ZD9aIlHP9uk/s1600-h/Data+structure+diagram.gif"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_h_Pff3-G0SM/RrEQaA7ofxI/AAAAAAAAAC0/ZD9aIlHP9uk/s400/Data+structure+diagram.gif" alt="" id="BLOGGER_PHOTO_ID_5093870692645502738" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-5252524074019868342?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/5252524074019868342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=5252524074019868342' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/5252524074019868342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/5252524074019868342'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/04/database-design.html' title='Computer-Aided Database Design'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_h_Pff3-G0SM/RrEQDQ7ofwI/AAAAAAAAACs/I2UeBG6GgJU/s72-c/Entity+relationship+diagram.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-3896758564561916136</id><published>2007-07-27T18:29:00.000+10:00</published><updated>2007-08-02T08:54:08.382+10:00</updated><title type='text'>Designing Entity Relationship Diagram</title><content type='html'>I designed a draft ERD today:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_h_Pff3-G0SM/RqmtZg7ofvI/AAAAAAAAACk/pK0MBX1vxlc/s1600-h/DSCF6651.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_h_Pff3-G0SM/RqmtZg7ofvI/AAAAAAAAACk/pK0MBX1vxlc/s400/DSCF6651.jpg" alt="" id="BLOGGER_PHOTO_ID_5091791507567443698" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-3896758564561916136?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/3896758564561916136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=3896758564561916136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/3896758564561916136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/3896758564561916136'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/07/designing-entity-relationship-diagram.html' title='Designing Entity Relationship Diagram'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_h_Pff3-G0SM/RqmtZg7ofvI/AAAAAAAAACk/pK0MBX1vxlc/s72-c/DSCF6651.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-3947640760076604303</id><published>2007-07-25T18:21:00.000+10:00</published><updated>2007-08-02T09:02:41.316+10:00</updated><title type='text'>Defining the Scope of the Project</title><content type='html'>In studio today we defined the scope of our project. We explained the idea to Mark and he didn't have any problems with it. I drew this as a map of our ideas:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_h_Pff3-G0SM/RqmsFQ7ofuI/AAAAAAAAACc/cbIHpZeD958/s1600-h/DSCF6649.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_h_Pff3-G0SM/RqmsFQ7ofuI/AAAAAAAAACc/cbIHpZeD958/s400/DSCF6649.jpg" alt="" id="BLOGGER_PHOTO_ID_5091790060163464930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is my understanding of the scope of our project:&lt;br /&gt;A &lt;span style="font-weight: bold;"&gt;user&lt;/span&gt; creates, or is invited to be a group member of, a &lt;span style="font-weight: bold;"&gt;project&lt;/span&gt;. The number of users working on a project is not limited. The number of projects a user can be involved in is limited to 3, or unlimited for paying users. Users can leave projects if they no longer want to be involved. If all of the users involved in a project leave the project, the project is deleted. Projects have a name and a last update time.&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;When a &lt;/span&gt;&lt;span style="font-weight: bold; text-decoration: underline;"&gt;user&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt; has write permissions on a &lt;/span&gt;&lt;span style="font-weight: bold; text-decoration: underline;"&gt; project&lt;/span&gt;&lt;span style="text-decoration: underline;"&gt; he/she can do the following:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Invite other users to a project. They are automatically added to the project (no approval required).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Add an item to the  &lt;span style="font-weight: bold;"&gt;to-do list&lt;/span&gt; of that project.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;To-do list items have a name, a due date (optional) and person/s responsible (required for group projects, and automatically set for individual projects). &lt;/li&gt;&lt;li&gt;Users can set items to be either in progress or completed.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Add a &lt;span style="font-weight: bold;"&gt;document&lt;/span&gt; to the project (could be an image, word file, PDF, etc)&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Documents must have a name. The name should be editable by any user with write access (using AJAX - similar to the status change feature on Facebook).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Documents must have at least one version, but possibly many versions uploaded by different users. Versions must have a system date. Old versions are still accessible, but can be deleted by any user with write access. &lt;script&gt;&lt;!-- D(["mb","\u003c/li\&gt;\u003c/ul\&gt;\u003cli\&gt;Write a \u003cspan style\u003d\"font-weight:bold\"\&gt;comment\u003c/span\&gt; in one of two places - on the main page of a project (where the to-do list is located), or on a document page (i.e. &amp;quot;I like that version you just uploaded Fred&amp;quot;).\n\u003c/li\&gt;\u003cul\&gt;\u003cli\&gt;Comments have a time and a body. They are not sorted into threads.\u003c/li\&gt;\u003c/ul\&gt;\u003c/ul\&gt;\u003cspan style\u003d\"text-decoration:underline\"\&gt;When a user has read permissions on a project he/she can do the following:\u003c/span\&gt;\u003cbr\&gt;\n\u003cul\&gt;\u003cli\&gt;View the to-do list, documents and all comments. Nothing is hidden from them, they just can&amp;#39;t change anything or write any comments.\u003c/li\&gt;\u003c/ul\&gt;\u003cspan style\u003d\"text-decoration:underline\"\&gt;When a user is a member of a project (with either write access or read access), here&amp;#39;s the added benefits they get:\n\u003c/span\&gt;\u003cbr\&gt;\u003cul\&gt;\u003cli\&gt;They will be notified in a &amp;#39;news feed&amp;#39; whenever a new version of a document is uploaded. The notification will remain in their &amp;#39;news feed&amp;#39; until they open the document page.\u003c/li\&gt;\u003cli\&gt;New to-do list items will have a star next to them the first time the user sees them.\n\u003c/li\&gt;\u003cli\&gt;They will be notified in a &amp;#39;news feed&amp;#39; whenever a to-do list item is assigned to them as the person responsible.\u003c/li\&gt;\u003cli\&gt;They will be notified in a &amp;#39;news feed&amp;#39; whenever a new comment is added to a document or to the project.\n\u003c/li\&gt;\u003cli\&gt;New comments will have a star next to them the first time the user sees them.\u003c/li\&gt;\u003c/ul\&gt;Users might have a number of projects on the go at the same time, so when they log in they see a &amp;#39;dashboard&amp;#39; page with recent info from all their projects. \n\u003cspan style\u003d\"text-decoration:underline\"\&gt;This is what users can do on the &amp;#39;dashboard&amp;#39;:\u003c/span\&gt;\u003cbr\&gt;\u003cul\&gt;\u003cli\&gt;Create new projects or remove themselves from old projects.\u003c/li\&gt;\u003cli\&gt;View their &amp;#39;news feed&amp;#39; containing all notifications.\n\u003c/li\&gt;\u003cli\&gt;See a to-do list of items they are responsible for, across all of their projects.\u003c/li\&gt;\u003cli\&gt;See a visual representation of due dates (i.e. a calendar).\u003c/li\&gt;\u003c/ul\&gt;\u003cbr\&gt;\u003cbr\&gt;-- \u003cbr\&gt;Keegan Street\u003cbr\&gt;\u003cbr\&gt;President\u003cbr\&gt;Monash Union of Berwick Students Inc\n",1] );  //--&gt;&lt;/script&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Write a &lt;span style="font-weight: bold;"&gt;comment&lt;/span&gt; in one of two places - on the main page of a project (where the to-do list is located), or on a document page (i.e. "I like that version you just uploaded Fred"). &lt;/li&gt;&lt;ul&gt;&lt;li&gt;Comments have a time and a body. They are not sorted into threads.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span style="text-decoration: underline;"&gt;When a user has read permissions on a project he/she can do the following:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;View the to-do list, documents and all comments. Nothing is hidden from them, they just can't change anything or write any comments.&lt;/li&gt;&lt;/ul&gt;&lt;span style="text-decoration: underline;"&gt;When a user is a member of a project (with either write access or read access), here's the added benefits they get: &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;They will be notified in a 'news feed' whenever a new version of a document is uploaded. The notification will remain in their 'news feed' until they open the document page.&lt;/li&gt;&lt;li&gt;New to-do list items will have a star next to them the first time the user sees them. &lt;/li&gt;&lt;li&gt;They will be notified in a 'news feed' whenever a to-do list item is assigned to them as the person responsible.&lt;/li&gt;&lt;li&gt;They will be notified in a 'news feed' whenever a new comment is added to a document or to the project. &lt;/li&gt;&lt;li&gt;New comments will have a star next to them the first time the user sees them.&lt;/li&gt;&lt;/ul&gt;Users might have a number of projects on the go at the same time, so when they log in they see a 'dashboard' page with recent info from all their projects. &lt;span style="text-decoration: underline;"&gt;This is what users can do on the 'dashboard':&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Create new projects or remove themselves from old projects.&lt;/li&gt;&lt;li&gt;View their 'news feed' containing all notifications. &lt;/li&gt;&lt;li&gt;See a to-do list of items they are responsible for, across all of their projects.&lt;/li&gt;&lt;li&gt;See a visual representation of due dates (i.e. a calendar)&lt;/li&gt;&lt;/ul&gt;We also brainstormed for names of the project. Here are some of the ideas: projector (or projectr), project now!, chalkboard and tabletop. Some other words that are related to our project that could make up part of a title are: student, schedule, learning, books, time, calendar, project, planner, desk, web, lab and table.&lt;br /&gt;&lt;br /&gt;Over the next week I am going to design the database, Justin is going to make a Gantt chart to illustrate our project schedule, and Long is going to work on the project plan documentation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-3947640760076604303?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/3947640760076604303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=3947640760076604303' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/3947640760076604303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/3947640760076604303'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/07/defining-scope-of-project.html' title='Defining the Scope of the Project'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_h_Pff3-G0SM/RqmsFQ7ofuI/AAAAAAAAACc/cbIHpZeD958/s72-c/DSCF6649.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-7495363153029528154</id><published>2007-07-24T09:14:00.000+10:00</published><updated>2007-07-24T09:35:32.981+10:00</updated><title type='text'>Review of To-Do Facebook Application</title><content type='html'>The description of &lt;a href="http://monashedu.facebook.com/apps/application.php?id=2427507431&amp;b"&gt;To-Do&lt;/a&gt; in the Facebook Applications Directory includes a "still under development" disclaimer, so I didn't have huge expectations of it.&lt;br /&gt;&lt;br /&gt;When you add a to-do list item, you enter a category, description, due date and priority. There is no clickable calendar in the due date field, but users can submit English answers like "tomorrow" or "Friday". A &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_h_Pff3-G0SM/RqU5SQ7oftI/AAAAAAAAACU/sveTheAs4kY/s1600-h/add.png"&gt;&lt;img style="cursor: pointer; border:0; margin:0;" src="http://bp0.blogger.com/_h_Pff3-G0SM/RqU5SQ7oftI/AAAAAAAAACU/sveTheAs4kY/s400/add.png" alt="" id="BLOGGER_PHOTO_ID_5090537939757727442" border="0" /&gt;&lt;/a&gt;  (plus) icon is used to save items, which I think is confusing for the user. To-Do is a one-page application; when the user saves a to-do list item, it is simply printed to the page. There is no calendar to visually represent due dates; dates are formatted like 07-24-07, which doesn't effectively highlight that THIS TASK IS DUE TODAY! To-Do doesn't make use of the social environment Facebook provides at all. It doesn't tell the users friends when they complete a task, or when they need help on a task, and it doesn't let users show off their achievements on their profile.&lt;br /&gt;&lt;br /&gt;Don't set your expectations too high when using this application, or you might be disappointed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-7495363153029528154?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/7495363153029528154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=7495363153029528154' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/7495363153029528154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/7495363153029528154'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/07/review-of-to-do-facebook-application.html' title='Review of To-Do Facebook Application'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_h_Pff3-G0SM/RqU5SQ7oftI/AAAAAAAAACU/sveTheAs4kY/s72-c/add.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-5132253133516559066</id><published>2007-07-23T12:59:00.000+10:00</published><updated>2007-07-24T09:14:03.828+10:00</updated><title type='text'>Review of Basecamp Project Manager</title><content type='html'>&lt;a href="http://www.basecamphq.com/"&gt;Basecamp&lt;/a&gt; is an online project manager for small businesses. It helps organisations manage their projects by creating to-do lists keeping track of what needs to be done and who is responsible, sharing files within the organisation and with external clients, recording how much time people spend on different tasks and letting team members talk on message boards.&lt;br /&gt;&lt;br /&gt;To review Basecamp, I will set it up to help manage one of &lt;a href="http://www.mubs.com.au/"&gt;MUBS&lt;/a&gt;' current projects, a &lt;span&gt;student to student tutoring program&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;I am working on this project with the Education Officer, so to begin I clicked a tab called &lt;span style="font-style: italic;"&gt;People&lt;/span&gt;, and I was able to add him to the project.&lt;br /&gt;&lt;br /&gt;I then clicked the messages tab, and added a description of what this project actually is. There were some simple checkboxes on the screen that let me notify the other team members that I had posted the message. One weakness I noticed in the messages section is that the post message form is on a separate page from the view message page. The user experience could have been improved if AJAX had of been used to allow the user to view and edit the message on the same page.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_h_Pff3-G0SM/RqQmRQ7ofrI/AAAAAAAAACE/lBOICd4eU_4/s1600-h/Picture+2.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer;" src="http://bp3.blogger.com/_h_Pff3-G0SM/RqQmRQ7ofrI/AAAAAAAAACE/lBOICd4eU_4/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5090235556880219826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next, I clicked the to-do tab to create a plan for the project. I gave the to-do list a name, "Set up tutoring program", and then entered in to-do items one by one. I specified who was responsible for completing each item, and was given the option to notify the person by email. I was glad to see that this time Javascript was used, and I didn't have to wait for new pages to load every time I made a change. I was able to drag and drop tasks into the correct order, and edit them where they were published.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_h_Pff3-G0SM/RqQqHQ7ofsI/AAAAAAAAACM/yeUbBABq9ZI/s1600-h/Picture+4.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer;" src="http://bp3.blogger.com/_h_Pff3-G0SM/RqQqHQ7ofsI/AAAAAAAAACM/yeUbBABq9ZI/s400/Picture+4.png" alt="" id="BLOGGER_PHOTO_ID_5090239783128039106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next stop: Milestones. The to-do list doesn't record deadlines - that feature is separated into the Milestones tab. To create a milestone, I was asked to enter a due date, a description and a person responsible. There was a checkbox offering to email the person I specified now and 48 hours before the task is due - a nice touch. A feed was automatically created to import milestones into iCal or Mozilla Calendar. I did have a strange feeling I was double handling the items I had entered in the to-do list though.&lt;br /&gt;&lt;br /&gt;The next feature on the tab list is the Writeboard - a basic wiki. When I created a new document, I was forwarded on to the &lt;a href="http://www.writeboard.com/"&gt;Writeboard&lt;/a&gt; website (which is made by the same company as Basecamp). Basecamp and Writeboard have been integrated quite effectively, and most users probably wouldn't notice they are moving between two websites. Unfortunately Writeboard is a very basic wiki; nowhere near the likes of &lt;a href="http://docs.google.com/"&gt;Google Docs&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Being an internet website has both advantages and disadvantages for Basecamp. The file sharing feature is a good example. The fact that Basecamp is online makes it easy to keep colleagues and clients updated on your progress. However, if you are working with large files, it is just not practical to upload them to the internet to share - especially in countries like Australia with slow internet.&lt;br /&gt;&lt;br /&gt;The to-do list and milestones were very nice to use, and although there were some problems with the website, I would love to use it in MUBS. I won't though, because I already introduced a wiki this year and I'm having enough trouble getting people to use that!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-5132253133516559066?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/5132253133516559066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=5132253133516559066' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/5132253133516559066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/5132253133516559066'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/07/review-of-basecamp-project-manager.html' title='Review of Basecamp Project Manager'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_h_Pff3-G0SM/RqQmRQ7ofrI/AAAAAAAAACE/lBOICd4eU_4/s72-c/Picture+2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5480583170723705926.post-3604847739140667565</id><published>2007-07-22T15:43:00.000+10:00</published><updated>2007-08-14T16:10:29.588+10:00</updated><title type='text'>The start of Studio 2!</title><content type='html'>This semester I'll be working with &lt;a href="http://www.istartedsomething.com/"&gt;Long Zheng&lt;/a&gt; and &lt;a href="http://justintickner.wordpress.com/"&gt;Justin Tickner&lt;/a&gt;. The reason we formed a group is we're all interested in developing a database driven  website. We want to make something that we can put on the net so other people can see it and use it. We're all studying double-degrees, so we're a year behind the people we started with and we're among the last cohort to do Studio 2 before it is phased out. Long and Justin worked together in Studio 1 and made a fashion website / CD-ROM. They did a fantastic job with it, so it will be good to work with them this semester.&lt;br /&gt;&lt;br /&gt;This week in studio we talked about ideas for our project. Long explained an idea he'd been thinking about over the mid-year break, and that was a project manager for students. It would let students create to-do lists for their assignments, tick things off when they were completed, talk to team members on group projects, and work collaboratively using a wiki. We talked about our experiences of writing to-do lists for assignments, especially when all the assignments come at once, and we agreed that an computer based system could really help. A to-do list for a media essay might look like this:&lt;ol&gt;&lt;li&gt;Research Second Media Age in the library - by July 27;&lt;/li&gt;&lt;li&gt;Compile a list of good references - by July 27;&lt;/li&gt;&lt;li&gt;Work out an essay plan and discuss it with tutor - by August 3;&lt;/li&gt;&lt;li&gt;Write a draft for the body of the essay - by August 16;&lt;/li&gt;&lt;li&gt;Write a draft for the introduction and the conclusion - by August 17;&lt;/li&gt;&lt;li&gt;Proof-read - by August 21;&lt;/li&gt;&lt;li&gt;Write a final copy - by August 24;&lt;/li&gt;&lt;li&gt;Write a reference list - by August 28;&lt;/li&gt;&lt;li&gt;Submit essay - August 31.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;At times I've had three or four to-do lists like this on different scraps of paper. We could develop a system that helps students store all their assignment objectives and plan their work schedule. This would be much more effective than keeping to-do lists on scraps of paper. Ticking off completed tasks can also serve as a good motivator. Justing and I both admitted to writing elaborate to-do tasks of things we'd already completed, just so we could tick them off and feel good about our achievements.&lt;br /&gt;&lt;br /&gt;I suggested that this idea would be useful for businesses as well as students. I know that in &lt;a href="http://www.mubs.com.au/"&gt;MUBS&lt;/a&gt; it can be difficult to make sure everyone has something useful to do, and that they are doing it. The last MUBS board meeting was focused on figuring out our goals for second semester. Throughout the semester I'll be ticking goals off on a white board as we achieve them. However, Long pointed out that a common mistake made by students in studio is to make their project too broad, and there are already really good project managers for businesses out there (such as &lt;a href="http://www.basecamphq.com/"&gt;Basecamp&lt;/a&gt;). I think it is a good idea to focus our product on students.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.facebook.com/apps/application.php?api_key=90452f9c1745102740c2f5c8a66ba62c"&gt;&lt;img style="border: 0px none ; margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp1.blogger.com/_h_Pff3-G0SM/RqQVyw7ofqI/AAAAAAAAAB8/79J8Whdobgs/s400/screenshot-with-badge.jpg" alt="" id="BLOGGER_PHOTO_ID_5090217440708165282" border="0" /&gt;&lt;/a&gt;We also discussed the method of distribution for the product. Long suggested we package it as a standalone website that lets students create x number of assignments for free, but then requires payment for continued use. Group licenses could also be sold to schools and universities (if the government funded them adequately that is). I suggested that a good alternative would be to make our product on the &lt;a href="http://developers.facebook.com/"&gt;Facebook platform&lt;/a&gt; so it could be distributed virally from students to their peers. It could have a free number of trials or be ad supported. During the mid-year break I made a Facebook application called &lt;a href="http://www.facebook.com/apps/application.php?api_key=90452f9c1745102740c2f5c8a66ba62c"&gt;Introduce Me&lt;/a&gt;, and now there's over 1,500 people using it. After discussing these options we decided to go with the standalone website. We think our product is better suited to be standalone because Facebook is for socialising, and our product is for studying. By putting it into the Facebook environment, there would be too many distractions for our users.&lt;br /&gt;&lt;br /&gt;Over the next week, we will research whether our idea has been done before, and if so, how.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5480583170723705926-3604847739140667565?l=keegan-mms2401.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keegan-mms2401.blogspot.com/feeds/3604847739140667565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5480583170723705926&amp;postID=3604847739140667565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/3604847739140667565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5480583170723705926/posts/default/3604847739140667565'/><link rel='alternate' type='text/html' href='http://keegan-mms2401.blogspot.com/2007/07/start-of-studio-2.html' title='The start of Studio 2!'/><author><name>Keegan Street</name><uri>http://www.blogger.com/profile/02918005576210587956</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_h_Pff3-G0SM/RqQVyw7ofqI/AAAAAAAAAB8/79J8Whdobgs/s72-c/screenshot-with-badge.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
