User:Shikhar/Worklog

From OLPC
Jump to: navigation, search

git

http://dev.laptop.org/git?p=activities/xomail;a=summary

Status as of...

Friday, August 22, 2008 =

I lifted code from the journal for the message listing (ListView and related classes)... can't say I understand all of it but it seems like a good decision considering what the TreeView I was trying looked like...

Message listing: Media:Xomail_msglist.png

So now I have a week in which my priorities are as follows:

  • Configuration (1-2 days)
  • The tagging features that are there in the 'model' but not in the 'view' - (1-2 days)
  • Message view (2 days)
  • mail.xo - even if it's not full featured and pretty alpha, I hear they say 'release early, release often' (1 day)

Gaurav is really busy these days so he hasn't sent me the icons, but sometime next week he says.

Friday, August 15, 2008

I did get the 'listing tags' bit ready and I am mostly happy with the visual result. Providing interface for making changes to the tags is a night's work that I will do later. Right now working on the message listing. Should be done tonight (preliminary).

Friday, August 8, 2008

It turns out pysqlite doesn't play nice with using the same db connection across threads even though sqlite itself supports it. So I changed the mailstore to store a dictionary hashed by thread and a db connection for each thread comes a-calling. There won't be that many so this should work well. Also made tags more intelligent and a very viable 'model' for use by the activity. The mailstore API is a lot cleaner than before consequently. Again this is all in the model, and needs to have a view implementation - this stuff is definitely more fun to hack on, but I really really need to get around to the UI. I'm probably going to use hippocanvas after I checked out the Journal's code. Monday on - end of the month: There is so much to do I can't afford to do fun things and further delay essentials (UI...). On the artwork front, Gaurav has promised to do the icons by the 20-somethings august.

Sunday, August 3, 2008

GTK TreeView's aren't very welcoming for the unacquainted, I am discovering.

This week is a self-determined-hackathon and I want to have the following done well, by the end of it:

  • Message listing (treeview....)
  • Sorting by 'Who' (from/to), 'What' (subject), 'When' (date)
  • Message viewing
  • Downloading of messages and user feedback
  • Filling in the gaps in some parts of the code where I have taken shortcuts

I also need to make a list of icons I need and send it to Gaurav.

Some of the things I will not do this week (just a note to myself of what will have to be done next):

  • Making tagging a pleasant experience.
    • A widget for tags... right now I'm just using gtk.Button!
    • I also want the user to be able to reorder the tags and this ordering to be cached
  • Background thread which waits on connection availability and sends unsent emails, and user feedback for the same
  • Configuration (interface, storing it in a file, parsing etc)
    • Service descriptors for easy configuration (like for Gmail)
    • First run configuration screen

Wednesday, July 30, 2008

Locked out of git because my laptop power adapter died today. (Note to self: backup private key!!)

I decided to ditch Tinymail, and go with Python standard library as I had originally planned (poplib, imaplib, smtplib, email module, mailbox.Maildir), and I am making better progress. The Tinymail Python bindings need a lot of work and I don't think I have the skills or understanding to contribute to that.

Now I feel a lot better about delivering on my aims for the activity. From what exists in git, writing and sending emails is now possible. What went into that: interface for writing emails, SMTP implementation, thread for sending so GUI doesn't get locked up.

However the sent message was not stored, but now it can be because I have been working on a mailstore that combines a maildir with a sqlite db for storing metadata (tags, cached headers, flags).

Miscellany:

  • discovered sugar.graphics.alert and used it for the sending email thread; this is the mechanism that will be used for user feedback
  • have a network manager listener, so that the activity can detect connection status.

I am working on a POP implementation now. I think POP is very relevant in intermittent-connectivity situations where you just want to suck all the mail in when a connection is present. (An IMAP implementation which does the same thing i.e. no server sync'ing or such will not be so hard)

In the next few days I will start on the UI for reading and organizing email.

Happy about:

  • Project moving forward
  • I like the mailstore API
  • I am learning a lot

inter alia :-)

Monday, July 14, 2008

Happy to report that GUI hacking is going very well

There are some problems I have experienced with the Python bindings for Tinymail that I hope to sort out with help from Mark Doffman in the coming days.

I think end of this month for the slipped milestone is achievable. I'd be happy with that...

Sunday, June 29, 2008

  • Studied the existing Python test implementation, which gave me a basic idea
  • I think I am starting to get a feel of the tinymail implementation
  • I revised the schedule to reflect reality
    • The milestone is in two weeks for an activity with email reading/writing and account management (even if just from a configuration file). Should keep me motivated since it's not too far.

Thursday, June 26, 2008

I haven't been communicating with Phillip because right now there isn't much he could help me with, and it's all things I have to do for myself: get familiar with GTK+ above all else; an interesting but time-consuming exercise. I made the basic mail activity and narrowed down and put in place some of the widgets I will use.

Still to begin addressing the actual functionality. So on the agenda for what is left of the week is to experiment with Tinymail, and come July be in a position to do the kind of work that can belong in a repository.

Sunday, June 15, 2008

I think at least my development environment is mostly set up

  • Compiled Tinymail --with-python-bindings. Tested the python demo made by Phillip. It runs just fine from a sugar-jhbuild environment.
  • However, I had trouble compiling it on the XO. scp'ing the built package across didn't lead to any success with importing tinymail in python on the XO. This will have to be sorted out.
  • Made some mockups on paper
  • Started work on a Sugar activity

Thursday, June 12, 2008

I got back home on June 3. Since then, I've had far too much to deal with and haven't really done much which sucks. So I want to devote a lot more time everyday in the next few weeks.

But a status report is in order:

  • Upgraded DSL to 1mbps (pretty much the max around here..)
  • Received 2 XO's under the contributor's program (thank you OLPC! I had asked for one but I'll make sure they are put to good use. Wonderful little machines.)
    • Developer keys received
    • One XO runs Update.1 703 and the other Joyride 2035
  • Mark Doffman was kind enough to update his Python bindings for Tinymail