[09:55] <nik90> renatu: everything works in the multiselect for me :)
[10:02] <nik90> renatu: btw it looks like a lot of people are using your PageWithBottomEdge.qml component :D
[12:42] <twstddev> nik90, Hi. Can you think of any other task or bug I could help with? %)
[12:51] <nik90> twstddev: 1 min, let me see
[12:51] <nik90> twstddev: how about https://bugs.launchpad.net/ubuntu-clock-app/+bug/1354617 ?
[12:53] <nik90> twstddev: if not https://bugs.launchpad.net/ubuntu-clock-app/+bug/1350433
[12:53] <twstddev> nik90, the same happens with alarms. feels like it animates collapse effect and stays at the last pixel
[12:53] <twstddev> will have a look
[12:53] <twstddev> great. I'll check both
[12:53] <nik90> twstddev: second bug is more related to Qt XmlReader, since you have experience with Qt/C++ that might suited to your experience
[12:53] <nik90> twstddev: thnx
[12:54] <nik90> twstddev: btw assign yourself to bug when you start working on it so that others don't work on the same thing
[12:55] <twstddev> nik90, I have thought about it, but I have a full-time job and not always sure if I spend my time coding or doing something else :) so sometimes it may take longer to resolve bugs, while others could do it in a lot less time
[12:55] <nik90> and attach your MP to the bug report by clicking "Link to related branch" on the right sidebar
[12:56] <twstddev> oke
[12:56] <nik90> twstddev: true, but we could always remove you from the bug report if you are unable to fix it.
[12:56] <nik90> twstddev: ok
[12:57] <twstddev> Ok. I've linked the bug to the related branch
[12:59] <twstddev> as well I've assigned myself to the bugs you mentioned above
[13:00] <nik90> thnx
[13:01] <twstddev> btw, does autopilot support the gherkin language and how can I automate tests runings. And what do you use for units tests?
[13:03] <nik90> gherkin?
[13:03] <nik90> the readme.autopilot has instruction on how to run UI tests.
[13:03] <nik90> we are planning to use QTest for the unit tests, but I have no experience with it
[13:04] <nik90> so need to read up on that before i can write some
[13:04] <twstddev> sorry. It's just a very convinient way to write scenarios https://github.com/cucumber/cucumber/wiki/Gherkin
[13:04] <nik90> I think that corresponds to autopilot I think
[13:04] <twstddev> with some test suits you can run them automaticaly, there is a listener following any files change and restart tests
[13:04] <nik90> ah ok
[13:05] <twstddev> so you could see if tests pass while you writing your code
[13:05] <nik90> in our case we do it manually before proposing a merge
[13:05] <twstddev> Ok
[13:05] <nik90> also several of the ubuntu projects have an automatic bot called jenkins which tests your MP before merging to trunk automatically after code approval.
[13:05] <twstddev> oh yeah. I saw it
[13:06] <twstddev> does it have an interface exposed?
[13:06] <nik90> what jenkins?
[13:06] <twstddev> yup
[13:07] <twstddev> jenkins comes with web interface
[13:07] <nik90> when you propose a MP, it runs the tests and leaves a comment with the necessary links
[13:07] <twstddev> where it just basically lists reports
[13:07] <nik90> to the web interface
[13:07] <twstddev> ah ok
[13:07] <nik90> for the new clock app, jenkins keep reporting it as failed since we haven't got the infrastructure up and running yet
[13:07] <nik90> for the old clock app it works as expected
[13:08] <twstddev> Great. Thanks nik90. Will get to those bugs later
[13:08] <nik90> yw.
[13:08] <nik90> take your time
[13:08] <twstddev> :D
[13:51] <mzanetti> Is there a way to get notified when the app resumes from suspended state?
[13:51] <mzanetti> I think I've seen it somewhere at some point, but can't find it any more
[14:01] <nik90> mzanetti: Qt.applicationState
[14:01] <mzanetti> nik90: ah, thanks!
[14:01] <nik90> yw :)
[14:02] <nik90> mzanetti: more specifically Qt.application.active
[14:02] <mzanetti> ack
[17:40] <twstddev> nik90, Hi. https://bugs.launchpad.net/ubuntu-clock-app/+bug/1350433  I don't get delay of 4-5 secs on my VM it was about 730ms, i've optimized it down to 60-65ms, but it still may be not that fast on your machine
[17:40] <twstddev> could you please check
[17:41] <nik90> twstddev: on my vm it was around 730 ms as well. On the phone it was 4-5 secs
[17:41] <nik90> twstddev: will take a look
[17:41] <twstddev> ouch
[17:41] <twstddev> yes please. If still unacceptable I'll do small refactoring and try to optimize it more
[17:45] <nik90> twstddev: I am unable to run it, I think it crashes on startup
[17:45] <nik90> twstddev: can you check the pushed branch on your end
[17:46] <twstddev> I don't have a device running ubuntu touch :\ does it happend if you run it in VM?
[17:46] <nik90> no it doesnt run on my VM as well
[17:47] <twstddev> interesting
[17:47] <nik90> let me try to get a crash report
[17:50] <nik90> https://www.irccloud.com/pastebin/fOHeUk5I
[17:50] <nik90> twstddev: ^^
[17:50] <twstddev> is that all? :\
[17:51] <nik90> yup that's all gdb outputted
[17:51] <twstddev> i'll try to reproduce
[17:51] <twstddev> will get back to the next alarm issue first
[17:52] <nik90> ok
[18:12] <twstddev> nik90, where can find official components code? there is something weird with alarmmodel
[18:15] <daker> https://bazaar.launchpad.net/~ubuntu-sdk-team/ubuntu-ui-toolkit/trunk/files/head:/modules/Ubuntu/Components/plugin/
[18:15] <twstddev> daker, thanks
[18:15] <daker> the model i think is here https://bazaar.launchpad.net/~ubuntu-sdk-team/ubuntu-ui-toolkit/trunk/view/head:/modules/Ubuntu/Components/plugin/ucalarmmodel.cpp
[18:16] <nik90> daker: thnx
[18:16] <daker> yw
[18:17] <nik90> twstddev: if you are looking for the SDK API Docs, you can find them within qtcreator itself.
[18:17] <twstddev> no, not docs. I get seg fault when I call get method on model
[18:17] <twstddev> weirdly count says that there are items in the model
[18:18] <nik90> twstddev: btw just so you know, there is one bug related to crash https://bugs.launchpad.net/bugs/1337405
[18:18] <nik90> twstddev: it happens rarely while using alarms
[18:18] <nik90> twstddev: I was told the SDK dev would work on that hopefully next week
[18:34] <deids> hi guys..
[18:35] <deids> someone know how to put command output into a variable in python?
[18:35] <deids> i try to make a raid status widget
[18:38] <deids> facebook kill every irc channel :-(   in 2009 the irc was full with nice people now it's all empty rooms
[18:48] <deids> hi boiko
[18:48] <boiko> hi deids
[18:50] <deids> i reffered to this room from #ubuntu
[18:50] <deids> i try to make a raid status widget
[18:50] <deids> maybe you can help me
[18:51] <deids> how to put command output into a variable in python?
[19:03] <twstddev> nik90, https://code.launchpad.net/~twstd-dev/ubuntu-clock-app/1350433/+merge/230211 i cannot get the seg fault. Could you please check xmltimezonemodel.cpp and see if you have setTimeZoneId call on line 112
[19:17] <Boogle> I am using qml and js to make a audio file play and stop i have made it play, but when I click it again it won't stop.
[19:21] <nik90> twstddev: checking now
[19:22] <nik90> twstddev: I have tz.setTimeZoneId( reader.text().toString() ); on line 112
[19:22] <twstddev> that's just strange then
[19:23] <nik90> twstddev: could you do bzr status to see if there are any unpushed stuff
[19:23] <nik90> I am trying again now
[19:23] <twstddev> i got fresh branch and tried running it, had no problems
[19:23] <nik90> ok let me restart my vm
[19:29] <nik90> twstddev: same issue :/
[19:30] <nik90> I restarted and branched the code again
[19:31] <twstddev> hm, cannot event possibly imagine why this is happening. just leave for now then
[19:32] <nik90> weird
[19:34] <twstddev> yeah.
[19:34] <nik90> mzanetti: Could you try https://code.launchpad.net/~twstd-dev/ubuntu-clock-app/1350433/+merge/230211 on your machine and see if you get segmentation fault on startup?
[19:34] <twstddev> crashes with the next alarm branches even weirder
[19:35] <nik90> mzanetti: it is a branch by twstddev to improve the xmlread performance
[19:35] <nik90> twstddev: I will have a try at the next alarm branch to see if I can fix that.
[19:37] <twstddev> when you do cancel on an alarm, internally goes asynchronously. I believe I end up with a pointer to the trash memory
[19:37] <twstddev> removal is asynchronous
[19:37] <nik90> twstddev: may be wait for the removal to be over before trying to access it?
[19:37] <twstddev> i listen to modelreset
[19:38] <twstddev> when i check the count it gives the right amount
[19:38] <twstddev> but fails on get method
[19:38] <mzanetti> nik90: no, doesn't segfault here
[19:39] <twstddev> they return pointer to the alarm on get, feels like it gets garbage collected by the js engine somewhere before
[19:39] <nik90> mzanetti: ok this is getting really weird..it crashes on startup even on my phone
[19:39] <mzanetti> nik90: well, open it in the debugger
[19:40] <twstddev> nik90, have you by any change modified Qt source?
[19:40] <twstddev> *chance
[19:40] <nik90> twstddev: no, I ran it from the terminal after building. So I didnt even open the file
[19:40] <mzanetti> nik90: have you tried a clean rebuild?
[19:41] <nik90> I removed the build dirs and tries aagain
[19:41] <twstddev> is there an easy way to reference local ui toolkit?
[19:41] <Boogle> I am using qml and js to make a audio file play and stop i have made it play, but when I click it again it won't stop.
[19:42] <mzanetti> twstddev: what exactly is the thing that improves performance?
[19:43] <twstddev> mzanetti, there were repetetive calls in the data method, so they were called lots of times. The most expensive was timezone creation so I just cache when timezone object gets created
[19:44] <twstddev> and shortened other calls to one
[19:44] <nik90> mzanetti: don't know how useful this is -> http://i.imgur.com/oxfCX1m.png
[19:44] <mzanetti> twstddev: hmm, ok... didn't expect timezone creation to be that expensive
[19:44] <twstddev> nik90, goo
[19:44] <twstddev> good
[19:44] <twstddev> ilne 3
[19:44] <nik90> twstddev: ?
[19:44] <mzanetti> twstddev: the calls to m_timeZones.at() aren't slow..
[19:45] <twstddev> mzanetti, I know, just to be safe left it at the same place and saved to a variable
[19:45] <mzanetti> nik90: line 8 in the diff is probably the reason
[19:46] <twstddev> it's on level 2
[19:46] <twstddev> third 3 line at the bottom
[19:46] <mzanetti> maybe not... just a guess
[19:46] <mzanetti> nik90: try removeing the & there
[19:46] <twstddev> there is a call to toTimeZone
[19:47] <mzanetti> twstddev: I still don't even see how this should be faster tbh
[19:48] <twstddev> mzanetti, which one?
[19:48] <mzanetti> all of it :)
[19:48] <twstddev> %)
[19:48] <twstddev> there is just one place that makes it faster
[19:49] <twstddev> initialising timezone when you fill the model
[19:49] <mzanetti> by moving this "tz.timeZoneId = reader.text().toString();" to the inline function you don't change much (unless a ctor in Qt is really badly written)
[19:49] <twstddev> it's not because of the inline function
[19:49] <twstddev> i just left withing the structure declaration
[19:50] <twstddev> data method gets called lots of times
[19:50] <nik90> ok ok, first twstddev give me the diff to fix the crash, and I try on the phone to see how better it gets
[19:50] <mzanetti> twstddev: yes, but the data method wasn't the issue
[19:50] <nik90> removing the & in line8 didnt help
[19:50] <mzanetti> anyways...
[19:50] <mzanetti> gotta go for food
[19:50] <nik90> preliminary testing showed that the slow was due to XmlTimeZoneModel::loadTimeZonesFromXml()
[19:51] <twstddev> nik90, it's because of the endResteModel()
[19:51] <nik90> well at least that's where most time was spent, I didnt go further in that function to see where it might be caught up
[19:51] <twstddev> the wdiget gets redrawn and calls data for every item
[19:51] <twstddev> data had timezone repetitive timezone initialisation
[19:51] <twstddev> that was slow
[19:52] <nik90> ok, can you let me know how to fix the crash first on my side
[19:52] <twstddev> nik90, sorry. yeah. I wish i knew
[19:52] <twstddev> looking into it
[19:52] <nik90> you pointed at line 3 in the debugger
[19:53] <twstddev> it crashes in toTimeZone
[19:53] <twstddev> it's in timezonemodel.cpp line 70
[19:53] <twstddev> probably
[19:53] <nik90> ah yes
[19:53] <twstddev> could you try reming const and & at line 60
[19:54] <nik90> didnt help
[19:55] <twstddev> it can crash if timezone is empty
[19:55] <nik90> unlucky me :p
[19:55] <twstddev> could you try doing qDebug on currentTimeZone.timeZone
[19:55] <twstddev> before line 70
[19:57] <nik90> erm how to do that?
[19:57] <twstddev> just a qDebug()<<currentTimeZone.timeZone;
[19:57] <twstddev> and see check console when you start the app
[19:57] <nik90> oh that
[19:58] <nik90> twstddev: "QTimeZone(")
[19:58] <twstddev> yeah
[19:58] <twstddev> that's the reason
[19:58] <nik90> so u were right about the empty one
[20:01] <twstddev> can you see if time_zone_id has a value in timezonemodel.h on line 107
[20:02] <twstddev> mzanetti, btw. my fault is convestin to bytearray is slow
[20:02] <twstddev> it's convertion
[20:02] <twstddev> jesus...
[20:02] <twstddev> converting QString to ByteArray is slow
[20:03] <nik90> twstddev: I did qDebug() << time_zone_id; at line 108, but it never outputted anything, I guess it din't get to that part?
[20:03] <twstddev> yeah, it doesn't make a call to the method
[20:04] <twstddev> but you have it in xmltimezonemodel.cpp at line 112
[20:05] <nik90> yeah
[20:07]  * nik90 grabs dinner
[20:11] <twstddev> nik90, could you try replacing line 70 in timezonemodel.cpp to
[20:11] <twstddev>     QDateTime worldCityTime(currentTimeZone.timeZone.isValid() ?
[20:11] <twstddev>         currentDatetime.toTimeZone( currentTimeZone.timeZone ) :
[20:11] <twstddev>         currentDatetime );
[20:13] <nik90> twstddev: that works
[20:15] <nik90> twstddev: wow that's fast!
[20:15] <nik90> twstddev: load time reduces from 5-6 secs to about 2 secs
[20:15] <nik90> 1.5 secs maybe
[20:18] <nik90> twstddev: although with this, the world times reported in the main page are no longer correct
[20:20] <twstddev> i don't know why you receive  empty timezone
[20:21] <Boogle> I am using qml and js to make a audio file play and stop i have made it play, but when I trigger it again it won't stop.
[20:28] <twstddev> nik90, oh i have the same problem with the main page, will fix it now
[20:32] <twstddev> nik90, there is still a way to cut it down to 30ms on vm, let's have a look if functionality still says the same
[20:33] <twstddev> don't know what can take so long on the phone
[20:33] <twstddev> not sure i'll be able to run emulator within vm
[20:43] <nik90> twstddev: yeah you cant run emulator within vm...too intensive
[20:50] <Boogle> I am using qml and js to make a audio file play and stop i have made it play, but when I trigger it again it won't stop.
[20:51] <twstddev> nik90, it goes down to 15ms without converting to time zone, I guess I could make a timer that updates it separately from the main tick
[20:51] <nik90> Boogle: you might want this on Monday when there will be more developers available
[20:51] <twstddev> but then object won't be synchronised
[20:52] <nik90> twstddev: but there is already a separate timer, isnt there? I mean the QTimer in the timezonemodel class is separate from the main timer that updates the main clock app time
[20:52] <twstddev> oh
[20:53] <nik90> the main clock is driven by DateTime class while the world class is handled by the XmlTimeZoneModel class
[20:53] <nik90> sry plugins
[20:53] <twstddev> it needs to go to TimeZone structure
[20:53] <twstddev> and update it there
[20:54] <twstddev> asynchronously from the data method
[20:54] <twstddev> so when data is called conerted time should be already prepared
[20:54] <twstddev> *converted
[20:55] <nik90> ok
[20:55] <twstddev> but then that will make too many timers
[20:55] <twstddev> and that's really bad
[21:06] <nik90> twstddev: alright I am done for the day
[21:06] <nik90> see you tomorrow perhaps
[21:06] <twstddev> nik90, sure, I think i found a way to make it faster will push changes. Have a good night
[21:08] <nik90> gud nite
[21:12] <Akiva-Thinkpad> For this new kit creation thing, what do I need kits for exactly?
[21:12] <Akiva-Thinkpad> particularly because before this kit wizard was introduced, I was developing fine without it.