Fujitsu | Will apport's upgrade failure stuff also be disabled post release? | 00:26 |
---|---|---|
Fujitsu | Or just crashes? | 00:26 |
TheMuso_ | asac: According to that bug, it doesn't work for a user. | 00:29 |
crimsun | TheMuso_: just asked for follow-up, thanks | 00:36 |
crimsun | TheMuso_: more than likely, the stale gconf config is loading the detect module that attempts hw:0 after default is opened, and that will fail. | 00:41 |
crimsun | s/loading/loaded by/ | 00:41 |
TheMuso_ | Right. | 00:41 |
=== TheMuso_ is now known as TheMuso | ||
emgent | heya | 01:06 |
crimsun | TheMuso: it appears to be a race in the load order of suspend-on-idle and alsa-sink modules | 02:57 |
crimsun | s/sink/source/ | 02:57 |
TheMuso | Fun. | 02:58 |
Hobbsee | i'm really hating the fact that if i plug the power in when it gives me the warning about critical power, laptop will shut down if you dont' put the power in, that it just shuts down a few mins later anyway. | 03:29 |
Hobbsee | bah. that sentence failed the "making sense" idea. | 03:44 |
Hobbsee | i hate the fact that the power manager says "plug in now to avoid a shutdown", then shuts down in a few minutes anyway, even if you do plug in. | 03:45 |
=== Whoopie_ is now known as Whoopie | ||
Fujitsu | Hobbsee: Hm, doesn't do that for me. | 03:51 |
Fujitsu | And I often get that warning. | 03:52 |
Hobbsee | lucky | 03:52 |
=== nenolod is now known as happinessturtle | ||
Fujitsu | TheMuso: As a Canonical person, can you poke somebody to unbreak LP? | 04:29 |
TheMuso | Fujitsu: Whats up with it? | 04:30 |
* TheMuso is about to head out. | 04:30 | |
Hobbsee | TheMuso: it's broken. | 04:30 |
Fujitsu | It's hanging, returning OOPSes with the ID `None', and some of the appservers seem to just not be working. | 04:30 |
Hobbsee | Fujitsu: they'll be asleep, it's a weekend. | 04:30 |
Fujitsu | Exactly. | 04:30 |
Fujitsu | And my usual sysadmin-waking contact is also asleep. | 04:30 |
TheMuso | sorry guys, heading out with family and kinda gotta go now... | 04:31 |
Fujitsu | OK, see you. | 04:31 |
=== FliesLikeABrick_ is now known as FliesLikeABrick | ||
=== jamesh__ is now known as jamesh | ||
=== macd_ is now known as macd | ||
=== asac_ is now known as asac | ||
Hobbsee | oy! someone broke sudoku! | 08:26 |
Hobbsee | we can't release with that! | 08:26 |
Fujitsu | Hobbsee: WFM. What's borked about it? | 08:32 |
Hobbsee | Fujitsu: can't launch it | 08:32 |
Hobbsee | File "/var/lib/python-support/python2.5/gnome_sudoku/game_selector.py", line 151, in make_saved_game_model | 08:36 |
Hobbsee | sudoku.sudoku_grid_from_string(g['game'].split('\n')[1].replace(' ','')).grid, | 08:36 |
Hobbsee | File "/var/lib/python-support/python2.5/gnome_sudoku/sudoku.py", line 232, in sudoku_grid_from_string | 08:37 |
Hobbsee | assert(len(s)<=GROUP_SIZE**2) | 08:37 |
Hobbsee | AssertionError | 08:37 |
Fujitsu | Nice. | 08:42 |
Fujitsu | Remove the saved game? | 08:42 |
Hobbsee | Fujitsu: where is it? | 08:43 |
Hobbsee | works on a new profile. must be a config issue | 08:43 |
Hobbsee | i just can't find the saved game | 08:43 |
Hobbsee | ah ha. .sudoku | 08:44 |
Fujitsu | It'll be in ~/.gnome2/gnome-sudoku. | 08:44 |
Fujitsu | Or there, maybe. | 08:44 |
* Hobbsee didn't check for the obvious place | 08:44 | |
Hobbsee | yeah, that fixed it | 08:44 |
Fujitsu | Yeah, ~/.sudoku is right. | 08:44 |
Fujitsu | ~/.gnome2/gnome-sudoku is the generated ones. | 08:44 |
Fujitsu | I can't see how a game could have violated that assertion. | 08:45 |
Hobbsee | no idea.... | 08:49 |
Hobbsee | Fujitsu: i like the winning screen now. it reminds me of my myspace page. | 08:52 |
Fujitsu | Heheh. | 08:53 |
realist | Hobbsee: I'm not sure if that's a good thing? | 08:54 |
Hobbsee | realist: of course it is! | 08:55 |
Fujitsu | Oh yes. It's a very good thing indeed. | 08:55 |
Hobbsee | it was a *lovely* page. | 08:55 |
Fujitsu | I was disappointed to find it missing several months ago :( | 08:55 |
* Hobbsee shakes her fist at the evil myspace page for deleting it | 08:55 | |
Hobbsee | er, people | 08:55 |
Fujitsu | Aw... why did they delete it? | 08:55 |
Hobbsee | dunno | 08:55 |
realist | I've never seen one that doesn't look like a dog's breakfast | 08:55 |
Hobbsee | i'm assuming they did, as it's not there now | 08:55 |
Hobbsee | realist: oh, you never saw it? | 08:56 |
Fujitsu | It was a work of art. | 08:56 |
Hobbsee | Fujitsu: the comments were the best | 08:56 |
Fujitsu | I wonder if archive.org caught it. | 08:56 |
realist | Hobbsee: Nope, but it sounds like it was amazing. | 08:56 |
Fujitsu | Argh, no. | 08:56 |
Hobbsee | damn. | 08:56 |
Hobbsee | realist: similar to http://www.klickibunti.org/buntibunti.php | 08:57 |
Hobbsee | realist: with added bits about people cursing me for burning their eyes out. | 08:57 |
Fujitsu | Yeah. And the pony. | 08:57 |
Hobbsee | and "it bothers you less the longer you look at it. SERIOUSLY!" | 08:57 |
Hobbsee | yeah | 08:57 |
Hobbsee | forgot about the pony for a bit there | 08:58 |
Mithrandir | mm, ponies. | 08:58 |
Mithrandir | almost as good as brains. | 08:58 |
Hobbsee | Mithrandir! | 08:59 |
Fujitsu | Not even close. | 08:59 |
* Hobbsee hugs Mithrandir | 08:59 | |
Mithrandir | Hobbsee! | 08:59 |
Mithrandir | why do you run around with your at on? | 08:59 |
Fujitsu | Look, a Mithrandir! Haven't seen one of them around these parts in a while. | 08:59 |
Mithrandir | Fujitsu: I've been around | 08:59 |
Hobbsee | Mithrandir: it makes good armour. | 08:59 |
Mithrandir | new job and such takes most of my time, though. | 08:59 |
realist | I've never understood the pony references... | 09:00 |
* Hobbsee uses the @ as a shield against Mithrandir | 09:00 | |
* Fujitsu steals Hobbsee's donut. | 09:00 | |
* Hobbsee steals Fujitsu's computer, but happily lets Fujitsu have the donut. | 09:00 | |
realist | That doughnut looks more like a snail! | 09:00 |
Fujitsu | Damn. | 09:00 |
Fujitsu | realist: But it's no good stealing snails. | 09:00 |
Hobbsee | realist: http://i-want-a-pony.com/ | 09:00 |
* Mithrandir ruffles Hobbsee back | 09:01 | |
Fujitsu | You can never beat the April Fools Slashdot theme. | 09:01 |
Hobbsee | heya ogra | 09:01 |
Hobbsee | Fujitsu: now, if slashdot put in that background.... | 09:02 |
realist | Hobbsee: ahhh | 09:02 |
Fujitsu | I'm glad to see it's valid XHTML 1.1, too. | 09:02 |
Fujitsu | It just needs the scrolly rainbow background now. | 09:02 |
Hobbsee | indeed. | 09:03 |
* Hobbsee heads out for a while | 09:04 | |
Hobbsee | enjoy the rainbows. | 09:04 |
realist | I just discovered a new pet peeve today | 09:04 |
realist | Using proprietary software, you have more reliance on the vendor for support | 09:05 |
realist | Whereas, help for F/LOSS is a mere google search | 09:05 |
=== hunger_t is now known as hunger | ||
Hobbsee | realist: this was a surprise to you? | 11:30 |
Whoopie | mjg59: yes, there's a uevent BAY_EVENT=3, but the drives are "deleted" automatically, so that I don't know if a script has the time to unmount the drives successfully. | 11:31 |
laga | oh my god. mjg59. *cries* | 11:31 |
laga | mjg59: i stayed up until 2am to read your blog. you rock. | 11:31 |
realist | Hobbsee: it'd never occurred to me before today. | 11:31 |
Hobbsee | realist: ah. | 11:32 |
mdke | need a bit of help with sed. Is there a way to replace all instances of X in a file, but only where they appear in a line containing the string Y? | 11:33 |
Hobbsee | mdke: i'm sure there's a more elegant solution, but why not grep for Y, pipe the output thru the sed command, then save to a file? | 11:34 |
realist | mdke: use awk? | 11:34 |
laga | Hobbsee: because anything not Y will be missing? | 11:34 |
Hobbsee | laga: good point | 11:35 |
mdke | realist: I'm not familiar with awk, is it easy to learn? | 11:35 |
afflux | mdke: sed '/Y/s/X/Z/g' -- where Z is the "new" pattern | 11:37 |
afflux | err, new string that is | 11:37 |
mdke | afflux: ok, thanks - I'll try that. is it ok just to escape "/" in the pattern with a period or do I need something else? | 11:38 |
highvoltage | Hobbsee: hmm, the problem with your solution would be that you lose the lines that doesn't contain the string | 11:39 |
afflux | mdke: not sure, try it :P | 11:39 |
Hobbsee | highvoltage: yeah, you'd need a if else thing. | 11:39 |
afflux | mdke: ah, according to the manpage Y is a regex | 11:39 |
highvoltage | it works here | 11:41 |
highvoltage | replace foo with bar in every line that contains STRING: | 11:41 |
highvoltage | sed /STRING/s/foo/bar/g filename > newfile | 11:42 |
mdke | doesn't seem to work with backslashes in the foo and bar strings | 11:43 |
mdke | I tried to escape them with a period each time | 11:44 |
afflux | mdke: hm? Can we see the command? | 11:44 |
highvoltage | could you give an example? | 11:44 |
laga | escaping with a period with in a regex? | 11:44 |
laga | -with ;) | 11:44 |
mdke | the command I tried was sed '/Xinclude/s/./C.//./hu.//g' index-hu.xml > index-hu.xml | 11:44 |
mdke | string X being "/C/" and string Z being "/hu/" | 11:45 |
mdke | lemme try escaping with a \ | 11:45 |
* highvoltage was thinking the same thing | 11:45 | |
laga | no | 11:45 |
mdke | nope, that doesn't work either, results in an empty file | 11:46 |
laga | mdke: try using "," instead of / for the sed command. eg s,foo,bar, instead of s/foo/bar/ | 11:46 |
laga | or did you try to do that with the periods? | 11:46 |
mdke | laga: so I tried sed '/Xinclude,s,\/C\/,\/hu\/,g' index-hu.xml > index-hu.xml - that didn't work either | 11:47 |
afflux | mdke: the following should work: sed '/Xinclude/s/\/C\//\/hu\//' | 11:49 |
afflux | at least it works on a local test file I just made up | 11:50 |
=== hunger_t is now known as hunger | ||
mdke | afflux: it works except for the "> index-hu.xml" bit, that seems to cause an empty file | 11:51 |
laga | yeah | 11:51 |
Fujitsu | mdke: That's because the shell overwrites it first. | 11:51 |
laga | use sed -i index-hu.xml | 11:51 |
Fujitsu | Use -i on the sed, rather than shell piping. | 11:51 |
highvoltage | ok, you can put the /C/ part in brackets, that will make it find the string correctly | 11:51 |
realist | Much more elegant than my awk solution, at least | 11:52 |
mdke | Fujitsu: ah, I see - thanks everyone | 11:52 |
mdke | that works alright :) | 11:52 |
realist | cat file |awk '{match(Y) print gensub(X,Z) else print $0}' > outfile - or some such | 11:53 |
realist | if(match(Y,$0)!=0) rather | 11:54 |
realist | needs a semicolon too - absolutely not tested | 11:55 |
mdke | gah, there is one more thing | 11:55 |
mdke | if I need to use a "for y in x ; do" type script, and I need ${y} for one of the strings, how can I do that? It seems just to be putting ${y} in the file | 11:56 |
mdke | sed, I mean | 11:56 |
mdke | the command I tried was: | 11:57 |
mdke | for i in *.po ; do y=$(basename ${i} .po) ; echo ${y} ; sed -i '/XInclude/s/\/C\//\/${y}\//' ../../index-${y}.xml ; done | 11:57 |
mdke | but sed takes ${y} literally | 11:58 |
mdke | not sure if I'm explaining myself :) | 11:58 |
afflux | thats because of the ', try using " instead | 11:59 |
afflux | (IIRC) | 11:59 |
realist | ' would prevent shell expansion, yes | 11:59 |
realist | s/expansion/evaluation | 12:00 |
mdke | yay | 12:00 |
mdke | thanks afflux | 12:00 |
afflux | yw | 12:00 |
highvoltage | mdke: try using " instead of ' | 12:02 |
highvoltage | oh sorry, didn't see that being mentioned already. | 12:02 |
hermanr | http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=311188#272 <-- Is this worthy of discussion with the APT developers? | 14:49 |
ubotu | Debian bug 311188 in debian-edu-config "debian-edu-config: Messes "programmatically" with conffiles of other packages" [Important,Open] | 14:49 |
hermanr | My comment was a spin-off: Apt repository interoperability | 14:50 |
hermanr | I suggested extending APT with metadata for declaring compatiblity between repositories. | 14:51 |
james_w | we discussed either removing debian-edu, or ripping out all of the parts that do bad things like this on Ubuntu to protect users | 14:53 |
hermanr | That's the manual short term fix. I was concerned about the wear and tear on users, helpers and developers caused by the frequent bad surprises mixing of Apt repositories lead to. | 14:56 |
highvoltage | mdke: fwiw, sed '/include/s#/C/#/hu/#g' filename works for me | 14:56 |
hermanr | james_w: IMO, mixing of Apt sources should not be as dangerous as it is. It's powerful. Sometimes it's even necessary. | 14:58 |
hermanr | However, improving matters is not low hanging fruit. :-/ | 14:58 |
hermanr | james_w: Has Ubuntu included Debian-edu in their proposed sources? | 15:01 |
james_w | hermanr: yes, it's in universe | 15:02 |
hermanr | james_w: That's implicitly endorsing Debian-edu, for better and for worse. | 15:03 |
james_w | yes | 15:03 |
hermanr | And evidently, Debian-edu will not accept any responsibility for that. | 15:04 |
hermanr | james_w: Have you approached Debian-edu and asked them if they are willing to support cross-installations like that? | 15:04 |
hermanr | james_w: Or, vice versa, has Debian-edu approached you? | 15:05 |
* hermanr is only loosely involved in debian-edu now | 15:05 | |
james_w | not me personally, no. | 15:05 |
hermanr | s/you/y'all/ | 15:06 |
james_w | I'm not sure what would be required for cross installations. | 15:06 |
hermanr | I just resent situations where pointing fingers lead to people washing their hands. | 15:06 |
james_w | if you want to look at the viability of making debian-edu work on Ubuntu, that would be appreciated | 15:08 |
james_w | otherwise I think that just neutering the package so that user's can't harm their installations is the best approach. | 15:08 |
hermanr | I'm not into the tech side of it, so I'm afraid not. :-( | 15:08 |
james_w | I have a suspicion that most people are just interested in the meta-packages, rather than the configuration stuff. | 15:08 |
hermanr | mhm | 15:09 |
hermanr | So there should be a derivative that isn't "real" Debian-edu, just a dry run with all the packages? | 15:09 |
hermanr | Alas, it won't work for a full Debian-edu setup. And that has to be made clear! | 15:10 |
jdong | anyone know the timeline for vmware server in Hardy partner? | 15:12 |
hermanr | Adaptive configuration that will never mess things up, irrespective of the environment, is hard! That's why custom distros is such a common workaround. | 15:12 |
hermanr | james_w: Yes, I think you need to neuter the Debian-edu packages before adding them to Universe. They make assumptions based on stock Debian. Ubuntu isn't stock Debian, so the assumptions fail. | 15:16 |
james_w | yup | 15:18 |
soc | did someone get pulseaudio working on 8.04? | 15:33 |
soc | is there maybe a bugreport already? | 15:33 |
=== afflux_ is now known as afflux | ||
emgent | heya people | 16:10 |
crimsun | soc: do you have a specific issue? If so, please inform in #ubuntu+1. | 16:13 |
soc | ok | 16:16 |
Darklock | is tkamppeter ever around? | 16:24 |
johanbr | Darklock: SeenServ- I last saw tkamppeter (n=till@p54BEEFAC.dip.t-dialin.net) 1d 13h 11m 59s ago | 16:26 |
Darklock | d'oh | 16:27 |
mjg59 | Whoopie: On a Thinkpad? There should be a separate event when you flick the eject lever, which doesn't cause the deletion | 16:36 |
mjg59 | Though on most devices, all we get is the eject | 16:36 |
laga | slangasek: can you merge r1300 from http://bazaar.launchpad.net/~mythbuntu/debian-cd/mythbuntu-debiancd ? | 17:23 |
Whoopie | mjg59: there isn't with my thinkpad R52. | 18:11 |
mjg59 | Whoopie: Did you get one with the bay driver? | 18:12 |
mjg59 | Whoopie: Ok. event=2 shouldn't destroy the device. | 18:13 |
mjg59 | Whoopie: The hotplug code is only called if event is 0 or 1 | 18:13 |
Whoopie | mjg59: with the bay driver, I got a BAY_EVENT=3 on eject and 1 on insert | 18:14 |
Whoopie | mjg59: and now, I only get 3 | 18:16 |
mjg59 | Whoopie: Ok, 3 certainly shouldn't be causing the device deletion | 18:18 |
mjg59 | Take a look at line 128 of drivers/ata/libata-acpi.c | 18:18 |
Whoopie | mjg59: and now? ;) | 18:23 |
mjg59 | Whoopie: The hotplug call is only made if the event is 0 or 1 - the 3 should just go to userspace, and the device only be destroyed when you actually pull it out | 18:24 |
Whoopie | mjg59: what i see in drivers/ata/libata-acpi.c in 2.6.25 is different from this: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=237d8440cb2b104a3b97fc971a9bce67960bb616 | 18:27 |
mjg59 | Whoopie: Are you using 2.6.25 or 2.6.24? | 18:30 |
Whoopie | mjg59: 2.6.25 | 18:30 |
mjg59 | Someone's broken it | 18:30 |
=== doko_ is now known as doko | ||
crimsun | TheMuso_: / asac: ok, I think I have a middle-of-the-road solution that addresses all the regressions from previous Ubuntu releases and allows hal-aware hot(un)plug. I've been testing it for the past hour, and it seems reasonable. I've added comments on the bug. | 19:26 |
asac | crimsun: interesting | 19:31 |
asac | crimsun: any idea why my pulseaudio might not start with device hw:0 being busy? | 19:36 |
crimsun | asac: which pulseaudio config are you using, the default one in the current pulseaudio package or one patched? | 19:38 |
asac | crimsun: i think it should now match the one from your patch | 19:38 |
asac | i manually changed it that way | 19:38 |
asac | oh wait | 19:38 |
asac | crimsun: thumbs up from me :) | 19:47 |
asac | rock | 19:47 |
asac | ogra: ^^ | 19:47 |
asac | can you test that as well? | 19:47 |
asac | ogra: its bug 192888 | 19:51 |
ubotu | Launchpad bug 192888 in libflashsupport "firefox crashes on flash contents" [High,Confirmed] https://launchpad.net/bugs/192888 | 19:52 |
asac | \sh: ^^ | 19:52 |
slangasek | laga: done | 19:52 |
laga | slangasek: yay. | 19:55 |
superm1 | slangasek, did you talk to tjaalton already about fglrx 8.04? | 19:56 |
slangasek | superm1: I think so, I think I declined it for final | 20:01 |
slangasek | and recommended making it an SRU for 8.04.1 | 20:01 |
superm1 | ah | 20:01 |
superm1 | even though it fixed a few of the pending issue w/ regard to the proprietary aticonfig tool? | 20:01 |
slangasek | yes; there are always pending issues to be fixed, but I don't want to be accepting black-box upgrades between RC and final | 20:07 |
slangasek | it should go through the SRU process at this point so we can take our time with it and make sure it's done right | 20:07 |
superm1 | alright :) | 20:07 |
=== emu_ is now known as emu | ||
Adri2000 | slangasek: the debdiff for the tasks upload sitting in the queue is http://adrishost.net/~adri2000/ubuntu/toupload/tasks_0.13-1ubuntu1.debdiff, it will allow the package to be translatable in rosetta and its translations to be available in the langpacks | 20:45 |
=== johanbr_ is now known as johanbr | ||
Whoopie | mjg59: I can't find the commit where they changed your patch. | 21:25 |
popey | is it possible to specify the video driver for x to use when the live cd boots? to force (for example) to use intel over i810? | 21:32 |
popey | (specifically for hardy) | 21:33 |
jojo4u | hi! upgrade xubuntu 7.10 to 8.10 using update-manager -d fails on my sources.list. default sources.list works fine. should I file a bug? | 21:33 |
=== Syntux_ is now known as Syntux | ||
fta | crimsun, i've tested your pulseaudio patch, looks fine for everything except wine. I used to run an app with padsp wine foo.exe, now it freeze during startup. and wine foo.exe has no sound at all. | 22:17 |
crimsun | fta: you shouldn't be using padsp to wrap wine, since pulseaudio no longer grabs hw:0 but plug:d{mix,snoop} | 22:18 |
fta | crimsun, so, what should I use instead ? | 22:19 |
crimsun | fta: what results do you get with aoss -- wine foo.exe ? | 22:19 |
fta | crimsun, no sound | 22:19 |
fta | hm, wait | 22:20 |
fta | "--" :) | 22:20 |
fta | crimsun, ok, thanks | 22:20 |
superm1 | crimsun, having pulseaudio grab dmix : doesn't that unintended latency? | 22:35 |
superm1 | *introduce unintended latency | 22:37 |
TheMuso_ | crimsun: Thanks will likely see it in my bug mail this morning. | 22:43 |
asac | TheMuso_: bug 192888 ... good feedback so far | 22:55 |
ubotu | Launchpad bug 192888 in libflashsupport "firefox crashes on flash contents" [High,Confirmed] https://launchpad.net/bugs/192888 | 22:55 |
beasty_ | morning | 22:56 |
beasty_ | anyone here in .deb building | 22:56 |
TheMuso_ | asac: Ok will take a closer look when I get to it in my morning email run. | 23:00 |
ScottK | beasty_: #ubuntu-motu is a better channel for basic packaging questions. | 23:02 |
beasty_ | ok thanks | 23:03 |
TheMuso_ | ...and not so good feedback also. | 23:23 |
calc | can someone who has access to look at this bug #218793 tell me if it is marked for OOo? | 23:27 |
ubotu | Bug 218793 on http://launchpad.net/bugs/218793 is private | 23:27 |
calc | someone claimed this bug was related to OOo but i can't see it | 23:27 |
Fujitsu | calc: That's nice and private. Maybe poke a security person. | 23:29 |
calc | kees: ping | 23:29 |
calc | jdstrand: ping | 23:30 |
julie | hi | 23:30 |
calc | i normally have access to security marked bugs if they are for OOo | 23:31 |
calc | so that bug must be mismarked somehow | 23:31 |
calc | or the user typoed | 23:31 |
Fujitsu | calc: By default only the reporter and ubuntu-security have access to security bugs... | 23:32 |
Fujitsu | Unless you're talking about the OOo project, in which case that might be true. | 23:32 |
calc | Fujitsu: hmm maybe i am specifically added on OOo bugs then | 23:32 |
calc | Fujitsu: because i can see bugs marked as security in lp for OOo usually | 23:32 |
Fujitsu | Right, you are explicitly added by a member of the security team. | 23:33 |
calc | Fujitsu: ah ok | 23:34 |
calc | i don't have any marked that way currently to check on, i can see private bugs but that is different | 23:37 |
julie | the problem is I changed my system lang to persian then tried to change it back to english but now its stuck on persian, kde menu is stuck on persian | 23:48 |
kees | calc: that bug isn't security -- I don't have access. | 23:49 |
calc | kees: ok | 23:49 |
Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!