<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Sound &amp; Complete</title><link>https://piotr.is/</link><description>Recent content on Sound &amp; Complete</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2009—2026 Piotr Kaźmierczak</copyright><lastBuildDate>Thu, 12 Aug 2021 00:00:00 +0100</lastBuildDate><atom:link href="https://piotr.is/index.xml" rel="self" type="application/rss+xml"/><item><title>The Deceptive PR Behind Apple’s “Expanded Protections for Children”</title><link>https://piotr.is/2021/apple-csam/</link><pubDate>Thu, 12 Aug 2021 00:00:00 +0100</pubDate><guid>https://piotr.is/2021/apple-csam/</guid><description>&lt;div class="alert"&gt;
&lt;strong&gt;Update Dec 7, 2022:&lt;/strong&gt; Apple &lt;a href="https://www.wired.com/story/apple-photo-scanning-csam-communication-safety-messages/"&gt;scrapped the plan&lt;/a&gt; of CSAM-scanning iCloud Photos libraries.
&lt;/div&gt;
&lt;p&gt;My wife is pretty tech-savvy. While not a software engineer and not a computer scientist, she has a good understanding of computing technologies, statistics, formal methods, and an intuitive (but quickly growing) grasp of machine learning. She&amp;rsquo;s also able to code in R for &lt;a href="http://karolinakrzyzanowska.com/"&gt;her research&lt;/a&gt;, and she&amp;rsquo;s highly addicted to her iPhone 12 Mini, her iPad Pro, and her 12&amp;quot; MacBook, despite its slowly but steadily failing keyboard. With all this being said, I spent about 30 minutes yesterday evening trying to explain to her, what&amp;rsquo;s all the fuss about Apple&amp;rsquo;s new CSAM (child sexual abuse material) prevention &lt;a href="https://www.apple.com/child-safety/"&gt;features&lt;/a&gt; that are being introduced in iOS 15.&lt;/p&gt;
&lt;p&gt;The point of the anecdote is of course not to show that my wife is dim, but rather to illustrate the issue with said CSAM features. In contrast to how easy it is to explain to &amp;ldquo;an average Joe&amp;rdquo; why Google&amp;rsquo;s or Facebook&amp;rsquo;s business models pose a threat to people&amp;rsquo;s privacy, it&amp;rsquo;s very hard to explain why Apple&amp;rsquo;s new mechanism is even worse.&lt;/p&gt;
&lt;p class="aside"&gt;
Actually, as I was working on a draft of this post, Matthew Green and Alex Stamos wrote &lt;a href="https://www.nytimes.com/2021/08/11/opinion/apple-iphones-privacy.html"&gt;an op-ed in the New York Times&lt;/a&gt; that makes a good attempt at trying to concisely explain the issue to a non-technical audience. There&amp;rsquo;s hope.
&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t want this blog post to be an exhaustive explanation of what exactly Apple is planning to do, because many &lt;a href="https://stratechery.com/2021/apples-mistake/"&gt;other&lt;/a&gt; &lt;a href="https://www.hackerfactor.com/blog/index.php?/archives/929-One-Bad-Apple.html"&gt;excellent&lt;/a&gt; &lt;a href="https://daringfireball.net/2021/08/apple_child_safety_initiatives_slippery_slope"&gt;articles&lt;/a&gt; have already been written about it over the last week. In essence, iOS 15 will introduce a mechanism that allows for checking user&amp;rsquo;s photographs against a CSAM content database, and this will happen &lt;em&gt;on the device&lt;/em&gt;. That&amp;rsquo;s the big difference between Apple&amp;rsquo;s approach and what every other company that hosts big libraries of photographs online has been doing for a while now. A paragraph from &lt;a href="https://stratechery.com/2021/apples-mistake/"&gt;Ben Thompson&amp;rsquo;s article&lt;/a&gt; that was published yesterday sums it up pretty well:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;(…) instead of adding CSAM-scanning to iCloud Photos in the cloud that
they own and operate, Apple is compromising the phone that you and I
own and operate, without any of us having a say in the matter. Yes,
you can turn off iCloud Photos to disable Apple&amp;rsquo;s scanning, but that is a &lt;em&gt;policy&lt;/em&gt; decision; the &lt;em&gt;capability&lt;/em&gt; to reach into a user&amp;rsquo;s phone
now exists, and there is nothing an iPhone user can do to get rid of
it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You could of course say that it&amp;rsquo;s &amp;ldquo;a slippery slope&amp;rdquo; sort of argument, and that we should trust Apple that it won&amp;rsquo;t use the functionality for anything else. Setting aside the absurdity of trusting a giant, for-profit corporation over a democratically-elected government, we should bear in mind that Apple&amp;rsquo;s record here is much less stellar than they&amp;rsquo;d like us to think. The company is already cooperating with the Chinese government, e.g., by storing &lt;a href="https://www.nytimes.com/2021/05/17/technology/apple-china-censorship-data.html"&gt;personal data of Chinese citizens&lt;/a&gt; only on servers run by a Chinese company, and has previously cancelled their plans for iCloud backups encryption under &lt;a href="https://www.reuters.com/article/us-apple-fbi-icloud-exclusive-idUSKBN1ZK1CT"&gt;the pressure of FBI&lt;/a&gt;. Apple released an &lt;a href="https://www.apple.com/child-safety/pdf/Expanded_Protections_for_Children_Frequently_Asked_Questions.pdf"&gt;FAQ document&lt;/a&gt; yesterday in which it tried to clarify and address the issues, but if anything, they confirmed what we all assumed to be true: that the only thing stopping any government agency or other malicious actor from substituting some other image hashes (e.g., photographs of homosexual couples in countries where homosexuality is illegal) for CSAM, is Apple&amp;rsquo;s internal policy. The technology that would allow that to happen is already there.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://pbs.twimg.com/media/DwGoq2uV4AA_Aov?format=jpg&amp;amp;name=large" alt="" title="Those [posters](https://twitter.com/chrisvelazco/status/1081330848262062080) won't age well, will they."&gt;&lt;/p&gt;
&lt;p&gt;In the world of computer security this technology has a name, it&amp;rsquo;s called &amp;ldquo;a backdoor.&amp;rdquo; A well-documented and well-intended backdoor, but still a backdoor. Installed and enabled by default on millions of devices around the world.&lt;/p&gt;
&lt;p&gt;So why on Earth would Apple, a company that&amp;rsquo;s been building a brand as privacy-protecting over the last few years, go for such a solution? And why now?&lt;/p&gt;
&lt;p&gt;The hypothesis that I have is that Apple wishes to distance itself from checking users&amp;rsquo; data. They&amp;rsquo;ve been fighting with the FBI and the federal government for years, they&amp;rsquo;ve been struggling with not reporting CSAM content to the &lt;a href="https://www.missingkids.org"&gt;NCMEC&lt;/a&gt;, they don&amp;rsquo;t want to be involved in any of this anymore. They want to create a situation in which they could offer end-to-end encryption for iMessage, iCloud Drive, iCloud Photo Library and iCloud Backups, and at the same time remain compliant. This might be the only way to have your cake and eat it, too, in fact. And it gets better: due to how the mechanism is implemented, Apple will never see the actual user data. It will only know whether there&amp;rsquo;s a match against the data on the phone and the data on the server, so in its own marketing campaigns they can still claim to respect the user&amp;rsquo;s privacy. And if this mechanism ever gets used for anything else, they can always claim that they are simply complying with local regulations, and that they themselves neither censor nor even look at the data on their users&amp;rsquo; phones.&lt;/p&gt;
&lt;p&gt;Sadly, due to the intrinsically technical nature of the problem, which I mentioned in the first paragraphs of this article, I believe the public will buy it, and during the next public Apple event Tim Cook will triumphantly announce some privacy-enhancing features, like protecting your personal data against cross-app tracking or offering VPN-like, anonymized connection for Safari or Apple Mail. All this, while there&amp;rsquo;s a backdoor installed on your phone, and you can do nothing about it.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;It pains me as a self-proclaimed Apple fanboy, a loyal customer of many years and even an evangelist of the brand to see the company making a step in such a dangerous direction.&lt;/p&gt;
&lt;p class="aside"&gt;
The worst part is: how do I put my money where my mouth is? Am I going back to using Linux on the desktop (2022 will be the year of Linux on the desktop, remember), debugging wifi drivers and tirelessly trying to make resume-from-suspend work? Am I getting a Pixel and putting GrapheneOS on it like a total nerd? FUCK.
&lt;/p&gt;
&lt;p&gt;I can only hope that the backlash caused by &lt;a href="https://twitter.com/Snowden/status/1423751484081070081"&gt;the screeching voice of the minority&lt;/a&gt;, will make Apple nonetheless reconsider, and perhaps change the implementation in future versions of iOS. &lt;/p&gt;
&lt;small&gt;
&lt;a href="https://news.ycombinator.com/item?id=28160673"&gt;Discussion on HackerNews.&lt;/a&gt;
&lt;/small&gt;</description></item><item><title>Previewing LaTeX symbols without preview-latex</title><link>https://piotr.is/2012/previewing-latex-symbols-without-preview-latex/</link><pubDate>Thu, 27 Dec 2012 00:00:00 +0000</pubDate><guid>https://piotr.is/2012/previewing-latex-symbols-without-preview-latex/</guid><description>&lt;p&gt;This blog&amp;rsquo;s most popular post is the &lt;a href="https://piotr.is/2010/05/13/emacs-as-the-ultimate-latex-editor/" title="Emacs as the Ultimate LaTeX Editor"&gt;Emacs howto
entry&lt;/a&gt;, so I thought I&amp;rsquo;d share one more
LaTeX-related tip for all your Emacs needs. Besides the traditional
&lt;code&gt;preview-latex&lt;/code&gt; way of generating TeX formulas inside Emacs buffer,
there&amp;rsquo;s a faster and neater way to do this using Emacs&amp;rsquo; unicode support.
My friends Erik Parmann and Pål Drange made a simple
&lt;a href="https://bitbucket.org/mortiferus/latex-pretty-symbols.el"&gt;package&lt;/a&gt; that
turns many math symbols and Greek letters commands into corresponding
unicode characters. Here&amp;rsquo;s a sample of how this looks:&lt;/p&gt;
&lt;p&gt;&lt;img src="emacs-pretty-latex.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re running Emacs 24, you can get the package from
&lt;a href="http://melpa.milkbox.net"&gt;MELPA&lt;/a&gt; repository. Otherwise you can get it
from &lt;a href="https://bitbucket.org/mortiferus/latex-pretty-symbols.el"&gt;Erik&amp;rsquo;s
bitbucket&lt;/a&gt;,
put it somewhere in your load path and load it with &lt;code&gt;(require 'latex-pretty-symbols)&lt;/code&gt;. There, happy TeXing!&lt;/p&gt;
&lt;p&gt;(also, you can make similar tricks with &lt;a href="https://github.com/haskell/haskell-mode"&gt;Haskell
mode&lt;/a&gt; and have all your lambdas
displayed properly).&lt;/p&gt;</description></item><item><title>A eulogy for Maemo/MeeGo</title><link>https://piotr.is/2011/a-eulogy-for-maemo/meego/</link><pubDate>Mon, 24 Oct 2011 00:00:00 +0000</pubDate><guid>https://piotr.is/2011/a-eulogy-for-maemo/meego/</guid><description>&lt;p&gt;A long, long time ago, when I was still very enthusiastic about desktop linux and free software in general, an idea of a linux-based cellphone or a &amp;lsquo;palmtop&amp;rsquo;, as they were called back in the day, was something the FLOSS community dreamed of. There were numerous software and hardware projects (does anyone still remember &lt;a href="http://en.wikipedia.org/wiki/Openmoko"&gt;OpenMoko&lt;/a&gt;?), and one of them, &lt;a href="http://www.android.com/"&gt;Android&lt;/a&gt;, was acquired by Google in 2005, and later became one of the most popular operating systems for mobile devices in the world.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;I never liked Android. Not because I didn&amp;rsquo;t like the interface or the phones, or the logo, or Google &amp;ndash; no. I didn&amp;rsquo;t like Android because it was a fork of the linux kernel and a linux distribution that didn&amp;rsquo;t (and from what I know still doesn&amp;rsquo;t) support the full set of standard GNU libraries or X window system.&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt; And because there was a much &lt;em&gt;better&lt;/em&gt; alternative developed by some Gnome project programmers and Nokia, called &lt;a href="http://maemo.org/"&gt;Maemo&lt;/a&gt;, that already in 2005 provided a nice touch-based interface, supported many well-established linux technologies (X.org, Gtk+, ESD, etc.), and was actually used by a device you could buy, namely Nokia&amp;rsquo;s &lt;a href="http://en.wikipedia.org/wiki/Nokia_770_Internet_Tablet"&gt;N770 Internet Tablet&lt;/a&gt;. Granted, it wasn&amp;rsquo;t a phone, but the software was mature compared to Android at that time (first Android devices available to the public were offered in late 2008), and was much more hacker-friendly and linux-friendly. It was easy for desktop linux programmers to integrate their apps with Maemo and to write Maemo software. At least that&amp;rsquo;s the way I thought about it back in 2006.&lt;/p&gt;
&lt;p&gt;In 2009 Nokia released the first smartphone that ran Maemo &amp;ndash; the &lt;a href="http://en.wikipedia.org/wiki/Nokia_N900"&gt;N900&lt;/a&gt;. But that was 2009, and Android already had an established user base, and new Android phones were released every couple of months. I&amp;rsquo;ve seen many N900 phones at FOSDEM in 2010, free software hackers really loved them. I remember everyone being excited about the potential Maemo had, but people also seemed to begin to realize that the battle was lost. Nokia was late, Android was good (or good enough) and popular, and the N900 remained a smartphone good for hackers and hackers only.&lt;/p&gt;
&lt;p&gt;However, in February 2010 Nokia&amp;rsquo;s Maemo and Intel&amp;rsquo;s Moblin &lt;a href="http://www.techradar.com/news/phone-and-communications/mobile-phones/intel-and-nokia-merge-moblin-and-maemo-to-form-meego-670302"&gt;merged&lt;/a&gt;, creating &lt;a href="https://meego.com/"&gt;MeeGo&lt;/a&gt;&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;, and then in June Nokia &lt;a href="http://www.reuters.com/article/2010/06/24/nokia-idUSLDE65N14720100624"&gt;announced&lt;/a&gt; that all its smartphones will run MeeGo. There was hope, but not for long. In February 2011 Nokia &lt;a href="http://www.bbc.co.uk/news/business-12427680"&gt;changed its mind&lt;/a&gt;, and decided to team up with Microsoft, and have its new smartphones run the new Windows Phone 7.&lt;/p&gt;
&lt;p&gt;It therefore saddens me to read the &lt;a href="http://www.engadget.com/2011/10/22/nokia-n9-review/"&gt;review&lt;/a&gt; of the latest MeeGo-based smartphone, the fantastic N9. It seems like a terrific device, both hardware- and software-wise. Engadget sums the software up in the following way:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;MeeGo 1.2 &lt;a href="http://www.engadget.com/tag/Harmattan/"&gt;Harmattan&lt;/a&gt; is such
a breath of fresh air it will leave you gasping &amp;ndash; that is, until you
remember that you&amp;rsquo;re dealing with a dead man walking. It&amp;rsquo;s impossible
to dismiss what&amp;rsquo;s been achieved here &amp;ndash; a thoroughly modern, elegant,
linux-based OS with inspired design that&amp;rsquo;s simple and intuitive to
use, all developed in house by Nokia.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That&amp;rsquo;s exactly how things are with N9: it&amp;rsquo;s awesome in so many ways, but so fundamentally flawed because it&amp;rsquo;s a dead platform. Dead to most people, that is, because hackers will definitely find ways to upgrade the software, they&amp;rsquo;ll write apps if they need to, and will be happy to use the wonderful hardware that N9 features. The rest probably won&amp;rsquo;t even notice such a phone existed, because Nokia said it will not release the N9 in US, UK, Japan, Germany or Canada.&lt;/p&gt;
&lt;p&gt;And I will shed a tear, because what seems to be the most innovative and fresh mobile platform today is being buried alive. And why? Probably even people at Nokia do not know.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://news.ycombinator.com/item?id=3162429"&gt;Discussion on HackerNews&lt;/a&gt;.&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Actually Canalyst &lt;a href="http://www.canalys.com/newsroom/google%E2%80%99s-android-becomes-world%E2%80%99s-leading-smart-phone-platform"&gt;reported&lt;/a&gt; that right now (October 2011) Android is the best selling operating system for smartphones.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;I don&amp;rsquo;t think it&amp;rsquo;s necessarily a good thing for an operating system for smartphones to support all that any more. But in 2005 things looked a bit different.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;It&amp;rsquo;s easy to get lost. Now MeeGo merged with some other projects and became &lt;a href="https://www.tizen.org/"&gt;Tizen&lt;/a&gt;.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>In Defense Of The PhD</title><link>https://piotr.is/2011/in-defense-of-the-phd/</link><pubDate>Sun, 09 Jan 2011 00:00:00 +0000</pubDate><guid>https://piotr.is/2011/in-defense-of-the-phd/</guid><description>&lt;p&gt;Recently there&amp;rsquo;s been a lively discussion on why do people pursue PhD studies, is it good (for them and for the society), is it optimal (for the society and for the universities), and so on. The whole topic is by no means new, but since The Economist&amp;rsquo;s &lt;a href="http://www.economist.com/node/17723223"&gt;recent publication&lt;/a&gt;, &lt;a href="http://pipeline.corante.com/archives/2011/01/07/the_phd_problem.php"&gt;other&lt;/a&gt; &lt;a href="https://twitter.com/irowan/status/23506930576138240"&gt;people&lt;/a&gt; expressed their opinions.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m 25, I&amp;rsquo;m a full-time PhD student, and I&amp;rsquo;d like to put in my oar now.&lt;/p&gt;
&lt;p&gt;First off, while The Economist&amp;rsquo;s article has a number of valid points, it&amp;rsquo;s very US- and UK-centric. Even though the author refers to some case-studies outside the Anglo-Saxon world, like Germany, Slovakia or Belgium, some of its arguments do not apply at all to most European countries. For example:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;One thing many PhD students have in common is dissatisfaction. Some describe their work as “slave labour”. Seven-day weeks, ten-hour days, low pay and uncertain prospects are widespread. You know you are a graduate student, goes one quip, when your office is better decorated than your home and you have a favourite flavour of instant noodle. “It isn’t graduate school itself that is discouraging,” says one student, who confesses to rather enjoying the hunt for free pizza. “What’s discouraging is realising the end point has been yanked out of reach.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;We all read the &lt;a href="http://www.phdcomics.com/comics.php"&gt;PhD Comics&lt;/a&gt; and we all hear about how many hours of coursework or admin-duties a typical US grad student has. I don&amp;rsquo;t know how does it look like in other countries, but in Norway, Denmark, Holland and Belgium this is definitely &lt;strong&gt;not&lt;/strong&gt; the case. At some Dutch universities, even if PhD students want to teach, they can&amp;rsquo;t do that (e.g. because there&amp;rsquo;s too many of them, or because they are considered underqualified, or whatever). My contract clearly states that I have to spend 25% of my time on teaching, and that&amp;rsquo;s exactly what I do. One quarter of my overall work time is not much, yet I still gain valuable teaching experience, so it&amp;rsquo;s a win-win. I know many of my friends who are PhD-students work as TAs for courses taught by their promoters, and that&amp;rsquo;s usually also not too much work. Apart from all that, a little bit of teaching looks good in your CV, especially if you want to apply for post-doc or other academic positions after finishing a PhD.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;There is an oversupply of PhDs. Although a doctorate is designed as training for a job in academia, the number of PhD positions is unrelated to the number of job openings.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There probably is an oversupply of PhDs in the US and in the UK, fair point, but there isn&amp;rsquo;t one in Norway, and as far as I know not in any of the Nordic countries. Maybe it&amp;rsquo;s a peculiar situation here, but then again I hear that there&amp;rsquo;s too many PhD students in The Netherlands, yet all of my friends who recently graduated managed to get post-doc positions in the same country (yes, in some cases it took a while, but still). So let&amp;rsquo;s talk about the subject that generates most controversy: money.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;But universities have discovered that PhD students are cheap, highly motivated and disposable labour. With more PhD students they can do more research, and in some countries more teaching, with less money. A graduate assistant at Yale might earn $20,000 a year for nine months of teaching. The average pay of full professors in America was $109,000 in 2009—higher than the average for judges and magistrates.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Again: US is not the whole world. I&amp;rsquo;m not going to quote numbers here, but a PhD student in Norway gets a very decent salary, even compared to industry salaries in technology sector. I&amp;rsquo;m not saying I earn more than a senior programmer at Google, but the money is more than good enough to rent a nice flat (not shared with anyone), eat out from time to time, travel virtually wherever I want and still being able to save some of my monthly pay. The article fails to understand a basic thing behind PhD students&amp;rsquo; motivations, though: we&amp;rsquo;re not after the money. If we were, we wouldn&amp;rsquo;t be studying philosophy, logic, theoretical computer science or quantum physics. We&amp;rsquo;d go for an MBA, law or something similar, only to end up working our asses off for McKinsey, Boston Consulting, E&amp;amp;Y or PWC. That is simply not our goal, and while many PhD candidates like to whine about how little cash they have, they either lie, or they simply shouldn&amp;rsquo;t be doing a PhD at all.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;One OECD study shows that five years after receiving their degrees, more
than 60% of PhDs in Slovakia and more than 45% in Belgium, the Czech Republic,
Germany and Spain were still on temporary contracts. Many were postdocs. About
one-third of Austria’s PhD graduates take jobs unrelated to their degrees. In
Germany 13% of all PhD graduates end up in lowly occupations. In the
Netherlands the proportion is 21%.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Right, but the OECD study doesn&amp;rsquo;t show how many people without a PhD are on
temporary contracts in Slovakia five years after receiving their degrees, be
it bachelor or master&amp;rsquo;s.&lt;/p&gt;
&lt;p&gt;A major thing the article fails to understand is that most PhD students pursue
an academic career for two reasons: because it&amp;rsquo;s their passion, and because
they don&amp;rsquo;t seem to be able/willing to do anything else. Take a philosophy
graduate for example, with a master&amp;rsquo;s thesis on German, late 18th century
idealism. This person has two choices: either he goes for a &lt;em&gt;lowly
occupation&lt;/em&gt;, as the OECD study puts it, or enroll in a PhD program. Statistics
suggests that our poor philosopher might still end up working for the man,
somewhere in a call center selling insurance to people who don&amp;rsquo;t want to buy
it, but going for a PhD is still better, because he can have 3-4 years of
joyful academic life and then try his luck getting a tenure track job after a
couple of years. Even if he fails, at least he tried.&lt;/p&gt;
&lt;p&gt;PhD students/graduates are usually lousy at finding jobs outside the
universities not because they have a PhD degree, but because they&amp;rsquo;re
&lt;em&gt;different&lt;/em&gt;. Normal people don&amp;rsquo;t study philosophy, and if they&amp;rsquo;re into
computer science, they don&amp;rsquo;t care whether P≠NP &amp;ndash; they just learn
Java, Objective-C, Python or whatever else they find useful for
becoming a successful software engineer.&lt;/p&gt;
&lt;p&gt;And then finally, there&amp;rsquo;s one last thing everyone seems not to understand:
once you finish your PhD, get done with the damn post-doc contract, and become
a tenure-track researcher, you&amp;rsquo;re in the best job there is. You&amp;rsquo;re doing what
you love, you have most of the time a flexible schedule, you supervise
master&amp;rsquo;s and/or PhD students, you go to conferences all over the world. You
write papers others comment on, and at some point you might even write a book
(or co-author one). How amazingly cool is that? Oh you&amp;rsquo;re saying I&amp;rsquo;m a
dreamer, and that simply never happens? Well what about those thousands of
internet start-up companies? They &lt;em&gt;waste&lt;/em&gt; their time as well, trying to become
another Facebook or another Google. Yet they still do it, because it&amp;rsquo;s their
dream to pursue.&lt;/p&gt;
&lt;p&gt;And so is academic career ours.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://news.ycombinator.com/item?id=2085629"&gt;Discussion on HackerNews. &lt;/a&gt;&lt;/p&gt;</description></item><item><title>Continuous list enumeration throughout the document with LaTeX</title><link>https://piotr.is/2010/continuous-list-enumeration-throughout-the-document-with-latex/</link><pubDate>Mon, 28 Jun 2010 00:00:00 +0000</pubDate><guid>https://piotr.is/2010/continuous-list-enumeration-throughout-the-document-with-latex/</guid><description>&lt;p&gt;Karolina asked me today to create a macro for having a continuous list enumeration throughout the whole document, i.e.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This is the first list:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Item;&lt;/li&gt;
&lt;li&gt;Another item;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;And here goes the second list:&lt;/p&gt;
&lt;ol start="3"&gt;
&lt;li&gt;Third item;&lt;/li&gt;
&lt;li&gt;And yet another item.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;You can obtain an effect like that by using LaTeX counters and a custom definition of your own enumerate environment. First, we need to &lt;code&gt;\usepackage{enumerate}&lt;/code&gt;, and then define the following counter and an environment in the preamble:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-latex" data-lang="latex"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;\newcounter&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;enumi&lt;span class="nb"&gt;_&lt;/span&gt;saved&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;\newenvironment&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;myenumerate&lt;span class="nb"&gt;}&lt;/span&gt; &lt;span class="nb"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;\begin&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;enumerate&lt;span class="nb"&gt;}&lt;/span&gt;&lt;span class="k"&gt;\setcounter&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;enumi&lt;span class="nb"&gt;}{&lt;/span&gt;&lt;span class="k"&gt;\value&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;enumi&lt;span class="nb"&gt;_&lt;/span&gt;saved&lt;span class="nb"&gt;}}}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\setcounter&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;enumi&lt;span class="nb"&gt;_&lt;/span&gt;saved&lt;span class="nb"&gt;}{&lt;/span&gt;&lt;span class="k"&gt;\value&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;enumi&lt;span class="nb"&gt;}}&lt;/span&gt;&lt;span class="k"&gt;\end&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;enumerate&lt;span class="nb"&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;After that, you can use &lt;code&gt;myenumerate&lt;/code&gt; and you&amp;rsquo;ll have a continuous enumeration in the whole document.&lt;/p&gt;
&lt;p&gt;Oh and some credits: I wouldn&amp;rsquo;t come up with a solution if I haven&amp;rsquo;t read &lt;a href="http://texblog.wordpress.com/2007/07/25/counters-in-latex/"&gt;this&lt;/a&gt; post, and &lt;a href="http://www.f.kth.se/~ante/latex.php"&gt;this&lt;/a&gt; website. Huge thanks to the authors for their tips!&lt;/p&gt;</description></item><item><title>Emacs as the Ultimate LaTeX Editor</title><link>https://piotr.is/2010/emacs-as-the-ultimate-latex-editor/</link><pubDate>Thu, 13 May 2010 00:00:00 +0000</pubDate><guid>https://piotr.is/2010/emacs-as-the-ultimate-latex-editor/</guid><description>&lt;div class="alert"&gt;
This article gets a lot of hits, but it&amp;rsquo;s been a while since I wrote it and I haven&amp;rsquo;t been using Emacs or LaTeX in years. I&amp;rsquo;m sorry, but I can&amp;rsquo;t provide any support and won&amp;rsquo;t reply to emails about it.
&lt;/div&gt;
&lt;p&gt;Everyone knows, that &lt;a href="http://www.gnu.org/software/emacs/"&gt;GNU Emacs&lt;/a&gt; is &lt;a href="http://www.dina.dk/~abraham/religion/"&gt;THE Best Programmer&amp;rsquo;s Editor&lt;/a&gt;. Not everyone knows, though, that when you combine it with &lt;a href="http://www.gnu.org/software/auctex/"&gt;AUCTeX&lt;/a&gt; macros, it also becomes &lt;strong&gt;THE&lt;/strong&gt; Best Editor for LaTeX.&lt;/p&gt;
&lt;p&gt;The biggest problem with Emacs is that it&amp;rsquo;s not a particularly intuitive piece of software, to say the least, hence many users flee after their first encounter with it. Emacs has its complicated keyboard shortcuts, enormous documentation and config files written in a Lisp dialect (called &lt;a href="http://en.wikipedia.org/wiki/Emacs_lisp"&gt;Emacs lisp&lt;/a&gt;), so at first it might seem very unpleasant using it. However, once &lt;em&gt;tamed&lt;/em&gt;, it becomes your best friend.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;d like to present some tips that customize Emacs making it a perfect and very sophisticated editor for LaTeX. Most of these ideas are taken from various config files, howtos and other resources found on the web. Some of them are mine, but I can no longer tell which.&lt;/p&gt;
&lt;p&gt;First things first: you need to get Emacs and AUCTeX, and get it running.&lt;/p&gt;
&lt;p&gt;Every major linux distro comes with both Emacs and AUCTeX available via package systems. In Ubuntu, you just type &lt;code&gt;sudo apt-get install emacs23 auctex&lt;/code&gt; and you&amp;rsquo;re laughing. Emacs is also &lt;a href="http://ftp.gnu.org/gnu/emacs/windows/"&gt;available&lt;/a&gt; for Windows, and AUCTeX website has &lt;a href="http://www.gnu.org/software/auctex/download-for-windows.html"&gt;instructions&lt;/a&gt; on how to set it up with Windows systems. Mac users have a choice of setting up either &lt;a href="http://homepage.mac.com/zenitani/emacs-e.html"&gt;Carbon Emacs&lt;/a&gt; (a version closer to original GNU Emacs) or &lt;a href="http://aquamacs.org/"&gt;Aquamacs&lt;/a&gt; (an Emacs variant supporting tabs and other nice tweaks; preferred Emacs package by all Mac users I know, Karolina included). Full comparison of Mac Emacs variants is available &lt;a href="http://aquamacs.org/feature-matrix.shtml"&gt;here&lt;/a&gt;, so you can make your own choice. Both Carbon Emacs and Aquamacs come with AUCTeX bundled, so there&amp;rsquo;s no need to download additional packages.&lt;/p&gt;
&lt;p&gt;After running Emacs and loading a TeX file (&lt;code&gt;C-x C-f file_name.tex&lt;/code&gt;), AUCTeX should load itself automatically. If it doesn&amp;rsquo;t happen, you can invoke it with &lt;code&gt;M-x tex-mode&lt;/code&gt;, or you can put the following into your &lt;code&gt;$HOME/.emacs&lt;/code&gt; file:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq TeX-save-query nil)
;(setq TeX-PDF-mode t)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;em&gt;(all the code snippets from this post are available as a &lt;a href="https://gist.github.com/pkazmierczak/4331666"&gt;Github Gist&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The options above will make sure, that AUCTeX macros are loaded every time a TeX file is opened. The last option, &lt;code&gt;;(setq TeX-PDF-mode t)&lt;/code&gt;, is commented (all lines beginning with &lt;code&gt;;&lt;/code&gt; are a comment in Emacs Lisp), but you can uncomment it if you want to have PDFLaTeX mode enabled by default for all documents.&lt;/p&gt;
&lt;p&gt;AUCTeX has a number of nice features, the two I use most often are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;automatic formatting of a section: &lt;code&gt;C-c C-q C-s&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;section preview: &lt;code&gt;C-c C-p C-s&lt;/code&gt;; (see the screenshot on the right)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="emacs-latex-preview.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Preview function is very nice, because you can &lt;em&gt;see&lt;/em&gt; the commands that are &lt;em&gt;behind&lt;/em&gt; preview images, edit the code, apply preview again and see the results &amp;mdash; no need to parse the whole file too often, and most importantly no need to switch to a PDF/PS viewer to see if your math formula/xypic tree is formatted correctly. Trust me, this saves a lot of time.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(update 27.12.2012: there’s another way of previewing LaTeX symbols inside an Emacs buffer, take a look &lt;a href="https://piotr.is/2012/12/27/previewing-latex-symbols-without-preview-latex/"&gt;here&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;AUCTeX has many many more features, and you can always consult its &lt;a href="http://www.gnu.org/software/auctex/documentation.html"&gt;documentation&lt;/a&gt; if you want to learn more. It&amp;rsquo;s a little bit overwhelming, but learning it is a very good investment, especially if you work with TeX a lot. But there are more packages that provide features which make your life easier.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://flymake.sourceforge.net/"&gt;Flymake&lt;/a&gt; is one of those packages. It enables Emacs to check the syntax of your TeX file on-the-fly. To turn it on, put the following code in your &lt;code&gt;$HOME/.emacs&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;(require &amp;#39;flymake)
(defun flymake-get-tex-args (file-name)
(list &amp;#34;pdflatex&amp;#34;
(list &amp;#34;-file-line-error&amp;#34; &amp;#34;-draftmode&amp;#34; &amp;#34;-interaction=nonstopmode&amp;#34; file-name)))
(add-hook &amp;#39;LaTeX-mode-hook &amp;#39;flymake-mode)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Beware, though &amp;mdash; flymake consumes quite a lot of CPU power, especially when used with large files (and paradoxically large files make it most useful).&lt;/p&gt;
&lt;p&gt;On the other hand, spell-checking while you type isn&amp;rsquo;t so cpu consuming, and you can turn it on with:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;; could be ispell as well, depending on your preferences
(setq ispell-program-name &amp;#34;aspell&amp;#34;)
; this can obviously be set to any language your spell-checking program supports
(setq ispell-dictionary &amp;#34;english&amp;#34;)
(add-hook &amp;#39;LaTeX-mode-hook &amp;#39;flyspell-mode)
(add-hook &amp;#39;LaTeX-mode-hook &amp;#39;flyspell-buffer)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Another nice package is the &lt;a href="http://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Mode.html"&gt;Outline Mode&lt;/a&gt;. It allows the user to &lt;em&gt;hide&lt;/em&gt; some parts of the text file, which makes working with large files much easier. To enable it, put the following in &lt;code&gt;$HOME/.emacs&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;(defun turn-on-outline-minor-mode ()
(outline-minor-mode 1))
(add-hook &amp;#39;LaTeX-mode-hook &amp;#39;turn-on-outline-minor-mode)
(add-hook &amp;#39;latex-mode-hook &amp;#39;turn-on-outline-minor-mode)
(setq outline-minor-mode-prefix &amp;#34;\C-c \C-o&amp;#34;) ; Or something else
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now you can &lt;em&gt;fold&lt;/em&gt; sections, subsections, chapters, or the whole document. To hide all the contents of your current section, use &lt;kbd&gt;C-c C-o C-l&lt;/kbd&gt;. You can apply it to a chapter, subsection, etc. You can also move to a next &lt;em&gt;unit&lt;/em&gt; of your document with &lt;code&gt;C-c C-o C-n&lt;/code&gt;, or to a previous one with &lt;code&gt;C-c C-o C-p&lt;/code&gt;. If you&amp;rsquo;re lost and want to see the whole document again, use &lt;code&gt;C-c C-o C-a&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Folding and unfolding parts of the text might be confusing, though, but there&amp;rsquo;s another way to navigate through a big TeX file, and you can use &lt;a href="http://www.gnu.org/software/auctex/reftex.html"&gt;Reftex&lt;/a&gt; mode for it. Reftex is a mode that helps with managing references (&lt;a href="http://www.gnu.org/software/auctex/manual/reftex.index.html"&gt;full documentation&lt;/a&gt;), but it can also be used to create a table of contents for a TeX file and to navigate using it. Here is my configuration for Reftex from my &lt;code&gt;.emacs&lt;/code&gt; file:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;(require &amp;#39;tex-site)
(autoload &amp;#39;reftex-mode &amp;#34;reftex&amp;#34; &amp;#34;RefTeX Minor Mode&amp;#34; t)
(autoload &amp;#39;turn-on-reftex &amp;#34;reftex&amp;#34; &amp;#34;RefTeX Minor Mode&amp;#34; nil)
(autoload &amp;#39;reftex-citation &amp;#34;reftex-cite&amp;#34; &amp;#34;Make citation&amp;#34; nil)
(autoload &amp;#39;reftex-index-phrase-mode &amp;#34;reftex-index&amp;#34; &amp;#34;Phrase Mode&amp;#34; t)
(add-hook &amp;#39;latex-mode-hook &amp;#39;turn-on-reftex) ; with Emacs latex mode
;; (add-hook &amp;#39;reftex-load-hook &amp;#39;imenu-add-menubar-index)
(add-hook &amp;#39;LaTeX-mode-hook &amp;#39;turn-on-reftex)
(setq LaTeX-eqnarray-label &amp;#34;eq&amp;#34;
LaTeX-equation-label &amp;#34;eq&amp;#34;
LaTeX-figure-label &amp;#34;fig&amp;#34;
LaTeX-table-label &amp;#34;tab&amp;#34;
LaTeX-myChapter-label &amp;#34;chap&amp;#34;
TeX-auto-save t
TeX-newline-function &amp;#39;reindent-then-newline-and-indent
TeX-parse-self t
TeX-style-path
&amp;#39;(&amp;#34;style/&amp;#34; &amp;#34;auto/&amp;#34;
&amp;#34;/usr/share/emacs21/site-lisp/auctex/style/&amp;#34;
&amp;#34;/var/lib/auctex/emacs21/&amp;#34;
&amp;#34;/usr/local/share/emacs/site-lisp/auctex/style/&amp;#34;)
LaTeX-section-hook
&amp;#39;(LaTeX-section-heading
LaTeX-section-title
LaTeX-section-toc
LaTeX-section-section
LaTeX-section-label))
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Once Reftex is loaded, you can invoke the table of contents buffer with
&lt;code&gt;C-c =&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="emacs-reftex-toc.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;All right, enough. If I mention any more packages, I guess it will scare off those who aren&amp;rsquo;t already scared. I know that Emacs is a bit &lt;em&gt;peculiar&lt;/em&gt; with its complicated keyboard shortcuts, enormous documentation and thousands of modes. It&amp;rsquo;s not easy to learn, but definitely worth it. I remember that switching from Vim to Emacs for LaTeX editing wasn&amp;rsquo;t easy, but I never regretted that, and I hope whoever&amp;rsquo;s going to switch under the influence of this post will not regret it either.&lt;/p&gt;</description></item></channel></rss>