**** BEGIN LOGGING AT Sun Apr 24 02:59:58 2016 Apr 24 05:43:37 hmm, i wonder why nobody found it earlier: Znaps or the copy ZEUSS Easy Connect Apr 24 05:45:28 seems like a magic pill to solve n900 usb port issue Apr 24 07:58:15 freemangordon: ping Apr 24 09:15:23 freemangordon: n900 patches are rebased on top of 4.6-rc4 but now without camera and v4l patches Apr 24 09:19:14 ~seen jonwil Apr 24 09:19:15 jonwil <~jonwil@27-33-80-219.tpgi.com.au> was last seen on IRC in channel #maemo, 23h 3m 1s ago, saying: 'hi'. Apr 24 10:04:53 nvm i vote for Wizzup, Pali and freemangordon Apr 24 10:05:03 make n900 great again! Apr 24 10:12:56 guys, does the N900/N9 do binary PDU mode for sending SMSes? Apr 24 10:15:32 L29Ah: to be fair, I've mostly done some testing, I haven't done much coding apart from some input code :) Apr 24 10:15:45 we need testers too Apr 24 10:19:57 building a distro out of the meta distro is much work as well actually Apr 24 10:20:24 especially with such an unusual hardware Apr 24 10:22:22 I'm close to writing some blogs on where I am now, and where I want to go Apr 24 10:22:32 Many driver things I'll try to just mention (mostly userland, how to config, etc) Apr 24 10:22:39 It's probably on the net somewhere in most cases Apr 24 10:23:09 eeew vote, right? Apr 24 10:24:16 huh? Apr 24 10:24:49 http://wiki.maemo.org/Community_Council/Council_election_Q2_2016 Apr 24 10:25:22 l29ah, you know what are council tasks, right? Apr 24 10:25:41 devs shouldnt have to waste time on secretary work Apr 24 10:25:42 Pali: great, thanks :) Apr 24 10:25:49 KotCzarny: :nod: Apr 24 10:25:53 dang, tomorrow! Apr 24 10:26:29 this doesn't sound right!!! Apr 24 10:26:37 only 6 days Apr 24 10:28:01 Election period: 25 April 2016 - 01 May 2016 (23:59) Apr 24 10:28:49 13:25:22] l29ah, you know what are council tasks, right? Apr 24 10:28:49 no Apr 24 10:29:12 l29ah: council tasks have nothing to do with code Apr 24 10:29:25 they arent even bug-fixing related Apr 24 10:29:49 can they at least fix the "anti-spam" bullshit that pesters every other guy there? Apr 24 10:30:05 no Apr 24 10:30:07 vs "Starting 2016-04-25 00:00:00 UTC: Community Council Election Q2 2016" on http://maemo.org/vote/ Apr 24 10:30:38 meh ok, screw it then Apr 24 10:30:59 ohmy Apr 24 10:30:59 i sell my vote for 0.01฿ Apr 24 10:31:18 freemangordon: can you put on top of it all camera patches? Apr 24 10:31:35 council should put this on their agenda, to investigate solutions Apr 24 10:34:49 I have a very hard time to see how TOR exit nodes, when not blocked, could DDoS random pages of tmo by mass *reading* them :-( Apr 24 10:35:24 I easily can see how this is a fair bit of work to fix this in vBuletin Apr 24 10:37:50 stopforumspam is maybe nice, but only when used in a reasonable way Apr 24 10:38:09 Pali: that's the idea Apr 24 10:38:20 Pali: will take me some time though Apr 24 10:38:52 so, once I have cameras working with that, I'll send a RFC patchset Apr 24 10:40:06 (spam) so the right concept would be to only block regiatration/login via stopforumspam blacklicsts, and handle all DDoS attacks by more generic means, e.g. in the firewals Apr 24 10:40:24 throttling, fail2ban, whatever Apr 24 10:41:10 in a post-snowden time it's a nogo to tell users they can't use TOR to *read* the forum Apr 24 10:42:09 L29Ah: I buy! Apr 24 10:42:31 unless that's BTC crrency Apr 24 10:43:42 silly GDR/USSR elections, we can chose one out of 6 who's NOT going to be council Apr 24 10:45:15 hmm, is there a tool similar to diff but smart enough to ignore whitespace, newlines etc in c code? Apr 24 10:45:25 sure it's btc Apr 24 10:46:00 you can use indent first Apr 24 10:46:10 if others had pondered my suggestion to have 5 "nobody" on every candidate list too, this would be more fun Apr 24 10:46:24 ceene, but without pre-processing? Apr 24 10:46:39 because i know i can tidy the files, but then i will lose some info Apr 24 10:46:41 wtf karma Apr 24 10:46:48 hmm? Apr 24 10:46:55 what info will you lose? Apr 24 10:46:59 can i just reg a ton of bots to earn karma for me and my clones and be done? Apr 24 10:47:08 formatting, timestamps Apr 24 10:47:11 yes Apr 24 10:47:35 startforumspam party Apr 24 10:47:35 thanksbots will go a long way Apr 24 10:48:05 there's nothing that does that i think... maybe some statistical analysis tool Apr 24 10:48:08 but actualy wikiedits work great too Apr 24 10:48:10 ;-) Apr 24 10:48:27 ooh, my ignorelist Apr 24 10:49:27 ceene, if there is a tool that tidies code without touching the files to find which parts of the code changed Apr 24 10:49:57 it would be not that hard to write for c/c++ syntax Apr 24 10:50:32 maybe clang has something like that Apr 24 10:50:54 ie. 'if things are in "" dont touch, else s/[ \n]+/ /' Apr 24 10:51:39 and maybe s/[\(\)\{\}]/ \1 / first Apr 24 10:51:53 i still think indent is the way Apr 24 10:52:14 my code doesn't change almost anything when passed through indent Apr 24 10:52:18 yes, that would work if diff could do it without touching the files Apr 24 10:53:05 maybe i'll just pass things through indent/diff as a hinter for changes Apr 24 10:53:05 there are quite a few options in diff already Apr 24 10:53:25 to ignore spaces, treat tabs and spaces alike, etc Apr 24 10:55:03 after all diff been written by c-coders, with c and git in mind Apr 24 10:55:07 simplest case: Apr 24 10:55:11 if() Apr 24 10:55:14 {do something} Apr 24 10:55:22 vs if() {do something} Apr 24 10:55:28 not really optimized for python, but should deal with c formatting Apr 24 10:55:31 ;-P Apr 24 10:57:20 or: do_something if cond; Apr 24 10:57:21 :D Apr 24 10:57:42 L29Ah: council can't fix bugs, but they can coordinate bugfixing and have a loud saying in maemo administration at large Apr 24 10:58:06 pali, well, that's an overkill Apr 24 11:03:54 * DocScrutinizer05 thinks BTC are like Talents, which were ~30kg silver Apr 24 11:05:40 >>Ein Talent war generell in 60 Minen unterteilt. [...] Das Gewicht einer Mine betrug in der Zeit des Peloponnesisches Krieges ca. 430 Gramm<< https://de.wikipedia.org/wiki/Mine_(Münze) Apr 24 11:06:53 >>Ein typisches Segelschiff kostete ein Talent<< Apr 24 11:07:41 >>Marcus Licinius Crassus, der als reichster Römer zur Zeit Gaius Iulius Caesars gilt, hatte am Ende seines Lebens ein Vermögen von 7100 Talenten.<< Apr 24 11:08:45 So you can say "Romans had Talent" ? ;-) Apr 24 11:10:34 *many* :-D Apr 24 11:12:28 oh there is combining "||" Apr 24 11:12:32 B⃦ Apr 24 11:12:45 some romans had many talents, many romans had some talents, no roman had no little fraction of talent ;-D Apr 24 11:13:24 L29Ah: gIbBerISh Apr 24 11:14:27 ฿B⃦ Apr 24 11:14:59 http://wstaw.org/m/2016/04/24/plasma-desktopGn2219.png Apr 24 11:16:06 * DocScrutinizer05 checks if xchat still alive ;-P Apr 24 11:35:54 * DocScrutinizer05 uses the general rule of "don't use special chars like € or B⃦ or whatever, when you're not in control of the rendering" Apr 24 11:36:16 * DocScrutinizer05 uses e.g EUR instead Apr 24 11:36:46 * DocScrutinizer05 doesn't even use ö in 'joerg' Apr 24 11:38:07 some exception: Apr 24 11:38:12 ☕ Apr 24 11:38:30 time for more ☕ Apr 24 11:38:54 12 648 430 Apr 24 11:39:17 ~0xc0ffee * 1 Apr 24 11:39:33 ~ping Apr 24 11:39:33 1 packet transmitted, 1 packet received, 0.0% packet loss Apr 24 11:39:41 ~useless Apr 24 11:39:41 * infobot starts crying and hides from docscrutinizer05 in the darkest corner of the room. :( Apr 24 11:40:12 ~0xff * 2 Apr 24 11:40:27 ~#ff * 2 Apr 24 11:40:38 ~ffh * 2 Apr 24 11:40:46 ~0ffh * 2 Apr 24 12:17:20 [notice] >>The voting period for the specified election starts on 2016-04-25 00:00:00 (UTC) and ends on 2016-05-01 23:59:59 (UTC). It is not possible to vote now.<< Apr 24 12:17:57 so voting starts in a little less than 10 hours Apr 24 12:18:20 the wiki is not correct Apr 24 12:20:15 who should I vote? Apr 24 12:20:51 the question rather is who is the one you don't vote for ;-D Apr 24 12:21:01 ok Apr 24 12:21:11 so who shall be punished with my indiference? Apr 24 12:21:16 5/6 will become council Apr 24 12:21:37 ceene: do a coin toss Apr 24 12:22:01 ceene: that's really up to you. I'd try to keep out the one who demonstrated poorest understanding of what council is all about Apr 24 12:23:04 DocScrutinizer05: i don't understand what council is all about Apr 24 12:23:05 where in my book council is NOT: governance and leadership Apr 24 12:23:06 so there's that... Apr 24 12:23:21 secretary/paper work Apr 24 12:23:26 council is a secretary/steward Apr 24 12:23:45 no leader Apr 24 12:24:38 also council is not about development or technical administration, but rather for moderation and coordination, in worst case delegation/assignment Apr 24 12:26:48 council for example should take care (or delegate task) to grant upload rights to repos, and worst case - in case something goes awry - remove packages from repos. For this a bit of general technical understanding would help Apr 24 12:27:50 right now council should take care about that very unfortunate TOR blocking on tmo, inquire suggestions for solutions and coordinate their evaluation and implementation Apr 24 12:28:30 it sounds it all like a hassle :) Apr 24 12:28:59 for this also some technical understanding helps, to discern sound arguments pro/contra some solution from excuses Apr 24 12:29:12 council is hassle Apr 24 12:30:38 the more when some council members have funny agenda like "I'll reach out to jolla now, demand council reviews their source code and approves if it complies with maemo spirit" or the like Apr 24 12:32:16 in this regard my general advice: don't vote patent lawyers into council! ;-P Apr 24 12:33:36 :) Apr 24 13:16:01 there's a qt library for telegram Apr 24 13:16:03 that's a good thing Apr 24 13:16:10 at least i could reuse yappari as gui for that Apr 24 13:17:37 one more thin g that comes to mind for council: official adoption of devuan instead of debian for recommended maemo base Apr 24 13:18:21 I.E. an official recommendation to devels Apr 24 13:21:26 and I guess an inquiry to techstaff resp warfare and xes about expected lifecycle of server HDDs until preemtive service swap would be in order to Apr 24 13:22:07 s/ to/ too/ Apr 24 13:22:08 DocScrutinizer05 meant: and I guess an inquiry too techstaff resp warfare and xes about expected lifecycle of server HDDs until preemtive service swap would be in order to Apr 24 13:22:14 dang Apr 24 13:22:43 s/ to$/ too$/ Apr 24 13:23:22 ceene: last I checked you can't even really build telegram sanely Apr 24 13:23:34 it requires a bunch of patches to other libraries Apr 24 13:23:40 ouch Apr 24 13:23:43 :( Apr 24 13:23:54 https://github.com/Kaffeine/telegram-qt Apr 24 13:23:58 i was thinking about this Apr 24 13:24:12 seems to support qt4 Apr 24 13:25:03 although now that you say it, i don't know if it's an implementation of telegram or Apr 24 13:25:06 argh Apr 24 13:25:08 or just its bindings Apr 24 13:25:38 i think it's a full implementation Apr 24 13:27:15 well, check if the lib you want to use actually depends on patches in other libs Apr 24 13:27:54 if so, you might need to "import" and rename those libs too Apr 24 13:28:41 -Dtelegram-glibc ;-P Apr 24 13:29:23 it seems to be compiling just fine on scratchbox Apr 24 13:29:28 oops Apr 24 13:29:28 sounds like the perfect candidate for static linking Apr 24 13:29:30 except for this Apr 24 13:29:33 Utils.cpp:42: error: integer constant is too large for 'long' type Apr 24 13:29:46 LOL Apr 24 13:29:50 what the Apr 24 13:29:55 hehehehe Apr 24 13:29:58 static const quint64 s_hardcodedRsaDataFingersprint(0xc3b42b026ce86b21); Apr 24 13:30:04 quint64 Apr 24 13:30:10 ROTFL Apr 24 13:30:24 good one Apr 24 13:30:31 almost as good as debian's rng Apr 24 13:30:52 "how to make your implementation platform-dependent" Apr 24 13:31:02 ok, someone explain me why quint64 is not 64 bits long Apr 24 13:31:10 hehehehe Apr 24 13:31:24 wtf *is* quint64? Apr 24 13:31:39 #define quint64 long Apr 24 13:31:40 ? Apr 24 13:31:43 from https://doc.qt.io/archives/qtextended4.4/qtglobal.html Apr 24 13:31:49 typedef quint64 Apr 24 13:31:50 Typedef for unsigned long long int (unsigned __int64 on Windows). This type is guaranteed to be 64-bit on all platforms supported by Qt. Apr 24 13:31:52 Literals of this type can be created using the Q_UINT64_C() macro: Apr 24 13:31:55 quint64 value = Q_UINT64_C(932838457459459); Apr 24 13:32:18 i don't think their concept of "guaranteed" is the same as mine Apr 24 13:32:44 * DocScrutinizer05 wonnders how to find a new word for ROTFL Apr 24 13:33:24 ok, so all of qt is broken on maemo Apr 24 13:33:34 s/on maemo// Apr 24 13:33:38 :) Apr 24 13:33:48 so... Apr 24 13:33:54 how do i fix that? Apr 24 13:34:04 patch whole qt? Apr 24 13:34:08 use inttypes.h Apr 24 13:34:14 uint64_t Apr 24 13:34:24 maybe fix this one silly const? Apr 24 13:34:34 use strcmp()? Apr 24 13:34:50 or whatever Apr 24 13:35:42 #include Apr 24 13:35:43 static const uint64_t s_hardcodedRsaDataFingersprint(0xc3b42b026ce86b21); Apr 24 13:35:45 Utils.cpp:43: error: integer constant is too large for 'long' type Apr 24 13:35:51 so Apr 24 13:35:55 what's the thing that is broken? Apr 24 13:36:00 maemo's glibc? Apr 24 13:36:20 * DocScrutinizer05 doesn't grok s_hardcodedRsaDataFingersprint(0xc3b42b026ce86b21); at all Apr 24 13:36:49 is s_hardcodedRsaDataFingersprint() a function or what? Apr 24 13:36:49 i don't care about the meaning, at least now Apr 24 13:36:57 i wanna know why uint64_t is not 64 bits long Apr 24 13:37:32 i believe that's something from openssl Apr 24 13:37:34 I wanna know if the result/return of s_hardcodedRsaDataFingersprint(0xc3b42b026ce86b21) is 64bit at all Apr 24 13:38:44 aaah typecast? Apr 24 13:39:07 $ rgrep s_hardcodedRsaDataFingersprint telegram-qt/ Apr 24 13:39:07 telegram-qt/telegram-qt/Utils.cpp:static const quint64 s_hardcodedRsaDataFingersprint(0xc3b42b026ce86b21); Apr 24 13:39:10 telegram-qt/telegram-qt/Utils.cpp: result.fingersprint = s_hardcodedRsaDataFingersprint; Apr 24 13:39:13 i Apr 24 13:39:14 don't Apr 24 13:39:15 know Apr 24 13:40:04 google search for s_hardcodedRsaDataFingersprint only returns this very same source code Apr 24 13:40:07 lol Apr 24 13:40:35 it needs to have a definintion/implementation somewhere, no? Apr 24 13:40:44 i guess so Apr 24 13:41:26 my c(++) foo is extremely weak Apr 24 13:42:24 I don't understand what's the real meaning of the whole sourcode line static const quint64 s_hardcodedRsaDataFingersprint(0xc3b42b026ce86b21); Apr 24 13:42:56 I'd expect sth like static const quint64 s_hardcodedRsaDataFingersprint = 0xc3b42b026ce86b21; Apr 24 13:43:56 yep Apr 24 13:44:39 but Apr 24 13:44:42 if quint64 Apr 24 13:44:45 is not a basic type Apr 24 13:44:49 but an object Apr 24 13:44:50 but a macro Apr 24 13:44:55 nope, a c++ object Apr 24 13:44:58 so Apr 24 13:44:59 or an object, yes Apr 24 13:45:04 it's defining a object named s_hardcodedRsaDataFingersprint Apr 24 13:45:10 initialized with 0xc3b42b026ce86b21 Apr 24 13:45:20 and hands the value to the constructor Apr 24 13:45:26 that's right Apr 24 13:45:36 so it'd be equivalent to static const uint64_t s_hardcodedRsaDataFingersprint = 0xc3b42b026ce86b21; Apr 24 13:46:12 but then the object needs definition/imlementation somewhere Apr 24 13:46:29 quint64 is defined by qt Apr 24 13:46:38 aah Apr 24 13:46:38 so that's just creating a quint64 object named s_hardcodedRsaDataFingersprint Apr 24 13:46:44 yep Apr 24 13:46:58 there Apr 24 13:46:58 solved Apr 24 13:46:59 so check the qint64 object implementation Apr 24 13:47:10 s_hardcodedRsaDataFingersprint(0xc3b42b026ce86b21); -> s_hardcodedRsaDataFingersprint(0xc3b42b026ce86b21ULL); Apr 24 13:47:13 quint64 even Apr 24 13:47:23 it's a compiler thing Apr 24 13:47:27 ouch Apr 24 13:47:42 ok Apr 24 13:47:43 well Apr 24 13:47:47 i got libTelegramQt.so.0.1.0 :) Apr 24 13:47:54 it was confusing for a while Apr 24 13:47:59 but if that's all that is needed... Apr 24 13:48:03 it's a hell lot easy Apr 24 13:51:35 there's even a testApp included Apr 24 13:51:40 i'll test that later Apr 24 13:52:03 or maybe now Apr 24 13:52:20 where could I find the definition of quint64? Apr 24 13:52:20 i can't still login on whatsapp with libwa Apr 24 13:52:52 ./Qt/qglobal.h Apr 24 13:55:30 * DocScrutinizer05 idly wonders what's the compiler's notion of type of 0xc3b42b026ce86b21, versus *ULL Apr 24 13:55:44 string? Apr 24 13:56:00 would anyone be interested in a google authenticator maemo app? Apr 24 13:56:15 errr Apr 24 13:57:47 please elaborate, maybe it's just me who doesn't get it since I don't use google Apr 24 13:58:22 various websites offer a 2 factor authentication system which uses an app called google authenticator Apr 24 13:58:33 aah Apr 24 13:58:40 that thing Apr 24 13:58:41 this telegramapp may work indeed Apr 24 13:58:45 its basically a key store which then gets run through thier algo to produce a timed number every 30 seconds Apr 24 13:59:10 you get to scan a qr code containing the name/key Apr 24 13:59:15 or enter name + key manually Apr 24 13:59:32 Linkandzelda: I bet many users would consider that useful Apr 24 13:59:35 if im going to ditch my android i need that app, or something Apr 24 14:00:16 i've never used that thing, but i'm sure it's used by many people Apr 24 14:00:31 im not an expert on security or encryption though, not sure how to store the keys safely Apr 24 14:00:39 https://talk.maemo.org/showthread.php?t=84243 Apr 24 14:01:32 yea i saw that Apr 24 14:01:49 https://talk.maemo.org/showthread.php?t=90274 this too Apr 24 14:02:29 https://talk.maemo.org/showthread.php?t=90274 yep Apr 24 14:02:48 though it may work, maybe something more user friendly would be good Apr 24 14:03:14 sure Apr 24 14:04:14 i get annoyed having to enter those codes all the time, so speed and access is important Apr 24 14:04:28 i dont know, it might be a good first n900 project for me Apr 24 14:04:53 (safely store) maybe with a different owner and read permissions only for that owner, so you need a sudo to that other owner to read the file? Apr 24 14:05:37 could work, i could make them enter the password for that user on startup Apr 24 14:06:16 would basically act like a master password or master unlock code Apr 24 14:07:00 yep, or even start a process that communicates with your main process via IPC (pipe?) but changes effective user from beginning to access the file Apr 24 14:07:19 not sure how to even do that, but yea i could try Apr 24 14:07:23 was going to use python Apr 24 14:09:20 hmm, make the process be member of a unique group "gauth" and the file is owned by gauth and only group-readable for gauth Apr 24 14:16:27 implementing some obfuscation otoh is considered pretty useless and user-hostile Apr 24 14:17:26 when a rogue process already took over the system so it may read the file, then it also may read the program text of the app and find out how to decode the obfuscated key Apr 24 14:18:00 this sdoesn't apply when you use proper encryption that needs manual entry of the decryption key Apr 24 14:19:26 this would be another viable approach: decrypt the stored key at boottime, by entering the decryption key Apr 24 14:19:43 then keep the decrypted key in RAM in a var Apr 24 14:24:46 ceene: sounds like you're officially killing Whatsapp on N900? Apr 24 14:25:00 sec-hardcore folks will argue you should not keep such stuff in RAM, so not even root may reed it out. It's arguable Apr 24 14:25:23 ceene: in favor of telegram? Apr 24 14:26:15 Sicelo: i'm not doing anything yet Apr 24 14:26:24 but i'm searching for a plausible alternative Apr 24 14:26:35 in fact i'm right now trying to get libwa to login Apr 24 14:26:41 by making it emulate Android instead of S40 Apr 24 14:26:43 just in case... Apr 24 14:26:47 yowsup does that and it works Apr 24 14:26:49 okay :) Apr 24 14:26:51 so why the hell can't i Apr 24 14:27:16 this telegram thingie looks promising, though Apr 24 14:27:32 can yowsup run on a n900? Apr 24 14:27:48 maybe, yes Apr 24 14:27:51 ace Apr 24 14:27:54 it depends on python2.7 or better 3 Apr 24 14:28:07 yesterday i was thinking about telegram: it has a public API, right? Apr 24 14:28:22 yes, telegram is much free than whatsapp Apr 24 14:28:37 how about this running on a n900 https://whispersystems.org/ Apr 24 14:28:56 don't know Apr 24 14:30:16 this might be useful https://github.com/mgp25/Chat-API Apr 24 14:31:21 i know about that Apr 24 14:32:14 even whatsapp-purple is dead :( Apr 24 14:32:24 was using that with bitlbee Apr 24 14:52:16 this piece of shit won't login Apr 24 18:42:58 i don't know what the fuck is wrong Apr 24 18:43:12 i can't keep reading code in search of the truth Apr 24 18:43:21 and i can't find anything that is different or wrong Apr 24 18:44:41 sounds like a rock song Apr 24 18:45:48 i also hate all the other WA coders Apr 24 18:45:56 except for cepiperez, who has helped me before Apr 24 18:46:03 but i think he lost his phone Apr 24 18:46:05 and has no compouter Apr 24 18:46:08 or something like that Apr 24 18:46:47 Machinae Supremacy - Stand Apr 24 18:48:04 i'm gonna try now chat-api instead of yowsup Apr 24 18:48:10 to see if i can debug it somehow Apr 24 18:48:13 and find differences Apr 24 19:21:24 nobody here can help Apr 24 19:21:28 i wonder Apr 24 19:21:36 who are all those 170 people who never say even hi... Apr 24 19:21:56 ~~california hotel theme jingles in~~ Apr 24 19:22:18 KotCzarny: you can code Apr 24 19:22:21 help me! Apr 24 19:22:21 :P Apr 24 19:22:32 i can code, but i hate c++ a bit Apr 24 19:22:35 so do i Apr 24 19:22:46 but you don't really need to code anything Apr 24 19:22:52 just help me understand what's wrong Apr 24 19:22:57 compare with other implementations Apr 24 19:22:59 task #1: RE the login protocl (in plain c or python) Apr 24 19:23:05 ignore everything else Apr 24 19:23:05 and tell me why the heck this thing won't work Apr 24 19:23:10 ceene: i had offered :) Apr 24 19:23:20 that's true Apr 24 19:23:21 just make some proof of code that can login Apr 24 19:23:27 i dind't get back to you Apr 24 19:23:28 of course i can't code anything .. so maybe KotCzarny might be better Apr 24 19:23:39 KotCzarny: that code already exists Apr 24 19:23:43 written in python Apr 24 19:23:47 but it's there Apr 24 19:23:48 and it works Apr 24 19:23:52 yowsup Apr 24 19:23:55 ceene: rewrite from scratch in c Apr 24 19:24:01 outside of anything Apr 24 19:24:06 it's not that easy Apr 24 19:24:09 just rewrite and add logging everywhere Apr 24 19:24:12 because Apr 24 19:24:13 first step Apr 24 19:24:17 is rewritting token translation Apr 24 19:24:30 protocol is basically xmpp Apr 24 19:24:33 k, step pre#1: rewrite token translation Apr 24 19:24:39 with keywords replaced by binary code Apr 24 19:24:46 dont try c++. just plain c. Apr 24 19:25:02 if it works, you will have a starting point Apr 24 19:25:25 i don't want to reimplement all of that :s Apr 24 19:25:30 that's why i'm trying to use libwa Apr 24 19:25:48 i understand your reasoning Apr 24 19:25:52 but it's daunting Apr 24 19:26:07 debugging someone's other code could be much worse Apr 24 19:26:26 in either case Apr 24 19:26:28 i have to do that Apr 24 19:26:34 because reimplementing that Apr 24 19:26:39 means having to read python or php code Apr 24 19:26:42 and translate it to c Apr 24 19:26:57 so... why not go directly to the implementation i need to fix? Apr 24 19:27:08 because qt. Apr 24 19:27:14 qt is not the problem Apr 24 19:27:24 login functions are 3 or 4 Apr 24 19:27:28 which are not so big Apr 24 19:27:38 so why the fuck do they not work Apr 24 19:27:39 :'( Apr 24 19:27:49 because there is a bug somewhere Apr 24 19:28:03 but you cant pinpoint the exact location in the flow Apr 24 19:28:59 i can also try with whatsapp-purple Apr 24 19:29:03 it's only c++, without qt Apr 24 19:29:33 so if you dont want rewriting, you will have to do it step by step in some existing app Apr 24 19:29:53 i hate it all Apr 24 19:36:33 nite nite Apr 24 19:39:00 ok Apr 24 19:39:03 let's change approach Apr 24 19:39:07 forget about libwa Apr 24 19:39:10 it's a piece of shit Apr 24 19:39:18 i need to implement axolotl on yappari Apr 24 19:39:31 my yappari version right now logins in Apr 24 19:39:40 it's only missing encryption Apr 24 19:39:57 i don't understand anything, yappari and libwa is basically the same code Apr 24 20:27:12 by the way Apr 24 20:27:15 all WA implementations Apr 24 20:27:21 are stupid in at least one way Apr 24 20:27:28 in the same stupid way Apr 24 20:27:44 else if (tag == "stream:error") Apr 24 20:27:46 else if (tag == "stream:features") Apr 24 20:27:50 etc, etc Apr 24 20:27:55 with dozens of comparisons like that Apr 24 20:28:03 when tag has been converted from a dictionary Apr 24 20:28:17 so why the hell is there a need to decode that? Apr 24 20:28:26 switch(dict[tag]) Apr 24 20:28:38 case dict["stream_error"] Apr 24 20:28:44 case dict["stream:features" Apr 24 20:28:45 etc, etc Apr 24 20:28:51 well, switch(tag) directly Apr 24 20:29:05 that should be a hell lot faster Apr 24 20:29:16 at least there wouldn't be dozens of strings comparisons Apr 24 20:29:27 not to speak of O(1) search Apr 24 20:30:00 https://www.youtube.com/watch?v=i3dY6aCUe9Y Apr 24 21:08:21 Why would `switch` on strings have an O(1) search? Apr 24 21:09:08 Maxdamantus: can be hash table like Apr 24 21:09:28 like a python 'string switch': {'a': foo(), 'b': bar()}['a'] Apr 24 21:09:43 actually, that is wrong Apr 24 21:09:48 like a python 'string switch': {'a': foo, 'b': bar}['a']() Apr 24 21:09:50 you get the idea Apr 24 21:10:24 I doubt it's likely to do that. Apr 24 21:10:40 Unless you actually have a large number of strings, it's going to be faster to just do the comparisons. Apr 24 21:11:09 or if there are too many common prefixes. Apr 24 21:11:38 I'm just suggesting a way it could be done Apr 24 21:11:42 Not saying that it is doing that Apr 24 21:12:02 hash functions are also O(n), not O(1). Apr 24 21:35:16 read access to a dictionary is O(1) Apr 24 21:36:05 this thing is receiving an index, say 7, translating 7 to say stream:error and then comparing stream:error with dozens of possible texts Apr 24 21:36:18 why do that, when you can just switch(index) case 7 Apr 24 21:36:22 that's O(1) Apr 24 21:36:34 and not a back-and-forth mapping from hash to key and viceversa Apr 24 21:38:13 Where do you get the 7 from? Apr 24 21:38:14 Maxdamantus: there are hash functions which have access in O(1) Apr 24 21:39:08 in worst case, not only approx Apr 24 21:39:57 Sure. You can analyse the table and determine a unique set of character indices to compare. Apr 24 21:40:58 eg, if you have `case "stream:error": ..; case "stream:features": ..`, you can determine that you only need to compare index 7 before checking that it matches the expected string. Apr 24 21:41:30 yes, that "smart" compiler could do Apr 24 21:41:40 (and create a jump table based on that single bit) Apr 24 21:42:15 A compiler that smart would probably also do it with an if/else chain. Apr 24 21:53:01 http://imgur.com/gL3tXTg Apr 24 21:53:11 i've found this thing at my parents, from when i was little :) Apr 24 21:55:03 hihi, I once had to dealwith a 'smart' pascal compiler that for a >>var I : int16; case I of 1 : xfoo; -1 : ybar; end; << created a jump table of humble 32k words length Apr 24 21:55:56 well, at least it tried to, then segfaulted Apr 24 21:56:46 I had to redirect the compiler listing to printer, to find out which line it blew chunks Apr 24 21:56:49 Although I'm suspicious of the test (since such tests are likely to trigger tangential compiler optimisations), a randomly generated 10k `if` table on strings seems to be about 10× faster than the equivalent `switch` table on a recent version of V8. Apr 24 21:57:24 on an older version of Spidermonkey, the `switch` is about 6× faster, and on a newer version it's about the same. Apr 24 21:58:00 ayy javascript lmao Apr 24 21:58:29 but that should be enough information to be suspicious generally of picking some language feature over another language feature for performance reasons without actually having good reasons to. Apr 24 21:59:28 https://gist.github.com/Maxdamantus/853b69b3bb900cad37c254a902b0ccc9 Apr 24 21:59:47 input generated with: cat /dev/urandom | tr -dc 'a-zA-Z0-9 \n' | sed '/^\([^ ]\+\) \([^ ]\+\)$/!d' | head -10000 >input Apr 24 22:01:00 i don't even know how to execute that thing Apr 24 22:01:43 js genif.js testif.js Apr 24 22:01:50 js testif.js Apr 24 22:02:08 node -e 'this.print = function(s){ console.log(s); }; require("./testif");' Apr 24 22:02:47 only thing i've ever done on javascript is alert("This is a very cool web page") Apr 24 22:02:50 where `js` is the program you can build from the gecko-dev/mozilla-central source tree. Apr 24 22:03:03 i'll just believe you then :) Apr 24 22:03:32 i agree that case vs if may not be faster Apr 24 22:03:57 but i can't believe that arbitrary length string comparison is better than a look up table Apr 24 22:04:04 when you already have that look up table Apr 24 22:05:05 Should probably also try a preconstructed object. Apr 24 22:05:32 https://wiki.archlinux.org/index.php/swap_on_video_ram Apr 24 22:05:41 can this thing work on n900? Apr 24 22:08:13 no Apr 24 22:08:24 oh :( Apr 24 22:08:30 The actual map is a lot faster, indicating that the switch doesn't generate a hash table. Apr 24 22:08:38 that's the kind of crazy thing that could have worked Apr 24 22:08:59 (it gets different results though, since the map isn't ordered) Apr 24 22:09:12 actually, it doesn't necessarily indicate that. Apr 24 22:09:42 well, gotta go to sleep Apr 24 22:09:45 night night! Apr 24 22:09:53 n8 Apr 24 22:31:12 ceene: i don't think that our gpu has dedicated ram **** ENDING LOGGING AT Mon Apr 25 02:59:58 2016