[GSOC 2012] Weekly Report – 5

Hi everyone!

Another week done, time for another weekly report :)

Last Week’s TODO

  • Improve upon the Clean theme: DONE
  • Focus on integration with Cloud Sync Server:WIP
  • Add some more themes: ND (As my mentor, Al Sutton suggested, I should focus on the integration. I’ll add the bells and whistles later :))
  • Fix integration issues with OI Server: *DONE *(Not completely done though, the authentication still remains and I’m discussing this with Stanley)

This week, I started off by fixing theClean theme which is a white version of the default ICS like theme. There were quite a bit of CSS bugs and colorscheme issues so I took care of that first.

Next up, I fixed some integration issues with OI Server. Mainly, I had to fix the login page where I asked for the username and password but the server only wanted a password. So, I removed the username field. After fixing some more issues I decided to upload an APK up for testing which can be found here. Also, I fixed a bug in OI Server where in Ice Cream Sandwich the server app displayed an IPv6 address instead on an IPv4. I changed the implementation of getting the device’s IP address in OI Server and sent a pull request to Stanley. Although we need to discuss on this a bit.

This week, I managed to serve the web interface from the App Engine which  was easy as pie but it took me a while to get it going since I didn’t have any previous App Engine development experience so it took quite a bit of reading to accomplish that. Also, I managed to develop a REST implementation which is still in a very early stage for the Cloudsync app engine project. I’ll be focusing on this implementation this week.

So, that’s that. No screenshots this time since there are no major changes to ‘show off’ :P

Also, the online demo of the interface is a bit out of date with the current development version. I’ll have to update that :)

Stanley sent me a couple of bug reports for bugs he found in the interface. So, I’ll be fixing them at the earliest.

Next Week’s TODO

  • Fix bugs in the interface
  • Get a REST interface up and running in App Engine for CloudSync
  • Organize the code of the web interface (Includes splitting of JavaScript files as right now I only have one big file which I’ll split up according to the OI applications that they represent)
  • Some more stuff that I can’t think of now :P

[GSOC 2012] Weekly Report – 4

Another week done! :)

As I always do, I’ll start with last week’s TODO:

  • Fix some cross-browser CSS bugs: *DONE *(For now, as I add more stuff, more bugs will come so this will go on and on xD)
  • Improve the mobile interface: DONE
  • Test the interface on a real mobile device through OI Server: DONE
  • Add Theming support to the web interface: DONE
  • Work out a way to serve the interface on the App Engine with Vettukal: WIP

I accomplished the long awaited theme support for the server. There are two themes for now, a Default theme which is an ICS colorscheme and a Clean theme with a white colorscheme. The Clean theme is a work in progress, so you might notice some unthemed elements like the notes in OI Notepad.

Also, to accompany the theme switching functionality, I added a settings dialog which works both in the mobile browser as well as the desktop browser. It has the ability to show or hide different applications, show / hide the sidebar and select the theme from a dropdown box.

The major thing was to integrate the web interface and the OI Server. The web interface works fine with the OI Server except for the update functionality which I will look into some more as to why it’s not working.

I also have an experimental theme framework which would allow a theme to completely change the UI. But I don’t know how good that idea is, we’ll need to discuss it on the list :)

I also implemented a login page and functionality on my local web server, now you can login with the following credentials: Username: openintents and Password: openintents. As of now, the login page does not use the selected theme, but I’ll implement it in the next week.

We didn’t have a meeting this week though, I got sick with a throat infection and a fever so I had to rest a lot. We’ll have a meeting next week most probably :)

You can test out the interface here: http://kbhaskar.in/webinterface

Next Week’s TODO

  • Improve upon the Clean theme
  • Focus on integration with Cloud Sync Server
  • Add some more themes
  • Fix integration issues with OI Server

And some more ;)

[GSOC 2012] Weekly Report – 3

Hello everyone!

This is the weekly report #3 of GSOC. First of all let’s start with last week’s TODO!

Last Week’s TODO

  • Improve upon the interface’s visual aspect: DONE
  • Discuss the common interface specification further with Stanley and Vettukal: DONE
  • Start working on some real data from OI Server and Cloud Sync server: WIP
  • Work out how the interface will be packaged in OI Server: DONE (Stanley already has it covered :))
  • Create a login page and functionality: DONE

This week I started off with making the interface mobile-browser compatible. The bootstrap CSS framework provides responsive design methods that make it pretty easy to design websites for mobiles and tablets. The mobile interface replaces the Action Bar button and shows the usual pop-up menu as collapsible menu, like most Android compatible websites do. You can test it out by resizing the browser :)

Go ahead visit http://kbhaskar.in/webinterface/ and resize your browser window to checkout the mobile interface.

Another thing I added is the ability to save settings using a cookie stored on the client browser. If you choose to display the sidebar it will save the setting and the next time the sidebar will be visible :)

Next I worked on fixing some CSS bugs, reorganized the CSS structure and moved the interface from WebInterfaceTest to WebInterface in the repository. Now, I’ll only be working on the WebInterface folder, since the other one was only for testing :P

I also created a login page with the same colorscheme as the main interface.

We (Me, Stanley and Vettukal) had our weekly discussion a bit late though on 10th June (Sunday). There we discussed about some of the REST calls (cleared out some misunderstandings) and also discussed about a common response format between that both the OI Server and Cloud Server would use. Next we discussed upon the login / authentication mechanism we should use in the OI Server and also a way to serve the web interface from the Google App Engine (Although we haven’t figured it out yet :P). You can checkout the logs here.

This week was a bit slow on new things, but next week I’m working on a lot of interesting stuff like adding themes support for the web interface and testing the interface on a real mobile device with real data through the OI Server.

Next Week’s ToDo:

  • Fix some cross-browser CSS bugs
  • Improve the mobile interface
  • Test the interface on a real mobile device through OI Server
  • Add Theming support to the web interface
  • Work out a way to serve the interface on the App Engine with Vettukal

Cheers!

[GSOC 2012] Weekly Report – 2

Alright! So, week 2 of GSOC finished! Here’s a report of what I’ve done this week.

First of all, as per last week’s report, I expected to finish certain goals this week, here’s a list of what I’ve done and not done or work in progress (WIP):

  • Start a discussion with the server guys for integration: DONE
  • Work out a common specification for the integration: WIP
  • Make some mockups of the interface: DONE
  • Finalize the interface design and start work on it: DONE

This week, I started a discussion with OI Server and Cloud Sync Server developers Stanley and Vettukal. We discussed about some initial problems  like what language to use when communicating with the server and client. We finalized on REST + JSON. Next we defined some REST calls for OI Notepad which are:

  • /notes/get – Get list of all notes
  • /notes/get/id – Get contents of note with a specific ID
  • /notes/update – Update the note

We also discussed about a RESTful interface in Google App Engine. Although we haven’t figured it out how to implement it, we’re thinking of Restlet (http://www.restlet.org/).

Here’s a summar and IRC logs of the discussion can be found here:

  • Mode of communication between the client and the server: REST + JSON
  • Finalized REST calls for OI Notepad and user login
  • For added security add a salt based authentication method along with the usual user login
  • Discussed the integration of AppEngine (Cloud Sync Server) and the Web Interface by providing a REST interface to the web interface

Next up, I did a complete overhaul of the interface that I am working on. The overhaul is both in the frontend and the backend. I made an Android Ice Cream Sandwich like theme using the ICS color pallete and made the interface look more Android-ish by including an Action Bar at the top as well.

Another thing I implemented is the toggle-able sidebar. This can be selected from the Action Bar icon on the top right corner. What this does, is, yup drum-roll hides the sidebar so for those who don’t need it, it won’t be shown. I added some navigation to the home page to quickly and easily switch between the application you wish to access.

**

Also, I restructured the code and moved from jQuery UI to Twitter’s Bootstrap framework which is a lot easier to work with in my opinion. It provides a lot of functionality out of the box, both for the CSS layout and look, so I can structure the page and style it using the same framework! So that means less JavaScript bloat! Pretty cool :)

I also started work on dynamic content loading (previously the client only loaded static content from the same page). Now, I’ve set up a local RESTful service with PHP and Slim which simulates the functionality provided by the OI Server / Cloud Server and sends the data in JSON format so the client can load it dynamically via jQuery / JavaScript.

I’ve implemented the basic functionality for OI Notepad, Add, Update and Delete and it works fine (needs some rigorous testing though).

A notification system has also been added. So, the user gets notified when the note has been saved /added / deleted successfully or an error has occurred. It’s something I made from scratch using jQuery and Bootstrap’s alert classes. It’s a bubble-style notification and multiple notifications get stacked on top of each other. A timeout of 5 seconds is there after which the notifications fade out, they can also be made persistent.

To summarize the above, here’s what I did this week:

  • Switched from jQuery UI to Twitter’s Bootstrap
  • Created an Android-like theme for the interface with ICS colorscheme
  • Added an Action Bar like menu to display a menu
  • Support for Toggle-able sidebar
  • Added AJAX support for OI Notepad
  • Created a local RESTful service with Slim and PHP to simulate the OI Server / Cloud Server (Well, it’s just something to make my work easier for local testing, not a part of my project :) )
  • Added a bubble notification system for the interface

Some things that I’ll be working on next week:

  • Improve upon the interface’s visual aspect
  • Discuss the common interface specification further with Stanley and Vettukal
  • Start working on some real data from OI Server and Cloud Sync server
  • Work out how the interface will be packaged in OI Server
  • Create a login page and functionality

This week was quite fun, I learned a lot of new things :)

As for the new interface, if you wish to test it you can goto http://kbhaskar.in/webinterface/ics

NOTE: Please keep in mind the data is fetched real time from the server and stored on the server, so if you delete some things it will be deleted forever :P (Main reason why I didn’t enable the Delete All menu). Also, if you don’t see any notes, it might be that some smart guy deleted everything, so try adding a new note and see if it works :)

[GSOC 2012] Weekly Report – 1

The start of GSOC was a bit slow for me since I had exams (till 24th) (boooring :P) and I had to skip the first few days. But I’m glad at least the exams are over -_-‘

From the few days I had this week to work on GSOC I planned out how to integrate the interface with the interface (backend interface (jQuery) and frontend interface (HTML)) :P

I did make an initial mockup of the UI and pushed it to github. The initial interface is plain and simple and looks fine imo (unless you don’t like gray :P), it’s something I made in a short time so it’s not something really fancy. If you want you can test it online at http://kbhaskar.in/webinterface/. The discussion is going on here.

I’m working on some new interface ideas, like suggested on the discussion thread by Peli, to make the interface look somewhat like OI applications in a tablet. I’m currently preparing a mockup of that and another one that I have in mind.

As for the integration with the server backend, me, Stanley (OIServer) and Vettukal (OI Cloud Sync) will discuss this at the earliest.

To sum it all up….

I did the following stuff this week:

  • Make an initial interface: DONE
  • Start an initial integration with jQuery and HTML: DONE
  • Party because exams are over :P : DONE
  • Enjoy GSOC and work extra time to compensate for the lost time: WIP

Next Week’s TODO

These are the things that I’m planning to do next week, no promises though :P

  • Start a discussion with the server guys for integration
  • Work out a common specification for the integration
  • Make some mockups of the interface
  • Finalize the interface design and start work on it

Cheers!

GSOC Time!

Hi all! I’m finally done with exams and now it’s time to focus on GSOC fully! Yes, I’ve been selected for GSOC (Google Summer Of Code, for those of you who live under a rock :P), my first year! I should’ve posted it before but….well….exams suck :P

I’m working with OpenIntents this summer to design a web interface for OpenIntents Server (OIServer) as well as Cloud Sync. Both of these projects are under GSOC as well.
More information can be found at: https://github.com/openintents/gsoc2012/wiki/Bhaskar-Kandiyal

Also, I’ll be posting weekly updates about what I’m doing and how much I’ve progressed. I’ve started working on an initial design which I’ll finish by tomorrow and post it here for review and suggestions.

Cheers all! Hope to have fun with GSOC this year!

Icon Tasks Widget For KDE

As I mentioned previously in my Unity in KDE post, the Icon Tasks widget for KDE is helluva useful. For those who don’t know, it’s a simple task manager widget, a modified version of the default task manager widget that only shows icons instead of the whole application name / title in the panel.

It’s much like Unity’s launcher and it even uses it’s API afaik. Icon Tasks is pretty darn configurable and heck it even shows a small progress-bar as an overlay on the application icon (I’ve only tested with Dolphin) if a file transfer is going on. It also shows unread  mail count in Thunderbird and supports window previews. What else do you want?

Here’s a complete feature list as given by the author:

Modified version of KDE 4.7 taskbar applet and taskmanager library.

Modifications:

  1. Show only icons (no text) in taskbar.
  2. When a launcher is activated, place the task’s taskbar entry at the same location as the launcher.
  3. Tasks with no associated launcher, are placed after launcher tasks (unless alphabetically sorted).
  4. Always group tasks.
  5. Only allow launchers for items with .desktop files
  6. Add a dialog to manually set the association from a window to a .desktop file – so that launcher can be created.
  7. Add option to activate/iconify whole group when left button is pressed (taken from SmoothTasks). If disabled, then present windows is used for the group.
  8. Use oxygen ‘+’ icon to indicate a collpased group.
  9. Use middle button to launch new instance of a task.
  10. Attempt to place start-up spinner over launcher/task.
  11. Add option to always use the launcher icon for taskbar entry – even when app is active. This works-around the issue where some applications (e.g. LibreOffice) have a different launcher/menu icon than the actual app uses.
  12. Workaround an issue with a tasks attention state.
  13. More tasks shown in tooltips.
  14. Close tasks via tooltips.
  15. Show right-click menu for task in tooltips.
  16. Option to show job progress over task icon.
  17. DockManager API support
  18. Media player buttons in tooltips
  19. Unity API

*Install: *To install Icon Tasks, add my ppa with this command:

[plain]sudo add-apt-repository ppa:bkandiyal/bhaskar-main[/plain]

And then install plasma-widget-icontasks after doing an apt-get update

Or if you want you can compile and install from source. To get the source visit this link and don’t forget to thank the author CraigD!

*Note: *I’d be posting a few short (hopefully) posts on KDE / Kubuntu. This is one of them, and the previous one Unity in KDE. So, if you have anything that I should talk about then feel free to email me or use the Contact form.

Unity in KDE ;)

Yes, you read it right, Unity in KDE. And no I’m not talking about the unity among people of KDE or the developers or anything like that. I’m talking about the Unity interface in KDE.

Whether you hate Unity or you like it, if you’re reading this I will tell you how to get the Unity interface in KDE. I really love the customizability of KDE, for those people who don’t like KDE for it’s customizability….well, no comments :P

I’m not going to show you how to run the ‘real’ Unity in KDE, heck if I did I’d be labeled stupid and my blog would be removed from the depths of the internet but what I’ll show here is how to achieve a Unity-like interface in KDE.

Why would you want it? Well, if you like Unity’s interface but want to stick to KDE, then boom, you’re at the right place, on the other hand if you hate Unity and other DE’s and love KDE, then, well, just read the post and laugh at the other DE’s because they can’t do it :P

Okay, I’m being pro-KDE here, but I’m really not….heck I love LXDE too :D

So, let’s get started shall we? But first, here’s a screenshot of ‘Unity’ in KDE ;)

Before you get started, you will need just one teensy little thing. It’s a plasma widget called Icon Tasks, grab it from here. If you have trouble grabbing it…eh, I mean compiling it, then use my PPA, don’t blame me if it breaks your system though, neah j/k.

[plain]sudo add-apt-repository ppa:bkandiyal/bhaskar-main[/plain]

Then just install plasma-widget-icontasks *after doing an apt-get update*. Do you want a one-liner? Here you go:

[plain]sudo add-apt-repository ppa:bkandiyal/bhaskar-main && sudo apt-get update && sudo apt-get install plasma-widget-icontasks[/plain]

Step 1:

Now, first things first, delete everything on your desktop. Yes, everything….well just the panels really, you can keep your favorite bouncy ball widget if you like, but delete the panels!

Step 2:

Add an empty panel and place it at the top of your desktop. Now add the widgets that you want. First add the ‘Window Menubar’ widget and then add the system tray, clock and other widgets that you would want on your default panel.

The ‘Window Menubar’ widget is just like the global menu in Unity.

Step 3:

Now, add another panel and move it to the left of the screen, increase it’s width a little and set it to Windows can cover in the panel settings. Also, increase the length of the panel to the full height of the screen, but don’t overlap the top panel.

Step 4:

Add the Application Launcher *widget to the left panel and also the *Icon Tasks widget. Change the *Icon Tasks *widget settings to something like this:

 

Step 5:

There’s no step 5….

Yes, you’re done here. If you followed everything correctly (or if I didn’t miss a step) then you would be staring at the Unity-ish interface in KDE. Go ahead and enjoy :)

You can also install the Ambian Plasma Theme from here to get Ubuntu colors on your desktop.

I would like to point out a few things that I would love in KDE:

  1. Separate panels for activities

  2. Show panel after a delay when hovering the mouse over a hidden panel

These could have been a great help when making a custom panel arrangement. I would love to help out with developing these two things, I’m also starting with KDE development and I’m looking for something easy to hack on to :D (Dunno how easy/hard these two things would be though :P)

Do you have any such custom arrangement of panels? Share it in the comments, with pics!

Plugins

Here’s a list of some of my WordPress plugins that I’ve made:

*WP Simple Insert – *A simple plugin to insert custom code into your WordPress blog posts and pages. You can use HTML/JavaScript/PHP code.

WP Simple Insert

I’ve created a simple WordPress plugin called WP Simple Insert, as the name says it’s a simple plugin which allows the user to insert custom HTML/PHP code into blog posts.

Features

  • *Allows custom PHP/HTML/JavaScript code to be inserted in blog posts and pages.
    *
  • Options to insert the code above or below post content.
  • Configure to hide code from home page, categories page or the archive page.

If you want to request a feature, simply email me or use the contact me form. I would surely include it in the next release if it’s good enough ;)

Screenshots

WP Simple Insert

Download

Download the latest version from wordpress.org.

Frequently Asked Questions

  • Where can I report bugs or feature requests? – Use the Contact form above to report bugs or feature requests.