Thursday, February 26, 2009

The biggest adventure of my life...so far.

So I made a decision and I'm going to Japan to work for the Seiko Epson Corporation. I'll be gone for at least 12 months and I'm not quite sure what to do with myself right now. I'm excited and scared and anxious and about a million other things right now.

Pretty much everyone I talked to told me to take the job. (could this be everyone's way of trying to get rid of me?) It really helped to get more information from Isaac, with much thanks to Andrew, because Isaac gave me a lot more information about his experience there and definitely made it much less scary. Isaac also put me in touch with Siwan who did an internship in the city that I'm going to, but I'm still waiting to hear back from him. All in all, thank you to everyone's help and support!

The last time I went to Japan, I went to school. It was amazing! I did a tour in Tokyo and a tour in Kyoto. In fact I got to stay in a traditional japanese hotel in Kyoto, which was really cool since the school funded that trip. The classes I took were interesting. There was actually a timetable slot to learn japanese tea ceremony for all the students in the school as well as brush and ink calligraphy. All the students were also so enthusiastic about everything and so energetic. They were lots of fun to be around.

Now I'm more excited to go. I just have to make sure I get everything done before I leave and try not to get too distracted. School's not over yet!

Sunday, February 22, 2009

Code Sprint 09

Code Sprint is over and I'm even MORE excited to work on the project. I really enjoyed that sort of environment where there was a wealth of knowledge readily available as well as meeting and getting to know all the other people working on the same project as i am. Everyone was very welcoming and open to new ideas even if they were often way out of the ballpark. It was a lot of fun not interacting with a computer all day. It was definitely an experience for me. Meeting Liz and learning from her was a great experience. I really learned a lot about usability testing and prototyping. I also never Google-d so much in my life.

Some highlights:
- Usability testing. It was extremely interesting to get feedback, though contradictory. Learning how to properly do usability testing was also extremely useful. So Thanks LIZ!
- Eran's "Chicken Timbits" will also NEVER be forgotten...
- Watching David run around trying to set up networks and help pretty much EVERYONE in the room was amazing. He did an awesome job at solving everyone's problems.
- Unfortunately I was out of the room the last day when we got graphs and greg apparently yelled it out, scaring everyone else in the room. I wish I could have been there for that!

Some things to note:
- this was mentioned in the post mortem, but I agree that having the code sprint at the beginning of reading week would have been better. THEORETICALLY, yes, assignments and homework should have been done before the code sprint. However, the likelihood of that is not very high.
- I wouldn't have mind if i had to pay for more of my own meals. I think the value in the experience is definitely worth it.

I'll report on the progress Liz and I made at the Code Sprint as soon as I'm caught up in all of my other classes! :)

Friday, February 20, 2009

Search Revisited...



This is a new version of search. Please forgive the AWFUL Photoshopping. Some things to note:

- We removed the language selection from search because we were unsure of how to search user inputted data in different languages. Since the user input has no language type associated with it, unless it's the default language, there would be no way to search for items in a particular language that is not the native language. This would be a nice feature to have in the future though. However, the Help pages might be written in different languages later on, so language search for help pages will be useful for that even if it can't search through user content.

- We added the search by content and projects. By default, from the simple search bar, it will search all contents and projects, so we made that the default for the advanced search. If the user want's only one content type, then they ca deselect the "All" option which will also deselect all the other options as well. The same goes for projects. Selecting on the "My Projects" or "Other Projects" will select all projects under those headings, OR deselect.

Those are the major changes that we made. Please comment on this! ... Just not on how terribly I photoshopped that image together.

Monday, February 16, 2009

VCS UI ... finally...and what do you know? It's Monday!



Ok so here is the first draft of the VCS UI. There's another part coming. With file systems, it's often natural to view it as a kind of tree structure. So I kept that here. On the side, users will be able to navigate through their files as they would in MS Explore or other OS file system browsers. Also, when the user clicks on a file, the contents will be displayed in the right panel. You'll also notice that there is a "More Details" link. Clicking on this will slide* out two more columns. One will be the revision number, who committed it, and the size. From there, the user should be able to select two revisions and click on a "Show differences" button and the differences will be displayed. It is still unclear what the best way to do that is. From the previous comments, a side by side view would be nice, but when i looked that that, I didn't like the way they displayed the line numbers. I thought that it was very confusing especially if you're doing a review. Since both documents have different line numbers, users would have to specify which line numbers they were referring to and which revision as well. I'm not a fan of this. I suggested a multi-coloured approach. Perhaps a mix of both will do and better line numbering.

Thursday, February 12, 2009

Search updated...Finally!

Okay so I've been saying that I would have this up "soon". well "soon" has FINALLY come! Some changes to note:

- Calendar buttons in the Last Updated section. I left it as 2 fields because users may not want to specify both and by making it one line, I think they would feel compelled to fill in both to get the best results, which may not be what they want. So when they select a date from the calendar, it will appear in the text box next to it.

- Languages. I changed it to a drop down where the default will be "Any Language", but if the user selects "Select Languages from List", then a scrollable text box will appear and they can select 1+ languages.







This took a surprising amount of time to get done. Not quite sure why. But that means that I won't have the VCS UI done for tomorrow. I should have it done by Monday (Family Day). There are still a few things that I want to work out.

Wednesday, February 11, 2009

Where have all the women gone?

This is totally unrelated to designs.

I just replied to a thread on the CDF forums about the lack of women in CS. There are lots of studies about why women are not as interested in CS, but I haven't gotten around to reading them. There are hundreds of factors as to why women choose to go into CS. For me, I like building things and knowing that I've created something that other people can use to make their lives easier. Even if that isn't the present case, I'm working towards it. That is my reason to WHY. How did I know that I liked programming though? I'm pretty sure it started in high school. My first TIK course was in Visual Basic. I caught on to the syntax, structure, and ideas pretty quickly and the other girls envied me. I became the go to person if the teacher was busy. I was lucky though. The other TIK class with the same course code and description was learning how to use Microsoft Office. If I had been in that class, I may never had learned about programming at all! Crazy! But out of 100 girls, I was the only one in my grade that pursued a degree in computer science. I think one other person applied and started, but soon after dropped out and went into economics or politics.

I think it really depends on a person's personality. I like to build things and have since I was able to pick up a Lego block. I also dislike succumbing to peer pressure, so I tend to do what I want. However, for some girls in high school, they can't help but conform to stereotypes and crumble under peer pressure. So how do we reach out to them and expose them to programming? What about ENJOYING programming? We can expose them to it, but it doesn't mean that they'll enjoy it enough to pursue a degree in it.

I like the Storytelling Alice project for middle school girls, but I don't think it will work for high school girls. As a final project in high school, we were asked to create a game using all the structures we learned about. I made a short RPG whereas the majority made trivia games about pop culture since it was easiest and they like keeping up with pop culture. SO perhaps if we can incorporate an Alice-like software and integrate it with pop culture SOMEHOW, it could reach out to high school girls.

Since I've been in CS though, I have a tendency to think that I don't know as much as other people. I realize that in life there will always be people who like putting you down, but sometimes it feels like a lot of people in CS are like this. They may not intentionally mean to be condescending, but they sure come off that way. It may be because in their high school they were in fact one of the smartest people in the school. There are a lot of incredibly bright students in CS who were top (or close to top) of their class and perhaps feel a little threatened now to be a bottom feeder and competing against all the other top students from around the world.

Then again, what do I know? I'm just a woman. ;)

Monday, February 9, 2009

Monday Update...Not that I regularly update on Mondays...

Okay, so due to some time constraints, I haven't been able to draw up and scan in a new version of the Search app with all the comments taken into account. I'll get around to it. It will be done by Friday for sure.

I did meet with Veronica and Aran this morning to talk about the VCS UI. Well I mostly told them what I wanted and they told me weather it would be possible or not. I'm trying to look through their API to see what's possible, but I definitely think that anything *should* be possible. Anyways here are a few things that I think it will have:
* Tree hierarchy of the file system including all branches. Basically like Windows Exporer. The view of this should be be a smaller portion of the screen (like 20% perhaps) just enough to see the directories and filenames.
* Next to the exploring portion, will be a text area where a selected file will be displayed and users can scroll through the content of the file.
* It would also be cool to give users the ability to view the details of the document with a right-side slide-in column. It will display the different revision numbers of the document as well as who committed it and possibly the size. I say possibly the size, because in the context of small student projects, the size may not be that important. However, for large projects, it could be useful.)
* There should also be a navigational links bar on top, so that users can click on a parent directory and be taken straight there.

I'm not so sure what to do about adding files and committing new revisions yet.

Aran asked me to think about merging and differencing as well in terms of UI. I gave it some thought, and for now I'm thinking that once the user has selected 2 revisions to merge, it will appear in either a new window or page or possibly even in the current text viewing area. Where the texts are the same, it will appear in black, and where they differ, the differences will appear in different colours. So similar to the command line (in that it shows the differences one after another separated by '>' lines) but instead of using '>', we can differentiate in different colours, which is more eye-catching and easier to look at, I think. This same method can be used for differencing as well.

Sketches of everything will be coming soon...to a blog near you.

Thursday, February 5, 2009

Project Search

Thinking about searching through projects (as asked by Greg), I think that it would make the most sense to allow users to search through all the projects that they have access to. So if they were searching for a ticket assigned to them from different projects, they could see them in the search. Then in the advanced search, there should be an option, that allows the user to select which projects they would like to search in. This list should change from user to user obviously. The regular search should default to the current project or have a small like like "advanced" but instead "all projects" just underneath the search bar. I'll sketch this up soon.

** Edit **
If a project gives anonymous users read access, then clearly the project is allowing other people to look at it. So I think that it is okay to allow searching over all projects in that way. It could be useful if you're looking for one project in particular. We could always add that extra option in the advanced search to allow users to search only within their projects or all projects. Then by default, the search bar should look only within the user's direct projects that they have write permissions to and to search all projects, the option would have to be selected in an advanced search.

One thing I noticed about Dr Project when I was using it last semester was that I wasn't able to access different projects from one account log in. (Not sure if that statement makes sense). See, I had 2 different courses that used Dr Project, and I would have assumed that I could log in and see both projects. That was not the case. I definitely think that it would be useful if that was possible. So to relate this to Basie, this is definitely a feature that should be implemented somehow. Then again, perhaps the functionality was there, I just didn't know how to use it properly.

** Edit **
With Dr Project, perhaps there could be some way to allow the students or users to merge two projects in some sort of separate interface specific to them. obviously we can't allow all the instructors access to other instructors' pages, but some way to merge project pages, or some place where users can "manage" their projects would be nice.

Monday, February 2, 2009

First Search Mock-up

These are sketched of the first Search App mock-ups.



To include the search capability in Basie, there are a couple things that we need. The first is the search bar at the top of every page. It's convenient to be on any page and be able to search for something specific. That general search bar will search for the content over the entire site. There will also be the option of doing a general Google search. You can see an drop-down arrow where the user can select whether they want to search only in their Basie project or on Google instead. if they choose to do a Google search from that search bar, then a new tab or window should open with the Google results page.

The Search results from Basie will display the "Title" which will be any number of things depending on the result.
* Events - event name
* Mail - subject line
* Tickets - ticket title/one-liner description
* Wiki - title of the Wiki page
* Source - full file name including root directory (i.e. /root/trunk/file.py)

Next to the Title will be a percentage rating of how relevant the result is. The first item will always be 100%, and all subsequent results will be rated with respect to the first item. So if the first result gets 5 hits of the key words, and the next item gets 4, then the second result will display 80%.
Following the "Title" will be the context in which the search content appears.
Then on a new line, the link to the item as plain text.



In the advanced search, there are several more fields that the user can specify:
Show Items with...
* all of these words - makes sure all the words appear in the result
* this exact phrase - must appear exactly in the result
* any of these words - lets the user input words separated by 'OR'. You will notice that there is a second 'OR' after the second box. It is a button, that, once pressed, inserts two new input boxes directly below the current two input boxes.
* none of these words - will exclude any result that contain any of the words inputted here

Last Updated...
* within the last - this will let users specify how recent the search results must be based on the last time the item was modified or updated. List options would be "anytime"(default), "24 hours", "2 days", "week", "month", "year".
* before - this will let users specify how old the search results must be at least. List options would be "now"(default), "24 hours", "2 days", "week", "month", "year".

Languages...
* any language
* in the following languages - lets users specify what language the search results should be in.

Results...
* Display ## results per page - gives the user the abilitty to specify how many results they want to display on one page. Since we are using pagination, users may only want to see the first few or see them all on one page. It will be a drop-down menu with the following options: 5, 10, 20, all.



I thought it would be a good idea to allow users to specify the language since Basie supports multiple languages. It's likely that in a single project, there may be multiple language source files or e-mails. So this option may be useful if the user wants to search for only e-mails written in french.