02.xhtml 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!--
  3. h t t :: / / t /
  4. h t t :: // // t //
  5. h ttttt ttttt ppppp sssss // // y y sssss ttttt //
  6. hhhh t t p p s // // y y s t //
  7. h hh t t ppppp sssss // // yyyyy sssss t //
  8. h h t t p s :: / / y .. s t .. /
  9. h h t t p sssss :: / / yyyyy .. sssss t .. /
  10. <https://y.st./>
  11. Copyright © 2016 Alex Yst <mailto:copyright@y.st>
  12. This program is free software: you can redistribute it and/or modify
  13. it under the terms of the GNU General Public License as published by
  14. the Free Software Foundation, either version 3 of the License, or
  15. (at your option) any later version.
  16. This program is distributed in the hope that it will be useful,
  17. but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  19. GNU General Public License for more details.
  20. You should have received a copy of the GNU General Public License
  21. along with this program. If not, see <https://www.gnu.org./licenses/>.
  22. -->
  23. <!DOCTYPE html>
  24. <html xmlns="http://www.w3.org/1999/xhtml">
  25. <head>
  26. <base href="https://y.st./en/weblog/2016/05-May/02.xhtml" />
  27. <title>Switching email clients (again) &lt;https://y.st./en/weblog/2016/05-May/02.xhtml&gt;</title>
  28. <link rel="icon" type="image/png" href="/link/CC_BY-SA_4.0/y.st./icon.png" />
  29. <link rel="stylesheet" type="text/css" href="/link/basic.css" />
  30. <link rel="stylesheet" type="text/css" href="/link/site-specific.css" />
  31. <script type="text/javascript" src="/script/javascript.js" />
  32. <meta name="viewport" content="width=device-width" />
  33. </head>
  34. <body>
  35. <nav>
  36. <p>
  37. <a href="/en/">Home</a> |
  38. <a href="/en/a/about.xhtml">About</a> |
  39. <a href="/en/a/contact.xhtml">Contact</a> |
  40. <a href="/a/canary.txt">Canary</a> |
  41. <a href="/en/URI_research/"><abbr title="Uniform Resource Identifier">URI</abbr> research</a> |
  42. <a href="/en/opinion/">Opinions</a> |
  43. <a href="/en/coursework/">Coursework</a> |
  44. <a href="/en/law/">Law</a> |
  45. <a href="/en/a/links.xhtml">Links</a> |
  46. <a href="/en/weblog/2016/05-May/02.xhtml.asc">{this page}.asc</a>
  47. </p>
  48. <hr/>
  49. <p>
  50. Weblog index:
  51. <a href="/en/weblog/"><abbr title="American Standard Code for Information Interchange">ASCII</abbr> calendars</a> |
  52. <a href="/en/weblog/index_ol_ascending.xhtml">Ascending list</a> |
  53. <a href="/en/weblog/index_ol_descending.xhtml">Descending list</a>
  54. </p>
  55. <hr/>
  56. <p>
  57. Jump to entry:
  58. <a href="/en/weblog/2015/03-March/07.xhtml">&lt;&lt;First</a>
  59. <a rel="prev" href="/en/weblog/2016/05-May/01.xhtml">&lt;Previous</a>
  60. <a rel="next" href="/en/weblog/2016/05-May/03.xhtml">Next&gt;</a>
  61. <a href="/en/weblog/latest.xhtml">Latest&gt;&gt;</a>
  62. </p>
  63. <hr/>
  64. </nav>
  65. <header>
  66. <h1>Switching email clients (again)</h1>
  67. <p>Day 00422: Monday, 2016 May 02</p>
  68. </header>
  69. <p>
  70. Fearing that the high school might deny my transcript request based on my home address not matching the address on my photo <abbr title="identification">ID</abbr>, I made a copy of the change-of-address label sent to me by the <abbr title="Department of Motor Vehicles">DMV</abbr>, cut it out, then copied my <abbr title="identification">ID</abbr> with the label copy applied.
  71. I biked down to the post office to get it mailed, so now all I can do as far as school is concerned is wait.
  72. </p>
  73. <p>
  74. A while back, Chris Zabriskie gave me his albums that he released under the name <a href="http://chriszabriskie.com./lofi/">Lo-Fi is Sci-Fi</a>, but due to not coming through the usual channels, they are in <abbr title="MPEG-1 or MPEG-2 Audio Layer III">MP3</abbr> format and without cover art.
  75. Today, I tracked down the cover art.
  76. I got it from the Free Music Archive, though I won&apos;t link to them due to being behind a CloudFlare <abbr title="Completely Automated Public Turing test to tell Computers and Humans Apart">CAPTCHA</abbr> wall.
  77. The Lo-Fi is Sci-Fi albums and artist profile have been deleted from the website, but the individual tracks are still accessible.
  78. The cover art isn&apos;t linked to in any findable way, but <a href="https://3g2upl4pq6kufc4m.onion/?q=Lo-Fi+is+Sci-Fi+O+Great+Queen+Electric%2C+What+Do+You+Have+Waiting+for+Me%3F&amp;t=ffsb&amp;iax=1&amp;ia=images">DuckDuckGo</a> found all four album covers when I searched for the cover of &quot;O Great Queen Electric, What Do You Have Waiting for Me?&quot;.
  79. If someone reading this has <abbr title="Free Lossless Audio Codec">FLAC</abbr> files, I&apos;m still looking for those.
  80. Unfortunately, Chris removed the Bandcamp page, so we can&apos;t just buy <abbr title="Free Lossless Audio Codec">FLAC</abbr> files there.
  81. </p>
  82. <p>
  83. The name &quot;Pinentry&quot; has always been strange in my mind, though now I think that I know what it means: &quot;<abbr title="personal identification number">PIN</abbr> entry&quot;; I found a page that calls it <a href="http://www.linuxfromscratch.org./blfs/view/stable/general/pinentry.html">&quot;pin-entry&quot;</a>.
  84. Speaking of which, I managed to track down instructions for <a href="https://tr.opensuse.org./SDB:Using_gpg-agent">making Pinentry less annoying</a>.
  85. In addition to making <abbr title="GNU Privacy Guard">GnuPG</abbr> remember passwords for a short time so that multiple files may be signed in one session, these instructions prevent Pinentry from hogging focus and preventing one from typing in other applications.
  86. this is exceedingly helpful if you need to type your password to unlock a password database and retrieve a password to unlock your <abbr title="Pretty Good Privacy">PGP</abbr> key.
  87. </p>
  88. <p>
  89. <abbr title="Lightweight X11 Desktop Environment">LXDE</abbr> requires a lot of work just to get into a usable state.
  90. Once there though, it seems to be a lot nicer than other desktops.
  91. Xfce on the other hand is very nice and configured pretty well by default, but it&apos;s impossible to configure it to behave reasonably in some ways.
  92. If <abbr title="Lightweight X11 Desktop Environment">LXDE</abbr> had a reasonable default configuration, I could actually recommend it to people, but as it is, I can&apos;t really do that.
  93. I can&apos;t recommend software that takes a lot of time and research; that just wouldn&apos;t be a nice thing for me to do.
  94. </p>
  95. <p>
  96. My primary election ballot came by post today.
  97. I should make sure to have it filled out and submitted by the sixteenth of this month.
  98. It&apos;s due by the seventeenth, but I don&apos;t have the full day to submit it both because it&apos;s due earlier in the day and because the public library (the nearest ballot drop box) isn&apos;t open all day.
  99. I need to research the candidates for most offices, I don&apos;t know anything about them.
  100. All that I currently know is that I need to vote against Clinton for the presidential nomination.
  101. </p>
  102. <p>
  103. I decided to try to <a href="https://copperhead.co/contact">contact the Copperhead team</a> to see if they use binary blobs in their operating system.
  104. However, their <abbr title="Pretty Good Privacy">PGP</abbr> key doesn&apos;t contain the email address that I needed to write to, so <a href="apt:evolution">Evolution</a> refused to encrypt the email.
  105. I needed to set up a more flexible mail client.
  106. I looked into <a href="apt:icedove">Icedove</a>, which I&apos;ve used in the past, but wasn&apos;t able to meet my needs before.
  107. Now, however, in addition to the availability of a plugin to provide <abbr title="Pretty Good Privacy">PGP</abbr> support, I found a plugin to provide CardDAV support.
  108. After setting up the connection to the server, I realized that I&apos;d forgotten to set the client up to use <abbr title="The Onion Router">Tor</abbr>, much to my frustration.
  109. Migrating my old local email database to the new email client was no walk in the park either.
  110. I found some <a href="https://support.mozilla.org./en-US/kb/switching-thunderbird">instructions</a> for making the switch, bu they didn&apos;t work.
  111. I finally found some <a href="http://kb.mozillazine.org./Thunderbird_:_FAQs_:_Migration#Specific_programs">newer information</a>, and as it turns out, <a href="apt:evolution">Evolution</a> used to use the same database format as Icedove, but Evolution has been updated to use a newer format that uses multiple smaller files instead of one large one.
  112. This seems like a better format to me just because the emails are easier to separate and if one is damaged, the rest could be fine.
  113. However, as Icedove is still using the older format, the email database needed to be converted before it could be imported.
  114. After much frustration, I finally found <a href="http://stackoverflow.com/questions/2501182/convert-maildir-to-mbox">this script</a>:
  115. </p>
  116. <blockquote><pre><code>#!/usr/bin/env python
  117. # -*- coding: utf-8 -*-
  118. &quot;&quot;&quot;
  119. Frédéric Grosshans, 19 January 2012
  120. Nathan R.
  121. Yergler, 6 June 2010
  122. This file does not contain sufficient creative expression to invoke
  123. assertion of copyright.
  124. No warranty is expressed or implied; use at
  125. your own risk.
  126. ---
  127. Uses Python&apos;s included mailbox library to convert mail archives from
  128. maildir [http://en.wikipedia.org/wiki/Maildir] to
  129. mbox [http://en.wikipedia.org/wiki/Mbox] format, icluding subfolder.
  130. See http://docs.python.org/library/mailbox.html#mailbox.Mailbox for
  131. full documentation on this library.
  132. ---
  133. To run, save as md2mb.py and run:
  134. $ python md2mb.py [maildir_path] [mbox_filename]
  135. [maildir_path] should be the the path to the actual maildir (containing new,
  136. cur, tmp, and the subfolders, which are hidden directories with names like
  137. .subfolde.subsubfolder.subsubsbfolder);
  138. [mbox_filename] will be newly created, as well as a [mbox_filename].sbd the
  139. directory.
  140. &quot;&quot;&quot;
  141. import mailbox
  142. import sys
  143. import email
  144. import os
  145. def maildir2mailbox(maildirname, mboxfilename):
  146. &quot;&quot;&quot;
  147. slightly adapted from maildir2mbox.py,
  148. Nathan R.
  149. Yergler, 6 June 2010
  150. http://yergler.net/blog/2010/06/06/batteries-included-or-maildir-to-mbox-again/
  151. &quot;&quot;&quot;
  152. # open the existing maildir and the target mbox file
  153. maildir = mailbox.Maildir(maildirname, email.message_from_file)
  154. mbox = mailbox.mbox(mboxfilename)
  155. # lock the mbox
  156. mbox.lock()
  157. # iterate over messages in the maildir and add to the mbox
  158. for msg in maildir:
  159. mbox.add(msg)
  160. # close and unlock
  161. mbox.close()
  162. maildir.close()
  163. #Creates the main mailbox
  164. dirname=sys.argv[-2]
  165. mboxname=sys.argv[-1]
  166. print(dirname +&apos; -&gt; &apos; +mboxname)
  167. mboxdirname=mboxname+&apos;.sbd&apos;
  168. maildir2mailbox(dirname,mboxname)
  169. if not os.path.exists(mboxdirname): os.makedirs(mboxdirname)
  170. listofdirs=[dn for dn in os.walk(dirname).next()[1] if dn not in [&apos;new&apos;, &apos;cur&apos;, &apos;tmp&apos;]]
  171. for curfold in listofdirs:
  172. curlist=[mboxname]+curfold.split(&apos;.&apos;)
  173. curpath=os.path.join(*[dn+&apos;.sbd&apos; for dn in curlist if dn])
  174. if not os.path.exists(curpath): os.makedirs(curpath)
  175. print(&apos;| &apos; +curfold +&apos; -&gt; &apos;+curpath[:-4])
  176. maildir2mailbox(os.path.join(dirname,curfold),curpath[:-4])
  177. print(&apos;Done&apos;)</code></pre></blockquote>
  178. <p>
  179. Using that script converted the database very painlessly, though locating the script in the first place wasn&apos;t easy.
  180. </p>
  181. <p>
  182. With my email client set up, I sent my inquiry to the CopperheadOS team.
  183. </p>
  184. <p>
  185. While waiting for a response, I also asked if anyone in <a href="ircs://sbuk7aqcxkoyipwv.onion:49152/%23Replicant">#Replicant</a> knew anything.
  186. I specifically mentioned the &quot;optional Google service integration&quot;, and pab3 said that <a href="https://microg.org./">microG</a> could be used to integrate Google services without including proprietary components.
  187. I don&apos;t know for sure that this is what&apos;s being used to provide the integration though, I only know that it&apos;s a possibility.
  188. </p>
  189. <p>
  190. I should have finished the release of <a href="https://git.vola7ileiax4ueow.onion/y.st./include.d">include.d</a> today, but getting my email client set up took a lot of time.
  191. Maybe I&apos;ll get it done tomorrow.
  192. </p>
  193. <hr/>
  194. <p>
  195. Copyright © 2016 Alex Yst;
  196. You may modify and/or redistribute this document under the terms of the <a rel="license" href="/license/gpl-3.0-standalone.xhtml"><abbr title="GNU&apos;s Not Unix">GNU</abbr> <abbr title="General Public License version Three or later">GPLv3+</abbr></a>.
  197. If for some reason you would prefer to modify and/or distribute this document under other free copyleft terms, please ask me via email.
  198. My address is in the source comments near the top of this document.
  199. This license also applies to embedded content such as images.
  200. For more information on that, see <a href="/en/a/licensing.xhtml">licensing</a>.
  201. </p>
  202. <p>
  203. <abbr title="World Wide Web Consortium">W3C</abbr> standards are important.
  204. This document conforms to the <a href="https://validator.w3.org./nu/?doc=https%3A%2F%2Fy.st.%2Fen%2Fweblog%2F2016%2F05-May%2F02.xhtml"><abbr title="Extensible Hypertext Markup Language">XHTML</abbr> 5.1</a> specification and uses style sheets that conform to the <a href="http://jigsaw.w3.org./css-validator/validator?uri=https%3A%2F%2Fy.st.%2Fen%2Fweblog%2F2016%2F05-May%2F02.xhtml"><abbr title="Cascading Style Sheets">CSS</abbr>3</a> specification.
  205. </p>
  206. </body>
  207. </html>