Winpdb - A Platform Independent Python Debugger http://winpdb.org Thu, 07 Jun 2012 20:14:02 +0000 http://wordpress.org/?v=2.7 en hourly 1 Keymonk - an evolution of the smartphone keyboard http://winpdb.org/2012/06/keymonk-an-evolution-of-the-smartphone-keyboard/ http://winpdb.org/2012/06/keymonk-an-evolution-of-the-smartphone-keyboard/#comments Sat, 02 Jun 2012 17:47:53 +0000 nir http://winpdb.org/?p=528 https://play.google.com/store/apps/details?id=com.keymonk.latin It is a significant evolution over traditional sweep keyboards. Its premise is that since the QWERTY keyboard is designed to maximize hand alternation while typing, it should be beneficial to be able to sweep words with both fingers, each at its side of the keyboard. For example, to input the word 'make' with a traditional sweep keyboard you would start at M, sweep to the other side of the keyboard to A, then all the way back to K and again to the other side for E. With Keymonk you may instead start with your right finger at M and your left finger at A, then sweep your right finger to K and your left finger to E, resulting in two short and natural sweeps: Sweeping the word 'make' with Keymonk I find it very convenient for inputting large amount of text nearly as fast as I would with my laptop keyboard. Young people seem to get the hang of it quickly. It is currently enabled for download in English speaking countries.]]> I have recently started a company and published a closed source application.

Keymonk is a keyboard for Android that lets you sweep words with two fingers:
https://play.google.com/store/apps/details?id=com.keymonk.latin

It is a significant evolution over traditional sweep keyboards. Its premise is that since the QWERTY keyboard is designed to maximize hand alternation while typing, it should be beneficial to be able to sweep words with both fingers, each at its side of the keyboard.

For example, to input the word ‘make’ with a traditional sweep keyboard you would start at M, sweep to the other side of the keyboard to A, then all the way back to K and again to the other side for E. With Keymonk you may instead start with your right finger at M and your left finger at A, then sweep your right finger to K and your left finger to E, resulting in two short and natural sweeps:

Sweeping the word 'make' with Keymonk

I find it very convenient for inputting large amount of text nearly as fast as I would with my laptop keyboard. Young people seem to get the hang of it quickly.

It is currently enabled for download in English speaking countries.

]]>
http://winpdb.org/2012/06/keymonk-an-evolution-of-the-smartphone-keyboard/feed/
The Normalized Decline of Free Software http://winpdb.org/2011/07/the-normalized-decline-of-free-software/ http://winpdb.org/2011/07/the-normalized-decline-of-free-software/#comments Sat, 23 Jul 2011 20:35:35 +0000 nir http://winpdb.org/?p=520 Take a look at these two graphs from “Google Insights”. They show an ongoing decline of GPL, GNU and Linux in normalized search volume:
http://www.google.com/insights/search/#q=gpl%2Cgnu%2Cebook%2Copen%20source&cmpt=q
http://www.google.com/insights/search/#q=linux%2Cpc%2Candroid&cmpt=q

One possible interpretation is the decline of the desktop and rise of smart phones and digital consumerism, but note the search term PC is stable in the second graph. Another possible interpretation is that GNU/Linux people are the “early adopters” of the Internet and the decline is expected as the Internet reaches more and more people, but nevertheless I don’t like these graphs at all.

]]>
http://winpdb.org/2011/07/the-normalized-decline-of-free-software/feed/
rconsole - Remote Python Console http://winpdb.org/2010/09/rconsole-remote-python-console/ http://winpdb.org/2010/09/rconsole-remote-python-console/#comments Mon, 06 Sep 2010 20:50:23 +0000 nir http://winpdb.org/?p=485 rconsole is a new Python console that you can attach to a running script to inspect and modify its namespace. I hacked it up since I did not find a simple to use alternative to inspect a daemon process.

rconsole is included with the rfoo package at http://code.google.com/p/rfoo/.

To invoke it within a script add the following to its code:

from rfoo.utils import rconsole
rconsole.spawn_server()

To attach from another shell do:

$ rconsole

rconsole is not a debugger and does not freeze the script. You can think of it as a window into the belly of a long running script. It is lightweight and non-disruptive. You may leave it inside production code and attach when you need to check in on the health of a long running script:

  • Import guppy.hpy into a running script to investigate memory leaks.
  • Change function definitions and reload modules on the fly.
  • Inspect live internal data structures.
]]>
http://winpdb.org/2010/09/rconsole-remote-python-console/feed/
Winpdb 1.4.8 Tychod Released http://winpdb.org/2010/08/winpdb-148-tychod-released/ http://winpdb.org/2010/08/winpdb-148-tychod-released/#comments Thu, 19 Aug 2010 17:53:21 +0000 nir http://winpdb.org/?p=476 winpdb.org/download. Work on this version was sponsored by Investortools Inc.]]> Winpdb 1.4.8 was released. This is a maintenance release that fixes compatibility issues with Python 2.7 and 3.x. You can download it from winpdb.org/download. Work on this version was sponsored by Investortools Inc.

]]>
http://winpdb.org/2010/08/winpdb-148-tychod-released/feed/
Simple Solution to Classic Problem in Software Development http://winpdb.org/2010/03/simple-solution-to-a-classic-problem-in-software-development/ http://winpdb.org/2010/03/simple-solution-to-a-classic-problem-in-software-development/#comments Mon, 08 Mar 2010 19:53:22 +0000 nir http://winpdb.org/?p=446 Pick a good sized CS book and put it in front of your monitor so that it hides the screen unless you sit up straight.

]]>
http://winpdb.org/2010/03/simple-solution-to-a-classic-problem-in-software-development/feed/
Copyright and Delayed Release http://winpdb.org/2010/03/copyright-and-delayed-release/ http://winpdb.org/2010/03/copyright-and-delayed-release/#comments Wed, 03 Mar 2010 21:21:21 +0000 nir http://winpdb.org/?p=408 Ever since I discovered Free Software I was haunted by the problem of developing software sustainably. Today I would like to suggest a possible model which may be suitable to individual developers and small business. That is, distributing software using relaxed non Free Software license, combined with releasing each modification as Free Software a determined time after its introduction, or in other words - Delayed Release.

This approach may be inline with views expressed by Richard Stallman in an interesting article on Copyright by the title “Misinterpreting Copyright—A Series of Errors” (1). Referring to copyright on software he writes “In my own field, computer programming, three years should suffice”. Stallman does not reject copyright as a concept but is interested in “Finding the right bargain”.

Possibly the most well known scheme for developing Free Software profitably is that of charging for related services. The problem is this model requires business skills most software developers do not have and is often not even applicable.

With Delayed Release, software developers may have easier time developing Free Software profitably, leading to increase in production of Free Software. Once people find that ideals of Free Software can practically co-exist with their realities, those ideals will have easier time spreading.

(1) http://www.gnu.org/philosophy/misinterpreting-copyright.html

]]>
http://winpdb.org/2010/03/copyright-and-delayed-release/feed/
160,000 IPC Calls per Second in Python http://winpdb.org/2010/02/100k-ipc-calls-per-second-in-python/ http://winpdb.org/2010/02/100k-ipc-calls-per-second-in-python/#comments Thu, 18 Feb 2010 21:20:34 +0000 nir http://winpdb.org/?p=418 rfoo is a new Python RPC package which can do 160,000 IPC calls per second on a regular PC. It includes a fast serialization module called rfoo.marsh which extends the Python built in marshal module by eliminating serialization of code objects and protecting against bad input. The result is a safe to use ultra fast serializer. Go get it at http://code.google.com/p/rfoo/

Interface of rfoo.marsh

rfoo.marsh.dumps(expression)
rfoo.marsh.loads(binary_string)

Serve RPC method to clients

class MyHandler(rfoo.BaseHandler):
    def echo(self, str):
        return str

rfoo.InetServer(MyHandler).start(port=50000)

Call method on RPC server

c = rfoo.InetConnection().connect(port=50000)
rfoo.Proxy(c).echo('Hello, world!')
]]>
http://winpdb.org/2010/02/100k-ipc-calls-per-second-in-python/feed/
Scalability http://winpdb.org/2009/07/scalability/ http://winpdb.org/2009/07/scalability/#comments Tue, 21 Jul 2009 03:37:02 +0000 nir http://winpdb.org/?p=345 The world is a giant OS with a mysterious scheduling algorithm.

]]>
http://winpdb.org/2009/07/scalability/feed/
The State of Free Software http://winpdb.org/2009/07/the-state-of-free-software/ http://winpdb.org/2009/07/the-state-of-free-software/#comments Sat, 18 Jul 2009 09:07:44 +0000 nir http://winpdb.org/?p=338 It is easy to identify a Free Software project. It includes the term “Free Software” in its website. Open Source projects created by corporations, by hackers who reject the ideals of Free Software or by developers who do not know the difference NEVER include the term.

Some notable Free Software projects are therefore:
http://www.debian.org/
http://www.gnome.org/
http://kde.org/

There are of course many others and please comment with your favorite ones, but in fact, if you try to think of a recent notable FOSS project and check out its website you are most likely to find it is an Open Source project rather than Free Software.

For example, Apache, Lighttpd, MySQL, PostgreSQL, Python, Django, Drupal, Firefox and others.

For those of you who wonder what the difference between Free Software and Open Source is, I recommend the following article: http://www.gnu.org/philosophy/open-source-misses-the-point.html

There can be several reasons why this is the state of Free Software. I believe one of them is that there is no economical energy behind Free Software.

]]>
http://winpdb.org/2009/07/the-state-of-free-software/feed/
Ice Programming http://winpdb.org/2009/07/ice-programming/ http://winpdb.org/2009/07/ice-programming/#comments Tue, 07 Jul 2009 21:43:53 +0000 nir http://winpdb.org/?p=333 Programming is like Ice Sculpting. For me programming is an art form. At its best it is driven by muse, involves a technical achievement, and is a form of expression. But as an art form programming is like Ice sculpting. It lasts for 5 to 10 years and then returns to the mind of its creator as sweet memory, nothing more.

When I was 16 I wrote with a friend an arcade game for the Commodore 64. It was a beautiful piece of software written in Assembler with heart breaking graphics. I dare to say it was one of the most technically advanced games ever developed for the Commodore but although we negotiated with several game publishers it was never released.

This game is now the software equivalent of Schrödinger’s cat experiment. It exists on a 20 years old 5.25 Inch floppy disk inside a plastic box at my parent’s house. There is a probability that it is still intact, but touch that diskette and it is gone forever.

Such is the fate of all software.

]]>
http://winpdb.org/2009/07/ice-programming/feed/