Apr 12 2011

Collective Human Knowledge with Khan Academy

Tag: Links,WebAbhijeet Maharana @ 5:28 am

Khan Academy has been around for a while now and I find myself visiting the site time and again to benefit from the countless video tutorials. From tutoring his cousins to tutoring the whole world for free, Salman Khan has come a long way with his focused, short video tutorials on almost everything under the sun.

Last term, I used the statistics videos and I find myself wading through the finance videos this term. Sure, there were tutorial videos all over the web shortly after Youtube became a household name but finding a comprehensive source on any particular topic neatly arranged into small, digestible chunks was not easy. Khan Academy fills that void in a great way. And the videos do a fantastic job of presenting the material in a way that is not overwhelming for the first-timer.

After “ebooks”, this is perhaps the next big leap towards increasing collective knowledge of our species. While attending regular college class has its own charm, this is a huge boon for people who do not have access to such classes or who find it easier to learn from video and audio material as opposed to textbooks. I will be quite interested in seeing how Khan Academy evolves over time and the huge impact it has on the way we learn.

I wish I had known about this gem earlier! If you are reading this, introduce it to all the kids (and adults) you know who yearn to learn. Subscribe to the Khan Academy channel on Youtube to receive notification when new videos are uploaded.


Aug 11 2008

PicLens and Pencil

Tag: Links,WebAbhijeet Maharana @ 1:16 am

PicLens

Just fell in love with this one moments ago! I had installed its Firefox extension version “just like that” while browsing the Mozilla addons site. Half an hour back, Preshit sent me a Flickr link. I happened to click the run image on one of the photos and PicLens fired up as I watched. It jumped out of Firefox, took the entire screen and transformed the dull 2D view to a fullscreen 3D view. It made viewing the pics lot more easy and pleasurable. And I decided I like it.

Edit: PicLens is now Cooliris. See the comments.

Pencil

This one has been receiving quite some attention lately and I see why. Its a very simple and effective diagramming tool. Lets you create diagrams and UI prototypes in a jiffy. After having to switch tools when I switch OSes (and I do that once in a while to get a different experience), this one is a must-have extension for my fox. The stock stencils that come with it are good enough. And, I am eagerly waiting for more stencils to become available.


Aug 01 2008

Search GWT-Ext forums better

Tag: Ext,Gwt,Links,WebAbhijeet Maharana @ 1:47 am

Gwt-Ext forum threads have quite a lot of solutions contributed by users. But the forum search is a real pain and I have to struggle a lot for finding what I am looking for.

Use this *very helpful* Google custom search for searching the forums and most likely you will find your question already answered: http://www.google.com/coop/cse?cx=014252995673596707595%3Ao37mulitp-e.

I wonder why I didn’t think of this before seeing Sanjiv’s post!


Apr 02 2008

Gwt-Ext solutions by forum community

Tag: Ext,Gwt,Java,Links,Programming,WebAbhijeet Maharana @ 11:45 pm

The Gwt-Ext forum is very active and I try to participate when I can. In the process, I have bookmarked a few threads with solutions that I could use later. I am posting some of them below so that more people can stumble upon them. Within brackets is the forum id of the community member who suggested the solution.

  1. Expand / collapse a panel on button click in another panel (daverh and sjivan)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    panelB.setCollapsible(true);
    ...
    panelA.getSaveButton().addListener(new ButtonListenerAdapter(){
                public void onClick(Button button, EventObject e) {   
                   panelB.setCollapsed(false);
                   panelA.setTitle("Saved");
                   panelB.doLayout();
                   panelA.doLayout();
                }
    });
  2. Attach a clicklistener to a panel (me)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    panel.addListener(new ContainerListenerAdapter(){
       public void onRender(Component component) {
          panel.getEl().addListener("click", new EventCallback(){
             public void execute(EventObject e) {
                MessageBox.alert("Panel clicked");
             }   
          });
       }
    });
  3. Force a combo box to always go back to the server for the list items (sjivan)

    1
    2
    3
    4
    5
    
    cb.addListener(new ComboBoxListenerAdapter() {
        public void onExpand(ComboBox comboBox) {
            store.reload();
        }
    });
  4. BorderLayout throws an exception when nothing is added to its center region (sjivan)

    When using BorderLayout, you *must* have a Panel assigned to the CENTER region.

  5. Update a text field’s contents (e.g. force all lowercase) when user leaves text field (takeustoyourleader)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    final TextField lcaseTextField = new TextField();
    lcaseTextField.addListener(new TextFieldListenerAdapter(){
    	public void onBlur(Field field) {
    		updateValue();
    	}
     
    	public void onSpecialKey(Field field, EventObject e){
    		updateValue();
    	}
     
    	private void updateValue(){
    		lcaseTextField.setRawValue(lcaseTextField.getValueAsString().toLowerCase());
    	}
    });

    The “onBlur” catches the user leaving the field by clicking off, the onSpecialKey catches them leaving by enter or tab or anything like that.

  6. Wait for an IFrame to load and then execute some code (grabka)

    1
    2
    3
    4
    5
    
    EventManager.addListener(frame.getElement(), "load", new EventCallback() {
                public void execute(EventObject e) {
                   /* do some stuff */
                }
             }, new ListenerConfig());

I may post some more links as and when I bookmark them.


Mar 17 2008

Gwt-Ext screencasts for beginners

Tag: Ext,Gwt,Java,Javascript,Links,Linux,Maps,Programming,Ubuntu,WebAbhijeet Maharana @ 8:51 pm

I have started out with Gwt-Ext and thought I will record some screencasts. These are for beginners who may need a hand when they are starting out and are anxious to jump right into code. The screencasts have been recorded on Ubuntu Feisty with Eclipse Europa.

There are 3 screencasts in avi and ogg format.

  1. First screencast shows the installation of Gwt 1.4 and Cypal Studio for Gwt. Cypal Studio is an Eclipse plugin that automates most of the tasks associated with GWT like adding a module and adding a remote service. In the screencast, I create a Gwt project using this plugin.
  2. Second screencast shows how to add the ExtJS Javascript library (2.0) and Gwt-Ext Java library (2.0.1) to the project. In the screencast, I create a simple Ext form with some text fields and a button.
  3. Third screencast (added on March 22) shows how to send form data back to the server. In the screencast, I validate form fields using regular expressions / Ext Vtype, add a remote service and then save form data in an Oracle database using the remote service.

    You can read this post for installing Oracle 10g XE on Ubuntu Feisty.

All screencasts are hosted at Rapidshare. Sanjiv Jivan, the author of Gwt-Ext has offered to host them at gwt-ext.com. I think the files are quite big and I am not well-versed with audio/video formats and parameters. If you know any way to reduce file size while maintaining the quality of screencasts, do let me know.

Download screencasts from Rapidshare.
Download Eclipse projects shown in the screencasts from Gwt-Ext.com or Rapidshare.

Update:
Sanjiv has been kind to host them at http://www.gwt-ext.com/screencasts/.
I have also edited the gwt-ext wiki accordingly. (See comments)

Related links:
Google Web Toolkit
ExtJS Javascript library
Gwt-Ext
Cypal Studio for Gwt


Dec 04 2007

Lively Kernel and Documancer

Tag: Javascript,Links,Linux,Programming,WebAbhijeet Maharana @ 10:47 pm

Lively Kernel

From being used in web pages to add “some” interactivity to being used in a web based “kernel”, Javascript has come a long way. A team at SUN has developed a kernel that provides an execution environment for applications meant for the browser. From the Sun Labs Lively Kernel page, “The Sun Labs Lively Kernel is a new web programming environment developed at Sun Microsystems Laboratories. The Lively Kernel supports desktop-style applications with rich graphics and direct manipulation capabilities, but without the installation or upgrade hassles that conventional desktop applications have.” Written entirely in Javascript, the Lively Kernel emphasizes on treating Web applications as real applications and aims to build a platform using a minimum number of technologies. So its Javascript for most of the things.

It comes with the ‘Morphic’ graphic library which was originally written for the ‘Self’ system at Sun. From the same page, “Morphic is a user interface framework that supports composable graphical objects, along with the machinery required to display and animate these objects, handle user inputs, and manage underlying system resources such as displays, fonts and color maps. A key goal of Morphic is to make it easy to construct and edit interactive graphical objects, both by direct manipulation and from within programs.”

It even includes an IDE that allows JavaScript applications to be inspected and modified from within the system itself. It is currently supported on Safari 3.0.3 public beta release. Runs on Firefox but has a lot of related nasty bugs and locked my browser. IE support is yet to be added.

Screenshot (image is located at SUN’s site)

Related links:

Documancer

This is an invaluable tool in any programmer’s toolkit. It is a documentation browser which supports HTML, DevHelp, Info pages, Manual pages, remote WWW sites and pydoc. But the feature that got me hooked is the full-text search. Specially when it comes to HTML documentation such as those created with javadoc. Documentation for the Java APIs is also available in WinHelp and HTMLHelp formats which enable searching. But for other libraries which use javadoc to generate their documentation, it is a pain to search for something. Specially when you are new to the library. That is where this gem shines.

Its UI is based on Gecko, Mozilla’s HTML rendering engine and it presents documentation of all formats in the same way. It supports bookmarks as well. It is implemented in wxPython and is available for Unix and Windows. It comes with a nice installer which takes care of all dependencies.

Related links:

Apparently, there is another Gecko! (that sells clothes) which comes before the Mozilla page in a Google search for “gecko home page”.