*** Sniper_swe has joined #harmattan | 00:02 | |
*** adlan has joined #harmattan | 00:08 | |
*** jaywink has quit IRC | 00:23 | |
*** risca has joined #harmattan | 00:34 | |
*** NIN101 has quit IRC | 00:59 | |
*** aep has quit IRC | 01:00 | |
Elleo | X-Fade: not sure if you already know this, but everything in apps for meego's "internet" category also shows up in the "other" category, both on the website and in the app | 01:01 |
---|---|---|
*** scoobert1on has quit IRC | 01:02 | |
*** scoobertron has joined #harmattan | 01:02 | |
*** Sniper_swe has quit IRC | 01:09 | |
*** scoobertron has quit IRC | 01:16 | |
Sazpaimon | "Nokia Public Transport for Nokia N9" | 01:17 |
Sazpaimon | oh man | 01:17 |
Sazpaimon | OH MAN | 01:17 |
Sazpaimon | goodbye google maps | 01:17 |
*** liar has quit IRC | 01:18 | |
*** scoobertron has joined #harmattan | 01:21 | |
*** beford has quit IRC | 01:23 | |
*** scoobertron has quit IRC | 01:23 | |
itsnotabigtruck | Sazpaimon: city support is pretty lame though | 01:27 |
Sazpaimon | who cares | 01:27 |
itsnotabigtruck | but it's cool that they finally ported it | 01:27 |
Sazpaimon | it supports all the cities I live in | 01:27 |
itsnotabigtruck | and it supports none of the cities i live in :p basically unless you're in a capital/very major city it won't support it | 01:28 |
Sazpaimon | its like when people tell me "x carrier covers more of the country" | 01:28 |
Sazpaimon | im like okay | 01:28 |
Sazpaimon | next time i'm in bumfuck wyoming i'll keep that in mind | 01:28 |
Sazpaimon | of course its not the N9's fault | 01:28 |
itsnotabigtruck | well, that's different, because you want it to work everywhere you travel | 01:28 |
Sazpaimon | all of nokia public transit has the same coverage | 01:29 |
itsnotabigtruck | well, it's either nokia's or nokia's data provider's fault | 01:29 |
itsnotabigtruck | not sure if they're sourcing data from a 3rd party or direct from transit agencies | 01:29 |
Sazpaimon | they're going direct | 01:29 |
Sazpaimon | at least thats what I read on their forums | 01:30 |
Sazpaimon | from the developers | 01:30 |
CreamyG31337 | wow it works in edmonton | 01:30 |
CreamyG31337 | not calgary | 01:30 |
CreamyG31337 | that's funny | 01:30 |
Sazpaimon | they cant just use GTFS data i guess | 01:30 |
Sazpaimon | contract issues | 01:30 |
CreamyG31337 | no vancouver either | 01:31 |
Sazpaimon | the fact is though | 01:31 |
Sazpaimon | this app is absoutely useless for anyone that's *supposed* to own an N9 | 01:31 |
CreamyG31337 | lol works for "denmark" | 01:31 |
Sazpaimon | so the fact that we even got it is astounding | 01:31 |
Sazpaimon | also the app said it supports NJ transit when i launched it | 01:32 |
Sazpaimon | and that isnt on the site | 01:32 |
Sazpaimon | so its possible | 01:32 |
*** arcean__ has joined #harmattan | 01:34 | |
itsnotabigtruck | Sazpaimon: what sort of contract issues? | 01:36 |
Sazpaimon | well, many transit agencies have specific license agreements with their APIs | 01:36 |
itsnotabigtruck | looks like the local bus agency has a public gtfs dataset | 01:36 |
*** arcean_ has quit IRC | 01:36 | |
itsnotabigtruck | so does the bus agency at home | 01:37 |
*** FACEFOX-DOT-COM has quit IRC | 01:37 | |
Sazpaimon | i think nokia is playing it safe and reaching out to agencies directly | 01:38 |
Sazpaimon | https://www.nokia.com/gb-en/support/product/public-transport/troubleshooting/ | 01:39 |
Sazpaimon | looks like it supports more cities just without timetables | 01:40 |
*** Natunen has quit IRC | 01:40 | |
itsnotabigtruck | what good is "without timetables"...what would that actually mean | 01:41 |
CreamyG31337 | go to this bus stop... if busses are running today, you might see one | 01:42 |
itsnotabigtruck | lol | 01:42 |
Sazpaimon | itsnotabigtruck, probably equal to the public transit in the maps app | 01:43 |
itsnotabigtruck | yeah, that isn't so hot really | 01:43 |
CreamyG31337 | i really can't imagine | 01:43 |
*** FACEFOX-DOT-COM has joined #harmattan | 01:43 | |
itsnotabigtruck | maybe i'll post some links to gtfs info pages in the beta labs forum though i'm not getting my hopes up | 01:43 |
itsnotabigtruck | looked over the ToU for the data of interest and didn't see anything that would be hugely objectionable | 01:43 |
itsnotabigtruck | e.g. you must turn over 75% of your profits to us, mua ha ha | 01:43 |
CreamyG31337 | nokia has no profits so that's fine :P | 01:44 |
itsnotabigtruck | haha | 01:44 |
*** ajalkane has quit IRC | 01:44 | |
Sazpaimon | i just tested a route in calgary | 01:46 |
Sazpaimon | it gave me a timetable, but not a start time | 01:47 |
Sazpaimon | just a route time I think | 01:47 |
CreamyG31337 | yeah like "your trip will take an hour" but really doesn't include the time spent waiting | 01:48 |
Sazpaimon | and it tells you what routes to take | 01:49 |
*** FACEFOX-DOT-COM has joined #harmattan | 01:51 | |
*** FACEFOX-DOT-COM has quit IRC | 01:51 | |
Sazpaimon | thats not so bad i guess | 01:53 |
*** FACEFOX-DOT-COM has joined #harmattan | 01:55 | |
Sazpaimon | surprisingly, it works for OCTA as well | 01:55 |
Sazpaimon | which isnt liste | 01:55 |
Sazpaimon | it's in orange county california, where public transit is kind of an afterthought | 01:55 |
Sazpaimon | with timetable support | 01:55 |
Sazpaimon | checking the listing, it says it;s listed as "estimated" routing | 01:56 |
Sazpaimon | so theyre getting better | 01:58 |
*** gabriel9 has quit IRC | 02:00 | |
*** scoobertron has joined #harmattan | 02:05 | |
*** scoobertron has quit IRC | 02:14 | |
*** faenil has joined #harmattan | 02:15 | |
*** scoobertron has joined #harmattan | 02:18 | |
*** Sazpaimon_ has joined #harmattan | 02:22 | |
*** Sazpaimon_ has joined #harmattan | 02:23 | |
*** Sazpaimon_ has joined #harmattan | 02:23 | |
*** Sazpaimon_ has joined #harmattan | 02:23 | |
*** Sazpaimon_ has joined #harmattan | 02:23 | |
*** Sazpaimon has quit IRC | 02:26 | |
*** scoobertron has quit IRC | 02:26 | |
*** Venemo_N950 has joined #harmattan | 02:38 | |
*** faenil has quit IRC | 02:42 | |
*** aquarius has quit IRC | 02:58 | |
*** DrGrov has joined #harmattan | 03:03 | |
*** lildeimos has quit IRC | 03:17 | |
*** leinir_ has joined #harmattan | 03:38 | |
*** leinir_ has joined #harmattan | 03:38 | |
*** leinir has quit IRC | 03:39 | |
*** DrGrov has left #harmattan | 03:48 | |
*** arcean__ has quit IRC | 04:02 | |
*** pinheiro_ has joined #harmattan | 04:26 | |
*** pinheiro has quit IRC | 04:27 | |
*** elldekaa has joined #harmattan | 05:00 | |
*** oberling_ has joined #harmattan | 05:09 | |
*** oberling has quit IRC | 05:13 | |
*** Arie has joined #harmattan | 05:21 | |
*** pinheiro_ has quit IRC | 05:31 | |
*** Natunen has joined #harmattan | 06:23 | |
*** elldekaa has quit IRC | 06:24 | |
*** Arie has quit IRC | 06:26 | |
*** Arie has joined #harmattan | 06:28 | |
*** Arie has quit IRC | 06:40 | |
*** Arie has joined #harmattan | 06:41 | |
*** Sazpaimon_ is now known as Sazpaimon | 06:44 | |
*** Arie has quit IRC | 07:18 | |
*** e-yes has joined #harmattan | 08:00 | |
*** beford has joined #harmattan | 08:41 | |
*** FACEFOX-DOT-COM has quit IRC | 08:44 | |
*** FACEFOX-DOT-COM has joined #harmattan | 08:51 | |
*** FACEFOX-DOT-COM has quit IRC | 08:57 | |
*** khertan has quit IRC | 09:08 | |
*** FACEFOX-DOT-COM has joined #harmattan | 09:09 | |
*** FACEFOX-DOT-COM has quit IRC | 09:18 | |
*** FACEFOX-DOT-COM has joined #harmattan | 09:27 | |
*** FACEFOX-DOT-COM has quit IRC | 09:41 | |
*** FACEFOX-DOT-COM has joined #harmattan | 09:52 | |
*** FACEFOX-DOT-COM has quit IRC | 10:02 | |
*** macmaN has quit IRC | 10:12 | |
*** FACEFOX-DOT-COM has joined #harmattan | 10:13 | |
*** jaywink has joined #harmattan | 10:17 | |
*** FACEFOX-DOT-COM has joined #harmattan | 10:18 | |
*** FACEFOX-DOT-COM has joined #harmattan | 10:23 | |
*** Venemo_N950 has quit IRC | 10:23 | |
*** FACEFOX-DOT-COM has quit IRC | 10:30 | |
*** jaywink has quit IRC | 10:34 | |
*** FACEFOX-DOT-COM has joined #harmattan | 10:38 | |
*** FACEFOX-DOT-COM has quit IRC | 10:40 | |
*** gabriel9 has joined #harmattan | 10:51 | |
*** FACEFOX-DOT-COM has joined #harmattan | 10:55 | |
*** auenfx4 has quit IRC | 11:18 | |
*** auenf has joined #harmattan | 11:21 | |
*** NIN101 has joined #harmattan | 11:32 | |
*** NIN102 has joined #harmattan | 11:33 | |
*** NIN102 has quit IRC | 11:35 | |
*** Free-MG has joined #harmattan | 11:35 | |
*** leinir_ is now known as leinir | 11:50 | |
*** piggz has quit IRC | 11:56 | |
*** macmaN has joined #harmattan | 12:02 | |
*** arcean has joined #harmattan | 12:13 | |
*** oberling_ is now known as oberling | 12:18 | |
*** scoobertron has joined #harmattan | 12:19 | |
*** piggz has joined #harmattan | 12:26 | |
*** shanttu has joined #harmattan | 12:43 | |
*** NielDK has joined #harmattan | 12:48 | |
*** NielDK has quit IRC | 12:53 | |
*** elldekaa has joined #harmattan | 12:56 | |
*** shanttu has quit IRC | 13:05 | |
*** piggz has quit IRC | 13:06 | |
*** adlan has quit IRC | 13:06 | |
*** piggz has joined #harmattan | 13:12 | |
*** liar has joined #harmattan | 13:14 | |
*** gabriel9 has quit IRC | 13:19 | |
*** Free-MG has quit IRC | 13:24 | |
*** djszapi has joined #harmattan | 13:25 | |
djszapi | beford: ping | 13:25 |
*** diverse_izzue has joined #harmattan | 13:33 | |
*** aep has joined #harmattan | 13:35 | |
*** diverse_izzue has quit IRC | 13:44 | |
*** piggz has quit IRC | 13:47 | |
*** diverse_izzue has joined #harmattan | 13:48 | |
*** faenil has joined #harmattan | 13:50 | |
*** elldekaa has quit IRC | 13:52 | |
*** piggz has joined #harmattan | 14:14 | |
*** elldekaa has joined #harmattan | 14:17 | |
*** gabriel9 has joined #harmattan | 14:18 | |
*** liar has quit IRC | 14:19 | |
*** liar has joined #harmattan | 14:20 | |
*** piggz has quit IRC | 14:23 | |
*** scoobertron has quit IRC | 14:41 | |
*** beford has quit IRC | 14:42 | |
*** scoobertron has joined #harmattan | 14:42 | |
*** M4rtinK has joined #harmattan | 14:47 | |
djszapi | Jaffa_: got to a Mac PC ? | 14:48 |
*** risca has quit IRC | 14:59 | |
*** NIN101 has quit IRC | 15:43 | |
*** rlinfati has joined #harmattan | 15:45 | |
*** rlinfati has quit IRC | 15:46 | |
*** DocScrutinizer has quit IRC | 15:50 | |
*** DocScrutinizer has joined #harmattan | 15:50 | |
*** denism has quit IRC | 15:57 | |
*** scoobertron has quit IRC | 16:06 | |
*** scoobertron has joined #harmattan | 16:09 | |
*** arcean has quit IRC | 16:15 | |
*** piggz has joined #harmattan | 16:20 | |
*** trx has quit IRC | 16:26 | |
*** denism has joined #harmattan | 16:28 | |
*** acpi_ has quit IRC | 16:36 | |
*** arcean has joined #harmattan | 16:36 | |
*** faenil has quit IRC | 16:40 | |
*** faenil has joined #harmattan | 16:42 | |
*** gabriel9 has quit IRC | 16:51 | |
*** NIN101 has joined #harmattan | 16:52 | |
*** trx has joined #harmattan | 16:54 | |
*** scoobertron has quit IRC | 17:00 | |
*** acpi has joined #harmattan | 17:19 | |
*** Termana has quit IRC | 17:36 | |
*** Termana has joined #harmattan | 17:38 | |
*** aquarius has joined #harmattan | 17:42 | |
*** gabriel9 has joined #harmattan | 17:43 | |
aquarius | Elleo, ping | 17:47 |
aquarius | In a Python program running on N9, can I use subprocess.Popen to invoke another Python program in the background? | 17:49 |
aquarius | or is there a better way to run a background process? | 17:49 |
*** lildeimos has joined #harmattan | 18:05 | |
*** scoobertron has joined #harmattan | 18:08 | |
*** beford has joined #harmattan | 18:17 | |
*** NIN101 has quit IRC | 18:23 | |
*** NIN101 has joined #harmattan | 18:28 | |
*** aep has quit IRC | 18:31 | |
itsnotabigtruck | aquarius: well, what are you trying to do | 18:33 |
itsnotabigtruck | maybe you want a thread | 18:33 |
itsnotabigtruck | though python threading kinda sucks due to the GIL | 18:33 |
aquarius | itsnotabigtruck, it's to kick off a download | 18:34 |
itsnotabigtruck | oh right | 18:34 |
aquarius | I don't really want a thread, 'cos (a) threads are a horrific pain in the hole, and (b) if I exit my program, the download will stop | 18:34 |
itsnotabigtruck | right | 18:34 |
itsnotabigtruck | that wouldn't solve the problem | 18:34 |
aquarius | so I have a little downloader program which works (!) | 18:34 |
aquarius | *and* it shows progress in TransferUI | 18:34 |
aquarius | yay me :) | 18:34 |
itsnotabigtruck | nice | 18:34 |
aquarius | but I'm not sure how to kick it off | 18:35 |
itsnotabigtruck | anyway, yeah, that's probably what you want...might need to do something special to keep ti from getting killed when the parent exits | 18:35 |
aquarius | also, I'm not sure how to *get* to the transferUI other than programmatically telling it to show :P | 18:35 |
itsnotabigtruck | also actually, you probably don't want Popen because that's if you want the output | 18:35 |
aquarius | well... | 18:35 |
aquarius | I am in two minds about whether I want the output | 18:35 |
aquarius | because the downloader ought to be able ot report back to the main program when it's finished | 18:36 |
aquarius | and having both of them communicate over D-Bus is another pain in the hole that I'd like to avoid if I can ;) | 18:36 |
itsnotabigtruck | hmm, yeah, you do need subprocess.Popen | 18:37 |
aquarius | the subprocess approach is annoying because I can't tell where the output from the subprocess *goes* | 18:37 |
itsnotabigtruck | because the other ones always wait | 18:37 |
aquarius | even if I set stdout=sys.stdout in subprocess.Popen I still can't see the downloader's output :( | 18:37 |
aquarius | which makes it hard to work out why it isn't working ;) | 18:38 |
itsnotabigtruck | sp = subprocess.Popen(['/abs/path/to/exe'], close_fds=True) | 18:38 |
itsnotabigtruck | like that | 18:38 |
aquarius | ooh! | 18:39 |
aquarius | what's close_fds? | 18:39 |
itsnotabigtruck | there might be some complexities to avoid making zombie processes | 18:39 |
aquarius | i don't know as much about how processes work as I should do, I think. | 18:39 |
itsnotabigtruck | it prevents the files open in your main program from being carried over to the subprocess | 18:39 |
itsnotabigtruck | which is an artifact of how process launching in linux works | 18:39 |
itsnotabigtruck | you don't spawn a process on linux like you do in windows | 18:39 |
itsnotabigtruck | instead, you split your process in two, then load the new executable over the current one | 18:40 |
itsnotabigtruck | then the original process waits for the other process and/or keeps going | 18:40 |
itsnotabigtruck | and loading the executable allows stuff to be carried over from the original process, like open files | 18:41 |
itsnotabigtruck | hmm | 18:42 |
aquarius | I did wonder about forking instead of starting a whole separate process | 18:42 |
itsnotabigtruck | maybe you should use a thread to spawn and wait on the subprocess | 18:42 |
aquarius | but I don't really grok forking properly :) | 18:42 |
aquarius | (er, obviously forking *is* a separate process, of course) | 18:43 |
itsnotabigtruck | then, when the subprocess finishes, then let the main thread know | 18:43 |
aquarius | but does a forked process inherit the QApplication from the main one? etc, etc | 18:43 |
itsnotabigtruck | the idea is that if it returns an error you wat to be able to pop up a box | 18:43 |
itsnotabigtruck | ...unless | 18:43 |
aquarius | argh, threading :( | 18:43 |
itsnotabigtruck | how do grob and transfer ui handle failed downloads | 18:43 |
itsnotabigtruck | e.g. what happens if a download blows up halfway through | 18:43 |
aquarius | transferui has a "download failed" setting | 18:43 |
*** jluisn has joined #harmattan | 18:44 | |
itsnotabigtruck | is there any sort of pop-up notification? | 18:44 |
aquarius | not afaict | 18:44 |
aquarius | well, sorta | 18:44 |
aquarius | you get the little red arrow in the notification bar at the top | 18:44 |
aquarius | I think | 18:44 |
aquarius | it is difficult to test | 18:44 |
aquarius | since I had to rtfs for the C++ transferUI class and then translate it into Python and talk to D-Bus directly ;p | 18:44 |
itsnotabigtruck | anyway...i guess you could just leave all the zombie processes behind and they'll be reaped when the main app exits | 18:44 |
aquarius | so zombies get reaped but still-running-live processes don't, correct? | 18:45 |
itsnotabigtruck | right, a zombie is something that gets left behind, if i understand it, if the parent process is still running but the child process exited | 18:47 |
itsnotabigtruck | and the parent process didn't wait on the child process | 18:47 |
villager | you don't have to wait, in addition to wait() you can also call the subprocess object's poll() method... any operation that retrieves the child's return code would reap the child | 18:51 |
aquarius | villager, what I want is to kick off the downloader in such a way that quitting the main program doesn't quit the downloader, but I can still see the downloader's output somewhere (ideally in the console where I started the main program)... and I don't know the best way to do that :) | 18:53 |
itsnotabigtruck | villager: well, the poll function is just doing a non-waiting waitpid or something like that | 18:54 |
itsnotabigtruck | so it still counts as "waiting" :p | 18:54 |
villager | aquarius: well I don't see anything wrong with the subprocess approach | 18:55 |
villager | itsnotabigtruck: sure, but it's too easy to confuse the newbies if you don't say such things... the waitpid stuff isn't exactly intuitive | 18:56 |
aquarius | har! "no module named dbus". :) | 18:56 |
aquarius | that'd explain it :P | 18:57 |
aquarius | so, new question: how am I supposed, as a user, to *get* to the transferUI? | 18:58 |
aquarius | should apps provide a way of showing it or something? | 18:58 |
aquarius | ha haa! and downloading works. sweet. | 18:59 |
villager | aquarius: the child isn't killed just because the main program exits... under certain circumstances, such as the parent being a controlling terminal or something, the child may receive a SIGHUP, but even that's not necessarily fatal to the child if it catches it or ignores it or whatever | 18:59 |
aquarius | still don't know how to best integrate the transferui into my app :) | 18:59 |
*** liar has quit IRC | 19:00 | |
villager | aquarius: for a non-terminal app, it's probably not a problem | 19:00 |
aquarius | aha, the little white transfer arrow appears. Nice. | 19:02 |
villager | as for transferui... no idea | 19:02 |
aquarius | so, advice sought: how should my separate downloader program tell its main program that it's finished? | 19:03 |
aquarius | I could have the downloader print "it is done" on stdout or something, but that'd require the main program to *listen* to stdout, and I don't know how to do that nonblockingly. | 19:03 |
*** liar has joined #harmattan | 19:03 | |
villager | aquarius: are you using Qt? | 19:06 |
aquarius | villager, I am | 19:07 |
aquarius | pyside + qt + qml | 19:08 |
aquarius | (and I don't know whether enabling the main program to listen to the downloader's stdout will screw up the downloader-keeps-working-if-the-main-program-quits policy) | 19:09 |
villager | aquarius: well the subprocess object has a stdout object that you want to read from... I think you can give the fd of that stdout object to QSocketNotifier or something and it'll call your function when there's something to read or when the child terminates (stdout gets EOF-ed when the child terminates) | 19:10 |
villager | aquarius: otherwise you could use a timer or something to poll, I suppose | 19:10 |
*** jluisn has quit IRC | 19:11 | |
*** jaywink has joined #harmattan | 19:12 | |
*** lbt has quit IRC | 19:13 | |
*** jluisn has joined #harmattan | 19:13 | |
villager | aquarius: hmm, or you could use QProcess instead of Python's subprocess stuff, might work too | 19:14 |
aquarius | interesting, I could do that | 19:15 |
aquarius | need to read up on it, obviously, but that might not be a bad idea; it'll be better integrated | 19:15 |
rzr | i have a sample for that if you want | 19:25 |
rzr | i made a rsync ui in python | 19:25 |
*** scoobertron has quit IRC | 19:25 | |
rzr | i just need to upload it somewhere | 19:26 |
*** pinheiro has joined #harmattan | 19:28 | |
*** scoobertron has joined #harmattan | 19:33 | |
*** liar has quit IRC | 19:34 | |
*** liar has joined #harmattan | 19:36 | |
*** jluisn has quit IRC | 19:37 | |
*** mschlens_ has joined #harmattan | 19:40 | |
*** mschlens has quit IRC | 19:43 | |
*** mschlens_ is now known as mschlens | 19:43 | |
*** aep has joined #harmattan | 19:46 | |
* aquarius reads about QProcess | 19:56 | |
aquarius | hard to tell whether quitting the main process will kill a child QProcess :( | 19:56 |
*** gabriel9 has quit IRC | 19:58 | |
*** cityLights has quit IRC | 20:02 | |
*** scoobertron has quit IRC | 20:11 | |
djszapi | beford: ping | 20:18 |
beford | hola djszapi | 20:18 |
djszapi | beford: you are apparently not in #ocs, but wanted to ask you for a Mac test. | 20:18 |
beford | oh yea | 20:19 |
beford | different IRC clients, need to set the channels on all of them | 20:19 |
itsnotabigtruck | aquarius: better ignore sighup in the child process | 20:34 |
Jaffa_ | djszapi: Sorry, Qt SDK needed XCode, which turned out to be more involved :-/ | 20:35 |
itsnotabigtruck | oh, also, better catch SIGTERM and abort the download | 20:43 |
*** arcean is now known as arcean_ | 20:46 | |
*** arcean_ is now known as arcean | 20:47 | |
djszapi | Jaffa_: np | 20:47 |
*** arcean has quit IRC | 20:47 | |
*** arcean has joined #harmattan | 20:47 | |
Elleo | aquarius: I just used subprocess to launch my external configuration program with statusnet-meego, but I used it inconjunction with invoker rather than launching it directly | 20:48 |
Elleo | aquarius: like this: http://pastebin.com/5CYthyEm but I'm not suggesting that was necessarily the smart thing to do ;) | 20:48 |
Elleo | aquarius: for your purposes with a separate downloader thing running perhaps it'd be better to be communicate over dbus though | 20:49 |
itsnotabigtruck | oh yeah...you could use invoker nowait | 20:49 |
itsnotabigtruck | do that | 20:49 |
Elleo | and if you setup a .service file dbus will automatically launch your downloader when you first try making a call to it to tell it to download something | 20:50 |
itsnotabigtruck | aquarius: /usr/bin/invoker -te -n /absolute/path/to/exe | 20:50 |
itsnotabigtruck | one disadvantage, that'll prevent that exe from inheriting the aegis credentials of the launching process | 20:51 |
Elleo | even if that exe's from the same aegis signed package as the original? | 20:52 |
itsnotabigtruck | oh, also, if the executable is qt based you could boost it and use -tq instead for slightly faster launch speed | 20:52 |
itsnotabigtruck | i'm not sure if that's a good idea or ot | 20:52 |
itsnotabigtruck | also by qt based, i mean a c++ program using qt | 20:53 |
itsnotabigtruck | not a python program using pyside or whatever | 20:53 |
itsnotabigtruck | elleo: yeah, invoker resets the aegis credentials to the policy set for the binary being launched | 20:53 |
itsnotabigtruck | same package is irrelevant | 20:54 |
itsnotabigtruck | also that can cause some interesting results | 20:54 |
itsnotabigtruck | for example a few people have written python programs and neglected to include the shebang line, because they're noobs | 20:54 |
Elleo | but wouldn't the binary he's launching have the same credentials set in its policy? | 20:55 |
itsnotabigtruck | then they find that their aegis policy kicks in with invoker but not without | 20:55 |
itsnotabigtruck | because invoker activates the credentials based on the path | 20:55 |
djszapi | Jaffa_: beford can help. | 20:55 |
itsnotabigtruck | whereas the kernel only activates the credentials when a binary/script is executed directly | 20:55 |
itsnotabigtruck | and no, not necessarily... | 20:56 |
itsnotabigtruck | e.g. if aquarius starts storing the login data in SignOn and protects it with an aegis credential | 20:56 |
Elleo | but either way he shouldn't need any extra credentials for a download manager would he? if all he's doing is grabbing a url and dumping it in MyDocs/ somewhere | 20:56 |
Elleo | ah, hadn't thought of that | 20:56 |
itsnotabigtruck | one approach might be to grant the aegis credential to the main app but not the downloader | 20:56 |
itsnotabigtruck | then allow the downloader to inherit the credential and retrieve the signon data | 20:56 |
*** pawky|2 has quit IRC | 20:58 | |
itsnotabigtruck | there really isn't any approach safe however from someone swapping out the downloader, then causing the main app to run the downloader, to grab the oauth token | 20:59 |
itsnotabigtruck | that's kind of a fringe scenario though | 20:59 |
* Elleo quickly hacks together steal-aquarius-ubuntu-one-files.deb | 20:59 | |
itsnotabigtruck | lol | 21:00 |
*** e-yes has quit IRC | 21:01 | |
itsnotabigtruck | anyway, i think invoker -te -n should solve the zombie process problem | 21:06 |
itsnotabigtruck | you just wait for invoker to exit, and then invoker takes care of the spawned process for you | 21:07 |
itsnotabigtruck | i hope | 21:07 |
*** cityLights has joined #harmattan | 21:07 | |
aquarius | er, sorry, back -- my parents rang :) | 21:10 |
* aquarius reads scrollbacl | 21:10 | |
aquarius | what's invoker? | 21:11 |
aquarius | the downloader does not need the credentials | 21:11 |
*** pawky|2 has joined #harmattan | 21:11 | |
*** djszapi has left #harmattan | 21:11 | |
aquarius | so I do not have to worry about the downloader being able to retrieve the credentials from the main app | 21:11 |
itsnotabigtruck | aquarius: it's what you should be launching your program with, for one | 21:11 |
itsnotabigtruck | the main one | 21:12 |
itsnotabigtruck | it prevents people from launching multiple instances of it | 21:12 |
aquarius | ha! At the moment in scratchbox I launch it with meego-run, and on the phone itself I'm just doing "python myapp.py" | 21:12 |
*** piggz has quit IRC | 21:12 | |
aquarius | never heard of invoker :) | 21:12 |
itsnotabigtruck | the desktop file should end up looking like /usr/bin/invoker -te -s /opt/soandso/soandso.py | 21:12 |
itsnotabigtruck | or something like that | 21:13 |
itsnotabigtruck | also soandso.py needs to be +x and have a shebang line | 21:13 |
aquarius | ah, right. I haven't thought about packaging it up yet; I want to mae the thing work first :) | 21:14 |
aquarius | I like the splash screen idea though | 21:14 |
aquarius | and single-instance | 21:14 |
itsnotabigtruck | splash screen is a bad idea unless the program starts slowly | 21:14 |
itsnotabigtruck | but single instance is important | 21:14 |
aquarius | what's -te ? | 21:14 |
itsnotabigtruck | type = executable | 21:14 |
aquarius | ah OK | 21:15 |
*** scoobertron has joined #harmattan | 21:15 | |
itsnotabigtruck | the other types try to run your program faster by loading it as a library and caching stuff | 21:15 |
itsnotabigtruck | you don't want that because it can't work with python, for one | 21:15 |
aquarius | d for QML, surely? Or does it count as an executable 'cos it's a python app (even though it happens to use qml)? | 21:15 |
itsnotabigtruck | the qmlness is irrelevant | 21:15 |
aquarius | k | 21:15 |
aquarius | this is a rollercoaster of a learning experience, this :) | 21:15 |
itsnotabigtruck | you can't make libraries with python, so d/q/m can't possibly work | 21:15 |
itsnotabigtruck | libraries in the sense of actual loadable .so files | 21:16 |
itsnotabigtruck | since python is a scripting language | 21:16 |
*** piggz has joined #harmattan | 21:22 | |
*** e-yes has joined #harmattan | 21:22 | |
aquarius | gotcha | 21:22 |
aquarius | Elleo, to confirm, yes, the downloader just grabs a URL and stores it in mydocs. It gets handed a temporary already-authed URL, it doesn't do the auth itself. | 21:23 |
Elleo | okay cool, aegis should muck you about then | 21:24 |
*** psycho_oreos has quit IRC | 21:27 | |
*** scoobertron has quit IRC | 21:30 | |
aquarius | I don't know anything about using the credentials manager on the phone, but that's the next stage after I've sussed out communicating back and forth with the downloader :) | 21:32 |
aquarius | hm, thinking about it, I don't actually need communication, per se, with the downloader, do I? | 21:35 |
itsnotabigtruck | aquarius: oh, so the downloader/uploader doesn't need to bother with auth? | 21:35 |
itsnotabigtruck | that makes everything so much simpler | 21:36 |
itsnotabigtruck | be mindful that process command lines are world readable | 21:36 |
Elleo | aquarius: not if the downloader is doing all its status notification via the transfer ui | 21:36 |
aquarius | I need to know that it's started (so I can show "this is downloading" in the main UI) and that it's finished (so I can change to "this is downloadED" in the main UI) and once it's finished I can check for the downloaded file; if that exists, it worked, if that didn't exist, there was an error. | 21:36 |
aquarius | that's four hundred times easier, because now all I have to do is trap program exit. | 21:36 |
*** arcean_ has joined #harmattan | 21:37 | |
aquarius | and subprocess must surely give me a way of doing that | 21:37 |
aquarius | in the limit case I can just poll the pid of it :) | 21:37 |
*** scoobertron has joined #harmattan | 21:37 | |
Elleo | aquarius: you don't even need to trap the program exit if the downloader itself talks to transferui | 21:37 |
Elleo | that way it can show progress too | 21:37 |
itsnotabigtruck | yeah, the idea is that the main program would fire and forget | 21:37 |
aquarius | Elleo, the downloader does talk to transferui and show progress, that's fine | 21:37 |
aquarius | the problem is that the main program should, if you already *have* a file, not start a new download of that file if you press the filename | 21:38 |
itsnotabigtruck | you might want to, at a minimum, blank out the URL in argv in the downloader | 21:38 |
Elleo | ah right | 21:38 |
itsnotabigtruck | or maybe pass it in an env variable and do unsetenv | 21:38 |
itsnotabigtruck | and hmm, right | 21:38 |
aquarius | so it needs to know when the downloader's finished. | 21:38 |
Elleo | aquarius: surely it needs to know when its started for that | 21:39 |
Elleo | since you don't want to start downloading it a second time if its partway through either | 21:39 |
aquarius | Elleo, yep | 21:39 |
aquarius | Elleo, but pressing an already downloaded file should launch it. Probably. :) | 21:39 |
*** arcean has quit IRC | 21:39 | |
Elleo | ah, right | 21:39 |
itsnotabigtruck | or you could just do what the browsers do and let the user download it many times | 21:39 |
itsnotabigtruck | name it like foo (1).ext | 21:39 |
aquarius | itsnotabigtruck, ya, technically having that URL visible is a little bit of a security problem, because a different app could grab that URL and pass it off to somewhere on the web. However, URLs are time-limited. So I might do a little bit to work around this (blank out argv in the downloader, as you suggest) but I'm not *too* worried agbou tit | 21:40 |
aquarius | yeah, I could do foo(1).ext, sure... but I'd like to avoid someone "double-clicking" on a filename | 21:40 |
aquarius | so one press should change the filename so you know it's downloading... | 21:41 |
aquarius | but then you need to know when to turnthat "it is downloading" indicator off again :) | 21:41 |
Elleo | how in to the whole synchronisation of things are you going to get? i.e. if a users changes a file will they be able to upload an update version? | 21:42 |
Elleo | if so have a lot of foo (1), foo (2), etc. could make that very confusing | 21:42 |
Elleo | having* | 21:42 |
*** scoobertron has quit IRC | 21:43 | |
Elleo | although perhaps that'd be better handled via an ubuntu one sharing plugin | 21:44 |
Elleo | so you could upload anything that has sharing support | 21:44 |
Elleo | sorry, just thought I'd make things more complicated for you :P | 21:44 |
*** arcean_ is now known as arcean | 21:45 | |
itsnotabigtruck | http://www.reddit.com/r/netsec/comments/sxstj/major_remote_exploit_found_in_all_woothemes/ | 21:45 |
itsnotabigtruck | a lot of blogs are about to get p0wned | 21:45 |
itsnotabigtruck | also, is this supposed to sync files, or just be like a remote file storage | 21:46 |
aquarius | remote file storage, really -- you can browse your personal cloud and then hit a particular file to download it | 21:47 |
aquarius | actual syncing is more complex. | 21:47 |
aquarius | Elleo looked at porting the actual syncdaemon from Ubuntu, but that's more work than I want to do right now and I don't know enough about meego to do it :) | 21:47 |
itsnotabigtruck | where "personal cloud" means your storage space :p | 21:48 |
itsnotabigtruck | bah cloud | 21:48 |
itsnotabigtruck | :p | 21:48 |
Elleo | yeah, I think just having a separate share plugin for uploading stuff would be nice though | 21:48 |
Elleo | I might have a look at doing that one myself, since I'm thinking of doing one for mediagoblin | 21:48 |
itsnotabigtruck | "cloud" is mostly a rebranding of stuff that's been around for basically forever, sometimes with a new coat of paint | 21:48 |
Elleo | it'd be cool to be able to share jokosher projects on ubuntu one straight from your phone | 21:49 |
itsnotabigtruck | oh yeah, so you can upload files directly from the ubuntu one app -or- activate the sharing plugin to upload from other apps | 21:49 |
itsnotabigtruck | i like it | 21:49 |
itsnotabigtruck | how does the existing dropbox integration work | 21:50 |
itsnotabigtruck | just make it like that | 21:50 |
*** gabriel9 has joined #harmattan | 21:50 | |
aquarius | I haven't used the dropbox app on meego | 21:51 |
Elleo | yeah, that was my thought | 21:51 |
aquarius | my plan is to do the basics first: allow downloading of files to the phone, which will be in itself useful | 21:52 |
aquarius | then download whole folders, then upload, then automatic photo upload, then... whatever comes next | 21:52 |
itsnotabigtruck | btw aquarius: if you want any help on accounts/signon oauth/etc. just ask me, i've messed with that stuff a bit | 21:52 |
aquarius | stopping at some point when I get bored or too busy ;) | 21:52 |
Elleo | heh | 21:52 |
itsnotabigtruck | i think you have to have an accounts plugin to have a sharing plugin | 21:52 |
aquarius | I know nothing of how to store account data on meego, which I need to know about | 21:52 |
aquarius | oauth I'm already doing, no problem there :) | 21:52 |
itsnotabigtruck | well, if you use the account system you'd replace your oauth stuff with nokia's | 21:53 |
aquarius | the app currently allows me to browse my files and download individual ones, which is fantastic | 21:53 |
*** jaywink has quit IRC | 21:53 | |
aquarius | erm | 21:53 |
itsnotabigtruck | so when the user launches the app, you'd check if there's an account added yet | 21:53 |
aquarius | how does nokia's oauth stuff help me? | 21:53 |
itsnotabigtruck | if not, you give the user a button to launch the account add stuff | 21:53 |
itsnotabigtruck | the user types their username and hits the log in button, which loads up the ubuntu oauth page | 21:53 |
aquarius | oh, right, to get an oauth token in the first place? I use the Ubuntu single sign on API to do that; I don't need to bounce people in and out of the browser, fortunately :) | 21:54 |
itsnotabigtruck | user logs in and signon takes care of acquiring the token | 21:54 |
itsnotabigtruck | the token is stored in signon | 21:54 |
itsnotabigtruck | then your app retrieves the token using the signon api | 21:54 |
itsnotabigtruck | ah...well, you could write a custom account plugin that uses that api | 21:54 |
itsnotabigtruck | or just switch to using oauth | 21:54 |
itsnotabigtruck | the nokia stuff takes care of the browser ui stuff | 21:54 |
*** Soder has joined #harmattan | 21:54 | |
itsnotabigtruck | one complication is that like i was saying above, the nokia code wants to know the username before it loads the oauth page | 21:55 |
itsnotabigtruck | and it passes the username as a query string parameter | 21:55 |
itsnotabigtruck | that works on twitter but not on most other oauth services | 21:55 |
itsnotabigtruck | ideally, ubuntu's oauth page reads that query string parameter and prefills/locks the username box | 21:55 |
itsnotabigtruck | that isn't part of the oauth standard | 21:56 |
aquarius | yeah, Ubuntu SSO provides a specific API to get an oauth token via username and password, without having to do the oauth dance | 21:57 |
aquarius | which is nice. | 21:57 |
itsnotabigtruck | what about the username thing though | 21:57 |
itsnotabigtruck | because the oauth dance is probably the easiest way to go | 21:57 |
aquarius | I can do the oauth dance if I need to, but that'll mean that the user has to type their username and password into the form on the website (ideally yes we'd fill in the username from the querystring, but we currently do not) | 21:58 |
aquarius | can I use the accounts stuff just like the keyring? where I say "here is a secret, store it for me"? | 21:58 |
itsnotabigtruck | sort of yeah...if you insist on doing it the non-oauth approach, you'd probably want to write a signon plugin | 21:59 |
itsnotabigtruck | which would then implement the ubuntu token acquisition stuff | 21:59 |
*** leinir has quit IRC | 22:00 | |
aquarius | blimey | 22:00 |
itsnotabigtruck | not sure the oauth plugin can be used without it handling the oauth token acquisition | 22:00 |
itsnotabigtruck | there is a password plugin that basically lets you store a string | 22:01 |
aquarius | that'd be more the thing, I think | 22:01 |
aquarius | how do I use this stuff? | 22:01 |
itsnotabigtruck | but then you have to clone the logic between your app and the account plugin, i think | 22:01 |
itsnotabigtruck | and that makes the account plugin significantly more complicated because the way those work is very annoying | 22:01 |
aquarius | this is sounding a lot like the voice of the universe saying "just store your token in a QML database" :) | 22:02 |
itsnotabigtruck | lol | 22:02 |
itsnotabigtruck | well, here's what i'm thinking | 22:02 |
*** NIN101 has quit IRC | 22:02 | |
itsnotabigtruck | login logic goes into a signon plugin | 22:02 |
itsnotabigtruck | account plugin can be done with pure xml, relying on the signon plugin to do the heavy lifting | 22:02 |
itsnotabigtruck | main app calls into accounts/signon libraries to retrieve the token | 22:03 |
itsnotabigtruck | if the token's expired, then the signon plugin automatically renews it (popping up the ui to rerequest the password) | 22:03 |
itsnotabigtruck | and then the account plugin registers the sharing plugin | 22:04 |
itsnotabigtruck | i think several of the built-in nokia services are implemented in that fashion | 22:04 |
*** scoobertron has joined #harmattan | 22:04 | |
aquarius | that sounds easy | 22:05 |
Elleo | this approach isn't taking into account aquarius' aversion to writing C++ ;) | 22:06 |
aquarius | y'know, in theory :) | 22:06 |
aquarius | I have to do it in c++? | 22:06 |
Elleo | which would probably be necessary for writing the signon plugin | 22:06 |
aquarius | that's a nono then :P | 22:06 |
aquarius | the voice of the universe gets one notch louder. :P | 22:06 |
Elleo | heh | 22:06 |
SpeedEvil | Isn't the voice of the notch universe blocky? | 22:06 |
itsnotabigtruck | lol | 22:07 |
itsnotabigtruck | anyway, yeah, my approach is going to involve significant amounts of c or c++ | 22:07 |
Elleo | perhaps someone should write a signon plugin that just proxies everything out to a designated dbus service | 22:07 |
Elleo | so the bulk of the work can then be done via a $language_of_choice program | 22:08 |
Elleo | (I'm not volunteering.) | 22:08 |
itsnotabigtruck | lol | 22:10 |
itsnotabigtruck | or just suck it up and implement it...i don't think it's actually all that bad | 22:10 |
*** elldekaa has quit IRC | 22:10 | |
aquarius | you may not, since you can actually *write* C++ :) | 22:10 |
itsnotabigtruck | signon takes care of all the password prompting stuff for you | 22:10 |
itsnotabigtruck | qt makes the string processing/http/etc. stuff not so painful | 22:10 |
aquarius | this is not really a question of laziness so much as inability; I'm prepared to hat up if I need to for certain things (I have the first python program ever to use the transferui, don't I? :)) but "learn c++ first" is a bit of a high bar :) | 22:11 |
itsnotabigtruck | https://one.ubuntu.com/developer/account_admin/issue_tokens/cloud looks like the api is pretty much just a get request | 22:12 |
itsnotabigtruck | oh, and how did you get python talking to transferui? | 22:12 |
itsnotabigtruck | also an advantage of not using signon's oauth feature is that you can probably be backward compatible with pr1.1 this way | 22:12 |
aquarius | by rtf-transferui.cpp-s to work out what all the D-Bus calls are and then implementing calls to the ones I need in Python | 22:13 |
itsnotabigtruck | oh, also | 22:13 |
itsnotabigtruck | you could probably clone over a lot of the signon oauth plugin code | 22:13 |
itsnotabigtruck | it's lgpl | 22:13 |
itsnotabigtruck | unless it's gpl, i forget | 22:13 |
itsnotabigtruck | https://gitorious.org/accounts-sso/signon-oauth2/blobs/master/src/oauth2plugin.cpp | 22:13 |
itsnotabigtruck | it's lgpl2 | 22:13 |
*** jluisn has joined #harmattan | 22:14 | |
*** teleshoes has joined #harmattan | 22:14 | |
aquarius | the Ubuntu SSO API to get a token, given a username and password, is indeed just a GET request, which is why I'm happy to do it myself rather than involve a load of C++ and the accounts system ;) | 22:15 |
itsnotabigtruck | aquarius: it also makes the signon plugin quite simple though | 22:18 |
*** shanttu has joined #harmattan | 22:18 | |
itsnotabigtruck | the logic ends up being | 22:18 |
itsnotabigtruck | do i have a token? if yes, return it, if no, request a token, then store it, then return it | 22:19 |
itsnotabigtruck | oh, also if you don't have a token, and you don't have a password, you have to pop up the password gui and obtain one | 22:20 |
aquarius | I quite like the idea of having the n9 provide the enter-the-password screns for me so I don't have to do it myself | 22:20 |
itsnotabigtruck | https://gitorious.org/accounts-sso/signon/blobs/master/src/plugins/password/passwordplugin.cpp | 22:21 |
itsnotabigtruck | the passwordplugin is pretty much the simplest signon plugin, note how much less overwhelming it is than that other one :p | 22:21 |
aquarius | but I don't want to *store* the password, per se; I want to ask for the username and password, use them to get an oauth token, and store the oauth token | 22:21 |
itsnotabigtruck | of course that doesn't have any of the logic for retrieving a token | 22:21 |
itsnotabigtruck | right, the entire point of this is to avoid storing the password | 22:21 |
aquarius | just so I understand this: I have to write a C++ plugin thingy to use the N9's accounts system at all? | 22:21 |
aquarius | I can't just use it like, say, the gnome keyring? | 22:21 |
itsnotabigtruck | yeah, because the system for adding the account is based entirely around c++ plugins | 22:23 |
itsnotabigtruck | when the user adds the account, it asks for a username and password and you need to stick logic in there so that it accepts the password and uses it to retrieve a token | 22:24 |
*** jaywink has joined #harmattan | 22:25 | |
aquarius | :( | 22:26 |
aquarius | that's quite annoying, then :( | 22:26 |
itsnotabigtruck | aquarius: yeah :( most of the system assumes you'll be writing things in c++ with use of qt | 22:29 |
itsnotabigtruck | and qml | 22:29 |
itsnotabigtruck | or meegotouch | 22:29 |
aquarius | ya. This is why I keep hating Nokia, because I get all this "just use qml! it's all declarative and javascript and you like that!" and I say "yes, yes I do" and then when I need to do anything one inch complicated I have to write c++. :) | 22:29 |
teleshoes | i fucking hate this inversion | 22:30 |
itsnotabigtruck | right, because qml isn't a substitute for c++, even though people keep treating it that way | 22:30 |
teleshoes | everything needs gui code | 22:30 |
itsnotabigtruck | the real meat shouldn't be javascript and it shouldn't be in the qml files | 22:30 |
itsnotabigtruck | the qml is like a view that calls back into the real code | 22:30 |
teleshoes | one should not need a gui toolkit to list contacts | 22:31 |
itsnotabigtruck | and c++ is a terrible language in a lot of ways...qt makes it a lot less painful though | 22:31 |
*** jaywink_ has joined #harmattan | 22:31 | |
itsnotabigtruck | though qt is kind of weird in its own ways | 22:31 |
Elleo | aquarius: I just shove my oauth tokens in gconf like a bad person for my python statusnet client | 22:31 |
itsnotabigtruck | e.g. signals/slots and MOC, and it's non-use of exceptions | 22:31 |
teleshoes | really weird | 22:32 |
teleshoes | no exceptions | 22:32 |
teleshoes | yea | 22:32 |
itsnotabigtruck | *its | 22:32 |
aquarius | ah, I feel a bit differently. I don't think QML should just be views, like empty templates and all the work happens in the back end, because that makes writing applications *hard*. | 22:32 |
aquarius | Now, maybe that's a goal for meego, but if it is then I'm happy to say that it's not a system I wanna work with :) | 22:32 |
teleshoes | i think there should be clean separation between the views and the business logic | 22:33 |
aquarius | lots of people think writing and compiling c++ is not hard, which is good for them and I am envious of their skills, but I think I'm more representative of the general mass of stupid people than c++ programmers are ;) | 22:33 |
aquarius | teleshoes, I'd have no problem with that approach if the business logic wasn't forced to be in c++ :) | 22:34 |
teleshoes | forced? | 22:34 |
teleshoes | c++ is a shitty language | 22:34 |
teleshoes | but you still need a programming language to program in | 22:34 |
aquarius | teleshoes, see above conversation. If I want my application to integrate with the Meego accounts system, I am forced to write C++ to do it. Not Python with PySide, not JavaScript in QML views: C++. Which makes me unhappy. | 22:35 |
aquarius | and JS is a programming language, and a good one at that, | 22:35 |
teleshoes | non-programmers shouldnt be the target for an application development framework | 22:35 |
teleshoes | ah, you just want a better lang than c++ | 22:35 |
teleshoes | totes | 22:35 |
teleshoes | complete python bindings would be really nice | 22:35 |
itsnotabigtruck | the problem is that there's no replacement for c or c++ | 22:35 |
aquarius | I've got my whole U1 app here written in JavaScript in QML, apart from downloading the actual URLs to the filesystem and that's only in Python because I'm *obliged* to write it in Python ;) | 22:35 |
itsnotabigtruck | and if there was, js certainly wouldn't be it | 22:35 |
teleshoes | haskell | 22:36 |
itsnotabigtruck | lolno | 22:36 |
aquarius | teleshoes, not non-programmers... just normal programmers. :) | 22:36 |
teleshoes | normal? | 22:36 |
teleshoes | as in, not-c | 22:36 |
itsnotabigtruck | the problem is that c/c++ are the only languages that provide direct access to anything on the system | 22:36 |
aquarius | itsnotabigtruck, as yesterday, we shall have to disagree with one another on whether JavaScript is a good language or not. :) | 22:36 |
itsnotabigtruck | if you can do it, you can do it on one of those two | 22:36 |
teleshoes | ecmascript is a really interesting language | 22:36 |
itsnotabigtruck | sure, something might be easier to do in python, or js, or haskell, or whatnot | 22:36 |
teleshoes | the problem with c | 22:37 |
teleshoes | is SIMPLY | 22:37 |
teleshoes | that everyone uses it | 22:37 |
teleshoes | period | 22:37 |
itsnotabigtruck | but then there's the rest of the things that you simply can't do, at least without dropping down to c and writing a bridge between the two | 22:37 |
itsnotabigtruck | which kinda doesn't count because then we're writing c again :p | 22:37 |
teleshoes | c is a terrible, terrible language | 22:37 |
aquarius | this is what D-Bus is for. I have no problem with, for example, the transferui library only being in C++, as it in fact is, because what it's *actually* doing is wrapping D-Bus calls and I can do that from Python if need be. | 22:38 |
itsnotabigtruck | c can be nice...my main beefs with it are the terrible standard library, and the extreme pain of error handling | 22:38 |
teleshoes | and typing? | 22:38 |
aquarius | What I don't like is stuff where you are required to write a plugin in C++ because instead of exposing the API over D-Bus they did something else. | 22:38 |
itsnotabigtruck | well, you keep talking about normal programmers | 22:39 |
itsnotabigtruck | i mean, imo a normal programmer should know c | 22:39 |
itsnotabigtruck | even if you don't use it all the time | 22:39 |
itsnotabigtruck | you need to know c to know the system, and knowing the system makes you a better programmer | 22:39 |
teleshoes | once all the code in the kernel is rewritten in a sensible programming language, normal programmers can stop knowing c | 22:40 |
aquarius | we shall agree to differ here, too, then :) | 22:41 |
teleshoes | i agree c is a stupid language, but i dont see how you can say normal programmers shouldnt know c | 22:41 |
teleshoes | its everywhere | 22:41 |
mps | what would be a better language for the kernel that allows pointer manipulation etc? | 22:42 |
Elleo | aquarius: see what you've done? now we have to rewrite the whole kernel in erlang before you can finish your app ;) | 22:42 |
teleshoes | why the requirement of 'pointer manipulation'? | 22:42 |
*** jaywink_ has quit IRC | 22:42 | |
teleshoes | youre mandating c in your description | 22:42 |
itsnotabigtruck | teleshoes: because it's vital for any kind of low level programming | 22:42 |
aquarius | teleshoes, I'd view "normal programmers" as people writing, say, web applications, or mobile applications, the two big growth areas at the moment. Neither of those require any C at all, or any low-level knowledge, and I don't think they should do, either. | 22:43 |
teleshoes | sure, well, for von neumann architecture computers | 22:43 |
itsnotabigtruck | we need a better C that keeps its direct control and lack of requirement for heavy supporting code | 22:43 |
itsnotabigtruck | which ends up being written in...C | 22:43 |
mps | so you're saying we should all move to lisp machines, or something?-) | 22:43 |
aquarius | Sure, the OS should be written in something like C, and hardcore hackers -- those who *write* the OS -- need to know it | 22:43 |
teleshoes | heh, haskell | 22:43 |
aquarius | and I am constantly impressed by people like that | 22:44 |
itsnotabigtruck | most languages have complicated functionality that directly eliminates any possibility of using them at the bottom of the system | 22:44 |
itsnotabigtruck | C doesn't | 22:44 |
itsnotabigtruck | you don't even need to have any standard library at all for C to work | 22:44 |
aquarius | but I don't think that's me, and I don't think that that's the sort of people you need to attract in order to make a mobile OS viable, for example. | 22:44 |
itsnotabigtruck | well, right now there's a plague of crappy programmers getting into mobile precisely because it's a growth area | 22:44 |
teleshoes | heh | 22:45 |
itsnotabigtruck | they write low quality insecure code that gets people's phones owned | 22:45 |
aquarius | at which point the discussion stops being technical and starts becoming philosophical: is it better to have a vibrant platform with a zillion apps that everyone wants to support but where most of the apps are bollocks, or is it better to have a plaform with only a few apps but they're all really good? | 22:46 |
aquarius | not naming any names here, cough, Android. ;) | 22:46 |
*** lildeimos_ has joined #harmattan | 22:46 | |
itsnotabigtruck | lol | 22:46 |
itsnotabigtruck | well, ideally everybody would get pro overnight and start making awesome stuff all the time | 22:46 |
itsnotabigtruck | of course, that ain't happening :p | 22:46 |
Elleo | on that note I wish the ovi store had a way to filter out all the terrible "feed" apps that just display a single rss feed in an application :/ | 22:47 |
aquarius | you can square that circle by having a zillion apps all of which are good if you're prepared to pay an army of reviewers, which you can do if you've, e.g., made five hundred billion dollars selling iPods | 22:47 |
itsnotabigtruck | and if it did happen, that wouldn't be so good for me :) | 22:47 |
Elleo | just about every category is flooded with them | 22:47 |
teleshoes | i dont like apps | 22:47 |
teleshoes | what i want is a compass in my phone | 22:48 |
teleshoes | think how cool it would be to point your phone at the night sky and read the names of the constellations | 22:49 |
*** lildeimos has quit IRC | 22:49 | |
teleshoes | are there phones with compasses? | 22:49 |
aquarius | android phones all have them | 22:49 |
aquarius | I think | 22:49 |
teleshoes | aww | 22:49 |
teleshoes | i want one | 22:49 |
aquarius | certainly my Nexus S did | 22:49 |
aquarius | and Google SkyMap does precisely what you're asking for | 22:50 |
teleshoes | why doesnt the n9 have one, pouty-pout | 22:50 |
aquarius | it's quite cool :) | 22:50 |
teleshoes | aww | 22:50 |
Elleo | doesn't the n9 have a digital compass? | 22:50 |
teleshoes | >>>> ! | 22:50 |
teleshoes | does it? | 22:50 |
Elleo | well the n950 seems to | 22:50 |
teleshoes | how do i use it? | 22:50 |
teleshoes | how how how? | 22:50 |
Elleo | teleshoes: install the compass app | 22:50 |
aquarius | I wish the N9 had one so that I didn't have to walk 100 yards the wrong way down street and see the GPS dot move in the wrong direction before realising I'm walking hte wrong way ;) | 22:50 |
aquarius | if it's got one I wish the bloody maps app used it :) | 22:50 |
teleshoes | i dont use non-free software | 22:51 |
teleshoes | if i can help it | 22:51 |
Elleo | teleshoes: http://apps.formeego.org/applications/n9/pr1.0/harmattan/Location%20&%20Navigation/brujula/ | 22:51 |
teleshoes | cooool | 22:51 |
Elleo | there's a more attractive one somewhere too | 22:51 |
itsnotabigtruck | what? | 22:51 |
itsnotabigtruck | the N9 has a compass | 22:51 |
itsnotabigtruck | i don't know if there's a star chart app like what you're talking about | 22:51 |
itsnotabigtruck | but it definitely has a compass | 22:51 |
itsnotabigtruck | grab 'orienteering compass' from ovi | 22:52 |
teleshoes | did not know | 22:52 |
itsnotabigtruck | i've had some funky results with it though | 22:52 |
teleshoes | and so, there will, eventually, be a star chart type app | 22:52 |
itsnotabigtruck | i got the compass app installed and it worked great | 22:52 |
itsnotabigtruck | next day, the needle was "stuck" | 22:52 |
itsnotabigtruck | like something weird happened to the compass readings | 22:52 |
itsnotabigtruck | a few days later it started working again | 22:52 |
teleshoes | giant invisible space ship | 22:52 |
itsnotabigtruck | lol | 22:52 |
Elleo | well stellarium was ported to the n900 a while back, perhaps someone will go to the effort of getting it working on the n9 | 22:53 |
itsnotabigtruck | the N9 has everything hardware-wise except a shiny new cpu | 22:53 |
itsnotabigtruck | for an expensive high end late 2011 phone, a 45nm omap3 is pretty lame | 22:53 |
Elleo | oh, it looks like stellarium might have been ported to the n9 already: http://store.ovi.com/content/250749 | 22:54 |
itsnotabigtruck | but it does do the job well enough, and a lot of the android phones only have these overkill embedded cpus because android is slow | 22:54 |
Elleo | albeit as a £1 download | 22:54 |
Elleo | dunno if it uses the compass though | 22:54 |
Elleo | the n900 version used the accelerometers for up/down view changes | 22:54 |
teleshoes | do you happen to know if its free software? | 22:55 |
*** e-yes has quit IRC | 22:55 | |
Elleo | not sure, the standard version of stellarium is | 22:55 |
teleshoes | coooooool | 22:56 |
Elleo | but I don't know what license the mobile version is under | 22:56 |
teleshoes | im like TOTALLY thrilled | 22:56 |
*** faenil has quit IRC | 22:56 | |
itsnotabigtruck | ugh, "free software" | 22:56 |
itsnotabigtruck | hate that phrase because it's tinged with fsf religious nonsense | 22:57 |
teleshoes | i mean can i get the source code, modify it, and sell it | 22:57 |
SpeedEvil | If it's GPL, yes | 22:58 |
teleshoes | right | 22:58 |
jonni | he is also offers stellarium as free download and has released sourcecodes | 22:58 |
teleshoes | thx jonni | 22:58 |
Elleo | ah, from the reviews it sounds like the n9 version is a straight install of the desktop version | 22:58 |
itsnotabigtruck | anyway, yeah https://bitbucket.org/elemental/stellarium/downloads | 22:58 |
Elleo | unlike the n900 version which had a better mobile ui | 22:58 |
itsnotabigtruck | it looks like elemental is offering it for free as well as charging in the ovi store | 22:58 |
itsnotabigtruck | and mind you i'm not against free software, just the term free software | 22:59 |
itsnotabigtruck | because it implies caring more about the ideological aspects than the actual results | 23:00 |
teleshoes | and youre against ideas? | 23:00 |
itsnotabigtruck | that isn't what ideology means :p | 23:00 |
teleshoes | heh | 23:00 |
teleshoes | still, theres nothing actually wrong with idealism, people just like to pretend that there is so they can live their lives comfortably | 23:01 |
itsnotabigtruck | the problem is that it often is directly at the cost of quality | 23:02 |
itsnotabigtruck | people stop pushing to make OSS software better because it's good enough that it's released under some OSS license | 23:02 |
teleshoes | because money can make nice things | 23:02 |
itsnotabigtruck | never mind that it might be a garbage program | 23:02 |
teleshoes | i dont really see that happening too often | 23:02 |
itsnotabigtruck | meanwhile, commercial software usually isn't "free" but it often is better | 23:02 |
itsnotabigtruck | well, sometimes | 23:02 |
itsnotabigtruck | often it's not :p | 23:02 |
teleshoes | i mean; firefox, chromium, and...ie? | 23:02 |
itsnotabigtruck | and at the same time, the ideologues don't focus on the practical benefits of open source | 23:03 |
itsnotabigtruck | like the ability to customize | 23:03 |
itsnotabigtruck | but then at the same time, some technically "free software" is limited in that too | 23:03 |
teleshoes | yea, foss != good | 23:03 |
itsnotabigtruck | like you mention firefox, but your ability to customize firefox is limited by mozilla and their lawyers | 23:03 |
*** Robot101 has left #harmattan | 23:03 | |
teleshoes | oh? | 23:03 |
teleshoes | thats an interesting claim | 23:03 |
itsnotabigtruck | i mean, you can customize it but you have to change the name and logo | 23:03 |
teleshoes | oh | 23:03 |
teleshoes | thats cool | 23:03 |
teleshoes | one wouldnt want to pollute the namespace | 23:04 |
teleshoes | firefox should mean exactly one thing | 23:04 |
itsnotabigtruck | well, no, not really, if i'm running firefox i want it to say firefox | 23:04 |
teleshoes | well, you can call it that if you like | 23:04 |
itsnotabigtruck | that sort of nonsense is why firefox is now called "iceweasel" on debian | 23:04 |
itsnotabigtruck | i definitely don't want to run /that/ | 23:04 |
teleshoes | just as long as you dont distribute it | 23:04 |
teleshoes | trademark is NICE | 23:04 |
teleshoes | its to protect consumers | 23:04 |
itsnotabigtruck | that renders it moot, because i also don't want to have to hack every build of firefox i get to have a different name and logo | 23:04 |
itsnotabigtruck | no, it's not, it's because mozilla is less of an open source project and more of a corporation | 23:05 |
itsnotabigtruck | a corporation that makes serious money and seriously pushes people around | 23:05 |
teleshoes | mm | 23:05 |
teleshoes | its a | 23:05 |
teleshoes | non-profit | 23:05 |
teleshoes | that seriously pushes people around | 23:05 |
itsnotabigtruck | it's also why it's a complete waste to contribute to mozilla, because they're generally averse to outside contributions, and they have paid employees | 23:05 |
itsnotabigtruck | well, actually, no... | 23:05 |
*** e-yes has joined #harmattan | 23:05 | |
itsnotabigtruck | they're a non-profit which owns a for profit corporation | 23:05 |
itsnotabigtruck | which is kind of a legal loophole | 23:05 |
teleshoes | right | 23:05 |
itsnotabigtruck | it used to be a non-profit entirely but they restructured | 23:06 |
teleshoes | Net income $43.1 million (2009) | 23:06 |
itsnotabigtruck | and they have full time lawyers, a large staff, trademarks, and massive amounts of moolah coming in from google | 23:06 |
itsnotabigtruck | as opposed to some volunteer labor of love or something | 23:06 |
itsnotabigtruck | like they'd like to make themselves out to be | 23:06 |
teleshoes | no one says free software cant be lucrative, tho | 23:07 |
*** lbt has joined #harmattan | 23:07 | |
teleshoes | it doesnt make them bad to make as much money as they can, as long as they dont do terrible things | 23:07 |
teleshoes | i dont know the terrible things they do, and you seem to, tho | 23:07 |
*** scoobertron has quit IRC | 23:08 | |
teleshoes | generally speaking, software that is open source tends to be better and make people more money | 23:08 |
itsnotabigtruck | well, it's not like they're doing terrible things | 23:08 |
itsnotabigtruck | they're just doing things that are kind of unbecoming for what's supposed to be some sort of community project | 23:08 |
itsnotabigtruck | they're more like a corporate project that happens to release the source | 23:08 |
itsnotabigtruck | so, it's not like they're evil, but they aren't a good example of open source gone right | 23:08 |
teleshoes | mm, so the terrible things they do is to mistreat the mozilla community | 23:08 |
teleshoes | uhhh | 23:09 |
teleshoes | i think they ARE | 23:09 |
teleshoes | an example of os gone right | 23:09 |
teleshoes | but theyre not about free software | 23:09 |
itsnotabigtruck | mozilla is about as open is chrome is | 23:09 |
teleshoes | yea, completely open source, | 23:10 |
itsnotabigtruck | but google doesn't operate under some pretense of being some kind of charity | 23:10 |
teleshoes | but restrictive of certain freedoms | 23:10 |
teleshoes | yea that is fucked up, i wasnt aware that they made massive profits | 23:10 |
teleshoes | i thought they made modest profit, paid their employees, and funneled the profits into the project | 23:10 |
itsnotabigtruck | i mean, i'm definitely a bit bitter, esp from all the major bugs that have been ignored for a really long time | 23:10 |
itsnotabigtruck | including the ones work working patches attached | 23:10 |
itsnotabigtruck | they generally don't pay attention to things that aren't release priorities, and their release priorities don't include fixing things | 23:11 |
itsnotabigtruck | *the ones that have working | 23:11 |
*** elldekaa has joined #harmattan | 23:11 | |
itsnotabigtruck | also, well, i don't know exactly what they do with the money | 23:12 |
itsnotabigtruck | they have a lot of staff | 23:12 |
itsnotabigtruck | and that isn't cheap | 23:12 |
itsnotabigtruck | so paid their employees = probably eats up a lot of the money they get | 23:12 |
itsnotabigtruck | donating to them doesn't make sense though as long as they get significant google money | 23:13 |
itsnotabigtruck | it's also kinda funny how google funds their browser competitor | 23:13 |
teleshoes | heh | 23:14 |
teleshoes | that is weird | 23:14 |
itsnotabigtruck | though from google's pov having multiple popular alternatives to msie only makes things better for them | 23:14 |
teleshoes | hmm | 23:14 |
itsnotabigtruck | because they don't profit off chrome, they profit off people using their ad-supported services | 23:14 |
teleshoes | right | 23:14 |
itsnotabigtruck | and they want people to have a good experience with those so they keep using them | 23:14 |
itsnotabigtruck | that, and they're paying firefox for the search traffic it turns in from its default configuration | 23:15 |
itsnotabigtruck | *paying mozilla | 23:15 |
teleshoes | oh god | 23:15 |
teleshoes | thats pretty evil | 23:15 |
itsnotabigtruck | well, not really...i mean, this arrangement has worked out pretty well for funding firefox | 23:15 |
teleshoes | so i just looked into this | 23:16 |
itsnotabigtruck | it's just that because of all that i don't really feel like mozilla is really a charitable entity at all | 23:16 |
teleshoes | non-profits can only use profits from wholly owned subsidiaries in their non-profits | 23:16 |
teleshoes | so we DO know what theyre doing with the money- | 23:16 |
teleshoes | making ff better | 23:16 |
teleshoes | doesnt sound like there is a loophole, after all | 23:17 |
itsnotabigtruck | well, a good chunk of it is probably getting paid out to their board and stuff | 23:17 |
*** scoobertron has joined #harmattan | 23:17 | |
teleshoes | yea, employees gotta eat | 23:17 |
teleshoes | caviar | 23:17 |
itsnotabigtruck | lol | 23:17 |
itsnotabigtruck | like apparently in 2007 according to wikipedia the chairwoman of mozilla foundation got $500k total compensation | 23:18 |
teleshoes | its hard work to run mozilla | 23:18 |
teleshoes | without the finest brandy on hand at all times | 23:18 |
itsnotabigtruck | which as executives go isn't crazy high, but it's a pretty significant fraction of that $40mil if you multiply that out a few times for the other hgih ranking execs | 23:19 |
teleshoes | 500K is outlandish, sure | 23:19 |
teleshoes | but its within the realm of normal greed | 23:19 |
teleshoes | yea | 23:19 |
aquarius | Can I see the stuff in scratchbox /targets from outside scratchbox? | 23:19 |
teleshoes | /scratchbox/users/$USER | 23:19 |
aquarius | aha, there are two levels of userness in /scratchbox | 23:20 |
teleshoes | oh | 23:20 |
aquarius | got it :) | 23:20 |
teleshoes | so mozilla spends most of their cash on porsches, etc | 23:20 |
itsnotabigtruck | lol | 23:23 |
itsnotabigtruck | anyway, presumably the bulk of the money goes into labor costs etc., but that's just like a normal corporation | 23:23 |
itsnotabigtruck | that's the thing | 23:23 |
itsnotabigtruck | at least a privately held one | 23:24 |
teleshoes | im perfectly ok with for-profit companies | 23:24 |
teleshoes | making open source software | 23:24 |
itsnotabigtruck | well, except that they can't dividend out money to the owners, but they can pay the execs high salaries so that ends up being the same thing | 23:24 |
teleshoes | yea, whether its a for-profit vs a not-for-profit doing it isnt too important | 23:25 |
teleshoes | all the best software is opensource | 23:26 |
aquarius | blimey, almost done with this. Pleased. :) | 23:39 |
aquarius | well, apart from the accounts stuff ;) | 23:39 |
teleshoes | stellarium doesnt seem to support the compass | 23:40 |
aquarius | if I add a header to a QML ListView, and my ListView takes up the whole screen, how do I make the header take up the whole screen as well rather than be a rectangular box *inside* the listview? | 23:40 |
*** diverse_izzue has quit IRC | 23:42 | |
Elleo | aquarius: err, can you rephrase that? | 23:44 |
Elleo | do you want the header to always be visible at the top? | 23:44 |
aquarius | yep | 23:44 |
aquarius | that's what I want | 23:44 |
Elleo | right, then you don't want it to be a list view header | 23:44 |
aquarius | which is not what listview.header does, it turns out :) | 23:44 |
Elleo | just make it a separate item, and anchor the listview to its bottom | 23:44 |
Elleo | or possibly just stick them both inside a column | 23:45 |
aquarius | yeah, that's what I'm doing, now :) | 23:45 |
aquarius | although that doesn't seem to work right; the listview scrolls in front of iot | 23:47 |
aquarius | QML is basically this: Rectangle {id: headerbar; width: rootWindow.width; height: rootWindow.height / 10 } { ListView: anchors.top: headerbar.bottom; ... } | 23:48 |
aquarius | which doesn't seem to do what I think it ought to do. | 23:48 |
aquarius | I can (and have) cheated by setting z on the headerbar so that it's above the listview, but that seems a bit cheaty :) | 23:51 |
Elleo | oh yeah, I seem to remember having an issue like that | 23:51 |
Elleo | and basically cheating in exactly the same way as you | 23:51 |
aquarius | also, having a separate problem | 23:51 |
Elleo | the list view starts at the right height, but when scrolled allows its contents to go above its region | 23:51 |
aquarius | if I put the headerbar inside my Page, then it's affected by the page margins -- so the headerbar doesn't go all the way to the edge of the screen | 23:52 |
Elleo | you could just not set margins on the page | 23:53 |
Elleo | then set margins on something inside it instead | 23:53 |
aquarius | if I put the headerbar outside the page (that is: inside the PageStackWindow at the top level) then the headerbar fills the screen right up to the edges, including over the top of the two nice little rounded-corner curves you get at the top of the screen below the notification bar | 23:53 |
aquarius | is that just tough? :) | 23:53 |
aquarius | I don't really understand where the curves come from. | 23:53 |
Elleo | so page with no margins, containing a the header followed by another container with margins | 23:53 |
Elleo | well if you do want to keep it out of the page you can round the rectangle yourself via the radius property | 23:54 |
Elleo | although that'll round the bottom corners too | 23:54 |
*** jaywink has quit IRC | 23:55 | |
*** gabriel9 has quit IRC | 23:55 | |
aquarius | yeah | 23:58 |
aquarius | for the moment, I've just merrily stomped on the rounded corners | 23:58 |
aquarius | I'll come back to it :) | 23:58 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!