Winpdb - A Platform Independent Python Debugger 2011-07-29T15:57:51Z WordPress http://winpdb.org/feed/atom/ nir http://winpdb.org/ <![CDATA[The Normalized Decline of Free Software]]> http://winpdb.org/?p=520 2011-07-23T20:35:35Z 2011-07-23T20:35:35Z 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.

]]>
1
nir http://winpdb.org/ <![CDATA[rconsole - Remote Python Console]]> http://winpdb.org/?p=485 2010-09-22T10:49:15Z 2010-09-06T20:50:23Z 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.
]]>
2
nir http://winpdb.org/ <![CDATA[Winpdb 1.4.8 Tychod Released]]> http://winpdb.org/?p=476 2010-08-19T17:56:59Z 2010-08-19T17:53:21Z 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.

]]>
2
nir http://winpdb.org/ <![CDATA[Simple Solution to Classic Problem in Software Development]]> http://winpdb.org/?p=446 2010-12-12T20:01:15Z 2010-03-08T19:53:22Z 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.

]]>
0
nir http://winpdb.org/ <![CDATA[Copyright and Delayed Release]]> http://winpdb.org/?p=408 2010-03-03T21:21:21Z 2010-03-03T21:21:21Z 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

]]>
5
nir http://winpdb.org/ <![CDATA[160,000 IPC Calls per Second in Python]]> http://winpdb.org/?p=418 2010-08-06T20:50:11Z 2010-02-18T21:20:34Z 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!')
]]>
0
nir http://winpdb.org/ <![CDATA[Scalability]]> http://winpdb.org/?p=345 2009-11-19T14:20:01Z 2009-07-21T03:37:02Z The world is a giant OS with a mysterious scheduling algorithm.

]]>
0
nir http://winpdb.org/ <![CDATA[The State of Free Software]]> http://winpdb.org/?p=338 2010-04-28T10:23:25Z 2009-07-18T09:07:44Z 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.

]]>
5
nir http://winpdb.org/ <![CDATA[Ice Programming]]> http://winpdb.org/?p=333 2009-07-08T05:49:01Z 2009-07-07T21:43:53Z 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.

]]>
1
nir http://winpdb.org/ <![CDATA[Revolutionary Technology]]> http://winpdb.org/?p=329 2009-06-25T19:52:03Z 2009-06-21T18:52:50Z Where I live the media goes on and on about how The Iranian people is using web technology against its regime - for example Twitter, Youtube, e-mails and also cellular phones, SMS, etc… These technologies are described as giving an upper hand to the people as opposed for example to the revolution which took place 30 years ago.

I think this technology is actually being used against the people. You can not use it without being completely exposed. Anyone using it is being monitored and ironically has his/her social network mapped. Once someone is determined to be an organizer or worth the effort of taking down, he/she can be easily arrested.

]]>
8