Older blog entries for lkcl (starting at number 247)

15 Dec 2005 (updated 15 Dec 2005 at 13:17 UTC) »
blueangel.

excellent :)

phone works. gpe 2.7 works.

just trying to get suspend to work properly, including screen. just discovered that in resume, the LCD init (which includes power-sequence to the ATI chip) is done _after_ the framebuffer init - that might explain why it don't work...

so delighted and relieved that my work on the himalaya (previous version) wasn't wasted, and that people have taken it up.

this is quite literally the only non-commercial linux project that i know of that has a working mobile phone on commodity hardware.

12 Dec 2005 (updated 12 Dec 2005 at 10:19 UTC) »

the ipred-2 article. i'm confused as to how little reaction and comment there has been. it would seem that if it's got the word "software patent" in it, it's okay to lobby MPs to get it turned down. but if it's got the words "turn software developers into criminals" in it, then nobody gives-a-shit.

how weird.

well, dang me.

the damn XDA IIs not only runs linux, but the damn phone actually works, too, thanks to gomunicator.

now to attempt the impossible: build a complete gpe image, and the 2.6.12 kernel, just for fun...

i got an O2 XDA IIs - it's the "blue angel" from the HTC and it runs linux, thanks to cp15 and others, based on my original work on the XDA II (HTC's "himalaya") 18 months ago...

24 Nov 2005 (updated 24 Nov 2005 at 10:45 UTC) »
elanthis: make damn damn damn damn sure you get a friggin hard drive fan set - they're about £1.50 and they will extend the life of your drive.

only older drives - expensive ones - are capable of running at higher temperatures. phil hands had a stack of full-height 9gb scsi drives which he ran for years in a machine room (well, actually, someone's shed) at 50 degrees CENTIGRADE. during the summer that temperature went up further, to the point where some idiot walked over the tar pitch roof and destroyed it.

the reason why the drives survived at that temperature is because he had smeared silicon paste on every single one and slapped aluminium foil on the tops, then blew air across them with a desk fan.

this won't work of course with the pathetic quality of drives you get these days :) :)

you should keep hard drives in an ambient temperature of no more than 20 degrees centigrade - especially if you're hammering them - in order for them to survive for prolonged periods of time.

at 30 degrees centigrade, with no additional cooling, you can expect failures within 4 to 24 hours, simply because of this: at ambient external temperature of 30 degrees, inside the case it will be 40 degrees, around the hard drive it will be 45 degrees; the metal case of the hard drive will be 50 to 55 degrees and inside it will be about 70.

so, if _nothing_ else, get some hard drive fans (£1.50) attached to the base.

music machine

i've been asked to set up a linux music production/editing desktop system for someone. actually - they have a win95 system that they just do hard-drive 44.1kHz recording onto, and i said "i can do better than that for you and it'll cost about £200" and stunningly they said "uh, okay, go for it".

i've installed pretty much everything-under-the-sun i can find (unless it's a gnome program) including lmms (which is the closest thing yet to cubase 3.0 which i _love_!) and it's horrendously confusing as to what is what - there's _that_ much software on it.

i advised him to get a USB midi thing, and will try it out when he gets here.

what came as an incredible shock to me is how _fast_ boot-up time is on this machine. udev seems to have taken over the role of hotplug (this is a debian/unstable system). i've only got cupsys, crond, ssh, xfs, exim4 (standalone), resmgr, and a few others - no apache, no services - and i also moved the /etc/rc2.d priority of xfs, xorg to 16 and nvidia-glx and nvidia-kernel-src to 15.

in this way, the x server is kicked off _before_ all of the other services (cupsys, ssh, exim4) which means that it saves a few seconds there, too. the x server doesn't _depend_ on those services, and by the time it's at a graphical login screen, sshd etc. will have started anyway.

p.s. i forgot to get a damn hard drive fan cooler.

_well_. living in interesting times. things i am happy to talk about:

IronPython

_wow_ what an amazing concept - python, a scripting language, reimplemented (aiming for byte-code interoperability) that can also understand CLR - the runtime thingy for .NET.

so, you can write programs cross-platform, because of mono.

it's still early days, yet, because everyone is going "oo, look, cool new toy" and it's incredibly difficult to locate actual real code.

also, if it's not available from .NET (mono) then forget it. in other words: you know all those nice python libraries you rely on - the ones that aren't written in pure python, they're actually using c-code behind-the-scenes? forget aaaallll about them.

fortunately, that's not _such_ a big hairy deal because you have access to the entire .NET (mono) system library suite.

basically, you're programming in .NET, but writing code in python. i feel sorry for the poor dickheads who say "ironpython is great! but i reaaally miss the auto-completion feature of visual studio: when is IronPythonConsole.exe going to get that?" fuckofff, bitch! learn to type! use your memory and learn to use google! as a side-effect you'll also be able to program top-down instead of being forced to code bottom-up because unless all your classes are populated with stubs the auto-completion feature of visual studio forces system function names you didn't want down your throat.

anyway.

a few hair-raising things i came across, that are really important, especially if you're using debian/unstable (or debian/testing):

1) ironpython 0.6 works with mono 1.1.9. it's a bit grungy. (System.XML reader doesn't work.)

2) ironpython 0.9.4 works with mono 1.1.10.

3) ironpython 0.9.5 works (compiles) with a version of mono > 1.1.10 and so it's not _quite_ there yet.

4) you must must _must_ add these lines to /etc/mono/config in order to get Gdk to work:

<dllmap dll="libgdk-win32-2.0-0.dll" target="libgdk-x11-2.0.so.0"/>
<dllmap dll="libgtk-win32-2.0-0.dll" target="libgtk-x11-2.0.so.0"/>
<dllmap dll="libgdk_pixbuf-2.0-0.dll" target="libgdk_pixbuf-2.0.so.0"/>

what else: oh, yes, this trick is really useful, and necessary:

import sys
sys.LoadAssemblyByName("System.Xml")

and _then_ you can "import System.Xml".

the same thing goes for gdk-sharp and gdk-sharp:

import sys
sys.LoadAssemblyFromFile ("/usr/share/dotnet/mono/gtk-sharp/gdk-sharp.dll")
import Gdk
sys.LoadAssemblyFromFile ("/usr/share/dotnet/mono/gtk-sharp/gtk-sharp.dll")
import Gtk

which is _really_ ugly but it works (i wonder what i'm supposed to do on win32, there? oh well).

start your programs with this, or something similar:

#!/usr/bin/mono /usr/src/ironpy/IronPython-0.6/bin/IronPythonConsole.exe

it will save you typing it out every time..

am still looking for a way to access MySQL...

one of the many useful things i picked up from rusty russell in 2000 was a technique for defusing hostile situations on mailing lists.

the technique is to not so much ignore the hostility, not to react to it, not to refute it, but to do this:

1) to assume that the hostility is an oversight or a mistake on the part of the writer

2) to offer to rewrite the writer's message as if it was not hostile

3) to assume that 2) is okay to do and to explicity mention that you're making such an assumption, and then proceed to rewrite the message.

4) to reply to the rewritten message _not_ the original one, _without_ being hostile yourself.

the reason why i mention this is because i just received a message - distributed to tens of thousands of people - which was extremely sarcastic and was deliberately designed to make me look like an incompetent fool out to cause trouble.

i cannot imagine what in seven hell's teeth the guy was _thinking_.

it was so so embarrassing and counterproductive.

WAAAAH.

much strangeness, much lack of money.

some time ago - eight years or more - i started buying houses, as an investment. my salary was sufficient to cover the difference between the mortgage plus credit cards and the rental income. consequently i was able to continue to purchase, as discounted opportunities, arose, further houses.

with the dotcom crash, that is no longer the case, and i am constantly fighting a battle to secure income or loans to ensure that the mortgages are paid. i guess i made about £12,000 from computing work last year. that is probably a bit optimistic.

the irony is that matters force me to sell the properties - at a time when the uk goverment's actions are scaring the shit out of people, and their chickens are coming home to roost.

after ten years of investment, then IF i manage to sell the properties at market value, i stand to make, after tax, secured loan repayment and mortgage repayment, about ... mmm... £50,000.

despite 17% average property price growth per year, that's a return of £5,000 per year, after shelling out about that amount EVERY TWO MONTHS for the past couple of years.

capital-intensive property investment is _not_ a short-term investment. if i COULD keep the properties (e.g. for another five years), the expected increase in value over that period would make me about.... mmm.... £1million after tax.

forced requirements for selling - not enough income - is a complete bitch.

finally: finally, finally, finally.

after adding up the time-wasting per month calling an 0845 telephone number on seriously fucked-up dialup line, i managed to persuade my wife that she should switch to broadband.

this required - despite the fact that she has two lines plus two ISDN lines - installation of a new BT line (cost of £99).

the cost of the rental plus the cost of the broadband came to LESS than the cost of the 0845 telephone calls, per month (£30).

so: we now have broadband, i'm letting her have one of my ZyXEL P2000W 802.11 SIP phones, and i can call her up using IAX.

as per fucking usual with asterisk, i've had to install a PCI ADSL broadband modem in her machine, so that it has a fixed IP address (no NAT) so that the SIP stuff works properly.

have been doing a loottt of messing about with asterisk.

it is a total fucking pig to begin to get anything working, let alone know if it's correct.

i am giving serious consideration to writing a GUI (despite there being several already), a new config file format or adding in a python library loader so i can write CODE instead of config files.

asterisk configuration is THAT fucking bad.

it's fine if you have examples that Do What You Want - just add another dial-out SIP extension, whoopee, cut/paste a single line.

if you want a friend to be able to dial-in from IAX? be prepared to spend anything up to 16 hours researching it and getting it right.

i've _just_ recently successfully got a dial-in _and_ a dial-out over IAX, with passwords, to extensions between sirius and my own asterisk server. sirius's asterisk server was first attempted to be installed over two months ago, and mine about the same time.

the other thing that's a complete pig: RTP and SIP. christ: who the _fuck_ let some royal dick write _that_ protocol. it's worse than ftp (when not in passive mode), and due to the complexity of SIP, you can't write a proper sip_conntrack iptables module that opens up a relevant connection-tracking RTP hole when a SIP session is connected.

so i've had to a) buy an ADSL PCI card (i recommend both the "unicorn" cards _and_ the dymo ones with a "conexant falcon 2p" chipset) b) do away with any kind of NAT.

i did want to try running "siproxd" but it's a bit of a pain to set up on the same box as an asterisk server, because asterisk expects to bind to 0.0.0.0 (all interfaces) or to an address... which of course you can't fucking DO on a DHCP-allocated ADSL dialup link without rewriting the config file on every fucking startup of asterisk....

238 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!