=== broder_ is now known as broder | ||
=== _salem is now known as salem_ | ||
=== josharenson is now known as josharenson_eod | ||
=== salem_ is now known as _salem | ||
=== Wig is now known as Wug | ||
tsdgeos | Saviq: ping | 08:22 |
---|---|---|
Saviq | tsdgeos, here | 08:22 |
tsdgeos | Saviq: so swipe down for closing | 08:22 |
tsdgeos | on tablet there's no spread | 08:23 |
tsdgeos | so we can't close anymore :D | 08:23 |
tsdgeos | doesn't look like an acceptable regression, no? | 08:24 |
Saviq | tsdgeos, yeah, we'll need to land mzanetti's right edge on tablet first | 08:24 |
tsdgeos | ok | 08:25 |
mzanetti | tsdgeos: Saviq: right... that'll happen with QtCompositor | 08:25 |
tsdgeos | bitrot here you come! | 08:25 |
tsdgeos | :D | 08:25 |
Saviq | ;) | 08:25 |
tsdgeos | Saviq: meanwhile can you have a look at swipe down for phones and see how you like it? | 08:25 |
Saviq | tsdgeos, will do | 08:25 |
* mzanetti will check it out too... tsdgeos, actually I think now that you solved the problem, I can probably just take it into the tablet right edge myself while working on it anyways | 08:26 | |
tsdgeos | mzanetti: that'd be nice :) | 08:27 |
mzanetti | tsdgeos: what we could do, is to land the swipe to close in trunk already now, but not yet drop the stuff from the dash | 08:27 |
tsdgeos | that too | 08:27 |
tsdgeos | Saviq: ? | 08:27 |
Saviq | tsdgeos, that was the whole purpose wasn't it? ;D | 08:28 |
Saviq | tsdgeos, but yeah, probably the best way forwards | 08:28 |
Saviq | -s | 08:28 |
tsdgeos | Saviq: i know, but allows for stuff to land, people can test it more widely, etc | 08:29 |
Saviq | tsdgeos, indeed | 08:29 |
tsdgeos | Saviq: i don't really mind to have it lying around, i'll do whatever you prefer, leave it for now until we can land it as of now or readd the closing on dash so we can land it | 08:30 |
Saviq | tsdgeos, as said, let's enable both | 08:30 |
tsdgeos | okidoki | 08:30 |
tsdgeos | garg bzr didn't like my revert | 08:49 |
tsdgeos | === added directory 'qml/Dash/Apps' | 08:50 |
tsdgeos | === removed directory 'qml/Dash/Apps' | 08:50 |
tsdgeos | :/ | 08:50 |
* tsdgeos does a clean branch | 08:50 | |
Saviq | jeez I'm losing indicators by the mile... | 09:02 |
Saviq | tsdgeos, no test? ;( | 09:14 |
tsdgeos | Saviq: not yet | 09:14 |
tsdgeos | i'll add one | 09:14 |
Saviq | kthx | 09:14 |
tsdgeos | not sure how easy is going to be finding the place to swipe down up | 09:14 |
tsdgeos | and etc | 09:14 |
tsdgeos | but i was planning to work on it once i sort the branches mess | 09:15 |
Saviq | tsdgeos, ok | 09:15 |
tsdgeos | and i just finished re-doing the patch for the displayMargin in qt upstream again | 09:15 |
tsdgeos | since their CI is also pickier like ours | 09:15 |
Saviq | tsdgeos, btw, were you thinking about a "can't touch this" mode for the dash while implementing it? how easy will it be to add some kind of resistance? | 09:15 |
tsdgeos | Saviq: not sure i follow | 09:16 |
tsdgeos | Saviq: what do you mean by "can't touch this"? | 09:16 |
Saviq | tsdgeos, that you won't be able to close the dash (once it ends up in the spread) ;) | 09:16 |
tsdgeos | Saviq: ah | 09:17 |
tsdgeos | well we need a way to know the dash is the dash | 09:17 |
tsdgeos | besides that making it un-closeable should not be that hard | 09:17 |
Saviq | tsdgeos, kk | 09:18 |
Saviq | tsdgeos, yeah, I was just about the latter | 09:18 |
tsdgeos | now, any idea how we know the dash is the dash? | 09:18 |
tsdgeos | :D | 09:18 |
Saviq | tsdgeos, it will be marked somehow in the app model | 09:19 |
Saviq | tsdgeos, since it won't be started by UAL and such, we need to inject it there | 09:19 |
tsdgeos | okidoki | 09:19 |
Saviq | wonder if we should have a generic way to have such non-closeable jobs | 09:20 |
Saviq | in case OEMs want to add their own or something... | 09:20 |
Saviq | LATER | 09:20 |
tsdgeos | +1 | 09:21 |
greyback | dummm dum dum dum dum dum dum dum break it down! | 09:37 |
Saviq | greyback, you're watching LOTR or something? | 09:38 |
greyback | Saviq: am disappointed, you not getting an MC Hammer reference | 09:39 |
Saviq | can't touch this! | 09:39 |
Saviq | greyback, you're rhythm was off-beat is all | 09:39 |
lifted | Hi! I wonder if it's possible to write Unity7 scopes using this manual http://developer.ubuntu.com/api/scopes/sdk-14.04/index/ | 09:43 |
lifted | As I can see, non of Unity7 scopes/lenses use it in Ubuntu 14.04 | 09:43 |
Saviq | lifted, no, that's the new scopes infrastructure for unity8 only | 09:46 |
lifted | Saviq: Thank you very much for your reply. Then I really miss a sample in C https://code.launchpad.net/unity-lens-sample | 09:49 |
mterry | Saviq, heyo, so I saw you approved those two branches, awesome! :) Now we're waiting for ubuntu-touch-session to land in distro so we can build again it looks like? | 10:19 |
Saviq | mterry, indeed | 10:19 |
Saviq | mterry, there's a half-assed landing of UAL rename that's in between distro and proposed | 10:20 |
Saviq | mterry, and you should not be online at 6am :P | 10:20 |
mterry | Saviq, eh, jetlag | 10:20 |
Saviq | right | 10:20 |
* mterry takes a shower | 10:20 | |
mterry | Saviq, also, you don't have much credibility when saying who should be online at what hour :) | 10:21 |
Saviq | mterry, pfft! | 10:21 |
=== alan_g is now known as alan_g|afk | ||
Saviq | has anyone else lost their sound indicator btw? | 10:49 |
larsu | no. Do you have a crash report? | 10:50 |
=== alan_g|afk is now known as alan_g | ||
Saviq | larsu, let me see | 11:05 |
Saviq | larsu, no, it seems to run (doesn't crash) | 11:06 |
Saviq | larsu, and the log: http://pastebin.ubuntu.com/7586764/ | 11:06 |
=== _salem is now known as salem_ | ||
xnox | tedg: upstart & cgroups -> i'm testing it and it works fairly well. A quick question though, did you plan to use it for system jobs, session jobs, or both? | 11:10 |
=== gatox is now known as gatox_at_dr | ||
=== MacSlow is now known as MacSlow|lunch | ||
=== salem_ is now known as _salem | ||
larsu | Saviq: hm, the connection to pulse seems fucked. Does it work if you restart pulse? | 11:27 |
Saviq | larsu, no | 11:27 |
Saviq | larsu, and it's like that across reboots | 11:27 |
seb128 | does it work with another user? | 11:28 |
seb128 | or in a guest session | 11:28 |
* Saviq checks | 11:28 | |
larsu | Saviq: interesting. Can you paste the pulse log as well please? | 11:28 |
Saviq | larsu, seb128, works as guest | 11:29 |
seb128 | seems like your user pulse is upset for some reason | 11:30 |
larsu | ya | 11:30 |
Saviq | seb128, I removed ~/.config/pulse recently... not sure what else | 11:30 |
larsu | there's ~/.pulse as well | 11:30 |
Saviq | hmm | 11:30 |
Saviq | larsu, no there isn't | 11:30 |
Saviq | and well, sound works fine | 11:31 |
Saviq | pavucontrol works fine | 11:31 |
Saviq | just the indicator barfs | 11:31 |
larsu | there is for me... | 11:31 |
seb128 | larsu, leftover from a time before things moved to .config maybe? | 11:31 |
larsu | seb128: could be - pulse is still writing into there though | 11:33 |
larsu | but maybe it is because it detects that | 11:34 |
seb128 | larsu, some codebase do "use the compat dir if available, otherwise use the new one" | 11:34 |
seb128 | not sure if that's the case of pulse | 11:34 |
larsu | woah, that code has changed a lot since I last looked at it... | 11:35 |
seb128 | the pulse one? | 11:35 |
larsu | Saviq: that critical might happen in normal use as well (in fact, I have it and my indicator works fine) | 11:36 |
seb128 | Saviq, can you maybe get a bt of the service? | 11:36 |
seb128 | it would show us if the code is blocked somewhere | 11:36 |
Saviq | seb128, sure, one sec | 11:36 |
larsu | Saviq: can you paste the output of `gdbus call --session --dest com.canonical.indicator.sound --object-path /com/canonical/indicator/sound/desktop --method org.gtk.Menus.Start [0]` | 11:36 |
larsu | seb128: no, indicator-sound | 11:36 |
Saviq | larsu, http://paste.ubuntu.com/7586917/ | 11:37 |
larsu | hm, indicator seems to run fine | 11:38 |
Saviq | seb128, http://paste.ubuntu.com/7586933/ | 11:40 |
Saviq | I wonder | 11:40 |
seb128 | Saviq, is your panel service updating? | 11:42 |
seb128 | or running correctly | 11:42 |
seb128 | what if you try to load it in indicator-loader? | 11:43 |
Saviq | seb128, yeah, everything seems to be fine in indicator land | 11:43 |
Saviq | seb128, but sound just comes up empty | 11:43 |
seb128 | icon issue? | 11:43 |
seb128 | is it there? | 11:43 |
seb128 | like can you keynav to it with left/right? | 11:43 |
Saviq | seb128, I just opened the indicator in indicators-client -profile desktop | 11:44 |
Saviq | seb128, the profile's just empty | 11:44 |
Saviq | seb128, nope, nothing there | 11:45 |
seb128 | that's puzzling | 11:46 |
* seb128 is out of ideas and let it to larsu | 11:46 | |
* larsu is out of ideas as well | 11:46 | |
larsu | Saviq: same for `/usr/lib/x86_64-linux-gnu/indicator-loader3 /usr/share/unity/indicators/com.canonical.indicator.sound` ? | 11:46 |
larsu | (you need libindicator-tools installed) | 11:47 |
seb128 | Saviq, can you "stop unity-panel-service" and run it under strace and grep for sound? | 11:47 |
larsu | sorry, libindicator3-tools | 11:47 |
Saviq | larsu, http://people.canonical.com/~msawicz/Zrzut%20ekranu%20z%202014-06-04%2013:48:56.png | 11:49 |
Saviq | seb128, http://paste.ubuntu.com/7586984/ | 11:51 |
seb128 | Saviq, is the unity-control-center sound panel having the "show indicator" box checked? | 11:51 |
larsu | this is weird. The dbus call I made you do earlier reports an indicator | 11:52 |
seb128 | larsu, gsettings to hide the indicator? :p | 11:52 |
* seb128 bets on it | 11:52 | |
seb128 | waiting for Saviq to reply | 11:53 |
larsu | seb128: interesting idea, but then the service wouldn't report the root menu item | 11:53 |
seb128 | (D'OH, not sure the first time I debug issues to see the key set) | 11:53 |
Saviq | seb128, fixed it! | 11:53 |
seb128 | \o/ | 11:53 |
Saviq | wonder how that got unchecked ;D | 11:54 |
seb128 | I really need to remember asking that as first question next time somebody has a missing indicator | 11:54 |
seb128 | larsu, somewhat it seems it does then? | 11:55 |
larsu | Saviq: cool :) | 11:55 |
larsu | seb128: apparently... let me check | 11:55 |
Saviq | seb128, yeah ;) | 11:56 |
larsu | seb128: ah right, the action has a 'visible' property. I wonder why I would do such a thing... | 11:56 |
larsu | there was probably a good reason | 11:56 |
larsu | maybe so that we don't copy the menu over the bus every time indicators get turned off/on | 11:57 |
=== gatox_at_dr is now known as gatox | ||
=== _salem is now known as salem_ | ||
=== alan_g is now known as alan_g|lunch | ||
=== MacSlow|lunch is now known as MacSlow | ||
Saviq | /food! | 12:36 |
=== alan_g|lunch is now known as alan_g | ||
tsdgeos | mzanetti: ping | 13:17 |
mzanetti | tsdgeos: pong | 13:17 |
tsdgeos | mzanetti: so you want me to remove the spreadShown and use locked? | 13:17 |
mzanetti | tsdgeos: I'd prefer so, yes. | 13:17 |
tsdgeos | but then i have to add locked to more places where previously hide() was called without checking for locked | 13:17 |
tsdgeos | makes your comment about "locked means if can be hiden" a bit weird | 13:18 |
mzanetti | tsdgeos: for instance the Home button in the launcher should always be able to hide it, even if in spread | 13:18 |
mzanetti | tsdgeos: for the rest I think the locked should do what I said | 13:18 |
tsdgeos | well it doesn't :D | 13:19 |
mzanetti | me | 13:19 |
tsdgeos | that's why i needed the spreadshown | 13:19 |
tsdgeos | see the other places where is used | 13:19 |
mzanetti | lemme check | 13:19 |
tsdgeos | how it calls hide unconditionally | 13:19 |
=== tedg is now known as ted | ||
=== ted is now known as tedg | ||
tsdgeos | Saviq: ok, test is there | 13:29 |
Saviq | tsdgeos, kthx, won't be able to look at it until after our hangout for sure | 13:29 |
=== vrruiz_ is now known as rvr | ||
om26er | how do I start an app from terminal to mimick the way unity8 starts it ? | 13:37 |
greyback | om26er: upstart-app-launch <appId> | 13:42 |
om26er | greyback, says: ** (process:28769): WARNING **: Unable to find keyfile for application 'system-settings' | 13:42 |
greyback | om26er: that's not a correct appId, try ubuntu-system-settings | 13:43 |
om26er | greyback, that worked, thx | 13:44 |
greyback | np | 13:44 |
=== dandrader is now known as dandrader|afk | ||
paulliu | tsdgeos: hi. I changed the CardCreator.js for attributes. Do you know what is the best way to test it manually? make testCard? | 14:15 |
tsdgeos | paulliu: make tryCard yes | 14:15 |
paulliu | tsdgeos: Currently no scope provides attributes data. I'd like to add some fake | 14:15 |
paulliu | tsdgeos: ok. | 14:15 |
tsdgeos | paulliu: have you based your work on Cimi's emblem branch? | 14:16 |
tsdgeos | hope you guys don't conflict much :/ | 14:16 |
tsdgeos | conflicting in CardCreator must be awful | 14:16 |
paulliu | tsdgeos: let me check. Should be ok. | 14:17 |
om26er | greyback, re: upstart-app-launch how do i launch an app with a environment var ? | 14:19 |
=== dandrader_ is now known as dandrader | ||
greyback | om26er: I don't think UAL supports that directly. You'd need to either set an upstart variable globally (initctl set-env --global QT_LOAD_TESTABILITY=1) or use upstart directly with something like "start application APP_ID=<appId> VAR=value" | 14:22 |
greyback | om26er: tedg would be able to help you more | 14:23 |
=== alan_g is now known as alan_g|tea | ||
om26er | greyback, thanks, I'll try those first | 14:25 |
MacSlow | Saviq, kgunn, mzanetti: hangout just doesn't load for me atm... getting error 502 all the time | 14:30 |
mzanetti | MacSlow: works for me | 14:30 |
mzanetti | MacSlow: are you logged into google with your canonical account? | 14:30 |
MacSlow | mzanetti, sure... I'll reset my IP-connection | 14:31 |
=== alan_g|tea is now known as alan_g | ||
paulliu | hangout doesn't work for me now. | 14:33 |
paulliu | It asks for plugin but I HAVE installed it. | 14:33 |
MacSlow_ | still the same :/ | 14:36 |
paulliu | There must be something weird happened on chromium browser. | 14:36 |
paulliu | MacSlow_: is your flash work? | 14:36 |
MacSlow_ | paulliu, neither firefox nor chromium do work for me atm | 14:36 |
paulliu | MacSlow_: I'll try firefox then.. | 14:37 |
=== MacSlow_ is now known as MacSlow | ||
paulliu | MacSlow: firefox works for me. | 14:39 |
mterry | Cimi, for the wizard branch, I think we could land it but we probably need the wifi issue we saw in Malta looked at and tests added | 14:42 |
mterry | Saviq, oh! ubuntu-touch-session just migrated, so silo 020 can build again I'm guessing | 14:49 |
Saviq | mterry, kick it! | 14:50 |
mterry | oh... trunk isn't updated still. wonder if that will be a problem | 14:51 |
mterry | yup | 14:51 |
tsdgeos | Saviq: mterry: what's missing for https://code.launchpad.net/~unity-team/unity8/resync-distro-split/+merge/221845 to be top approved? | 14:53 |
mterry | I think that did land... | 14:53 |
mterry | tsdgeos, The current focus is silo 20, which has https://code.launchpad.net/~mterry/unity8/dbus-x11/+merge/221894 and https://code.launchpad.net/~mterry/ubuntu-touch-session/no-lightdm-session/+merge/221891 | 14:54 |
Saviq | tsdgeos, mterry that branch is dead | 14:56 |
tsdgeos | Saviq: will you kill/reject it? | 14:56 |
Saviq | tsdgeos, already did | 14:56 |
tsdgeos | :) | 14:56 |
tedg | om26er, You'll need to put them into the global environment variables. | 14:57 |
tedg | om26er, For testability env vars we provide a function to do that explicitly. | 14:57 |
tedg | paulliu, Have you had a chance to look at silo 13? | 14:57 |
om26er | tedg, whats the name ? | 14:58 |
tedg | om26er, ubuntu_app_launch_start_application_test() | 14:58 |
paulliu | tsdgeos: can you try silo 13? | 15:00 |
tsdgeos | paulliu: what's in there? | 15:01 |
paulliu | tedg: tsdgeos, I believe it is the latest indicator-session branch which fixes the DBUS calling on logout. | 15:02 |
om26er | tedg, i would assume that's C api ? | 15:02 |
paulliu | tsdgeos: I've tried it yesterday by dbus-monitor. Calls right. | 15:02 |
tedg | om26er, Correct, the Python function name is probably UbuntuAppLaunch.start_application_test :-) | 15:02 |
tsdgeos | Saviq: paulliu: i lost track of where silos put stuff, can i have the url of the ppa or something? | 15:03 |
paulliu | tsdgeos: wait | 15:05 |
Saviq | tsdgeos, https://launchpad.net/~ci-train-ppa-service/+archive/landing-013 | 15:06 |
Saviq | tsdgeos, btw, this one would be high prio, MAE-style https://bugs.launchpad.net/unity8/+bug/1326397 | 15:06 |
ubot5 | Ubuntu bug 1326397 in Unity 8 "In horizontal card layout, margin between art and text is too small" [High,Triaged] | 15:06 |
tsdgeos | Saviq: "i can't reproduce" | 15:07 |
Saviq | tsdgeos, oh hum | 15:07 |
tsdgeos | Saviq: and what's the page that lists what's in the silo? | 15:07 |
tsdgeos | Saviq: i mean i don't know how to get what he has in screen | 15:07 |
tsdgeos | ah he wrote it | 15:07 |
* tsdgeos didn't get that answer back for some reason | 15:08 | |
tsdgeos | i will check | 15:08 |
paulliu | tsdgeos: thanks. | 15:08 |
Saviq | tsdgeos, yeah, I tried in tryCard now and didn't get it... | 15:09 |
tsdgeos | Saviq: i don't know how to get an art as big as they have | 15:10 |
tsdgeos | since the code kind of doesn't allow you to get that afair | 15:10 |
tsdgeos | ahhh | 15:10 |
tsdgeos | the title has two lines | 15:10 |
* tsdgeos checks | 15:10 | |
tsdgeos | and now i need to change the AR | 15:11 |
tsdgeos | not sure if i know how to do that from tryCard :D | 15:11 |
tsdgeos | or i can just try to use/compile victors scope | 15:12 |
* tsdgeos tries | 15:12 | |
tsdgeos | doesn't compile ^_^ | 15:12 |
Saviq | tsdgeos, it's art, not mascot, so sure it does allow | 15:12 |
tsdgeos | there's code | 15:13 |
tsdgeos | for it | 15:13 |
tsdgeos | not very excercised | 15:13 |
tsdgeos | but there is code | 15:13 |
* tsdgeos adds add_definitions(-DQT_NO_KEYWORDS) to get victor code to compile | 15:14 | |
Saviq | tsdgeos, more tryCard-friendly | 15:14 |
Saviq | http://pastebin.ubuntu.com/7588122/ | 15:14 |
Saviq | tsdgeos, but still can't see the issue - I expect the image size to have an impact | 15:15 |
tsdgeos | hmmm | 15:15 |
tsdgeos | what version are they using? | 15:15 |
tsdgeos | it looks really bad here | 15:15 |
tsdgeos | but not with that problem | 15:15 |
tsdgeos | this is what i get with Victor code | 15:16 |
tsdgeos | http://i.imgur.com/n1A0QBi.png | 15:16 |
tsdgeos | and in tryCard also looks different :S | 15:18 |
* tsdgeos confused | 15:18 | |
tsdgeos | displayMargin merged upstream \o/ | 15:19 |
tsdgeos | cwayne: ↑↑↑↑ | 15:20 |
cwayne | tsdgeos: hm? how do we use that? | 15:22 |
tsdgeos | cwayne: no displayMargin sorry | 15:22 |
tsdgeos | cwayne: a bit ↑↑↑↑ to the imgur link | 15:22 |
cwayne | hm, that looks worse than victor's | 15:23 |
tsdgeos | i know, i'm not saying it looks right | 15:24 |
tsdgeos | i'm saying it looks different | 15:24 |
tsdgeos | so i want to know what unity8 version you guys are using | 15:24 |
tsdgeos | pstolowski: some code i can use to get the https://bugs.launchpad.net/unity8/+bug/1326415 problem? | 15:25 |
ubot5 | Ubuntu bug 1326415 in Unity 8 "No margin with headerless category" [High,Triaged] | 15:25 |
pstolowski | tsdgeos, yes. https://code.launchpad.net/~stolowski/unity-scope-click/two-scopes/+merge/221921 | 15:25 |
pstolowski | tsdgeos, the best way is to build a deb and install on the phone | 15:26 |
tsdgeos | pstolowski: can't unity-scope-tool it? | 15:26 |
cwayne | tsdgeos: i'd imagine whatever is the latest in trusty | 15:26 |
tsdgeos | cwayne: we don't support trusty anymore | 15:26 |
pstolowski | tsdgeos, yeah, it should do | 15:26 |
tsdgeos | i don't see why people is using it :D | 15:26 |
cwayne | lolwut | 15:27 |
tsdgeos | cwayne: that's the memo i got, just carry on working on utopic | 15:27 |
cwayne | tsdgeos: so we want devs to use an unstable version instead of an lts? | 15:27 |
cwayne | that sounds very wrong | 15:27 |
tsdgeos | cwayne: it's what i was told, i'm not arguing if it's right or not | 15:28 |
tsdgeos | s/i was told/i understood | 15:28 |
cwayne | is there not even a ppa for unity8 on trusty then? | 15:30 |
Saviq | cwayne, no, we just don't have the time to backport | 15:30 |
Saviq | cwayne, plan is to provide a utopic version in LXC for people to use the preview session, that could be used for everything else, too | 15:30 |
tsdgeos | hmmm | 15:48 |
tsdgeos | Saviq: we don't seem to support headerless categories actually | 15:48 |
tsdgeos | the second one is just headerless because it has the same category name than the previous (i.e. empty) | 15:49 |
tsdgeos | should we use no header category when category title == ""? | 15:49 |
tsdgeos | Saviq: i guess yes | 16:02 |
tsdgeos | Saviq: next question, there is a case in LVPWH which the second category doesn't have header because it's name is the same as the previous one, do we care about that at the GenericScopeView.qml level? Or shall i just care for categoryName=="" for now? | 16:03 |
=== gatox is now known as gatox_lunch | ||
=== dandrader is now known as dandrader|lunch | ||
=== gatox_lunch is now known as gatox | ||
=== seb128_ is now known as seb128 | ||
=== alan_g is now known as alan_g|EOD | ||
mterry | A memory leak eh? /me worries it's in unity8, and the split greeter is exacerbating the issue | 17:36 |
=== dandrader|lunch is now known as dandrader | ||
=== dandrader is now known as dandrader|afk | ||
=== dandrader|afk is now known as dandrader | ||
=== salem_ is now known as _salem | ||
=== _salem is now known as salem_ | ||
=== salem_ is now known as _salem | ||
=== jhodapp is now known as jhodapp|afk |
Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!