[00:14] <mmcc> later, will be back tonight to test this proxy-tunnel exe finding branch on win/linux
[09:08] <mandel> morning all!
[09:16] <JamesTait> Good morning all! :-D
[11:20] <gatox_ultra> good morning!
[11:37] <mandel> gatox, buenas!
[11:37] <mandel> gatox, how is everything going? managed to fix the compilation issues?
[11:40] <gatox> mandel, manage to reinstall everything..... i'm installing some missing depedencies and to restart compilation
[11:41] <mandel> gatox, ok, let me know if you need any help, atm I'm removing the header hack
[11:42] <gatox> mandel, ok...... in theory i finish with the error branch, and i was going to implement the detection oof that preview in libunity and move forward with that
[11:44] <gatox> mandel, i justtttttttttt realize that the folder with libunity, unity and nux with everything compiled (plus 3 branches of that) is 5gb
[11:44] <gatox> jeje
[11:44] <mandel> gatox, it makes us feel smarter ;)
[11:44] <gatox> jejejeje
[12:08] <alecu> hello everyone!
[12:10] <gatox> alecu, hi
[12:17] <karni> Good morning!
[12:26]  * gatox compiling compiling compiling
[12:26] <gatox> karni, o/
[12:26] <karni> \o
[12:27] <gatox> karni, give me 5 o/\o
[12:27] <gatox> jejeje
[12:27]  * karni high fives gatox o/\o
[12:27] <karni> heheh
[12:50] <mandel> gatox_, gatox you guys ran out of hd space and the compiler is complaining abou it
[12:50] <gatox> uhhhhhhhhhhhhh
[12:51] <gatox> mandel, TRUE!
[12:51] <gatox> mandel, all the problems!!!!! \o/
[12:51] <gatox> jejeje
[12:51] <mandel> lol
[12:52] <ralsina_> good morning
[12:52] <karni> o/
[12:52] <gatox> ralsina_, hi
[12:55] <mandel> ralsina_, morning!
[12:55] <ralsina_> morning gatox, mandel!
[12:55] <mandel> ralsina_, good news for you, we do not longer have the title hack :)
[12:55] <ralsina_> and karni
[12:55] <ralsina_> yay
[12:56]  * ralsina_ does the happy dance
[12:56] <karni> morning :)
[12:56] <ralsina_> mandel: clarify, you mean you have a branch that fixes it?
[12:56] <ralsina_> mandel: or is it really gone gone, ding dong the witch is dead gone?
[12:57] <mandel> ralsina_, I have the following: a branch that exposes payment previews in libunity, a branch of unity-lens-music that uses it, a branch ol unity that uses it with no checks on the title but the typo of preview (base payment preview class)
[12:58] <ralsina_> mandel: awesome
[12:58] <mandel> ralsina_, so it is gone and should allow unity work correctly with all payment previews as long as they extend from PaymentPreview
[12:58] <ralsina_> mandel: now let's make those stop being branches :-)
[12:58] <mandel> ralsina_, I need to do some clean ups and will propose step by step
[12:58] <ralsina_> mandel: awesome*2
[13:05] <karni> ralsina_: FYI last night I found a peculiar bug, which seems to use different SQL projection for two consecutive, same db queries. I'll continue looking into that now.
[13:05] <ralsina_> karni: that does sound peculiar
[13:06] <karni> You can imagine me throwing wtf's at 4 AM :/ (and no, I wasn't tired at that point, other than tired with this bug)
[13:17] <mandel> gatox, how do you feel trying to compile by branches and get them running in your machine?
[13:17] <gatox> mandel, "by branches" or "my branches"?
[13:18] <mandel> gatox, you should be interested in the changes I made in unity and libunity to use gir so that we no longer need to check the title
[13:19] <gatox> mandel, send them this way...... which is the worst thing that could happend? need to restart everything again for 50000 time...... ja! that doesn't scares me anymore!
[13:19] <gatox> jeje
[13:19]  * alecu looks up "sql projection"
[13:21] <mandel> gatox, they area lp:~mandel/avani/libunity-add-music-payment and lp:~mandel/avani/generic-payment-preview
[13:21] <ralsina_> alecu: what goes after SELECT :-)
[13:21] <mandel> gatox, the generic one is based on the work you have done in the creation of a base class
[13:22] <ralsina_> alecu: that's what you get when you let the wrong people do language design (yet if you consider a database as a multi-dimensional space, where each column is a space, it makes lots of sense)
[13:22] <ralsina_> "is a dimension" I meant
[13:23] <alecu> """it's a function which takes an input (e.g. a database row) and produces an output (e.g. one of the columns from the row, or perhaps some calculation based on multiple columns)."""
[13:23] <mandel> alecu, if you use the above mentioned branch of libunity you will be able to compile lp:~mandel/avani/unity-lens-music.ubuntuone-purchase-take2 which is based on the work you did in the scope but uses the new preview class (I need to do the same for the error page)
[13:23] <alecu> mandel: awesome!
[13:24] <ralsina_> alecu: like I said "what you put after SELECT"
[13:24] <ralsina_> and before FROM
[13:24] <ralsina_> or WHERE
[13:25] <alecu> yes, my intuition told me the same regarding space and geometric projections, but the definitions seem to be contradictory
[13:26] <alecu> or at least slightly non equal.
[13:26] <ralsina_> it uses custom dimensions ;-)
[13:27] <alecu> karni: what did you meant by "sql projection" in your statement above?
[13:27] <gatox> mandel, now i'm going to start compiling your branches......  i need to do a unity --replace after with your branches?
[13:27] <karni> ralsina_: exactly what ralsina said. what goes after SELECT (sorry, didn't read last few lines)
[13:27] <karni> alecu: The problem is:
[13:27] <karni> alecu: initial projection is [_id, song_id, song_title, ...]
[13:27] <mandel> gatox, nah, just run the dash from the build dir
[13:28] <karni> alecu: and if you load the screen the second time, [playlists_songs._id, songs.song_id, song_title, ...]
[13:28] <karni> alecu: The problem is there are many layers of abstraction
[13:28] <mandel> gatox, although to see it working also compile and run lp:~mandel/avani/unity-lens-music.ubuntuone-purchase-take2
[13:28] <gatox> mandel, ah ok
[13:28] <karni> alecu: CursorLoader <- Loader <- ContentProvider <- SQLiteDatabaseHelper <- SQL
[13:28] <mandel> gatox, that has the scope that creates the preview, and as soon as we have you erro page we can do a full test :)
[13:28] <ralsina_> karni: you are probably getting a side effect of "optimization"
[13:29] <karni> ralsina_: Well, I'll tell you one more detail!
[13:29] <mandel> gatox, if you take a look at the standalone payment app you will notice that it uses all the unity protocol methods to create the preview model, that is the extra work that had to be done :)
[13:29] <mandel> super easy
[13:30] <karni> ralsina_: metadata speed up works fine, is tested along content provider operations, and works only in SyncService. *If* we want to delete an item from a playlist, we need the _id column from playlists_songs, and the rest of columns (LEFT JOIN) from the songs table.
[13:30] <karni> ralsina_: To make that work, _id is mapped to playlists_songs._id, and delete works as expected, but that breaks the album view (and I do _not_ know why, because it should NOT be touching this part of content provider, this is not what this content resolves to).
[13:31] <ralsina_> karni: sigh
[13:31] <karni> ralsina_: To make things funny, if I disable that column mapping, so _id maps to songs._id (in the playlists_songs view), album view has proper projection!
[13:31] <karni> Now, that's a "wtf"
[13:31] <ralsina_> karni: I am guessing you ran into a bug somewhere in the stack
[13:31] <ralsina_> karni: which of course, helps you not at all
[13:31] <karni> ralsina_: Yes, I would assume so.
[13:31] <karni> heheh
[13:31] <karni> Well, I'll do my best.
[13:32]  * karni dives back in
[13:32] <ralsina_> karni: advice from running into similar things: change order of things in your query and see what happens
[13:32] <ralsina_> karni: of course it's a fragile "solution" if it works
[13:32] <karni> ralsina_: :D
[13:32] <karni> I may try that :)!
[13:33]  * karni was hoping to move that card forward yesterday
[13:33] <ralsina_> could be a limitation in sqlite's left join, it has not ben the most robust thing in the world
[13:34] <alecu> karni: can you try forcing the sql statement you want instead of letting the ORM build it?
[13:35] <karni> alecu: I thought of that. Sadly, CursorLoader (a thing that loads stuff into a Cursor asynchronously, cursor backing your list of items) expects a content Uri, projection, ect
[13:35] <karni> READ: bases on content provider. So the answer is 'no'.
[13:35] <ralsina_> karni: example of  "left join in sqlite used to be broken" http://comments.gmane.org/gmane.comp.db.sqlite.general/73075
[13:36] <karni> ralsina_: heh :/
[13:37] <karni> Programming. Expect the unexpected.
[13:37] <alecu> ralsina_: that's march 2012. I guess most androids are running a version of sqlite that's older than that for sure!
[13:37] <alecu> ralsina_: so, yes: it should still be broken.
[13:37] <ralsina_> alecu: the bug was introduced in the immediately previous version
[13:42] <mandel> gatox, I'm moving to add the tests to the preview, which I think is one of my lasts tasks until you need help with the gir of the error page
[13:43] <gatox> mandel, ack..... now i'm compiling your branches....... it seems to be going ok...... after that i need to go back to compile error-preview check if the standalone works ok...... and do the hack change for that branch
[13:57] <mandel> lunch time
[13:59] <karni> alecu: You asked about projection, here's how it looks like: https://pastebin.canonical.com/79253/
[13:59] <karni> alecu: note first 2-3 columns in [ brackets ]
[14:01] <ralsina_> karni: that's a whole load of fail :-(
[14:01] <karni> sounds about right :/
[14:01] <ralsina_> it's clearly broken generated sql, since there's no way both are righ
[14:02] <ralsina_> karni: how about doing a two-step query and filtering clientside? too slow?
[14:02]  * karni thinks
[14:03] <karni> As if that projection was cached.
[14:04] <karni> ralsina_: I'll give myself a moment longer to understand the underlying problem. Otherwise, I'll disable delete from playlist just for time being, and get back to it later.
[14:04] <ralsina_> karni: sounds good
[14:11] <dobey> so
[14:13] <ralsina_> so, dobey!
[14:13] <dobey> pep8 has royally screwed over my plans of releasing yesterday
[14:14] <ralsina_> pep8?
[14:15] <dobey> yep, apparently there is a newer version in raring
[14:15] <dobey> and it is spouting out a whole new slew of errors
[14:15] <ralsina_> oh
[14:25] <gatox> mandel_lunch, let me know when you are around..... need your wisdom :P
[14:34] <dobey> karni: do you perhaps have an answer for http://askubuntu.com/questions/221782/android-streaming ?
[14:35]  * karni looks
[14:36] <karni> joshuahoover: Could you please confirm this user has music streaming enabled? http://askubuntu.com/questions/221782/android-streaming
[14:38] <joshuahoover> karni: i'm going to have to have him contact support, i don't have enough info to look up his account
[14:40] <karni> joshuahoover: k, thanks
[14:42] <karni> alecu: I always thought public static final would mean a constant you can't change. Well, weird things are happening.
[14:43] <karni> alecu: I print a static final array, pass that array into a method, print the array again, and.. guess what, it changed.
[14:43] <karni> :O
[14:43] <ralsina_> public static final const reallyreally
[14:43] <karni> If it were C++, I would say "haha! that's a seg fault". Well, it's idiot proof Java. How the hell would you change a static final
[14:44] <karni> Syntax error on token "const"
[14:44] <karni> heheheeh
[14:44] <karni> I like the reallyreally part.
[14:45] <alecu> karni: if it were C++ you could cast and change at will
[14:45] <ralsina_> alecu: that's pointer-cheating :-)
[14:45] <karni> alecu: Exactly, I would overwrite that memory block.
[14:45] <alecu> karni: but on java you are expecting a bit more stability...
[14:45] <karni> alecu: If you want, I'm happy to show you that (although I don't have a better idea than TeamViewer/VNC)
[14:46] <karni> oh wait, G+ hangout
[14:46] <alecu> karni: what are the types that are changing?
[14:46] <alecu> karni: let's
[14:46] <karni> public static final String[]
[14:46] <karni> alecu: let's.. ?:)
[14:52] <dobey> final Destination[]
[15:02] <karni> alecu: Wanna see it? Otherwise, I'm nuking my debug stuff, and moving forward. I'm wasting time trying to understand how a static final can change. In my programming carieer I've never had such a pecurliar problem. I blame JVM.
[15:03] <alecu> karni: sorry, got distracted by the painters that are working on my balcony.
[15:03] <karni> alecu: np
[15:03] <alecu> karni: perhaps the sqlite driver is C, and that's changing the string underlying memory?
[15:04] <karni> alecu: Smart. I'll try passing a copy of that projection!
[15:05] <karni> alecu: Allow me to say - You just nailed some weird shit! Congrats :)
[15:05] <alecu> karni: that's my job. Nailing shit.
[15:05] <karni> alecu: I'll file a bug against.. Android, I think, in my spare time
[15:05] <karni> alecu: hahahah
[15:06] <alecu> karni: it gets messy with all the splashing :P
[15:06] <karni> HAHAHAHHAHAH
[15:07] <karni> ralsina_: per alecu's suggestion (possibly native C treading my memory), I pass in a copy of the projection, and it solves the problem. That looks like a serious Android but (I think more Android than SQLite, but let's leave that for after hours)
[15:07] <karni> serious Android *bug
[15:07] <ralsina_> yeeeeeeeech
[15:07] <ralsina_> yes, it's a bug in the sqlite java wrapper
[15:08] <ralsina_> but isn'tjava supposed to box/unbox C strings so they don't break that?
[15:08] <karni> I never, ever had to pass a copy of a projection. Just because I'm using a mapToTable (maps column to concrete table in a JOIN) doesn't mean it should tread my static finals! ;|
[15:09] <karni> ralsina_: I don't really know. I'm happy I can move forward, leaving that Android/SQLite wrapper bug for later.
[15:09] <ralsina_> karni: of course
[15:15]  * gatox lunch! brb
[15:31] <mmcc> hi folks…
[15:31] <mmcc> ralsina_: I saw your note, I'll go look at the kanban
[15:33] <ralsina_> mmcc: cool, thx!
[15:59] <gatox> ralsina_, i'm still can't access kanba
[16:00] <ralsina_> gatox: ask joshuahoover!
[16:01] <joshuahoover> gatox: i'll have dsowen get that taken care of for you
[16:01] <gatox> joshuahoover, thx
[16:10] <dobey> alecu, ralsina_: https://code.launchpad.net/~dobey/dirspec/new-pep8-warnings/+merge/136701 if you please :)
[16:10] <ralsina_> dobey: got it!
[16:16] <alecu> dobey: +1
[16:18] <ralsina_> also, align-to-opening-parenthesis sucks
[16:25] <mmcc> I have a couple of branches pending that could use reviews: https://code.launchpad.net/~mikemc/ubuntuone-client/find-proxy-tunnel-fix-1083832/+merge/136593 and https://code.launchpad.net/~mikemc/ubuntuone-control-panel/launch-separate-darwin-menu/+merge/135268
[16:26] <mmcc> the proxy-tunnel one touched windows exe launching code, so briancurtin - if you could take a look at how it works in windows when frozen, that'd be really good
[16:27] <mmcc> and if anyone wants to look at the mac packaging scripts, there's also this: https://code.launchpad.net/~mikemc/ubuntuone-windows-installer/add-cocoa-menu/+merge/135284
[16:27] <briancurtin> mmcc: i'll take a look
[16:27] <mmcc> briancurtin: thanks
[16:28] <karni> A simple MP for review, larger one coming up shortly. https://code.launchpad.net/~karni/ubuntuone-android-music/added-missing-dao/+merge/136706
[16:30] <dobey> ok, need to run for lunch and errands. bbiab
[16:32] <mmcc> Do we have a writeup anywhere about how we should use the kanban lanes? I have 8 mac tasks in the backlog, am I supposed to assign myself to all of them and move them all to todo, or only the next ones, or what? Not clear on the difference between backlog and todo…
[17:32] <dobey> mmcc: no idea really :)
[17:33] <karni> dobey: we talked on internal channel a bit about that
[17:36] <mandel> adios o/
[17:40] <karni> bye mandel
[17:40] <karni> rockstar: How do you save a streamed song, if album is 'Unknown album', artist is 'Unknown artist', and song is 'Unkown title'? You probably don't even think in terms of files, right?
[17:41] <rockstar> I don't think in terms of files, no.
[17:50] <karni> rockstar: So you're free to save them by their ids (or you even don't care about that). Nice.
[17:51] <rockstar> karni, yeah, I save them by an id.
[17:51] <rockstar> At least, that's what we do now. I may come up with something better when I get to re-writing that part.
[17:52] <karni> rockstar: ack
[17:52] <karni> prerequisite: https://code.launchpad.net/~karni/ubuntuone-android-music/added-missing-dao/+merge/136706
[17:53] <karni> playlists: https://code.launchpad.net/~karni/ubuntuone-android-music/playlist-ux-and-sync/+merge/136731
[18:11] <karni> Lunch break
[18:17] <dobey> whee xorg just crashed in some very odd way, again
[21:02] <dobey> brb
[21:51] <dobey> alecu, ralsina_: https://code.launchpad.net/~dobey/ubuntuone-dev-tools/new-pep8-warnings/+merge/136801 please
[22:32] <dobey> well i guess i should just call it a day for now
[22:32] <dobey> later all
[22:33] <karni> o/