Gajim - 2018-09-10

  1. bot colly balard created an issue in _gajim_ < >: #9338: < File transfer doesn't work on Tails >
  2. bot colly balard modified an issue in _gajim_ < >: #9338: < File transfer doesn't work on Tails >
  3. bot colly balard modified an issue in _gajim_ < >: #9338: < File transfer doesn't work on Tails >
  4. marmistrz Getting back meritorically to yesterday's discussion. Why should I trust a message which was sent 0.1s before I mistrusted a fpr?
  5. concerto o/
  6. concerto Any progress on the packaging problem resulting in blank CSS files in the Debian builds?
  7. asterix In gajin-nightly?
  8. asterix I don't see empty css files there
  9. asterix concerto: ^
  10. concerto asterix gajim-default-nightly
  11. asterix Still not empty there
  12. concerto asterix it's just gajim-dark.css that's empty, by the way
  13. concerto it just has "/* Gajim Dark Application CSS File */"
  14. asterix Yes it's the same in our source
  15. concerto
  16. concerto lovetox implied it was supposed to have something.
  17. concerto (when I asked them about the dark theme message correcting background color)
  18. asterix
  19. lovetox concerto, i talked about dark-default.css
  20. lovetox default-dark.css
  21. concerto lovetox oh, fail. sorry.
  22. concerto that's not empty
  23. concerto it has a `.gajim-msg-correcting text` selector
  24. concerto ``` .gajim-msg-correcting text { background: rgb(131, 148, 150) } ```
  25. concerto So...why isn't that color applied o_O
  26. lovetox maybe it overwritten in the theming window concerto?
  27. concerto lovetox: theming window?
  28. concerto if you mean Preferences -> Style there's no customization there
  29. lovetox then weird, have to check if i can reproduce the problem
  30. lovetox but you can set a background there and check if that is working
  31. concerto lovetox: there's only one theme in Style, by the way - "default". Is that as it should be?
  32. lovetox yes, add a new one
  33. lovetox and add your background setting
  34. concerto !
  35. concerto That did it o_O
  36. lovetox so just the default value seems not to work
  37. lovetox i have to check that at home
  38. concerto alrighty :)
  39. guybrush88 asterix, I'm currently improving Gajim's Italian translations (from the app itself to the website) through the online version
  40. debacle Any idea, how to improve my MAM UX? I'm joining a room, that I didn't visit since some time, and now I'm getting messages from the last 180 days. This, of course, takes long. Can I stop Gajim downloading all this history? Can I make Gajim ask me, before downloading a history of more than n days or m messages?
  41. lovetox many ideas but no time
  42. lovetox i can make it so it doesnt download more than X days, but then people come and start complaining that they miss the message from X +1 day
  43. lovetox i dont know what is worse 🙂
  44. ta debacle, exactly my situation. On working days i only use my office machine with gajim, on weekend only my private notebook. Pretty busy channels make the machines pretty sluggish, loading 2 or 5 days from MAM.
  45. debacle lovetox, maybe download MA from latest to earliest and do that deliberately slow?
  46. debacle also, if I would use Gajim with mobile internet, I would not like it to make any expensive downloads
  47. ta keep loading in backgroud to sync with local history would be appreciated, i think.
  48. debacle there should be a global switch to disable MA download altogether
  49. debacle if I'm on train Wifi and I want to send an urgent message, and Gajim is busy with downloading 180 days off-topic jokes :~)
  50. lovetox you dont need to tell me that the current behavior is not optimal
  51. lovetox there is only one optimal behavior, dynamic loading of history if the user requests it specifically, otherwise dont load history at all
  52. lovetox but this is hard to implement
  53. debacle lovetox, no pressure, I know that you are improving Gajim every day!
  54. lovetox and all other solutions have drawbacks
  55. Holger It's okay if you do it tomorrow, lovetox.
  56. lovetox 😃
  57. debacle Holger, you are too liberal! It should be today! Otherwise I will not pay for Gajim anymore! Oh...
  58. mdosch lovetox: > there is only one optimal behavior, dynamic loading of history if the user requests it specifically, otherwise dont load history at all > but this is hard to implement Hmm, that also has a drawback. What if I don't request it as I don't need it now and request it later when the important message was already removed from my servers mam? I'd prefer a setting 'fetch all', 'fetch dynamically' or 'fetch never'.
  59. debacle There are always more features wanted than can be implemented. IMHO, volunteer free software programmers should work on the features that are most fun for them, not necessarily what other people (like me) ask for.
  60. lovetox mdosch, for single chat always all is synced
  61. lovetox the problem is only with MUC
  62. lovetox because there could be 1000 of messages in a short time
  63. mdosch Yeah, but the important message could have been in a muc.
  64. bot Marco d'Itri created an issue in _gajim_ < >: #9339: < Traceback and missed notifications >
  65. lovetox mdosch so you want a full sync of a MUC?
  66. lovetox that could mean endless messages
  67. lovetox depending on the MUC, if its a IRC channel for example, very bad
  68. lovetox but yeah i see the value of a switch to regulate that
  69. nico I literally had this problem like 5 mons ago joining the conversation muc. 125 days of backlog took me 20 minutes to use Gajim again 😂
  70. mdosch lovetox: What is IRC? 😂 Hmm, maybe per muc setting in the bookmark?
  71. lovetox i will implement a limit of max days first
  72. lovetox to avoid some hard cases like > 100 days
  73. asterix guybrush88: great!
  74. guybrush88 asterix, mostly I've been reducing the critical errors
  75. guybrush88 asterix, also, I have a doubt: there's an English string containing "translator-credits", and as a translation there's already a list of actual contributors to the translations, but this is marked as a critical error. How can I fix it?
  76. asterix Just click the ignore button for this string
  77. guybrush88 asterix, OK, thanks, also, I found another problem: there's a string containing the proper translation, but it's still marked as critical error. Its position is gajim/
  78. asterix guybrush88: you see the ignore button? A red prohibited sign
  79. guybrush88 asterix, I'm searching for it :P
  80. asterix guybrush88: yes, you can ignore this one too. The website don't handle plural form like that correctly
  81. asterix guybrush88: now do you see it? I gave you more rights
  82. concerto Oh, was it history loading that was being discussed?
  83. concerto I was just gonna say that history seems to take an age to load for this IRC channel I'm accessing through Biboumi.
  84. guybrush88 asterix, yes, now I see it
  85. concerto Is it because it's a very busy one, or is it because of Biboumi?
  86. guybrush88 asterix, thanks for your reply and for the permissions \m/
  87. asterix guybrush88: you can now also review suggestions
  88. asterix guybrush88: accept or refuse them
  89. guybrush88 cool, thanks
  90. guybrush88 now critical errors are less than ten \m/
  91. marmistrz > i can make it so it doesnt download more than X days, but then people come and start complaining that they miss the message from X +1 day > i dont know what is worse 🙂 'ovetox, configurable threshold?
  92. lovetox hm if we have that setting per muc, this could be nice
  93. lovetox like a sync all or X days switch
  94. lovetox so for private mucs you can activate, sync all because probably not many messages
  95. lovetox and for big mucs you can make it 2 days or something
  96. nico that sounds reasonable
  97. marmistrz Another thing that may be useful is some setup wizard on first run. There are things that we can achieve no consensus about: yesterday's discussion on trust, XEP-0393 or current markup - it could be a good idea to let the user choose during the first run which behavior they prefer
  98. mdosch lovetox: > that sounds reasonable I agree
  99. concerto but but but what about those who want full history for everything load times be damned? o.o
  100. marmistrz maybe then loading on demand, when the possibly missing history is tried to be accessed?
  101. nico they can use all even for public mucs right?
  102. concerto loading on demand is good, but I do hope it's stored on-disk when it's loaded
  103. marmistrz I *think* it's what Conversations does
  104. lovetox yes i didnt mean private in the sense that gajim checks if it is private
  105. concerto Riot (Matrix client) loads on-demand and caches it for a very short time. Which is awful because it takes ages for it to load history.
  106. nico I would prefer default eg 2 days and as a setting locally that everything is pulled
  107. lovetox yeah and we could apply sensible defaults depending on if the muc is private or not
  108. nico that would be the next step yeah
  109. marmistrz
  110. marmistrz a, it got collapsed into a paste - I'm wondering what the other people think about the issues with trust we've discussed yesterday, see the paste for more details
  111. marmistrz a, it got collapsed into a paste - I'm wondering what other people think about the issues with trust we've discussed yesterday, see the paste for more details
  112. marmistrz It looks like gajim doesn't reconnect after suspend anymore. Do you have any ideas why?
  113. lovetox hm maybe network monitor is faulty
  114. lovetox i can add debug output to it
  115. bot Philipp Hörist pushed 1 commit to branch _refs/heads/master_ of _gajim_ < >: *0fba2b8a* < > Add debug output for NetworkMonitor
  116. lovetox there, log with gajim.interface=DEBUG
  117. lovetox marmistrz,
  118. lovetox i again thought about this a bit more
  119. lovetox do we really need to show the trust for historic messages
  120. lovetox it seems really not useful, because all messages in the end become untrusted
  121. marmistrz lovetox, let's list the situations when you would untrust a fingerprint
  122. marmistrz For me:
  123. marmistrz 1. unauthorized access to the remote party's device
  124. marmistrz 2. tentative trust so that we temporarily have encrypted communication, but we'll verify the identity later
  125. marmistrz 3. fingerprint trusted by mistake
  126. marmistrz anything else?
  127. lovetox yes, contact just doesnt use the fingerprint anymore
  128. marmistrz this is not a reason to untrust the fingerprint
  129. marmistrz but well, we could possibly add a feature which could warn about messages from fprs that are believed to be unused
  130. marmistrz that makes sense
  131. lovetox you never see such messages
  132. lovetox maybe i should state here, that messages from untrusted fingerprints are droped
  133. marmistrz wait, what, why
  134. marmistrz wait, what, why????
  135. marmistrz I may not want to trust a fingerprint because I'm not sure if the remote party is who I believe it is, but I may want to know what they're writing to me
  136. marmistrz it's bad to silently drop messages. I know users, who will deliberately mistrust a fingerprint until they verify it via a different, secure channel
  137. lovetox but why what do you gain from explicitly not trusting?
  138. marmistrz doesn't Gajim prompt if there are unknown-trust fprs (I don't remember)
  139. marmistrz > you never see such messages what if someone just stealthly copies your $HOME?
  140. marmistrz yes, that's unlikely, but possible
  141. lovetox what has copying your home, to do with dropping messages?
  142. marmistrz > warn about messages from fprs that are believed to be unused
  143. marmistrz > what if someone just stealthly copies your $HOME?
  144. marmistrz this is one
  145. marmistrz dropping messages is a different thing, but a client should definitely NOT do that
  146. lovetox i dont get why you bring some stuff into this like someone breaks into your computer and copies stuff, Gajim is not there to secure your computer or messages against break in
  147. marmistrz and you may set trust to "no" because you think you need to set some trust
  148. marmistrz lovetox, I know it's not
  149. marmistrz I'm just saying that the only use for mistrusting an unused-but-otherwise-trusted fpr could catch such situations
  150. marmistrz which is not exteremly useful
  151. Zash å§98
  152. marmistrz Let's focus on the important issue: why the heck should Gajim drop untrusted messages???
  153. lovetox for one because it does not have a way to tell you that it is from a untrusted fingerprint
  154. marmistrz lovetox, let's assume that it's fixed (#233)
  155. marmistrz lovetox, let's for a time assume that it's fixed (#233)
  156. lovetox i see no reason to drop it then
  157. marmistrz ok
  158. marmistrz now why would you untrust a fpr because it's not used anymore?
  159. lovetox the second problem that i see is, that in the end everything gets marked as untrusted, because you rely for trust calculation on third party plugins and data stores
  160. lovetox but i guess one could say the user should take care to backup his data
  161. marmistrz yes, and you won't get the old messages MAM-ed anyway for the new key
  162. marmistrz and it'll be an issue with whatever we decide to do with old messages
  163. lovetox with omemo, but there is also pgp, which you can decrypt forever
  164. lovetox but i guess yeah if someone loses his keyring with all the fingerprints, its his fault
  165. marmistrz yep
  166. lovetox in this case gajim would show all messages as untrusted
  167. marmistrz for PGP I think we should use the PGP trust
  168. lovetox i find this very unsafe
  169. lovetox does anyone actually use this for critical stuff
  170. marmistrz idk anything about PGP in XMPP, so maybe I'm wrong here :)
  171. lovetox pgp has the web of trust approach
  172. lovetox but i think this fails for high security
  173. lovetox you maybe should take a look at the new openpgp plugin, maybe you like it more than omemo :)
  174. marmistrz I can, but I think that forward secrecy in IMs is a nice thing
  175. marmistrz I can, but I think that forward secrecy in IMs is a nice thing :)
  176. lovetox either way, i think im conveinced by your approach
  177. lovetox but with the current omemo plugin, i think we can only pass the "is encrypted" flag to gajim, its just too bad designed for the trust thing
  178. lovetox because right now you have to do a db lookup per fingerprint
  179. lovetox which means if you load 20 messages on start, you have 20 db querys on top just to get the trust information
  180. lovetox very inefficient
  181. lovetox but i work on a new omemo plugin that makes everything better, and also adds blind trust option
  182. lovetox and also uses a new lib
  183. lovetox i think for now we should do the "is encrypted" thing, this we can finish in the next days
  184. marmistrz lovetox, we could load the whole fpr db to memory if it's not very big (and usually it won't be), or cache the queries (usually there won't be very many fprs involved)
  185. marmistrz so it's one query per chat line, which is the current complexity
  186. marmistrz but yeah, we can wait for the new omemo lib
  187. marmistrz but yeah, we can wait for the new omemo plugin
  188. marmistrz and focus on the encrypted/unencrypted thing for the time being
  189. lovetox yeah i want to do this in the new plugin, have it in memory
  190. lovetox so its fast
  191. lovetox i already have this for openpgp
  192. marmistrz great :)
  193. lovetox but omemo plugin i wrote 2 years ago, with some other people, and i didnt have a clue what i did, i was just happy that it worked
  194. marmistrz a, and yesterday (or some other day) I forgot replying to a message about annotating types: I know that sometimes it's damn hard to figure out the types, so usually I do it that way
  195. marmistrz f I can figure out the type in some small amount of time, then I annotate (say a minute or two)
  196. marmistrz if I can't see what it is, then I leave it
  197. marmistrz if I can't see what it is, then I leave it unannotated, there's no use spending too much time on it for old code
  198. marmistrz But sometimes you need to know the type anyway, and if you have already discovered that, then it's good to save the work you've done in code.
  199. marmistrz that's how I did it the last time I worked with a giant python code
  200. lovetox marmistrz, my problem was not finding the type, of course i know the types my methods return
  201. lovetox its getting mypy to flag it as OK
  202. lovetox there run this through mypy
  203. lovetox
  204. lovetox annoted
  205. lovetox faily easy function, can take Union[str, bool] and return bool
  206. lovetox but it needs more than declaring that to get through mypy
  207. marmistrz well, it may depend on your mypy opts. I ran mypy and I'm wondering: why does gajim/common/ work at all, when _ for gettext is not imported from anywhere?
  208. marmistrz gajim/common/ error: Name '_' is not defined
  209. lovetox there is a method in the gettext module
  210. lovetox its called install()
  211. lovetox if you call this, it installs the _() method in a global namespace of your application
  212. lovetox so the way here is to tell mypy to ignore it, but also that option i did not find anywhere
  213. lovetox if i annote that function it always tells me
  214. lovetox error: Incompatible return value type (got "Union[str, bool]", expected "bool")
  215. lovetox it thinks the return value of the function can be str or bool
  216. lovetox but it can never be str
  217. lovetox but it doesnt realises that
  218. lovetox because of that
  219. lovetox if value in (True, False): return value
  220. lovetox value is Union[str, bool]
  221. lovetox and it thinks because there is a line "return value" that this is a possibility
  222. marmistrz lovetox, send me your example file (annotated) and I'll take a look
  223. lovetox it doesnt recognice that the condition "if value in (True, False)" makes it impossible that a str is returned
  224. lovetox
  225. lovetox there
  226. marmistrz Thx, I'll take a look tomorrow
  227. lovetox k, look that i finish the thing in the omemo plugin tomorrow
  228. lovetox then we can test the MR
  229. marmistrz kthx.:)
  230. Link Mauve lovetox, is '' really allowed as a False value in (I guess) xs:boolean?
  231. Link Mauve apparently not.
  232. lovetox yes i know, i added this because nbxmpp returns '' if the cdata is empty
  233. lovetox it doesnt hurt to convert this to false
  234. Link Mauve It could, for instance it could hide a server bug.
  235. Link Mauve In which case would you get an empty cdata or characters?
  236. lovetox yes, but gajim is not primarily a debug maschine for other clients and servers
  237. lovetox somethimes you have to take a compromise
  238. Link Mauve In which case is this compromise needed, is what I’m asking.
  239. Link Mauve Because it sounds to me like this should instead be fixed in a server.
  240. lovetox if someone behaves wrong, and adds <asd/> instead of <asd>false</asd>
  241. Link Mauve This sounds like a bug which should be fixed, instead of a workaround added in every client just for this one bug.
  242. marmistrz
  243. marmistrz ^ lovetox
  244. marmistrz and please raise a bug against mypy (you can mention me there), mypy shouldn't refuse your code anyway
  245. lovetox so it can evaluate conditions
  246. lovetox good to know
  247. marmistrz you could also use a cast:
  248. marmistrz so it looks like a known limitation
  249. lovetox its so weird to add something like that into the code
  250. lovetox o = cast(int, o)
  251. marmistrz indeed. but isinstance is obviously preferred in OO code
  252. lovetox actually that is then executed by python
  253. lovetox when its running
  254. lovetox but thanks, i try to annoate my first module now :D
  255. lovetox and install mypy on the ci
  256. marmistrz pleasure mine :)
  257. marmistrz if you have some mypy problems, feel free to ask. :) You can also ask on the mypy gitter (I'll be unavailable for a week starting next Sunday)
  258. lovetox what is a "gitter"?
  259. concerto lovetox: Yet Another IM Protocol™
  260. Link Mauve Nah, a cast should always be avoided, it basically destroys mypy’s usefulness.
  261. concerto lovetox: created by GitHub, open-sourced last year
  262. concerto Is there any work being done on read markers?
  263. marmistrz what, gitter got open source?
  264. concerto yeah, I just found out a couple days ago, too.
  265. lovetox no concerto, its not worth the effort with current textview
  266. concerto
  267. lovetox im focusing now on getting 1.1 out
  268. lovetox then we can talk about stuff for 1.2
  269. lovetox marmistrz, any idea what to do about the "_ is undefined"
  270. lovetox in mypy, without adding imports to every module?
  271. lovetox hm i ask on that gitter thing
  272. bot Philipp Hörist pushed 1 commit to branch _refs/heads/master_ of _gajim_ < >: *6ac31ba5* < > Update .gitignore
  273. concerto Anyone reckon it'd be nice to be able to make groups for groupchats?
  274. concerto To categorize them, like contacts? Or maybe just put MUCs _in_ the contact groups?