Pushing the boundaries of egotism since 2006!

Occasional insights into the mind of an awesomeness.

Archives Posts

Where’s my vi <textarea>?

August 15th, 2007 by grimboy

Is it this it? Well, if you think opening another tab in gvim, making me switch back and forth and keeping stuff in sync behind my back counts then well, you have low expectations.

How about this?

no particular redistribution rights are granted;

that means you do not have the right to use this on your own web site.

exceptions: Internet Connection, Inc. customers may use this application on any site they like. They may not grant redistribution or other rights to others. they may do this even if they (sadly) become no longer customers.

other rights may become available in the future.

http://src.internetconnection.net/vi/

I can use it if I buy hosting off a provider named “Internet Connection, Inc”? Really, other rights in the future? On some code served from the domain gpl.internetconnection.net? Ambassador, you’re ruining us.

Fine, fine. I’ll get over it. So, yeah, this?

While JS/UIX is open-source (JS-files and HTML embedding must be) it is not
public domain. All rights reserved (c) mass:werk, N. Landsteiner 2003.
You may download the files for private use, but you must not publish, serve or
provide this system in any form without the positive confirmation of the
author. All changes to the source code must be authorized. No warranty of any
kind is granted.

Disclaimer: JS/UIX is provided free of charge and on an “as is” basis, without
warranties of any kind, expressed or implied. Licensors have no liability with
respect to use of the product. The entire risk as to the quality and perfor-
mance of the product is borne by licensee, who assumes the entire cost of any
service and repair. This disclaimer of warranty constitutes an essential part
of this agreement. No use of the product is authorized hereunder except under
this disclaimer.

JS/UIX is NOT a free software (for reasons see the FAQ). If you are looking for
a powerfull but easy to use terminal interface have a look at
“mass:werk termlib.js”

Better put than the last one at least. But what’s the reasoning behind it?

The strict licence is mainly due to the very nature of JS/UIX by now:
Since any malformed code could corrupt the whole system, a greater variety of
distributed copies would render it merly impossible to secure any bugfree
version. Plans are for a totally rebuild version with true multitasking and a
secure userland domain. As this new architecture would allow for third party
extensions, this future version of JS/UIX could well be the start of an open
project under a more permissive licence.

Oh, I see. If you licensed your “Operating System” openly then there would instantly be chaos. Just about everyone and their dogs would fork it. They’d all write masses of really buggy code ‘corrupting the whole system’. Every time anyone wanted a toy operating system they’d always opt for these broken forks rather than the original. Oh, and once again, we can look forward to freedom sometime in the future.

Right, fine. Aha! This one is even encouraging me to download it. Hey, it has command mode, search and replace.

h, j, k, l, h, j, k, l — “Key not supported”! But you have vi *in* your name, handface.gif.

Onwards. Hmm? Wait, even ‘o’ doesn’t work.

Never mind. Ho hum. No commands, no search, the cursor sometimes looks like it’s places where it isn’t, there’s nothing telling you what mode you’re in, no numbers preceding keys. Apart from that pretty good. The best of the freely licensed ones in my opinion.

None of the freely licensed ones are quite good enough for everyday use. That said, I’m amazed nobody’s packaged one them up as a greasemonkey script or the like.

Any I’ve missed?

(Oh, and from a non-textarea point of view vimperator is pretty good.)

Archives Posts

Django on dreamhost problem

December 18th, 2006 by grimboy

***Update***

Looking around I found this post that puts forward what is a much better solution. It suggests renaming django.fcgi to dispatch.fcgi because dreamhost has a policy of not killing things called dispatch.fcgi. I’ve updated the dreamhost wiki page on django to mention this.

What’s below is my old solution:

Primary problem

My mum’s site is set up using Django on Apache running in a shared hosting environment with Dreamhost as laid out in the official documentation and my own write-up. I was having a few problems with it. The problem was an intermittent, unpredictable error about a third of the time which lead to /internal_error.html being displayed. This means that Django wasn’t even starting or was starting and failing very early on because if it was starting it would display the 500.html template instead of /internal_error.html. I took a look at the error.log and sure enough there were errors in the following format for each failed request:
[time and date] [error] [client xxx.xxx.xxx.xxx] (104)Connection reset by peer: FastCGI: comm with server "/home/grimboy/example.com/django.fcgi" aborted: read failed
[time and date] [error] [client xxx.xxx.xxx.xxx] FastCGI: incomplete headers (0 bytes) received from server "/home/grimboy/example.com/django.fcgi"

Solution

After much frustration at these weird, unexplained errors I was just changing random stuff to see if anything increased reliability. In the fastcgi python script that does setup and then calls runfastcgi and lives inside the website root (I call it django.fcgi) I changed:
runfastcgi(method="threaded", daemonize="false")
to
runfastcgi(method="prefork", daemonize="false")
which seemed to mysteriously fix the errors.

Secondary problem

I have no idea about how fastcgi works really. So I don’t know why changing the method from threaded to prefork solved my problem. However, if I’m not completely misinformed fork() starts an additional process and threaded involves using, well, threads. Threads are more lightweight than processes so it should be preferable to use threads.

In conclusion, I am left with two questions:

  • I have no idea why this fixes the original problem and plead ignorance. Anyone care to enlighten me?
  • I don’t know if this problem is unique to me. It could be that the original problem is caused by something else I’m doing wrong. Has anyone else had this problem?
Filed under Stupidity, Django having 2 Comments »

Archives Posts

The etymology of ‘blawg’

October 7th, 2006 by grimboy

Lots of people nowadays think that blawg is just a completely made up buzzword. Actually blawg was a word that slowly evolved. Blawgs have existed since 1994 and were an logical evolution of onlime journiles (an Egyptian citrus delicacy). Back then they were called wablawgs, which is a contraction made up of the word wab, an abbreviation of ‘teh interwabs’, and the word lawg, which is what trees are cut up into so they fit into open fires. The short form, ‘blawg’, was thought up by revolutionary mastermind Peter Merholz, who hilariously broke the word wablawg into the phrase waa! blawg in the sidebar of his blawg Peterme.com. This was obviously a reference to the increasing trend of attention whores creating blawgs just to complain about their lives. Of course nobody got this clever joke, and ironically the phrase blawg is still used by attention whores today.

Filed under Stupidity having No Comments »