I bought a new mp3 player#
Fri, 06 May 2005 18:38:53 +0000
I bought a new mp3 player. This has nothing (afaik) to do with Lisp,
but I thought I'd note it anyway, if only to pacify the end-of-month
bug.
This reminds me that I never did write the review I promised of
my last foray into portable music devices, so here it is: "The Synn
{something or other} is cheap in both senses. It ate batteries
faster than my portable CD player - an impressive feat for something
with no moving parts - and after a few months of intermittent use it
developed a hiss in the left channel that was so loud it made the
music unlistenable".
I hope to have better luck with the Creative Zen Micro.
Turns out that my multidimensional plist goop is perhaps not as useful as it could#
Mon, 09 May 2005 14:10:43 +0000
Turns out that my multidimensional plist goop is perhaps not as useful as it could
be: because it accepts the keys as a &rest argument, it needs
to be used with apply whenever you have a list of keys
generated at runtime. Problem:
The following situations involving setf of apply must
be supported:
- (setf (apply #'aref array
subscript
more-subscripts) new-element)
- (setf (apply #'bit array
subscript
more-subscripts) new-element)
- (setf (apply #'sbit array
subscript
more-subscripts) new-element)
No other standardized function is required to be supported, but an implementation may define such support. An implementation may also define support for implementation-defined operators.
CLHS 5.1.2.5
Maybe I should rethink the API a little. Shame. I quite liked it.
Yes, I'm still playing with non-OO database APIs.
(dbs:with-query (q (database-handle "select from blah where thing"))
(loop
(let ((row (dbs:get-row database-handle* q)))
(unless row (return))
(destructuring-bind (&key ticket artist promoter venue) row
(format t "ticket ~S artist ~S promoter ~S venue ~S~~%"
ticket artist promoter venue))))) (dbs:insert-row database-handle 'employee
'(:empid 22 :forename "John" :lastname "Smith"
:managerid 3 :salary 25000))
(dbs:update-row database-handle 'employee
'(:salary (* 1.2 salary))
'(= :empid 22))
I might hack the with-query macro around a little so it doesn't
need both a database name /and/ a cursor; one should be sufficient.
The parenthesized prefix notation stuff is done with sexql.
Time for a short consumer roundup#
Wed, 11 May 2005 12:16:44 +0000
Time for a short consumer roundup.
- I remain happy, so far, with my new mp3 player (Creative Zen
Micro), which is now about 25% full of mp3s - almost all of them rips
of albums I own already (the only exception so far being an apparently
legal concert bootleg from archive.org). When using it on the Tube,
though, I've realised just how noisy the Central Line is even
before layering music on top, so I am now also in posession of
a pair of Sony MDR-EX71 headphones, which fit right inside the ear
canal and are supposed to cut external noise significantly. Also
they're not white, so I'm less likely to be mugged for them (although
I will probably be unable to hear the mugger behind me anyway; it all
evens out). They arrived this morning, and feel ... odd. Like earplugs,
which in effect they are of course. And sound muffled, which probably
means I need to mess around with the different sizes of earbud. That
or get my ears syringed, possibly.
- My phone died. This upsets me as I've had it three years and
grown to quite like it - insofar as it's possible to like any device
so antisocial as a mobile phone. It did a bad job, but it did it
well. The replacement is a Motorola V220, which wins points for being
a USB device and compatible with gsmlib, so I managed to transfer my phonebook into it with little
trouble. Other than that I haven't used it enough to form an opinion
yet.
- I bought new skates a couple of weeks ago: these are Crossmax 2003 (and therefore discounted). The major
practical difference from my last pair (Thunder) I suspect is less to
do with the higher-spec boot, extruded aluminium frame or twincam
bearings, but the fact they're a size smaller and so fit so much
better. My one-footed balance instantly improved a whole lot.
- My laptop can no longer be described as "new", but I still like
it. Only really aggravating feature is that so many of the ports you
might want to plug and unplug regularly (power, usb, ethernet) are on
the back behind the screen. That and the lack of a third mouse button.
MORE CONSUMERISM#
Thu, 12 May 2005 14:07:43 +0000
MORE CONSUMERISM.
The headphones work a lot better with the large earbuds instead of the
default medium-sized ones, though still require some fiddling to get
them placed so that the sound isn't muffled and isn't tinny either.
They do reduce external noise significantly too, but they're a long
way from letting me walk around in blissful silence: I can still hear
traffic and stuff. Which I think is probably good.
I can find no way of getting pictures off my phone over the USB
cable, without forking out for a piece of Windows software (which I'd
then have to run under Wine or something). I thought I read something
that indicated it would do OBEX over the USB connection if fed the
appropriate AT commands to put it into obex mode, but despite
extensive searching I can't find that page any more so I might have
imagined it. Gah.
For the record, the afore-mentioned Windows#
Tue, 17 May 2005 00:48:45 +0000
For the record, the afore-mentioned Windows
software - which I gave in and bought, in the hope of getting it
to work in Wine - is approximately as usable as xmms (for
approximately the same reasons, too), and also doesn't seem to do
anything anyway even in real Windows. More on this some other time,
but in the meantime it only goes to confirm my previous opinion that
mobile phone hardware companies are much more interested in network
operators than network users, and any network user who cares
significantly about being able to do what they want with their
personal electronic equipment - rather than what some marketer
somewhere thinks they should want - should look to some platform other
than the mobile phone (say, a PDA) for doing it.
I must start diary entries with shorter sentences#
Tue, 17 May 2005 18:13:53 +0000
I must start diary entries with shorter sentences. That or do
something sensible with my rss generator such that Planet Lisp
doesn't get really ugly titles, but that would involve hacking and we
all know I don't do that any more
The Awesome Power of Open Source came through for me in the end: I
eventually found an app called moto4lin on Sourceforge which - after some smacking with the
gdbhammer, as the error messages are not really conducive to working
out what on earth it's trying to do - lets me download pictures and other files on my
v220 in Linux.
void P2kProc::drv_switchP2K(char * st)
{
char cmd[1024];
sprintf(cmd,"echo \"AT+MODE=8\" > %s", (st == 0) ? ACMdev : st);
system(cmd);
}
I'm pretty sure that even C++ has enough library support that you
could do this without recourse to the shell, but leaving aside the
slightly questionable style, AT+MODE=8 has a truly magical
effect on a v220 - it causes it to stop being a tty, change its USB
product id, and start presenting some probably-motorola-proprietary
"P2K" interface to USB, which the moto4lin program will understand.
Then I can browse the filesystem and also do SEEM editing, which
latter sounds potentially irreversible so I have decided not to bother
with until I have some idea what on earth it is.
How to get it out of this P2K mode again, other than by
disconnecting the USB cable, I don't yet know. There's no longer any
tty to which I can issue AT+MODE=0
The picture quality is exactly as bad as I was expecting, by the
way. Still, nice gimmick.
I seem to have no network to cvs.telent.net#
Thu, 19 May 2005 11:49:12 +0000
I seem to have no network to cvs.telent.net. Dunno what's broken yet;
more information as it becomes available.
Latest on cvs.telent.net: I plan to move to darcs#
Mon, 23 May 2005 01:48:44 +0000
Latest on cvs.telent.net: I plan to move to darcs.
To: lispwebred-bean.com,portable-clx
lists.metacircles.com
Subject: Telent CVS broken (again), likely move to darcs
From: Daniel Barlow [ this message is crossposted. if you reply, please exercise
restraint in your recipient lists ]
cvs.telent.net, the machine that does (did ...) CVS hosting for -
among other things - Araneida, CLiki, and "telent CLX", is currently
down with suspected hardware problems.
My time and inclination for babysitting flakey hardware in colo space
is limited, but also, as many have noted, my record of late for
hacking on and merging patches to these projects is pretty poor
anyway. I intend, therefore, to move the said projects over to darcs
http://www.darcs.net/
This is one of the new breed of cvs-replacement version control
systems, with two important features from my perspective:
1) it's decentralised, so people can keep their own trees with local
patches in them, and worry less about getting changes through me. If
anyone does a really good job (or indeed, a consistently
better-than-indifferent job) at patch merging and ongoing development
for any of the formerly-at-cvs.telent.net projects, I will be entirely
happy to hand over the "official" mantle to them.
2) it needs no special server support, so I don't have to worry about
finding a replacement machine for cvs.telent.net (call me paranoid,
but even chrooted I don't like running cvs pserver on any machine
that's used for something else)
cvs.telent.net is unlikely to return to service. If anyone had an
account on it with data in their home directory, (a) well, you
probably shouldn't have done that, but (b) feel free to email me and
we'll make some kind of arrangement to get it off there.
I hope this should make things run a bit more smoothly in future.
More details when I've had a chance to upload the repositories
somewhere accessible.
-dan
Work continues on trying to make my phone behave#
Mon, 23 May 2005 22:20:01 +0000
Work continues on trying to make my phone behave. I missed a bunch of
calls on Sunday because I diodn't notice it vibrating while I was
skating, so today I thought I'd sort out a nice mp3 ringtone. So that
I remember for next time, and in case Google ever leads other
similarly-afflicted people here (magic keywords: v220
mp3 ringtone p2k), the procedure is as follows:
- Create a suitable mp3. Actually, I just took one I had handy and
used dd to chop the first twenty seconds; when I have a moment I'll go
back and do some fancy editing and eq, and possibly recode it at a lower
rate.
- Upload it to the phone's /a/mobile/audio/ directory.
- (important) Delete MyToneDB.db, which you will find in the same
directory. It's probably a good idea to back that file up somewhere
first.
- When you go to Themes -> Sounds on the phone now, it will sit
there with a "please wait" dialog for longer than usual (several tens
of seconds, on my phone) - I assume it's rebuilding the MyToneDB file
- then show your new upload along with all the crummy default rings.
- Press the Menu button then 'Apply as Ring Tone'
- There may be a power cycle involved somewhere as well (yay, feels
just like Windows). Or maybe that bit wasn't necessary.
Disclaimer: no warranty/this worked for me - it might not work for
you/if it breaks your phone, you get to keep both pieces. Well,
probably they really belong to your network provider or something, but
I want no part of it anyway.
The darcs side called#
Fri, 27 May 2005 01:26:31 +0000
The darcs side called. It left a message. The message is
Note that (1) for reasons I don't feel much like figuring out at this
time of night, at time of writing my secondary dns doesn't seem to
believe verisons.telent.net exists, (2) I am not aware of any way
except through the cgi that you can find out what repositories exist
yet - as I write this, the answer is "clx", but tomorrow I'll add
cliki-related projects and the rest.
First impression, btw, is that the cgi thing is probably not going
to be available for long, as xsltproc eats machine resources like,
well, like something designed by XML users.
There are many reasons to keep a blog, and most of them are in#
Wed, 01 Jun 2005 11:22:10 +0000
There are many reasons to keep a blog, and most of them are in
conflict with each other. Today the conflict is between writing
something so I will remember next year what I was doing this year, and
writing nothing so that everyone else doesn't have to wade through my
rambling. Guess who won?
- Listening to music on the tube doesn't make the tube journey pass
any faster in the way that reading a book does (when I can find a book
interesting enough to read but not yet so interesting that I don't
just finish it when I get home). But the headphones do keep the screeching
noise down.
- I'm missing not having a spare computer on the internet. I don't
know why, as I barely used the one I did have. £150 buys me a year's
worth of 64Mb UML, or £200 (plus delivery) buys me a Celeron from the
Dell "factory outlet" with really rather a lot more memory and disk
than that, which my employers will host for me => free bandwidth. But
then I'm still stuck with real hardware.
- To confirm what everyone already knew really, I am Officially Not
Hacking SBCL (or much else) right now - really don't have the time or
the enthusiasm. If you were waiting for me to finish or merge
something that's interesting to you, ask on the appropriate mailing
list and I'll work out what state I left it in and post any WIP I have
lying around that's not publically available already.
- The full extent of my Lisping lately is - would you believe it -
tools for dealing with HTML forms and databases and stuff without (a)
going mad, or (b) involving much more of a framework than Araneida
already imposes.
I think I probably won't be at LSM after all.