/srv/irclogs.ubuntu.com/2015/12/15/#ubuntu-google.txt

fazerballoons, are you still here?00:11
fazerDoes anyone know how to fix this error: sqlite3.OperationalError: table schemaVersion already exists00:16
balloonssmajevicirfan, i believe launchpad docs tell you00:24
mcinitreevanballoons: Can I get some more time on this task? https://codein.withgoogle.com/dashboard/task-instances/6125765456297984/ I had some VM issues and Im still trying to get it to actually work, I have most of the code written but there's something somewhere I didnt do so it doesnt work00:30
=== salem_ is now known as _salem
=== _salem is now known as salem_
smajevicirfanballoons, the thing is heat only includes subscribers and duplicates from the 3 listed for the filtering the iso tracker task00:32
smajevicirfanand not the number of comments00:33
balloonsmcinitreevan, time added01:30
balloonssmajevicirfan, I guess I'm missing the context here a little bit01:30
balloonsif you want to ask about filtering, talk to flocculant, as he knows what he wants specifically on that01:31
balloonsI can help more on the technical end :-)01:31
balloonsleaving a message might be best01:31
balloonsmcinitreevan, I see the time rolled over, but you have plenty of time for this round ;-)01:32
mcinitreevanballoons: Haha yeah I re-accepted the task, Im so determined to figure this out, it's kinda hard with no official documentation to go off of though01:34
fazerballoons, looks like I'm not quite done. I keep getting this error:    sqlite3.OperationalError: table 'schemaVersion' already exists01:40
fazersorry for bailing earlier btw, I had to go study for my final exams and do other work at home01:41
balloonsfazer, where are you getting that error?01:43
fazerballoons, when I run my test01:44
fazerat this line:     cur.executescript(sql)01:44
fazerin _patch_mediascanner_home()01:44
balloonsoh well, it would be nice to run the branch myself and see :-)01:44
balloonsor a full log. It's hard to guess at this point01:44
balloonshowever, it sounds like you need to modify the patch. Don't have it create that table again01:45
balloonsbut it's confusing because we copied over the existing table which works with that patch01:45
fazerwhich is what I was wondering.01:46
balloonsso pushing your changes to a branch would help immensely at this point01:51
balloonshave you finished writing the other bits?01:51
balloonsso once this works it'll be all set or?01:51
fazerYup, I believe so.01:53
fazerI'll push to a branch now01:53
malevasquezHeyy02:06
fazerballoons, this is my branch: https://code.launchpad.net/~vamrocks602/music-app/test-empty-library02:09
balloonsfazer, ok I have to call it a night now, but can look tomorrow. Leave it in a comment on your task for the other mentors :-)02:14
balloonssounds like it's really close02:14
fazersure, no problem. I'll do that. yeah, I hope so.02:15
ElijahEllisHi I am currently working on this task: https://bugs.launchpad.net/ubuntu/+source/qtcreator-plugin-ubuntu/+bug/1524027 and I was wondering if I am to make the html app an exact copy stylistically, should i be changing the app.css or editing */ubuntu-html5-ui-toolkit/0.1/ambiance/css/appTemplate.css/SASS02:23
ubot93Launchpad bug 1524027 in qtcreator-plugin-ubuntu (Ubuntu) "Adjust HTML5 template to mirror the QML sample app" [Undecided,New]02:23
ElijahEllisIt seems like editing the ui-toolkit is a beyond the scope of this project but it's not up to me to make that decision02:38
ElijahEllisbut editing the app.css on the might unessecarily convolute the template02:39
=== salem_ is now known as _salem
ElijahEllisbut editing the app.css on the might unessecarily convolute the template02:50
NisUp03:49
NisRl03:49
wxlfirst time at gci, and we're already at the top of the heap for completed tasks!06:58
wxlgood job admins, mentors, and students!!!!!06:58
darkxstwxl, I reckon 50% of students I have dealt with already ran ubuntu07:10
wxlthat's fantastic, darkxst. i admit to not having discussed it much with my students.07:11
wxltoo busy getting work done XD07:11
darkxstI'm just guessing from there reports07:12
darkxstand quite a lot have said they do, but wanted to try Ubuntu GNOME etc07:13
wxlah cool07:13
darkxstone even said he gave his Ubuntu GNOME livecd to his teacher, so had to make a new VM.07:15
wxlnice07:16
MatthewAllenI've got it on my Laptop for school and running it through a VM for codein on my desktop, don't know anyone else from my school that runs it though07:16
darkxstMatthewAllen, there have been a few, but probably they are in different countries to you ;)07:21
=== _salem is now known as salem_
=== salem_ is now known as _salem
=== alan_g is now known as alan_g|lunch
mcinitreevanwxl: Wow, how many tasks done so far?14:05
=== alan_g|lunch is now known as alan_g
DiegoTcballoons, jose, popey I think we have a lot of Install Ubuntu task15:05
DiegoTcwe should have a hangout for trying to explain different task to students, probably that's the reason their are not getting them15:06
rob1507Hi, pls can you review my task I cannot move on15:25
rob1507And deadline is 3 days so in case of error I will not have time15:25
DiegoTcrob1507: which is your task?15:27
rob1507Port your favorite go program for snappy using snapcraft15:28
DiegoTcrob1507: that's a cool task, but I can't help you on that one15:30
DiegoTcare you familiar with Raspberry or Beaglebone?15:31
balloonsrob1507, I am working on it this morning ;-)15:31
xcubhey robert1507, do you know how to include the dependencies for the go application15:33
xcubin the .yaml file15:33
balloonsrob1507, did you manage to publish your snap file?>15:34
rob1507Yes15:34
xcubno, where do i publish it to, the Ubuntu Software Cetner15:34
rob1507Xcub, github15:35
xcubsnappy can't locate the package if it isn't inside the ubuntu software archives15:36
balloonsrob1507, weird I'm not finding the app in the store15:37
rob1507Look it on github =D in store t was not published15:37
xcub@balloons, are we supposed to publish the .snap package or the .yaml file?15:37
balloonsxcub, it would be nice to get the snap package uploaded in the store15:38
balloonsFor the task, I'd like both to check your work15:38
xcubdoesn't it need to go through a review proces15:38
balloonsdid you test the app rob1507, and if so, how?15:38
balloonsxcub, yes, but it's an automated review.15:39
rob1507No I havent tested15:39
balloonsshould be quick15:39
rob1507Baloons, I need some review to identify my errors15:39
balloonsrob1507, what does it do? Seems like it's an example application15:39
balloonsrob1507, yes, I'm looking it over now15:40
xcubso if the package is published to the ubuntu software center, I would just run "sudo snappy install gochatapp"15:40
xcubon snappy15:40
balloonsxcub, you would publish to myapps15:40
balloonsxcub, so https://myapps.developer.ubuntu.com/dev/click-apps/?format=snap .  Read https://developer.ubuntu.com/en/publish/15:40
balloonsso it would be sudo snappy install gochatapp15:41
xcubsnappy packages can only be built on ubuntu core operating systems right? So if I try to run "sudo snappy install gochatapp" it wouldn't be able to install the app15:42
xcub*If i try to run it on 15.10 it will not work?15:43
balloonsxcub, you can run snappy locally via kvm, to give you a taste of what it's like on a device15:44
balloonshttps://developer.ubuntu.com/en/snappy/start/#snappy-local15:44
balloonssnappy is basically a minimial ubuntu image, where apps can be installed as snapps, and there is security, atomic upgrades and rollback. Things apt doesn't provide15:45
balloonsReading https://developer.ubuntu.com/en/snappy/ should help15:45
rob1507balloons, are there many errors in my work?15:48
xcubuploaded the package yesterday, and it says that the automated process got 12 errors. It says I don't have any current approved version15:50
balloonsrob1507, yes you are missing some hooks it seems15:51
balloonsxcub, ohh, what errors did you get?15:51
xcubAll 12 fails were the same: No JSON object could be decoded. Value: "ERROR: could not find required 'hooks' in manifest: {'architecture': ['amd64'], 'description': 'Go and Angular.js Chat Application using Socket.io', 'framework': 'ubuntu-core-15.04-dev1', 'icon': 'meta/icon.png', 'installed-size': '8157', 'maintainer': 'Daniyaal Rasheed <radonapps15:52
xcub@gmail.com>', 'name': 'gochatapp', 'title': 'Go and Angular.js Chat Application using Socket.io', 'version': '1'} ". click-check-security15:52
rob1507balloons, can you give some advice what to do next?15:52
rob1507I also had those errors15:52
rob1507It is hard to find a program to find basic snap as in examples15:54
balloonsrob1507, just checking to see how it runs inside snappy15:54
balloonswe'll need to fix the metadata to start with15:54
balloonsComparing with the examples, what looks different about your metadata?15:55
rob1507balloons, it is the start :D15:55
balloonsrob1507, the goal isn't to find the simplest program to package, but to package something you find interesting :-)15:55
xcubthe ap i am trying to package is this one: https://github.com/trustmaster/gochat15:56
rob1507balloons, ok can I choose another program?15:58
balloonsrob1507, you most certainly may yes15:58
xcubAnd i'm confused about what else to include beside15:58
xcubparts:15:58
balloonsrob1507, xcub, want to /join #snappy15:58
xcubgochat-main:15:58
balloonsthere's some folks in there who can help us15:58
xcubok15:58
=== RobGev is now known as Rob1507
Rob1507xcub, let's try now to ask them16:00
Rob1507balloons, I don't understand, if I choose go project from github, and everthing needed is written here should I have more than 1 part16:05
balloonsmore than 1 part?16:07
balloonsyou are creating the packaging bits16:07
Rob1507balloons, in case of webcam example parts are server and webcam, right?16:11
balloonsyes, that sounds right16:16
Girishhttps://codein.withgoogle.com/tasks/4843721241657344/17:55
GirishSubmitted for review.17:56
GirishAlso balloons, I have an exam tomorrow so wouldn't be able to work on the READMEs today. Will catch up tomorrow.17:57
balloonsGirish, I was thinking about how you were doing17:58
Girishbtw, even after upgrade I'm getting the same error: Couldnt find QtQuick 2.317:58
balloonsthat doesn't sound fun. I will do the other README tasks right now. I've yet to get to them and I owe you17:59
balloonsit might be worth just moving forward. Someone else can try and get those dependencies added. Your readme's are already a big improvement18:00
balloonsheck, just installing everything in debian/control does work, so :-)18:00
balloonsyou can always just say do that, heh18:00
GirishI also made the terminal READMEs when I was doing the calendar ones. I need to review them as my calendar ones weren't exactly correct the first time. I'll review them and send them to you tomorrow.18:02
balloonsGirish, sounds excellent. Thanks again for taking on these tasks!18:04
GirishNp! :)18:07
=== alan_g is now known as alan_g|EOD
* balloons is slowly adding the other tasks. They'll all be under the readme tag18:10
=== ubuntu is now known as Guest68909
=== Guest68909 is now known as Girish
balloonsdone and added18:36
Rob1507balloons, I've got pass in click-review :D what I should do now? Just upload?18:53
balloonsRob1507, ohh excellent. Yea, I'd give it an upload, and try it out on snappy18:53
Rob1507Upload on store, right?18:54
balloonsRob1507, yea, on myapps18:54
balloonsRob1507, also, elopio could have another look if you'd like18:54
Rob1507I talked to him he said that in myapps it will pass too18:55
balloonsRob1507, ok, so to complete the task, it would be great to have the snap in the store. What app did you end up choosing?18:56
Rob1507balloons, The same app I submitted first time. If you want I can change app now, I understood what I am doing, so if you wish I can change18:57
balloonsRob1507, ohh. I only mention it because I think the first app you did probably doesn't need to go to the store eh? It doesn't do anything right? Just an example?18:58
Rob1507It is hard to find an app actually :D but I find some kind of number type converter. I can try to work it out18:59
Rob1507balloons, can I submit this for task and then do another program. Just to have some useful thing done?19:00
balloonsRob1507, yes, no worries. The goal was for you to learn a little about snapcraft19:01
Rob1507balloons, I am submitting this and I promise to write another one for a useful program :D19:01
balloonsIf you want to post the completed snap again, and submit for review that would be fine19:02
Rob1507Is number type converter good one?19:02
Rob1507balloons, only snap on GCI website?19:03
balloonsRob1507, the folks in #snappy might have a good idea for something19:03
Rob1507balloons, ok, ask for program there then?19:04
balloonsyea, see what ideas they have19:05
MiaomatoHi~19:12
Miaomatoi am doing the task https://codein.withgoogle.com/dashboard/task-instances/4816928648462336/19:12
Rob1507balloons, submitted19:12
Miaomatobut i can't find where to leave a comment on lp19:13
balloonstsimonq2, ^^19:13
balloonsRob1507, I still see it as more work needed: https://codein.withgoogle.com/dashboard/task-instances/4559311409774592/19:14
Rob1507balloons, I think my network was a problem. Any changes now?19:16
balloonsRob1507, got it. Snap looks good as well19:21
Rob1507balloons, Thanks very much. I will send you another one after finding good program to snap, today or tomorrow.19:23
Rob1507balloons, how to send the snap to you?19:47
Rob1507balloons, https://myapps.developer.ubuntu.com/dev/click-apps/4184/19:58
balloonsRob1507, send the snap? what did you call it>20:01
Rob1507balloons, I will send it now20:01
balloonsI saw you attached the new snap on submission20:02
Rob1507balloons, how to send?20:02
Rob1507balloons, as for GCI task, my work was approved. As for new snap, I will send it shortly20:03
Rob1507balloons, I published an app on myapps20:04
balloonsack20:05
Rob1507how can you see it?20:06
balloonsRob1507, you can see it too. Install snappy and then grab it from the store20:10
Rob1507balloons, Is it working? :D20:10
balloonsRob1507, what's the name of the app?20:12
Rob1507ytdl-snapcraft20:12
Rob1507sudo snappy install ytdl-snapcraft right?20:13
balloonsRob1507, a third party interface to the store is here: https://uappexplorer.com/apps?type=snappy20:15
Rob1507and there is no ytdl20:16
Rob1507balloons, i will send you a .snap20:19
Rob1507balloons, How can I access people from Ubuntu GNOME Marketing team?20:48
balloonsRob1507, perhaps contacting the team, or asking in #ubuntu-gnome20:48
Rob1507ok20:48
Rob1507balloons, thanks a lot for your support20:49
=== Sal is now known as Guest40817
fazerahayzen, I tried the command you suggested in the comments : CREATE TABLE IF EXISTS 'schemaVersion' (Version integer )21:37
fazerbut it doesn't recoggnize 'IF' as  a command, and I'm also getting the same error as earlier: no such table schemaVersion21:37
tsimonq2balloons: hm?21:49
fazersorry, to fix my last message: it says- table schemaVersion already exists21:53
fazerahayzen, I created a base class like you suggested and inherited from it whatever I needed.22:03
fazerBut, the error I was getting earlier, has not been affected, I'm aware that that wasn't the point of making that change but I don't know how to fix this.22:05
Miaomatotsimonq2: For the task i am doing, i found out i installed the wrong version of lubuntu image Ծ‸Ծ So don't worry i solved it !22:11
MiaomatoBut i can't find where to report bug at launch pad...22:12
wxlMiaomato: you can do it with the ubuntu-bug command22:13
wxlMiaomato: just ubuntu-bug <package>22:13
wxlMiaomato: e.g. ubuntu-bug evince22:13
Miaomatowxl: ok, thank you.22:15
ahayzenfazer, try just removing the create tabel command22:15
wxlMiaomato: no problem!22:15
fazerahayzen, but leave the Delete from command? OR get rid of that too?22:18
fazerahayzen, without the CREATE TABLE command I get an error saying that the table doesn't exist, both with and without the delete from command22:21
xcubHI balloons, I've submitted my package to the software center, but it won't show up yet. Can I just send you the .snap file22:37
ahayzenfazer, did you try doing the create table with the if exists...and then doing the delete from as well?22:39
knomewithout knowing what you are exactly talking about, how would "CREATE TABLE IF EXISTS..." even make sense?22:40
knomeif would only ever try to create a table which already exists, which isn't possible22:40
knomewouldn't a "CREATE TABLE IF NOT EXISTS..." statement make more sense?22:40
fazerahayzen, yes I did, it didn't recognize the IF as a viable command22:42
xcubelopio, can you review my task https://codein.withgoogle.com/dashboard/task-instances/5486692492378112/22:42
ahayzenhmmm yeah it would be if not exists as knome said :-)22:43
fazerit returned a syntax error and in my text editor (gedit) it didn't color it the same as the rest of the commands. Although that probably doesn't mean much22:43
fazerYeah, that's what I thought is was supposed to be.22:43
fazerlet me try22:44
fazerok that worked, now it gives me the same error, but for a different table. This time for media_attic and media22:45
fazerahayzen, I would assume that the IF NOT EXISTS solution wouldn't be viable here as we want to override the previous values and have it be empty.22:46
knomeif you want to purge the table, then it's better to delete the table and create it; you don't need any IF statements if you know the table doesn't exist (it doesn't since you just deleted it)22:47
ahayzenfazer, yeah you'd still need the delete from after...22:47
fazerok, makes sense.22:48
ahayzenif you look at the other one if does a DROP then CREATE TABLE for the media table22:48
fazerok, I'll attempt that.22:48
ahayzenfazer, have you seen what happens if you do not inject any database?22:49
ahayzendoes mediascanner automatically have an empty database, or does it have data from other places in it?22:49
fazerI'm not sure. I havent attempted that.22:49
knomeyou can also truncate the table if you know the schema is correct22:50
knomethat only deletes the data, not the table22:50
knomethen you don't need to re-create it22:50
fazerahayzen knome, if I try to either truncate or drop before the create, it says it doesn't exist, but at the create it throws an error saying that it already exists?!22:54
ahayzen\o/22:54
knomefazer, what are you actually working on and do you have your code available somewhere?22:55
fazerknome I'm writing a test for the music-app22:55
ahayzenknome, for the music-app we have to inject a database into mediascanner when we are mocking the data (as its gets the locations wrong)22:56
fazermy branch is here: https://code.launchpad.net/~vamrocks602/music-app/test-empty-library22:56
ahayzenbut fazer is working on making a test when the library is empty (to check the UI has the empty state components displayed)22:56
fazercurrently, I'm trying to get mediascanner to use a blank database.22:56
fazeryup, thats right.22:56
knomefazer, could you point me to the file you are working with?22:57
ahayzenknome, this is what is done currently on the database ... http://bazaar.launchpad.net/~music-app-dev/music-app/trunk/view/head:/tests/autopilot/music_app/content/mediascanner-2.0/mediastore.sql ... and this is the one fazer is working on http://bazaar.launchpad.net/~vamrocks602/music-app/test-empty-library/view/962/tests/autopilot/music_app/content/mediascanner-2.0/blank_mediastore.sql22:58
fazerhere: https://code.launchpad.net/~vamrocks602/music-app/test-empty-library22:58
fazerknome, I mean here: http://bazaar.launchpad.net/~vamrocks602/music-app/test-empty-library/view/head:/tests/autopilot/music_app/content/mediascanner-2.0/blank_mediastore.sql22:58
fazeroh ok.22:58
hjarrellballoons, Where can I find the source for the ubuntuqa bot?22:59
knomeok... so which file has the problems... or both?22:59
ahayzenfazer, i'm starting to wonder if you can just skip the injection and it'll be ok, assuming mediascanner2 hasn't picked anything up22:59
ahayzenknome, the blank one is the failing one22:59
knomei see22:59
knomeso the file starts with create table23:00
knomeshouldn't it start with either truncate (which empties) or delete and then create?23:00
fazer it only creates if not exists23:02
fazerthe same outcome is reached.23:02
knome"CREATE TABLE 'schemaVersion' (version INTEGER);"23:02
fazeroh, I just pushed those changes sorry23:03
fazeryou might have to reload23:03
knomeand the error is what?23:05
fazertable already exists if the drop table command is removed23:05
fazerand table doesn't exist if the drop table command is there23:06
fazertable being media and media_attic23:06
knomeoh, ok23:06
knomedrop table if exists ...23:06
balloonshjarrell, I don't know that it exists outside of production actually. You mean the bot that goes for lp bugs?23:10
ahayzenfazer, I also wonder what would happen if you take out the call to the patching of the database (as that is only really done because the paths are to the wrong location) so as you have not content it might already be blank23:10
ahayzenfazer, that would mean removing the call self._patch_mediascanner_home(content_dir, mediascannerpath) in your _create_empty_music_library()23:10
hjarrellballoons, Yeah the bot that comments on the lp bugs with the link to the iso page.23:11
balloonshjarrell, the person to ask would be stgraber, but not sure if / when he'll be around23:12
fazerahayzen, trying that now.23:12
balloonshey knome, ahayzen, fazer.23:12
knomehullo balloons23:12
fazerhello.23:12
ahayzenballoons, o/23:12
* knome pops a few23:12
balloonsare you thinking of just not mocking the db, as mediascanner presumably will do it23:12
ahayzenballoons, yeah that's what i'm thinking23:13
balloonsI like that idea23:13
ahayzenballoons, IIRC the injected one was only so we could fix the path names from /home/user/Music -> /tmp/tmpfolder/Music/23:13
balloonsahayzen, correct. And lol, you are right. We don't need or want any media. We literally don't need to do anything23:14
ahayzenyup :-)23:14
ahayzenjust as long as there isn't anything already in there it should be ok :-)23:14
hjarrellballoons, Can I just email, https://launchpad.net/~stgraber, and ask him about it?23:15
fazerok, now I get a autopilot.processSearchError that originates when I run self.app = MusicApp(self.Launcher()) in my MusicAppTestCase class23:16
ahayzenthat sounds like the music-app isn't starting correctly23:16
balloonshjarrell, yes23:16
ahayzenfazer, can you pastebin the full output ?23:16
balloonshjarrell, is it stopping you on a task or ?23:16
* balloons is making dinner, feel free to ping23:17
balloonsI think you are in good hands with ahayzen23:17
fazerballoons yes: http://paste.ubuntu.com/14040202/23:17
fazerahayzen ^23:17
hjarrellballoons, The task is to modify the bot so it adds the product in the message with the iso link23:17
balloonshjarrell, ahh right!23:18
ElijahEllisI'm currently working on https://bugs.launchpad.net/ubuntu/+source/qtcreator-plugin-ubuntu/+bug/1524027, I'm wondering if there is a way to access package/project name information for a html5 project so I can add it to the title/header. The only reason for this is so it wont be a static value like "Project name"23:18
ubot93Launchpad bug 1524027 in qtcreator-plugin-ubuntu (Ubuntu) "Adjust HTML5 template to mirror the QML sample app" [Undecided,New]23:18
ElijahEllisby the way, hi guys23:18
ahayzenfazer, 'terminate called after throwing an instance of 'std::runtime_error' what():  unable to open database file' .. \o/23:18
balloonshjarrell, hmm. again, stgraber would know offhand. i'll have to dig.23:18
ElijahEllisit looks like the manifest.json and <proj-name>.desktop contain that information but I'm not sure if I would be able to parse that succinctly23:20
balloonsso hjarrell, one  thing that is admin controllable in the tracker if you will is the bug comment23:20
balloonsyou can see it in the admin section of the qatracker23:21
fazerahayzen : ok, so it's still trying to open the database? to stop it from trying t oaccess it would I have to get rid of my entire _create_empty_music_library() method?23:21
ahayzenfazer, the application will try to access the database when it starts, so its telling us something is wrong with the db23:21
balloonshjarrell, so it might better to nab a different task for now. Remind me if I don't remember to have a better look tomorrow.23:22
balloonssorry about that23:22
ahayzenfazer, hmm ok well you may have to inject an empty one then :-/ maybe ms2 doesn't generate one in the temporary directory that is used23:22
fazerahayzen ok, so then we do hav....... ok23:23
hjarrellballoons, Its okay I can always re-select this task later.23:23
balloonsright-o23:23
ahayzenfazer, what is the platform you are running on again ?23:24
fazerwily23:24
fazer15.1023:24
fazerbvut I have mediascanner packages from xenial23:25
ahayzencoolio :-) and doing qmlscene app/music-app.qml works? ... ah yes i remember now23:25
fazeryup.23:25
ahayzenfazer, ok, i think for now continue down the injecting route, i'll have a chat with Victor (the other music-app dev) to see what he thinks as he usually deals with the sql db part :-)23:27
fazerahayzen: ok, I'll see what I can do about it. I think i'm close, but.. who knows? anyway, thank you.23:27
ahayzenfazer, don't worry, mediascanner is really fiddly to setup a mocked environment, it took us ages to get it right. I looked at your other bits and the main autopilot code looks like it should work once the mocking works :-)23:28
fazerahayzen: cool, good to hear.   :D23:29
ElijahEllisI also looked into this https://developer.ubuntu.com/api/apps/html5/sdk-15.04.1/RuntimeApi.RuntimeApi/ but i get Application name: ubuntu-html5-app-launcher every time23:30

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!