mrigeshpokhrel (
mrigeshpokhrel) wrote in
dw_dev2010-03-31 05:26 pm
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
![[site community profile]](https://www.dreamwidth.org/img/comm_staff.png)
Entry tags:
GSoC2010 : Desktop Client
hi,
I am Mrigesh, a Information Technology student from IIIT-Allahabad India and would like to work on the project developing desktop client for Dreamwidth.
Since past one or two weeks i have been studying the protocols which have been forked from LiveJournal (http://www.livejournal.com/doc/server/ljp.csp.protocol.html)and(http://hg.dwscoalition.org/dw-free/file/tip/cgi-bin/ljprotocol.pl) and the existing client for livejournal "logjam" . I have gained some understanding of the code and the client/server protocol reference specified above.
I would like to start with a bottom-up approach for the gui client, centring it along the linux OS specifically Ubuntu, using QT. I would start off with creating a client in following manner :
I would be following the ABC rule of software development, i am recently messing with twitter api (using curl) and have been successful till date while posting a tweet and a mention/reply. I would to integrate twitter functionalities as well , but that seems a bit far-fetched. I would also be honoured to work with/on dreamwidth even after GSOC2010 as i find it could help me learn a lot of new things!!
Any sort of suggestions or critic comments are most welcome, after-all it would only help me in improving my proposal :) .
Thank You
Regards
Mrigesh Pokhrel
irc : _silentAssassin
gtalk : mrigeshpokhrel
skype : mrigeshpokhrel
(PS: i am in india and so i would be available anytime after 12:00 GMT ( thats when my class gets over))
I am Mrigesh, a Information Technology student from IIIT-Allahabad India and would like to work on the project developing desktop client for Dreamwidth.
Since past one or two weeks i have been studying the protocols which have been forked from LiveJournal (http://www.livejournal.com/doc/server/ljp.csp.protocol.html)and(http://hg.dwscoalition.org/dw-free/file/tip/cgi-bin/ljprotocol.pl) and the existing client for livejournal "logjam" . I have gained some understanding of the code and the client/server protocol reference specified above.
I would like to start with a bottom-up approach for the gui client, centring it along the linux OS specifically Ubuntu, using QT. I would start off with creating a client in following manner :
- Creating a bare minimum client:
- The client would request the user for authentication(username and password)
- The client would allow the user to "read" past entries and "post" a new entry after successful authentication.
- The methods used would be (Flat client/server protocol : http://www.livejournal.com/doc/server/ljp.csp.flat.protocol.html)
- login : logging into the client after successful authentication
- sessiongenerate : generating a session after successful login
- postevent : posting a blog/journal only if the login and sessiongenerate are both successful.
- sessionexpire : close the session instance the user has created thus.
- Client with functionalities like reading and editing past posts, check friend list/groups and edit friend list/groups
- The client would perform bare minimum functions as defined above
- The user would be able to view his past posts and edit them.
- The client would have a side pane/scrollbox where he would be able to view and edit his existing friends and groups
- The new methods implemented would be :
- login : logging into the client after successful authentication.
- sessiongenerate : generating a session after successful login.
- postevent : posting a blog/journal only if the login and sessiongenerate are both successful.
- getevents : coupled with "syncitems" this would allow the user to view his past posts, events, to-do items.
- editevent : this would allow the user to edit/delete past posts in his journal.
- getfriends : this would fetch the list of users the current logged in user identifies as friends and displays them in the side pane/scrollbox.
- getfriendgroups : fetch the user defined groups of friends.
- editfriends : add/edit/delete existing friends.
- editfriendgroups : edit user defined friend group list.
- This would be supposedly the final client(that what i planned till now anyways) with proxy support(i dont know how to do that but i am still reading a blog about it) and most of the required functionalities provided in the protocol.
I would be following the ABC rule of software development, i am recently messing with twitter api (using curl) and have been successful till date while posting a tweet and a mention/reply. I would to integrate twitter functionalities as well , but that seems a bit far-fetched. I would also be honoured to work with/on dreamwidth even after GSOC2010 as i find it could help me learn a lot of new things!!
Any sort of suggestions or critic comments are most welcome, after-all it would only help me in improving my proposal :) .
Thank You
Regards
Mrigesh Pokhrel
irc : _silentAssassin
gtalk : mrigeshpokhrel
skype : mrigeshpokhrel
(PS: i am in india and so i would be available anytime after 12:00 GMT ( thats when my class gets over))
no subject
reply @cesy
no subject
I'm curious why do you prefer a flat interface? IMHO, XML-RPC is a lot more convenient. Also, probably you've noticed that friend groups do not work on DW the same way as on LJ, due to DW's approach of splitting the permissions into "subscription" and "access", so the corresponding protocol functions are missing. (I had volunteered to add them, hopefully it will be accomplished in the very near future, as soon as I'm done with the friend manager part of my client -
@catness
And about permissions provided in the protocols, i was referred to eXpostulate , and was informed about the differences in the protocol methods. Though a reference link would help a lot in that :P !!
Which all permissions are splitted?? can i get a link for the documentation.
thank you for your comment, that was helpful.
Re: @catness
Oh and I used a Qt-based XML-RPC implementation at http://code.google.com/p/qtxmlrpc/ (although had to fix a few things as it didn't work right away).
Re: @catness
Re: @catness
Re: @catness
Also, you don't need to have a subject line saying who you're responding to, as the reply threading on DW does that automatically.
no subject
no subject
no subject
what i meant with the flowchart was to just view the situation where a user has subscribed to my post (knowing that even if he hasn't he can view my public posts), can view my private content if and only if i specified so (added him in the trust list).
no subject
@pauamma
no subject
as in, if i flag a friend of mine trusted then do i need to put him in any trust group?
no subject
no subject
So, if I have a reading filter, it will let me see only a portion of the number of accounts I'm subscribed to -- maybe I'm subscribed to a community that posts 500 posts a day, and if I read my whole reading page, the community will drown out any other posts that people I'm subscribed to make. So, I create a reading filter that doesn't include that community, but does include everyone else, and I read that filter regularly and then go read the community itself when I have time to catch up.
Posting filters (access filters) are for if you want to make a post that's only visible by a few people on your list. Say I have my mother on my access list, but I want to bitch about her -- I'd make a filter that didn't include her and post to that filter. Or if I know that half my readers aren't interested in my locked posts about a thing, I'd make a filter that only includes people who want to read about the thing and post all Thing-related posts to that filter. Or, some people (myself include) have a very small filter of people who read their fiction that they're writing while it's still being written, to offer improvements and stuff. That kind of thing.
no subject
no subject
My client has DW, LJ, IJ, DJ, and Izi cross-posting & twitter and identi.ca functions.
The thing is, though, it only posts...does not read entries, manage friends, etc....
In the works!
Good luck with your project!
:)
tony
no subject
its not as easy as it seems , would take a lot of quality time. But its worth the effort.
no subject
I will be interested in seeing what you come up with.
I imagine you're not writing tcl/tk (not popular), but if you have anything to contribute back to my project, it would be most welcomed, of course.
no subject
no subject
no subject
The code is heavily commented, though, which might be useful.
no subject
In the meantime, perhaps you should join <http://xpostulate.dreamwidth.org">the Xpostulate DreamWidth community.
(experiment ... sadly, I don't know how community links work on DW, just user and cut tags.) (I think this one will point to lj
no subject
no subject
no subject
Nonetheless, I think it's good that I did, anyway.
:D
no subject
no subject
I mean to post a manual/howto on there, though.
no subject
no subject
Proposal submission
regards.
Re: Proposal submission
Re: Proposal submission
http://en.wikipedia.org/wiki/Qt_%28framework%29#Varieties
although it supports mobile devices as well, i would be concentrating on linux(ubuntu), then windows and then finally mac. In doing this i would have to make sure that i refrain from using OS dependant libraries and make use of cross-platform libraries, so that it would be easier to port from linux to windows and mac!
Re: Proposal submission
http://stackoverflow.com/questions/2035249/if-i-use-qt-for-windows-will-my-application-run-great-on-linux-mac-windows#answers
Re: Proposal submission
Although I develop primarily on+for gnu/linux, tcl/tk is fully crossplatform, so, unless I call linux-specific system resources, my code can be run on mac/win/lin/bsd.
Python/tkinter, which I also like, is the same, and/or perl/tk.
I think Qt will do lin/mac/bsd easily enough, but, unless I'm mistaken, Qt on Win might be a bit of a P.I.T.A.