Monday, August 25, 2014

Profile thyself!

This is an idea to profile yourself. The idea is derived from three core thoughts ,

  • Know thyself.
  • We are what we repeatedly do.
  • You can only trust the numbers.

The three thoughts are connected. You see, you first understand you need to know yourself . Now who are you ? you are what you repeatedly do . And the way to know what you do repeatedly and how well you do that you need to count them. Finally you are inclined to profile yourself.

And there is a saying(not proved though) that doing something more than 10,000 hours may make you expert. I just want to know how many hours I do one such thing. So I profiled myself. Here is a page full of report.

There are other people trying this too,

Friday, December 16, 2011

Portfolio


MiniIM is messaging client for jabber/xmpp protocol. (Java2mobile edition) Try it here at desktop.
Get source here,
svn co https://miniim.svn.sourceforge.net/svnroot/miniim/trunk miniim_trunk
It renders xml(some that is used to minimize gui coding like qml) to gui on fly .

MiniIM is messaging client for jabber/xmpp protocol(rewritten in C, Qt).(UNFINISHED)
Get source here,
git clone git@github.com:kamanashisroy/miniim.git
The development platform is now debian linux. It uses Qt to render GUI . It includes a small memory manager that I call object pool plus. This memory library includes a lock-free queue (tested in production) . And It uses the Object Oriented notion in C .

Wednesday, December 10, 2008

Discussion Group

There is a new discussion group open for MiniIM project. Thanks go to google-group-team for such wonderful support. Vision, action and community support mean success.

Serializable kdom rocks

The kxml project means a lot for j2me. I have done some modification to make a document serializable in Recordstore. Here is the code. You can follow the usage examples in the code to make it work for you.

To use this code you just need to get the code from trunk. The obfuscator will skip the classes you do not use.

Browser features explained

Earlier I talked about my vision. In that application there are pages like "More", "About" they are rendered from markup files(more.xml, about.xml, ..) found here. They are following markup.dtd rules. Surely you can create documents on fly and work on DOM.

Note that it is svn-branch, the trunk is always containing the updated features.

And there are application-switches making it possible to interact with user. Here are the responsible code doing the magic.

The markup is not rich in features. It was good to follow an existing markup rule. I am hoping to do that in future. And I am keeping eye on w3.org for that.

Tuesday, December 9, 2008

XMPP client with browser-like features

I am back to j2me again. In my earlier attempt I was trying to render a WML content. Now I am here with a little advanced browser like feature to show web content. Note that I have dropped the idea of writing WML renderer. I have added a markup renderer. To be specific it can render a list of markup items. Here we can show on line content. It is stylable on compile-time.


Motivation
When I want to add some feature to my sweet application, it just gets bigger in size. And bigger size prevent it to work in low end mobile phones. So the idea is to write little j2me code and add most of the features in the servers. And here I am sharing the implementation of the idea in a hope that it gets richer and useful to you.

Similar efforts
There is something similar available in ZK project. And there is also a browser feature in j2mepolish project. I prefer mine, because I believe that it has very small footprint, it is light-weight(reuses objects) and I am willing to process any feature request that will suite this. Mobile Ajax is another interesting project.

Input fields
It has textbox, selection(multiple) box, checkbox, radio input ideas implemented. I am hoping to add some multimedia feature as well. Like an input box for image, sound etc and also playback of the media content.

Benchmark
It is tested on WTk monitor output that shows low object instantiation.

Caveats
It is using document parser from kxml project. The document and elements there uses vectors and it makes the parsing little slower. I am looking for some alternative to this.

Thinking forward
I think this is a step forward to social features. The next thing to do is to write web application to represent information from social sites. I am now looking for any kind of reusable component for this. I mean I am not trying to reinvent. And it is hard to maintain too. If you think you have nice idea or have something to say please feel free post comment or email me directly.

Additionally it has a IM framework to develop end to end application too.

Please consider testing MiniIM in your mobile.

Wednesday, August 6, 2008

Pidgin as instant messaging gateway

Pidgin is the most powerful IM client I have ever seen . This is because of the big community support and also because I am big fan of Mark Spencer :-P .. The libpurple (Pidgin/Finch core) library can be used as IM gateway . I implemented such gateway for event notification . Something like a bot .



It keeps libpurple connected to the IM servers of different protocol and takes message request from UNIX socket . For example the following code will send a message to Chitrangoda ..


#!/usr/bin/perl -w

use strict;
use Socket;

my $sock_file = $ARGV[1] || "./im_socket_file";
my $msg;
die "provide a socket file address" unless $sock_file;

socket(SOCK, PF_UNIX, SOCK_STREAM, 0) || die "socket: $!";
print "connecting ..\n";
connect(SOCK, sockaddr_un($sock_file)) || die "connect: $!";

print "writing ..\n";
$msg = "chitrangoda\@example.com MSN This is sent to Chitrangoda via MSN server.".chr(0x1A);
send(SOCK,$msg,0);
recv(SOCK,$msg,100,0);
print "done\n";
close SOCK;



And here is the code with examples pidgin_send_im (please let me know if the link is broken).It works with Pidgin version 2.4.2 and upper (I am not sure about the lower version) ..

Again, there are more than one way to do it. You can use the perl/php bindings or plugins .. I expect you show those howtos in the comments.