Entries tagged as 'nerdstuff'
This page lists all postings that have been tagged with the chosen tag.
Many things happened in the last few weeks. I just want to quickly outline them in case you’ve been wondering what I’ve been doing.
Starting with PyMT 0.5 (to be released in August), we added support for spelling correction and word suggestions. This is based on my GSoC work. The code has been polished and integrated into the master branch, which will soon lead to the 0.5 release. I’m also currently working on a text input widget that indicates incorrectly spelled words as you type (just as OpenOffice would). This much is working. In a next step, I plan to add a feature that lets you select from a list of suggestions for the word that you just tapped.
One of the tasks of my GSoC proposal is the implementation of a Swype-like keyboard. What this means is that you just wipe over the keys that make up the word you want to type and it automatically determines which word you intended to enter. It is clearly far beyond the scope of a single, multitouch-oriented GSoC proposal to implement something as clever as a Swype clone (especially since this also requires A LOT of backend code for the intelligence). However, something remotely similar and usable should be doable and is what I’m looking for. A while back I started something like this and quickly sketched a modified version of the virtual keyboard.
This still needs much more love, but keeping in mind that I did this in a really short amount of time I think I can say that we’re getting somewhere.
Thomas, Mathieu and I have had the chance to meet in Lille at the FITG conference and present PyMT in a talk and several workshops. This was a great opportunity and in fact, it was the biggest real-life meeting of core developers and users so far.
The conference itself was a great success, both for the organizers and us. We had many people come to us and ask questions concerning PyMT and Movid. After our talk (which I think was well-received) we decided to give an additional workshop so that people interested could play with PyMT and get help from us. The room was pretty crowded and people were standing. The workshop presented a basic PyMT overview and first steps in a ‘hello world’ fashion (At least I think that’s what Mathieu was talking about. He spoke french and Thomas and I were answering questions or translating things in English). In the evening we gathered all the people that were still at the conference and went to a nice little restaurant to chat.
The next day we gave two more workshops. The idea to do the first one came up while we had breakfast. We decided to implement a simple version of the game at linerider.com with PyMT. When we arrived an hour later, we just picked a python 2D physics library that was easy to install and started live and from scratch, without any actual code having been written (or even thought about) beforehand. Luckily it all turned out well. After almost exactly one hour (in which Mathieu helped people in the audience, Thomas pointed to and explaining stuff at the projection and I coded and talked) we had finished what we were looking for in just 60 lines of unoptimized python code. The last workshop was about advanced OpenGL. Mathieu presented some of his insights that he had gathered while optimizing PyMT’s performance (great advances have been done here, by the way).
I stayed four days in total and it was absolutely worth it. Lille is a wonderful city and the conference was fantastic. The venue itself was just mind-blowing to begin with. We had a lot of fun together and obviously worked on PyMT as well. It’s even more fun if we’re in the same room! Sincere thanks to everyone involved in making these days as awesome as they were!
For our talk in Lille, we used a very nice presentation tool (PreseMT) which is, obviously, written with PyMT. While using it for my own bachelor’s colloquium (I’m officially a Bachelor of Science now, by the way) I noticed that entering text suffered from severe limitations of the text input widget. Given that I had no multitouch-capable device around to enter text, I did it all with my hardware keyboard. I added to PyMT’s TextArea widget the ability to resize automatically depending on the text that was entered (which is what you want in PreseMT). Furthermore, the widget now properly reacts to several special keys like the arrow keys, home, end, del, pgup and pgdown.
It is no secret that installing PyMT on OSX is a major pain. This is not our fault, though. The problem simply is that installing almost anything in non-app format involves a non-trivial compilation process using MacPorts and the like. Unfortunately, one of our dependencies (gstreamer) is not easily installed this way.
Since we really don’t want our users to go through all of this, we decided to distribute portable versions of PyMT for OSX, Linux and Windows. I did the OSX version and hope to be able to finish it soon so that it can be reviewed. With it, you just download a zip file, unzip it and go. It contains everything that is needed to run PyMT.
In the course of this, I also fixed the compilation of our OpenGL-dependant cython modules for OSX.
Hopefully you will see a wonderful PyMT release next month. We’ve added many new features, improvements and fixed a lot of bugs. Some of my GSoC work will also go into it. In terms of GSoC, I will finish the aforementioned spelling-aware text input widget. I also intend to improve the quality of the results of the WipeToType keyboard and implement the things left on my GSoC proposal.
| 0 comments | Jul 5, 2010 11:51:00 PM | gsoc, multi-touch, nerdstuff, planet-pymt, pymt, python, technology |
The NUIGroup Google Summer of Code students (I was lucky enough to become one of them for PyMT this year) are asked to summarize their weekly activities in blog format. Given that the first week has passed I figured I should just quickly outline what I have been working on up to now.
My proposal aims at developing more advanced text input methods for PyMT.
Some of the ideas I will realize draw heavily upon spelling correction and suggestion. It is therefore necessary that PyMT can interact with a spelling backend. Given that PyMT should be kept modular, I first implemented an abstract new core provider for spelling suggestions to become independent of a specific library. I then realized two concrete implementations of this provider:
After the foundation was laid out I adapted a virtual keyboard with spelling support that Mathieu once developed to the new API and added it to the code base. All of this is not yet finished and needs some more love before I can merge it back into the master branch. You can check the branch I’m currently working on here.
While spellchecking is important for some of my upcoming widgets, some other text input approaches make use of additional information provided by the tracking application. For example, one idea I had was to split the keyboard in half and dedicate one half to each hand. The halves would then automatically orient themselves following the respective hand’s position and orientation. Theoretically, further information such as properties of the user’s hands (length of fingers, etc.) could be taken into account to lay out the keyboards. For this I obviously need some kind of hand and fingertip tracking. Luckily I implemented that for Movid already:
However, since Movid is still not ready for end users due to a missing calibration utility and a proper (generic!) blob tracker (which means I can’t use it yet either), I continued my work on both of those. Again, both of which are not finished, but I can see the light at the end of the tunnel (or rather, the light below my fingers):
I hope that we can finish all of this and push out a first version of Movid for end users soon. And obviously, I want to test my text input widgets on my multitouch table and not in the mouse simulator.
This concludes my work for week one. If you have any questions or are interested in PyMT or Movid, feel free to join our IRC channel at #pymt and #movid on irc.freenode.net.
| 3 comments | May 31, 2010 1:01:00 AM | c++, coding, gsoc, hci, movid, multi-touch, nerdstuff, opensource, planet-pymt, planet-ubuntu, pymt, technology, vision |
Hi everyone, I am glad to announce the birth of the Movid project: movid.org
Movid is an acronym; it stands for ‘Modular Open Vision Interaction Daemon’. It’s a cross-platform and Open Source vision tracker, designed to be as modular as possible. Although the project is pretty young, it already features more than 20 modules, including blob and fiducial trackers as well as TUIO output. Movid is coded in C++, and use WOscLIB, cJSON, libevent, libfidtrack, jpeg-8 and XgetOpt.
Movid has several key characteristics:
However, Movid is not ready for users yet, since we are missing a few modules, like calibration. Right now, we are searching developers to support us with the further development.
More info:
The core team currently consists of:
| 7 comments | Apr 19, 2010 10:31:00 PM | hci, movid, multi-touch, nerdstuff, opensource, planet-pymt, planet-ubuntu, technology, vision |
So, I’ve just handed in my bachelor’s thesis and got some time to blog again. The BSc thesis and the things I’ve been working on the last couple of months are for an extra blog post, though.
Right now I just want to bring a new website to your attention. In case you’re as much interested in emerging technologies such as multitouch as I am, you might definitely want to check out techsparked.com
See you there!
| 4 comments | Mar 30, 2010 5:43:00 PM | hci, multi-touch, nerdstuff, planet-pymt, planet-python, planet-ubuntu, technology |
The awesome PyMT library has just been released in version 0.4.
This is a major release that brings a ton of cool new stuff, including a new animation framework, speed & stability improvements and much more. Take a look at the release notes to see what’s new in this release.
I’m using PyMT for my thesis (see picture above) and I love it. Make sure to check the new website, too! (There’s also a new demo video in the works. I will update this posting as soon as it’s available.
| 7 comments | Feb 9, 2010 2:20:00 PM | multi-touch, nerdstuff, planet-pymt, planet-python, planet-ubuntu, pymt, technology |
I just want to share the following video. Seriously, how awesome is this? (Click this posting’s title if you’re reading via a planet to see the video.)
That thing runs Gentoo.
| 3 comments | Jan 20, 2010 7:01:00 PM | multi-touch, nerdstuff, planet-pymt, planet-python, planet-ubuntu, technology |
Do you know those moments in life when you discover some piece of software you didn’t know before and immediately fall in love with it, not knowing how you could survive without it for so long?
Well that just happened to me with Vimperator. Vimperator is a Firefox addon that (by default) takes away your menubar and other things of the standard Firefox interface and adds vim behaviour to your browser.
If you do not like vi/vim/gvim for whatever reason, skip this posting.
Once you installed the addon and restarted your browser you can go to the Vimperator introductional page by pressing F1. You will notice there is a tutorial in the Help topics section. If you are already familiar with basic vim usage you should be able to go over that tutorial in about 15 minutes. After you mastered the basics you will be able to efficiently surf the web with your Firefox browser without issueing the mouse (too often). (I have not encountered a situation where I really needed the mouse yet, but I imagine some flash applications will be hard to master without. I have no flash at hand at the moment, though. Note: You are still able to use your mouse even when Vimperator is active.)
If you tried some console based browsers in the past you may have gotten annoyed when trying to click some link at some spot within a page. Hitting TAB until you reach that specific link is no fun. Therefore Vimperator introduces a system called Hints. By pressing either the f or F key (open in this tab / open in new tab) you will notice that Vimperator adds a small red box with a number in it for each link on the page.
You can now simply enter the number of the link you wish to open. Now that’s a much better concept than hitting TAB repeatedly.
Have you ever got annoyed by some textfield that was way too small for the text you were typing in it? Sure, you could just fire up your favorite editor and copy and paste your text after you are done. Vimperator has a nice shortcut for that. Once your focus is on some textfield, press CTRL+i. Vimperator then fires up gvim (make sure it is installed) and you can type your text in that editor window. After saving and closing the document, the text is automatically put into the texfield (this posting is written that way).
If you have any questions the excellent (so far) documentation fails to answer, /join #vimperator on irc.freenode.net.
So, if you like vim and want to make your browser more accessible for you without a mouse (or less accessible for anybody else who even has a mouse but does not know vim) you should definitely take a look at this very cool plugin.
Keep in mind that I’ve only used it for about two hours at the time of writing. If you know any other tricks, drop a comment.
| 5 comments | Sep 20, 2008 6:49:00 PM | firefox, nerdstuff, technology, vim |