Wednesday, August 21, 2013

Weekly report: August 21st 2013

During the last 7 days, I didn't quite get around to everything I wanted to do (which wasn't helped by 4 of the days being holidays) but there was progress.
  • Bug 2066 (chat rooms and IRC's LIST) is finally r+.
  • I experimented more with frecency scores ("frecency" is inspired by Firefox's Places Frecency algorithm)
  • After a bit of experimenting, I finally decided to stop messing around and get some actual data to play with from logs.
  • Using Florian's WIP from bug 1584, I put together an addon that goes through logs and obtains information on recency (date of most recent log file) and frequency (number of messages exchanged, with separate counters for incoming and outgoing)
  • Playing with the algorithm for a while, I finally ended up with the following:
    • Score = Total message count * frequency multiplier * recency multiplier
    • Here, frequency multiplier is the ratio of outgoing to incoming message counts, and recency multiplier is identical to what Firefox uses.
    • This gave me pretty accurate results, the conversations with the highest scores were definitely what I would most likely want to open if I pressed Command+T :)
Tomorrow I will be working to integrate this into the stats service and use these scores to sort conversations in the newtab.

PS.
I again notice that my work over a week seems to be concentrated over one or two days, during which I spend 10-15 hours each day on a kind of frenzy. Meh.

Tuesday, August 13, 2013

3-day report: August 9th, 10th and 12th 2013

  • Played with ranking - using frequency as well as recency as parameters (took most of my time on Friday)
  • Made changes to the way ranks are stored, to better accommodate chats (soon).
  • Updated tabbrowser images for retina displays (bug 2103) (Monday night)

Friday, August 9, 2013

Daily report: August 8th 2013

  • Rewrote the way conversations are stored in IndexedDB. This took most of my time tonight (pesky bugs!).
    • Now, a conversation's rank is stored with the conversation's id as the key.
    • I've defined a conversation's id as the string obtained by concatenating its source and _id values.
    • For contacts this looks something like "contact2", "contact-5", etc. For chats, it's source + accountId + name - for e.g. "chataccount1#instantbird".
  • Added basic ranking. A conversation's rank is the number of times it has been opened. Ranks are updated and stored as conversations are opened.
  • Short term to-do list:
    • Code cleanup
    • Support for chats
    • More sophisticated ranking
    • Obtain historical data from logs

Thursday, August 8, 2013

Weekly report: August 7th 2013

  • More modifications to the chat room list patch (bug 2066) - unfortunately this still isn't ready to land yet.
  • Brainstormed the ranking system and storage of conversation data.
  • Read documentation on IndexedDB and wrote code to store/retrieve contacts in an IndexedDB object store (mostly experimenting with the API and understanding the approach).

Friday, August 2, 2013

Daily report: August 1st 2013

Today I finally discovered what was causing performance issues I was trying to debug for a couple of days. Lag was being caused by tons of warnings being spewed due to bug 2075.

Having fixed this I was finally able to finish a new patch and upload it for review.

Thursday, August 1, 2013

Weekly report: August 1st 2013

  • Worked further on bug 2066. Hopefully this should be ready soon.
  • Submitted patches for follow up bugs: 2068, 2075, 2076, 2078, 2081, 2082.
  • Progress has been a bit slow. I need to speed up and get the chat room stuff done so that I can start working on statistics and ranking.