Wednesday, October 26, 2011

Sequence Squeeze Contest

Hello,

Pistoia Alliance, a trade group composed of big pharma and a bunch of informatics companies, is sponsoring a contest. The SequenceSqueeze challenges developers to develop an open source compression algorithm for Next Generation Sequencing(NGS) data.

-jk

Wednesday, October 12, 2011

ACM hosts Data Mining Camp

Hello,

These days massive amounts of data from a wide diversity of sources. I very interested in investigating how we can leverage data in general. The local chapter of the ACM has organized a data mining camp this Saturday. I'm planning to attend.

The morning session is an introduction to MapReduce. It looks pretty rigorous. Looking forward to it.

-jk

Monday, July 11, 2011

Learning from Extremes


Charles Leadbeater gave a provocative TED talk called "Education innovation in the slums".



He offers many references to interesting people and projects. It can be tough catching them in the video. However, it is easy to find them in the companion white paper called Learning from Extremes.

I particularly like the simply graph comparing setting (i.e., formal vs informal) and innovation type(i.e., sustaining vs disruptive).
  • "Improve schools through better facilities, teachers, and leadership." (sustaining/formal)
  • "Supplement schools by working with families and communities." (sustaining/informal)
  • "Reinvent schools to create an education better fit for the times." (disruptive/formal)
  • "Transform learning by making it available in radically new ways." (disruptive/informal)
Many of the ideas he presents come for other countries like Sugara Mitra Hole in the Wall project in India or Rodrigo Baggio's Centre for Digitial Inclusion.

-jk

Sunday, July 10, 2011

Learning environments - adapting to change

I'm taking a sabbatical. Initially, I was trying to apply computers to environmental issues. While there is a lot happening with alternative energy, the smart gird and optimizing supply chains, I found I was specifically interested in biodiversity and conservation. Sadly, there isn't much happening here.

After struggling with this, I hit a small epiphany. I was watching a TED talk by Nic Marks on the happiness index. While I strongly agreed with it morally, I'm not convinced we can measure happiness. Anyway, he presented a chart. On the X axis is natural resource consumption and the Y axis is "happiness". As you would expect, Western nations were in the upper right. They consume a lot of natural resources and are pretty happy. Nations in the lower left were mostly failed states where life is short and brutish. He highlighted a country that is light on natural resources and is pretty happy: Costa Rica. He went on to talk about the billions of people that will be coming on the planet and wanting a Western lifestyle. Most of whom will start life in slums of large cities. Normally when I think about this line of reasoning, providing people with material goods (e.g., cars, refrigerators, toasters etc.) comes to mind. However I have recently been reading some work by John Seely Brown former head of PARC. He just wrote a book called A New Culture of Learning. He observes change is accelerating. Over the course of the book he considers how computers systems can help people develop advanced learning environments. In addition to materialistic things, this new population will want an education. Standard methodologies of building schools and staffing them with teachers and faculty will not scale. Can we create learning environments where people could learn outside of the establishment? Many people consider the population explosion in environmental disaster. Can we turn that on its head by providing learning environments which allow them to collaborate and adapt to change quickly?

-jk

Friday, October 22, 2010

Qt Quick: using QML to rotate text.

Hello,

Qt Quick makes fluid UI creation much easier than ever before and allows one to seamlessly let UX designer and C++ developers work together on the same source code. With release 4.7.0, Qt Quick provides the fundamental UI primatives to create fluid UIs.

The cornerstone of Qt Quick is QML. It is a declarative language which extends Javascript. It is designed for writing UI. In this post, let's look at some code which simply animates some text to get a feel for the syntax and structure. Consider this code.
Rectangle {
id: rectangle1
width: 360

height: 640
color: "brown"
Text {

color: "green"
text: "Hello World"
anchors.top: parent.top
font.pointSize: 24

font.bold: true
}
}

Here we define a brown Rectangle which will define the background. Text simple defines green text element which says "Hello World". Since the text is anchored to the top of the Rectangle, it will appear at the top of the screen.

Let's animate the text, so that, it will move to the bottom of the screen. To do this we will define another state for the text. By declaring the Text element, we have already defined an implicit state. In addition, we will need to define a Transition element. This tells the Qt runtime how to move between these states. Here is the updated Text element.
 Text {

id: helloText
color: "green"
text: "Hello World"
font.pointSize: 24

font.bold: true

// Respond to mouse(tap) events.
MouseArea { id: mouseArea; anchors.fill: parent }

// When the text is pressed, move, rotate and change the color to yellow.
states: State {
name: "down"; when: mouseArea.pressed == true

PropertyChanges { target: helloText; y: 555; rotation: 180; color: "yellow" }
}


// How do we get from the implicit state to the down sate?
transitions: Transition {
from: ""; to: "down"; reversible: true

ParallelAnimation {
NumberAnimation { properties: "y,rotation"; duration: 500; easing.type: Easing.InOutQuad }

ColorAnimation { duration: 500 }
}
}
}

The state "down" changes three properties: the y coordinate, rotations the text 180 degrees and changes the color to yellow. This is simply a declaration. Without a transtion, nothing happens. This transition goes from the implicit state, represented by an empty string, to the "down" state. It applies to animates in parallel. The first modifies the y value by rotating it and moving it down to the y coordinate defined by the "down" state. The other amiation changes the color from green to yellow.

Reference: Check out the QML tutorial on states and transitions.

-jk

Friday, October 08, 2010

Nokia Developer Days - Hands on workshop with N8

Hello,

Nokia's N8 has hit the street. Nokia Developer Days is going on tour with the first Symbian^3 device. Here is the line up of cities.
For a face to face consultation with a UX specialist who can give you concrete tips on how to improve the design of your app, email your request Ravi Belwal.

Update: This is co-sponsored by ICS. I saw them last year at the Qt Developer Days in San Francisco. They did a great job.

-jk

Tuesday, June 29, 2010

Tech Tip: Signing and Qt Apps.

Hello,

Qt apps on Symbian are subject to the same signing requirements as native applications. Here are two tips for troubleshooting these problems.

1) You can use the elf2e32 command to dump out the capabilities a particular executable requires.

C:\S60\devices\S60_5th_Edition_SDK_v1.0\epoc32\release\gcce\udeb>elf2e32 --dump=s --e32input=Location117.exe
E32ImageFile 'Location117.exe'
Secure ID: ea7353f1
Vendor ID: 00000000
Capabilities: 00000000 00020000
Location

2) I love the way Qt Creator seamlessly installs the application on the device. In the case where the capabilities are incorrect, the error message isn't too helpful. If you take the same sis file and install it on the handset manually, you are likely to get a different error. While these errors are vague, they are well-documented.

-hth
John