Enjoy Studies v0.1a

Yesterday, I rolled out the first of supposed many releases of Enjoy Studies. (I really have a bad rep with projects that start and never end…)
For all those who are wondering what this is all about, Enjoy Studies is an attempt to help students who want to learn and are facing some trouble with it. This is an idea in progress and everyone can have a say in this. Our final aim is to provide an alternative to conventional education which engages and provides an awesome intellectual framework for anyone willing to learn anything.
That being a really generalized statement and idea, I will list out the detailed motives and steps on the Enjoy Studies blog

This being my personal blog, I’ll try to keep to non-tech parts of the site. The first of them is what exactly does the site do? Right now, it just provides a box for you to post any doubt/question you have. We do not restrict you to be confined in streams of conventional education, career, life in general. May be, we are named such that you kinda get a feel that they you to ask questions only related to education. :P
When we have an answer for you, we mail you back. In case of questions related to academia, it might end with only 1 reply. In case of *deeper* questions, its more like a series of mails / chats etc than a single question and answer format. When we finally do find a generic for-public answer, we save it with us so that it can be used to help. So from where I see it, its going towards being some mix of a QnA site for V1. The major differences between a standard QnA site and Enjoy Studies are,
#1 The mentor gets personally involved in many cases. (did I mention we have an open mentor/mentee concept? more on that on the Enjoy Studies blog later)
#2 In many cases, we can have a non-generic reply. So we need to more or less make a model sometime in future which actually helps figure out answers most relevant to you.
#3 In case of 1 answer questions, we keep only the best answer and try to use it as a means for self assessment and fill voids in course content (Yes creating an alternative course is in V2 release plan, but that may change entirely)
#4 Discussion boards. Similar to mentor/mentee, we are to make a discussion board for users to interact among themselves. The final outcome of those discussions are also gonna go into the QnA model.
Apart from the content itself, almost everything on Enjoy Studies is a community effort, right from planning to release. If anyone of you is a great designer or kick ass developer looking to save the world, we can find some task for you and give you some rep for it :)
Do comment on any issues you find with using/ rendering of the site, I am a terrible designer. As the title says, Ask a doubt!

Thinking VS Doing

After getting back from Kolkata, I have been acting rather crazy crazier than before. I am almost doing a full time thinking now.
What I mean is I spend almost all my waking hour and perhaps some part of my sleeping hours too thinking and planning the future and making up scenarios and trying fit all crazy in it.
Having a nerd-ish brain (refer The Nerd Handbook for details), I wanted to perhaps think through all the possible outcomes and scenarios that the future might hold and make a well-informed and wise choice. What I failed to realize that finding the right choice for today is more like finding the position and momentum of an electron (refer Uncertainty principle). And as always it took me ages to realize this and now perhaps it’ll take some time to get over it.
There are a lot of things that I figured out and learned during this time. Also, I did come up with a daily master plan. I like to call it Multitasking simplified

  1. You can not judge the future
    No matter how hard you try, you can never judge what the outcome of something will be. You can make a best guess based on how things have been in the past and trying to put yourself in that situation and playing out roles in your mind. This may be a good idea while trying to figure things out with code its way more difficult and almost a waste of time when doing this with people and utterly ridiculous when you are doing it with people whom you really don’t know that well…
    The best you can do is know your goals.
  2. Know your goals
    Not knowing what to do next is like the worst thing that can happen to a person and that happens only in two occaisions. Not really having anything on mind or having too much at a time. While I would have loved discussing the first one, I have no personal experience in that region so I can not empathize with you if you are there. So I’ll pick the one I am facing right now. After an initial round of thinking, I figured out that my current goals are the plugin manager for DokuWiki and making the future of Enjoy Studies. I love the idea behind Stalk Ninja and am somewhere in the team (not very sure what role I am playing). So here are three major things that I have to be concerned about right now. Apart from these, there’s a client turned friend’s project which has been ultra delayed due to various reasons (one of them is me!) and he’s been very patient and supportive about all the college semester exams and now with GSoC taking most of my time. Then there’s sambhuti, WP FB Comments, VSSUT.com, moving everything to linode, fundakid, codeitout, hacktard, open-graph plugin, fb-merge and a lot of ideas that keep adding and piling everyday…
    Isn’t it insane to actually have that many goals at once?
    Does that seem like your life? If your answer is yes, you need to drop some things and group goals
  3. Drop things and group goals
    From the huge list of goals you have right now, like it or not, you’ll have to scratch some out and pick only the ones which are in best interests of your future and of the future of others involved. Divide them into groups of tasks you can cut easily, tasks you can not avoid and the gray area.
    In my case, first victims would be Codeitout, hacktard, fundakid and a bunch of other ideas. As I haven’t started with any of them, I probably should wait a little longer. may be also VSSUT.com.
    The things I can not delay at all are the DokuWiki Plugin manager (Because of a deadline, commitment to a huge community and failing the summer of code), the client site (Because he’s a great guy and has been so patient with me). I can’t leave Stalk Ninja and Enjoy Studies (Because they are things I love a lot).
    In the gray area come WP FB Comments(Sorry Ankit, I had to…), moving all sites to linode and sambhuti (it is pretty much stable now)
    Once you have this list, pick the things you cannot avoid and start prioritizing
  4. Start prioritizing
    When you have just a bunch of really super important stuff left, you need to assign weights to them. According to these weights, you need to devote time and effort for each goal. The best way to understand your priority would be checking in what sequence you wrote the list in the previous step.
    For example in my case DokuWiki Plugin manager is the most important thing. I can not let it pass at any cost (I have let it slack a little in the past 3 days and am feeling terrible already, I need to get to speed again on it)
    Next is the client site. This is something I am not very sure about because there are multiple variables here and according to #1 above, I can not determine which day I’ll get my next task for the project. So I keep it in the important-if-I-have-a-task category.
    Now I have Stalk Ninja and Enjoy Studies. One is my idea and I am somewhere between an evangelist and a team member on the other. I love them both equally and I see (read: I am bent on making) their fate intertwined in a very deep sense in future. Enjoy Studies has not yet been pushed to a full throttled launch and Stalk Ninja is already there, ready to “pivot” (the famous and often misused startup word, meaning scaling. origin: more or less pivot in popularity chart or sales chart).
    When faced with a decision like this, you have to make your best guess and go with it without blaming yourself 2 years from now.
    In my case, I pick Enjoy Studies… Partly because of a plan Pocha Bhaiya gave me for Enjoy Studies (surprisingly, Kushal Bhaiya came up with a similar plan. both unaware of each other) and mostly because Stalk Ninja has already two minds giving probably more than their 100 percent into it. IMHO, Gaurav and Pocha bhaiya are the best people you would want to hand over your new startup to if you want it to work. (This is the reason I would advise startups to float their projects on SN). I feel we have come to a point that they’ll ask me for help whenever they need me without hesitating and I would do the same. :)
  5. Practice Implementation
    Now that you have a clear weight based analysis of things, you should fix a time based deadline and stop thinking anymore about the need to re-organize this priority list. Unless of course, something really urgent comes up that you need to fit in somewhere…. After this its just plain implementing it over and over again till you find the perfect balance between the goals ;-)
  6. Thinking and Doing
    There can never be a scenario where you can do anyone of the two, they need to go together. When you overdo Thinking, remember step #1 and when doing doesnt give any results repeat step 2-5.

I am sure there must be better authors than me who have written articles like this one. But if you have reached this line, I think I did a pretty good job :P

WP FB Comments

Edit: To report an issue please use the Github issues of the plugin. Thank you all for feedbacks and feature requests. It feels great! :)
A few days back, Ankit told me about a plugin idea. To integrate Facebook and WordPress comments. I was harboring the idea for quite sometime before that and finally he started writing the plugin. He released the plugin’s first few betas. During last weekend I cleaned it up a little and this week we are releasing its first stable version on the WordPress plugin repository. http://wordpress.org/extend/plugins/wp-fb-comments/
Enjoy commenting and keep looking as I am planning to release another new plugin to provide deeper integration of WordPress and facebook using ‘post-format’.

If you have any problems with the plugin, comment below. We’ll try to fix it in the future versions.

Read the release article here : Wp-Fb Comments -The next generation Wp-Fb integration

Open Graph

I just added a new plugin to WordPress.org plugins repo. its called Open Graph Wp Implementation.
On its own, it just adds meta data to the <head> section of WP to make the site a social object. Its meant for other plugin developers to be able to build and integrate social plugins.

I have added 2 actions and a few functions for governing the meta data WP sends to the browser.
The actions are
‘open_graph_head_pre’ and ‘open_graph_head_post’. Both run before meta data is echoed to the browser so both can be used to edit the meta data.
‘open_graph_head_pre’ action is run before the meta data is setup. So you can edit all defaults with this action. (set_home_type( $type ) , set_default_img( $url ) )
‘open_graph_head_post’ action is run after the meta data is setup. So you can use this and set_og_data( $key, $value ) to edit/add any number of meta data before executing it.
Always use open_graph_instance() to get the instance of the class. I can change the class name in future but will always keep this function constant

Alternatively, you can use the method echo_meta( $meta_array ) with ‘wp_head’ action for your own meta data (keywords description etc etc etc)

Another cool method is get_image_url();

I will add some code examples in next few days.
Use dependency to check if this plugin is active if you plan to use it.

If you’ve any doubts please post a comment below.

Download link for the plugin: http://wordpress.org/extend/plugins/open-graph

Note: attachment added. Save this as a php file
Sample code for open graph plugin extension

 

WordPressDAO

In a thread on wp-hackers http://lists.automattic.com/pipermail/wp-hackers/2011-February/037515.html to http://lists.automattic.com/pipermail/wp-hackers/2011-February/037541.html we talked about making WordPress DBMS independent. In an attempt to get things started in this direction, I opened a github repo for this and its at https://github.com/piyushmishra/WordPressDAO. At first look, it seems like we can implement the abstraction by writing a DAOfactory and writing interfaces and respective dbms specific classes to handle the queries. First implementation obviously being MySQL.

Thug Award

Yesterday we were thugged (cheated) yet again in this big bad world. I don’t want to name the kid who thugged us here because I would put his name and inspirational short story in the main website. But I am writing the base concept out here. This site is to help people fight corruption against people who have some conscience left. The site will allow people to share their little stories about people who are thugs in their daily life.

If anyone is interested in helping me out with the website send me an email and we can get started on the site.

Social Search Engine

We are living in great times. Social layer of the web is getting its swing and the game layer is round the corner. Doesnt it feel very limiting that all the social sites have their own search engines and most never even show on popular search engines like google and stuff? When you search for some person or company or a place, you almost never get to find that person’s social page. Sometimes linked in though but nothing else at  all. Even if he has some 4000 friends on facebook, his profile never shows up for his name and infact you may find a completely different person sitting on the spot one who just made a good search engine friendly website…

Its time present and popular search engines started paying attention to the social layer or we will soon see the rise of a new era in search… In earliest forms of search, things were done by a small group of people, then some innovators automated it and figured crazy cool search algorithms which led to revolutionizing search. Now its time for a new revolution where people start coming back into the equation but not from the search engine side, from the user-contributor side… There are a few social search engines and the trend is shifting one small search at a time. Hope I see new search engines that integrate the current social sites and find their correct place in the current equations of search engines…