Julien Danjou: Emacs snapshot Debian packages
I've decided to take over the maintenance of the unofficial emacs-snapshot
Debian packages that were maintained by Romain Francoise.
They are available on a dedicated page.
I've decided to take over the maintenance of the unofficial emacs-snapshot
Debian packages that were maintained by Romain Francoise.
They are available on a dedicated page.
Having found Gammu usage in proprietary software and finding somebody who is actually having the source code, the only remaining (and the hardest) step was to make them publish it.
I started with explaining what actually GPL means, giving them links to useful documentation what they should do, but I'm probably not good enough in explaining the things.
All I was given is source of some parts of Gammu code they have used (it is available in our git repository since then). Any attempts on explaining them that they should publish full source code of the thing to comply with GPL have simply failed.
The problem with the sources they have given is that it is hardly to reuse in Gammu - it is hard to find on which version they based and more importantly, it really does not include much code which would be useful in Gammu these days.
Filed under: English Gammu Gpl 5 comments Flattr this!
root password:

popularity-contest configuration:


d-i components from the CD-ROM:


convert cropped-snap.png -fill none -stroke black -draw \
"stroke-dasharray 10 10 path 'M 0,299 L 800,299'" dashed-cropped-snap.png
X/experimental + g-i = ?
Premises:
libxfont1-udeb, xserver-xorg-core-udeb,
xserver-xorg-input-evdev-udeb, xserver-xorg-video-fbdev-udeb
from experimental.localudebs/ in a d-i build tree.netboot-gtk image with: make rebuild_netboot-gtkupdate-manifest
command.]X/experimental + g-i = Win
Proof:
Comments:
udebs in
experimental, even by jumping directly from 1.7 to 1.9.
\o/;)
Hardly anything ruins a glorious day of coding like fat-fingering the commit message late at night as you doze off, and then pushing it out for the world to see. To prevent that, I have equipped my Emacs configuration with a few little tools now.(require 'git-commit)The last line is handy if you have save-place on by default. When you make a new commit, it would then normally place the cursor where a previously edited commit message was finished, because to the save-place functionality, it looks as though it's the same file.
(add-hook 'git-commit-mode-hook 'turn-on-flyspell)
(add-hook 'git-commit-mode-hook (lambda () (toggle-save-place 0)))
The bug webinterface of the
Ultimate Debian Database
currently knows about the following release critical bugs:
| In Total: | 613 |
|---|---|
| Affecting Squeeze: | 93 |
| Squeeze only: | 33 |
| Remaining to be fixed in Squeeze: | 60 |
| Pending in Squeeze: | 3 |
|---|---|
| Patched in Squeeze: | 13 |
| Duplicates in Squeeze: | 13 |
| Can be fixed in a security Update: | 1 |
| Contrib or non-free in Squeeze: | 2 |
| Claimed in Squeeze: | 0 |
| Delayed in Squeeze: | 0 |
| Otherwise fixed in Squeeze: | 12 |
Squeezereleased. However, with the view of the Release Managers, 68 need to be dealt with for the release to happen. Please see
Interpreting the release critical bug statisticsfor an explanation of the different numbers.
json module in python,
this requires the client to buffer all the data in memory for decoding, as the
JSON result would be something like this:
[
info for package 1 ,
info for package 2 ,
...dozens of megabytes...
info for package 30000 ,
...
]
However, it would be reasonable to engineer things so that the client can
process packages one at a time, as they are produced. This can dramatically
reduce client memory usage, as well as remove a large latency between the
start of the request and the start of processing.
One trivial idea would be to just send JSON objects one after the other, and
sort of call load multiple
times.
It doesn't work:
import json
from cStringIO import StringIO
a = StringIO()
json.dump( 1:3 , a)
json.dump( 2:4 , a)
a.reset()
print a.getvalue()
print json.load(a)
gives:
$ python z1.py
"1": 3 "2": 4
Traceback (most recent call last):
File "z1.py", line 8, in <module>
print json.load(a)
File "/usr/lib/python2.6/json/__init__.py", line 267, in load
parse_constant=parse_constant, **kw)
File "/usr/lib/python2.6/json/__init__.py", line 307, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.6/json/decoder.py", line 322, in decode
raise ValueError(errmsg("Extra data", s, end, len(s)))
ValueError: Extra data: line 1 column 8 - line 1 column 16 (char 8 - 16)
And the json module documentation
does not provide any way of telling the "stream" decoder to just stop parsing
after the first valid object.
An alternative can be to use chunked transfer
encoding and transfer
each JSON object in a separate HTTP chunk. It would add the overhead of a
little HTTP header per JSON object, which could be significant when generating
lots of small JSON objects, but it would be an implementation that strictly
follows HTTP and JSON standards to the letter in a clean way.
Except:
we built a streaming JSON app as a part of our platform. However, we
didn't stream a single JSON object as that was a bit cumbersome. When
having syntax like:
[
<json-obj1>,
<json-obj2>,
....
<json-objN>
]
The reader has some problems. Should it read the whole stream to find
the closing bracket ] even if the stream would me tens of megabytes?
Should it try to split on , and parse single objects? What if the
objects contain , so should there be some regexp magic?
We ended up streaming separate JSON objects separated by newlines
(\n). This way the reader can read until hitting \n or end of stream
and then split the result on newlines. The new stream looked like
this:
<json-obj1>\n
<json-obj2>\n
...
<json-objN>\n
This way we could efficiently stream hundreds of thousands of JSON
objects from server to client without reserving a load of memory. For
the WSGI part how to do this, the best would probably to do a
generator that would yield a single JSON object with the newline (we
didn't use WSGI back then). Reading can be done using any reader
capable of handling streams. We used pycurl for reading, but I can't
really recommend it as it is way too complicated for a simple task
like this :p
Hopefully this helps!
This means that if the client has no access to a JSON reader that supports a
stream of concatenated toplevel objects, they can still trivially code it on
top of any JSON library. This means that working clients can be written based
just on Squeeze's python standard library. That's what I'm going to do; I'll
probably implement it as a separate 'jsons' output format for DDE, because
producing a JSON response with multiple toplevel obejcts somehow breaks the
JSON standard.
Thanks to all who provided this excellent information!
A couple of days ago, an email arrived in which I am kindly asked to
provide my PayPal coordinates. And before you dear reader start to laugh,
it was actually perfectly genuine and came from a very happy user of the
Finance::YahooQuote
Perl module. DJ Padzensky wrote this well over a decade ago, and I first
introduced and then maintained it as a
package in Debian
for what is now
almost twelve years.
I have also been acting as upstream maintainer for the last eight or so
years providing the occassional patch to keep up with changes at the Yahoo!
server side.
After a short reflection, I decided to keep it simple. I undusted a
wishlist I had once created over at Amazon, yet never publicised. And amazingly,
within minutes of minutes of passing the URL on, I received a cheerful email
stating that three books are their merry way. Appropriately enough, two were
from
Springer's useR! series
and another one was a brand new GPU programming title. And they all arrived
yesterday. I am still stunned.
So with that, my time to say thanks! This was a genuinely nice gesture, and
I really appreciate it. I have been doing open source work for over fifteen
years now, and I would not still be doing it if I did not enjoy it myself. I
continue to learn a lot in the process, and have had a chance to meet lot
interesting folks. Yet it is also nice to get a little Thanks every now
and them.
These days, I've been used to a very specific $EDITOR usage. I
use my (Xfce) workspaces as context switch. Basically, each time I
need to start a new activity I open a new workspace, open some
terminals, maybe a browser, an editor (gvim) window etc. Then when
I'm done, I delete that workspace.
I can have multiple activities at once, and switch from one to
another depending on various stuff. On those workspaces, I'd like
to be able to have only one editor window, even when I open new
files using gvim foo.c . But I'd like to have one editor window
per workspace, not one global editor, since I'd like the editor to
be context-specific too.
I recently heard about the gvim remote
stuff, and I've came with the following gvim function (zsh
syntax):
function gvim()
desktop=$(xprop -root -notype -f _NET_CURRENT_DESKTOP 0c '$0+\n'
_NET_CURRENT_DESKTOP)
if [ "$#" -ge "1" ];
then
gvimargs="--remote-tab-silent"
fi
=gvim --servername $desktop $gvimargs $*
The xprop trick is a hackish way to stick one gvim window per
workspace, it might need to be adjusted if one has a two monitors
setup and want to be able to have one editor per monitor per
workspace.
Basically, that snippet checks if a gvim server already exists
with the current workspace name. If yes, it opens the file(s) in
it, if not it run a new gvim server and opens the file there.
It works more or less fine, but it has one problem: it fails
badly when one needs to give args to the gvim call. Those args are
usually placed *before* filenames, so in my case it won't work. One
way to fix this would be to loop on all the args, check if the arg
is an existing file, in case add it to $files. If not, add it to
$args, then call gvim with the correct order. Works, except when
you want to edit a new file, where you're back to point one.
All in all, it'd work, but it's not really a nice way to do it,
imho. So I'm calling for help, in case anyone has an idea about
that. Basically, is there a way to say to gvim always open files
in a remote server, run it if it's not already running using the
config file and not an argument (so I don't mess with the command
line). I do need the servername to be desktop specific though, so
it's still a difficulty.
NOTE: I know that emacs has some kind of remote server
habilities too, but I'm not sure how it works and if it'd be
possible to do that in emacs, and I'm not really an emacs user and
don't really intend to switch.
If you have any idea, feel free to comment (by mail), I might do
a later post when I have an enhanced solution.
On a lark, I signed up for the pilot program of the Google Cr-48 about a week ago. To my surprise, I found the distinctive box on my doorstep a week later. After initially mistaking it for an overpacked, late-model OLPC XO-1 I would have to repair, I sort of did a double-take as I realized what I had received.
Using Chrome OS
Wow, they weren t kidding about the boot time. Chrome OS responds (to suspend / resume and boot / power-off) very quickly. Responsiveness elsewhere in the OS of course varies on system load and other factors. On the terms page, there is a system security setting which tells me I have a Trusted Platform Module, and that my TPM has a randomly generated password. The dialog could use some rewording; I m pretty familiar with the idea of a TPM, but I m still not sure what I m to do with that information.
Cloud print is really a problem for me, right now. I use school printers for the majority of my work, which I was previously able to use by adding them by IP address. Unless there s some magic I m missing here, I can t do that with Chrome OS, and such a feature will not be supported. (except by connectors on Windows and Mac computers)
General thoughts
I can t imagine using a system running Chrome OS as a primary computer. The biggest missing feature is PGP (or any sort of encryption) support for email. This is probably not terribly difficult to implement as an extension, but the idea of my cryptographic software being automatically updated is rather unsettling. I think I ll have to agree with Paul Buchheit that ChromeOS will have to merge with Android; there is a utility for local apps, even if they re becoming less and less critical.
the release team has started
to usertag [0] the remaining RC bugs yeah, another step towards the
release!

It's new year (for almost 18 hours here) and it's time to balance a bit what has happened in year 2010.
I'm not going to expose details from my personal life and anything related to work, so all what remains are open source projects where I am active.
For phpMyAdmin it was year of quite big changes, most of them beeing agreed on Fosdem 2010. We have migrated to git from svn, what was great step forward and I really like the change. It was also decided to use gettext (or rather php-gettext) for translations in upcoming release. I can see this move (together with online translation service) has definitely attracted more contributors (hey, but there are still many languages not translated, you're welcome!). Also we've participated in Google Summer of Code 2010, what lead to several big projects being merged into our code base (see my summary for more details). All in all, we're heading to 3.4 release in first months of 2011, which will be quite major step and hopefully heading in right direction.
In Gammu and Wammu, there were lot of code improvements, most of them probably going into Gammu SMS Daemon (the latest one being unified SQL backend removing lot of code duplication). Another major improvement is The Gammu Manual covering everything from Gammu command line, through SMSD up to python and C API. On the other side I've bought me a Symbian based phone, which does not work with Gammu and I use Series60-Remote for that, so my interest in Gammu has declined a bit.
Even though I've started adopting some packages in Debian, so it looked like I will end up with much more than last year, but at the end I've decided I'm too overloaded with some of them (and don't use them anymore), so I've given some for adoption and got rid of nanoblogger (and nanoblogger-extra) and looking for somebody to pick up gpointing-device-settings. Maybe all mpd related packages will follow soon, because I currently do not use mpd, so it limits quite a bit my ability to test them.
And of course: Happy New Year 2011!
Filed under: Debian Gammu Phpmyadmin English 0 comments Flattr this!
It would be really neat if there were some tool which recorded which dotfiles an application read, used, or created.
As an example emacs uses .emacs, but won't create it. However firefox will create and fill ~/.mozilla if it isn't present, and links will create ~/.links2.
What would we do with that data? I'm not sure off the top of my head, but I think it is interesting to collect regardless. Perhaps a simple tool such as apt-file to download the data and let you search:
who-creates ~/.covers who-creates ~/.diaObviously the simple use is to purge user-data when matching packages are removed - e.g. dpkg-posttrigger hook. But that's a potentially dangerous thing to do. Anyway I'm just pondering - I expect that over time applications will start switching to using "centralised" settings such as ~/.gconf2 etc. In the menatime I've started cleaning up ~/ on my own machines - things like ~/.spectemurc, ~/.grip, etc. ObQuote: What a long sword. I like that in a man - Blood of the Samurai (Don't be tempted; awful film.)
One week ago, I sent the updated announcement below to the r-sig-finance list; this was kindly blogged about by fellow committee member Josh and by our pal Dave @ REvo. By now. I also updated the R / Finance conference website. So to round things off, a quick post here is in order as well. It may even get a few of the esteemed reader to make a New Year's resolution about submitting a paper :) Dear R / Finance community, The preparations for R/Finance 2011 are progressing, and due to favourable responses from the different sponsors we contacted, we are now able to offer
Gib Bassett, Peter Carl, Dirk Eddelbuettel, Brian Peterson,
Dale Rosenthal, Jeffrey Ryan, Joshua Ulrich
The bug webinterface of the
Ultimate Debian Database
currently knows about the following release critical bugs:
| In Total: | 608 |
|---|---|
| Affecting Squeeze: | 115 |
| Squeeze only: | 37 |
| Remaining to be fixed in Squeeze: | 78 |
| Pending in Squeeze: | 3 |
|---|---|
| Patched in Squeeze: | 19 |
| Duplicates in Squeeze: | 12 |
| Can be fixed in a security Update: | 3 |
| Contrib or non-free in Squeeze: | 4 |
| Claimed in Squeeze: | 0 |
| Delayed in Squeeze: | 3 |
| Otherwise fixed in Squeeze: | 11 |
Squeezereleased. However, with the view of the Release Managers, 85 need to be dealt with for the release to happen. Please see
Interpreting the release critical bug statisticsfor an explanation of the different numbers.
Dear Lazyweb,
Today I bought me a Canon IXUS 130 and was quite disappointed to see that it couldn t properly connect to my Debian/Sid machine via USB. Apparenty the camera is not recognized as a USB Mass Storage Device but utilizes PTP. I upgraded to libgphoto2 (2.4.10.1-3) from experimental and added a proper udev rule with vendor- and product-id but it did not help. Is there anything more I can try?
Update: Accessing the camera actually works, even with ligbphoto2 (2.4.6) from unstable. I can access the camera with gphoto2 and download pictures (but not with KDE s filemanager). My problem was that I had rhythmbox running and the camera was automatically mounted by it as a media device. When KDE s filemanager or gphoto2 tried to access the camera I got an error like: ( Could not lock the device ): Camera is already in use., which is probably also a bug. Closing rhythmbox solved the issue and I was able to download images with gphoto2.
Next.