Begin LaTeX in minutes - <AUTHOR> https://github.com/VoLuong/Master-Latex-in-minutes <comment><USER2> Just don't try anything that isn't in your typical math paper. There are thousands of LaTeX packages, because they are all broken if you use them in a slightly unexpected way, so (reminiscent of JavaScript) a new package is created to "fix" it.

Tables? Here you go. Oh, you wanted nested tables? For that you need to switch to an entirely different package. Oh, and that one doesn't support splitting up tables over multiple pages. Maybe this new one can do it. But it doesn't support that other package you use. Maybe try that one instead. Oh, in that one you can't have ...

Or is that just me?

<comment><USER3> This is also very true in my experience, and seems to be in large part caused by the absence of proper namespacing, scoping, and general rules about how packages should be implemented to minimize bad interactions.

I feel like this is a significant shortcoming of Latex, and it really is a mystery to me why no one has seriously tried to write an alternative typesetting system. I know Latex is good enough for lots of applications, and would require a lot of work to rewrite, but I can think of freely available projects with less glaring shortcomings for which people have started successful competitors (Firefox -> Chrome, KDE and GNOME, gcc -> llvm, etc.).

<comment><USER4> There are plenty of alternatives.

LaTeX is merely a TeX macro package. There are others, such as ConTeXt. Also, if you hate the pick-a-package mentality, there are LaTeX packages that attempt to do it all in one package--Memoir is one.

You can elect to opt out of fancy layers on top of TeX and go with Extended Plain TeX or even just writing in plain TeX, which apparently Knuth did.

Don't like TeX at all? Try roff (or, more realistically these days, groff.) There is a package of roff macros called Mom, which now comes with groff.

In my experience roff is a better UNIX citizen than Tex & Co. I can put roff in a pipeline and it will do what I expect. TeX programs generally do not like to be run in this fashion. Perhaps as a consequence, it seems roff is hard to find outside of UNIX (roff is sort of a UNIX artifact) while TeX and friends run on Windows. I have slapped together a few utilities (I call one "latexstream") so that I can use LaTeX from a shell prompt without dealing with a bunch of temporary files scattered everywhere.

My needs are somewhat simple: I have a system that prints recipes and grocery lists. Nothing beats paper for a task like this. (I see some people using iPads in the kitchen. Forget that. I'm not taking greasy fingers to an expensive tablet.) Generally I am not happy using LaTeX for this. I actually do not want to separate content and presentation. I don't like having to muck around with packages to get what I want. And I don't like dealing with huge TeX distributions when I just need a few things.

But every time I look into all the alternatives I outlined above, I wind up sighing and sticking with LaTeX. None of these alternatives have the community that LaTeX has. I can do relatively simple things in LaTeX (like columns done in particular ways) that would require me to write a lot of code in plain TeX or in roff. Yes, TeX distributions are large, but I am now figuring out how to pare them down to just what I need. (Even though TeX Live suggests you install the whole thing. That's gigabytes. I'm on a smallish SSD. No thanks.)

So folks definitely have come up with alternatives to LaTeX. But if most folks are like me, I imagine they look at these alternatives and conclude that LaTeX with a gazillion packages works well enough.

[edit] forgot yet another alternative: Apache FOP, which uses XML. Some Docbook tool chains use it. IMO the output from those never look as good as the tool chains that ultimately use TeX.

<comment><USER5> I don't suppose you have your recipe system online anywhere? I've been contemplating making one for a while (I really like the recipe cards on cookingforengineers.com)

<comment><USER4> No, it is a nasty mess of shell scripts and Haskell, though mostly Haskell now. (There used to be XML for recipes, what a mess.) It is useless to others without documentation, which would take a long time to write. Maybe one day. It makes grocery lists with items in categories, which saves me so much time that I have been using it every week for years. But if someone made something decent I would happily pay for it.

<comment><USER6> Would you mind uploading it somewhere nonetheless? Just your design and flow should be a good read (from source).

</comment></comment></comment></comment></comment></comment><comment><USER7> Most materials about LaTeX I tend to find on the web seem to be of the 'programming by StackOverflow' variety, i.e. 'copy this snippet of code, tweak it to your needs and compile'; they don't teach you about what the code actually does, how it interacts with everything else, and there is no syntax specification apart from series of digressions like 'oh, by the way, if you wish to achieve effect X, you can use option Y'. Unfortunately, even official documentation for LaTeX packages is often written that way (a major pleasant exception is the documentation for TikZ). In the short term, it may seem fine, but it inevitably comes back to bite the user later. The guide submitted here doesn't seem particularly different.

For those wishing to learn some 'theoretical' TeX, I can recommend _TeX by Topic_.[0] It mentions LaTeX macros only in passing, but even that amount was quite helpful to me.

[0] [https://bitbucket.org/VictorEijkhout/tex-by- topic](https://bitbucket.org/VictorEijkhout/tex-by-topic)

<comment> semi-extrinsic I agree with the documentation issue. In addition to TikZ, the Memoir package manual is a pleasant surprise. It's really thorough, and I definitely recommend reading it if you are writing up your thesis in LaTeX.

<comment><USER8> Another well documented set of general-purpose classes are the KOMAscript document classes, catering mostly to European document conventions [1].

[1] [https://www.ctan.org/pkg/koma-script](https://www.ctan.org/pkg/koma- script)

</comment></comment></comment><comment><USER9> The usual plug for sharelatex here. Check out sharelatex.com, it is amazing. Write LaTeX without having to install it, plus collaboration in the cloud. (I'm not affiliated, just a fan).

And in general, LaTeX is a super worthwhile language to learn. It may be a bit more complicated than markdown or its cousins, but it can do pretty much everything.

I've barely scratched the surface of what it can do, but since I live at the intersection of CS and Education research, it is great how BibTeX will swap between APA and ACM styles easily, or how I can use a macro to create likert scale questions, for example. It probably takes the right kind of mindset, but I really liked the fact that my dissertation had a makefile (and was in source control, way back in the CVS days).

<comment><USER10> I think one of the best features of sharelatex is that you skip the insanely bloated installation/package maintenance process. Some of those packages use GB of fonts and I remember having a complete installation with over 30GB of fonts. Not really an issue anymore, but 5-10 years ago, that was pretty excessive.

<comment><USER11> While I've never looked into the guts of LaTeX package management, I've often thought that it could really, really use a tool that looks for dependencies and installs them (and _only_ them) in an automated way, like Bundler for Ruby, npm, and similar systems.

Nope, tlmgr just isn't the same. :-)

</comment></comment></comment><comment><USER12> Spoiler alert: you will not master LaTeX (nor anything) in minutes. I have written my master thesis on sharelatex.com, the first months have been painful but at the end I had a great feeling of having achieved something. I still not consider that I master LaTeX but at least I can now use it for any standard documents and draw graphs and math formulas with ease.

I really suggest developers to use LaTeX to create their resume because it looks really professional and personal (if you do not just use a standard template). It takes some time but you will get exactly what you want and learn many things along the way.

<comment><USER13> Even years after Norvig's essay people still attempt to master skills in days or less!

<comment><USER14> Here is an alternative way to master LaTeX [http://tex.stackexchange.com/a/5713/963](http://tex.stackexchange.com/a/5713/963).

</comment></comment></comment><comment><USER15> It lacks the most important LaTeX tip, don't fight the machine. LaTeX is really good at getting documents that look 90% as good as an actual typesetter could make them look, if one can live with somewhat conservative looking documents. The last 10 percent, fixing margin width, changing paragraphs and so on, are incredibly hard with LaTeX. (Of course LaTeX defaults are a lot better than word, largely because LaTeX automatically uses consistent headers instead of sometime 15 pt and sometimes 16 pt underlined.)

<comment><USER16> I get your point, but you're really exaggerating the difficulty of changing margins, paragraph spacing, and similar things. It's easy with straight LaTeX, and even easier with the "geometry" package.

<comment><USER15> Yes, to address to criticisms of your comments and siblings, in my experience if you start changing fonts, then you need to change margins and paragraph spacing, and down the rabbit hole you go. The thing is, a small change is not very complicated, but the defaults are also really good. So if you just want to get below a certain page limit, then it is easy to change the margin. If you start to wanting to improve the overall look of the document, then it is usually a much better idea to play with different packages were someone else already did the hard work instead of trying to improve details by yourself.

</comment></comment></comment><comment><USER17> I used LaTeX a lot in university, but I wouldn't recommend it to anyone. Even a minimal (and good looking) document requires a lot of (La)TeX knowledge.

You can of course use one of many existing templates, but you will quickly feel lost when you have to customize things.

These days, just go with Markdown (or the like) and just include assets (say graphs) as SVG and be done with it.

For scientific papers (especially with two columns layout) you probably have to go with LaTeX though.

Edit: By the way, my take at minimal LaTeX templates: [https://github.com/renke/latex-templates](https://github.com/renke/latex- templates)

<comment><USER18> >but I wouldn't recommend it to anyone.

surely you're not being literal, or you meant "wouldn't recommend it to just anyone" \- for example for setting mathematical and physics formulas, wouldn't you still recommend it?

<comment><USER17> Yes, of course, you are right. I forgot about formulas altogether! That's where LaTeX really shines!

But even then you could probably integrate MathJax or KaTeX with Markdown. That would give you the best of both worlds.

</comment></comment></comment><comment><USER19> Overleaf.com is really nice too, if you work with others (e.g. on academic papers). The most painless papers I've ever written were with other competent people using LaTeX and overleaf. ShareLatex is good too, I'm not sure if you can autosubmit to journals and preprint servers with it though. That last feature is terrific for academics -- it's how publishing should work, but usually doesn't.

I spent the same amount of time (72 hours) getting one hairy equation laid out in Word that I spent compiling my entire dissertation in LaTeX. Naturally the former was a request from my adviser, who did the latter back when she was a student. Dammit.

If you have any serious math in your writing, nothing else comes close. (Protip: Mathematica, the only non-free software package that ever earned its keep for me, will directly export equation cells as LaTeX if you ask nicely. I can't stand doing tedious symbolic manipulation without it.)

<comment><USER20> Note that Overleaf.com is proprietary, while ShareLaTeX is completely free software under the AGPL (and self-hostable).

<comment><USER19> Absolutely true, and although I did pay for Overleaf at first, I stopped paying when I realized I didn't need the for-pay features anyhow. They made a conscious decision to focus on internal development and I'm OK with that -- Google isn't open-source either (certainly not all of it, and when I was there, very little of it), and I'm OK with that too.

[https://www.overleaf.com/help/17-is-overleaf-open- source#.WB...](https://www.overleaf.com/help/17-is-overleaf-open- source#.WBZSuhIrKkA)

An open-source business that doesn't survive ( _cough_ ReplicaDB _cough_ ) isn't necessarily better than a closed-but-extensible one that does. LaTeX itself is, and anything you're working on within Overleaf can be exported as text at any time, so I don't worry so much about lock-in.

The underlying toolchain (LaTeX and packages) is fully OSS, and isn't going anywhere; I have supported the LyX project in the past, and indeed that's how I laid out my dissertation, but in the end I find Overleaf more usable.

I still wish they'd support Markdown, though. Sometimes I just want to run off a quick, properly typeset series of equations and lists/tables without all the boilerplate. I suppose you could make the argument "well, if it was OSS, you could just patch it yourself!", and you wouldn't be wrong. But we use the autosubmit feature a lot, so on balance I've decided I can live with this shortcoming.

<comment><USER20> > They made a conscious decision to focus on internal development and I'm OK > with that -- Google isn't open-source either (certainly not all of it, and > when I was there, very little of it), and I'm OK with that too.

Focusing on internal development is not a justification for making software proprietary. A software license has nothing to do with development style -- you could do code dumps like Oracle while also licensing the code under a free software license.

> An open-source business that doesn't survive (cough ReplicaDB cough) isn't > necessarily better than a closed-but-extensible one that does.

I disagree. All businesses will die eventually (or at least, almost all of them will). The difference between a proprietary business and a free software business is that only one of them actually makes a lasting contribution to society in terms of software (hint: it's not the proprietary one).

> The underlying toolchain (LaTeX and packages) is fully OSS, and isn't going > anywhere;

True, and even more of a reason to prefer free software solutions (a proprietary version of LaTeX and packages wouldn't have survived for as long as LaTeX has).

But, each to their own.

</comment></comment></comment></comment><comment><USER21> I've written my first LaTeX documents with LyX [1], a wonderful application, if you're just getting started.

[1] [https://www.lyx.org/](https://www.lyx.org/)

<comment><USER22> For me LyX hits a sweetspot: it does 95% of what I need to do in Latex without ever having to type a backslash (or having to lookup whatever amsmath command is used for setting a matrix). But when I do need to drop down to latex to do something unsupported, I don't need to fight lyx.

I wrote my paper and master's thesis with a workflow involving LyX, LaTeX and python (scipy, numpy, mpl, doit for building the whole thing). The doit script ran the analysis pipeline, exported the figures, exported a .tex using the LyX CLI and ran all the latex/bibtex stuff to generate a PDF and and zip with all the necessary stuff for submission.

My colleagues looked at me weirdly (mech. engineering department), but I think it was worth it. Probably not time efficient, but at least for the peace of mind.

</comment></comment><comment><USER23> From various tutorials I feel my knowledge of latex is very top down, and not very deep. I just recently realized that {} are not needed for singletons, so I may for instance write \frac12 for 1/2.

Can anybody recommend a more bottom up guide? Something more similar to learning a programming language, where you start with the basic syntax and build on features iteratively?

Is Knuth's book the best way to go? Or is that like learning C, when you wanted to learn C++?

<comment><USER24> > I just recently realized that {} are not needed for singletons

Trick question: What will you get by TeX-ing this document?

      $\acute a\acute{a}\acute{{a}}$\'a\'{a}\'{{a}}\end

<comment><USER25> Frustrated.

</comment></comment></comment><comment><USER26> For any poor soul that has to write LaTeX for whatever reason but doesn't want to bother installing anything, I cannot recommend [https://www.sharelatex.com/](https://www.sharelatex.com/) enough.

<comment><USER27> I'm currently using Overleaf[1]. It has collaboration (no live tracking) in the free tier, support for BibTeX with auto-import from Zotero, auto-complete and syntax highlighting, and works completely in the browser.

[1]: [https://www.overleaf.com](https://www.overleaf.com)

<comment><USER20> Note that ShareLaTeX is entirely free software (under AGPL) and self-hostable. Overleaf is not.

<comment><USER28> Furthermore, Overleaf has a history of occasionally losing people's data. That's bad for college and university folks.

<comment><USER29> (Overleaf co-founder here.) As far as I know, we've never lost any user data. We take that very seriously. If you believe you have lost data on Overleaf, please contact our support team via www.overleaf.com/contact and we'll investigate.

</comment></comment></comment></comment></comment><comment><USER30> This is a good beginner doc.

I'd never used LaTeX until about a year ago when I needed it to write a paper. The first thing I wondered was how to install it. Surely in 2015 installation would be a snap. It'd be in the App Store. Or Homebrew.

 _Do not install LaTeX._ Use it in the cloud. I use www.overleaf.com which is awesome. Similarly, I use www.draw.io to create PDFs for my drawings.

      \usepackage{microtype}
      \usepackage[hang,font=bf]{caption}
      \usepackage{natbib}
      \usepackage[unicode=true]{hyperref}
      \usepackage[noabbrev,capitalise,nameinlink]{cleveref}
      \usepackage{amsmath}
      \usepackage{csquotes}
      \usepackage{minted}
      \usepackage{inconsolata}
      \usemintedstyle{bw}
      \usepackage{float}
      \usepackage{siunitx}
      \usepackage{booktabs}
      \usepackage{url}
      \usepackage{graphicx}
      \usepackage{textcomp}
      \usepackage{fixltx2e}

The one thing I'd add to this tutorial is citations and bibliographies.

<comment><USER31> What?

 _Do install LaTeX._ I don't know (and frankly don't care) how hard it is under Windows, Mac or Android, but it has been readily available from the package managers with GNU/* and most BSDs for decades, easy to install and use. There are plenty of editors like gummi, kile, texmacs or lyx.

Seriously. You're asking people to give up their freedoms for what? To avoid typing a single line "sudo apt-get install gummi texlive-latex-base"?

I personally _do_ stay away from "cloud"y things (or whatever buzzword you prefer for SaaSS in the stylish Apple-land), and recommend people that I care about around me to do so: [https://www.gnu.org/philosophy/who-does-that- server-really-s...](https://www.gnu.org/philosophy/who-does-that-server- really-serve.en.html)

<comment><USER32> I personally use www.sharelatex.com (which is open sourced under the AGPL license).

Downloading LaTeX locally on macOS (or rather, Mac OS X as it was called at the time) is not very difficult. As I recall, it's basically just: download this .pkg file, run it, and you're set. That being said, I did _not_ enjoy having LaTeX installed locally. It wasn't harmful, it just wasn't at all beneficial compared to using an online LaTeX service.

The install size is easily tens of thousands of files (totalling a couple GBs), most of which are only a couple hundred KBs each. The vast majority of those files went unused. It clogged up my file system, gave me a marginal amount of benefits, and figuring out how to change the config files to do one _tiny_ thing was horrifically difficult.

As a result, I migrated to using ShareLaTeX. It was just simpler than having to manage the install myself. The value proposition of a (hosted instance of) ShareLaTeX is that I can use LaTeX from any computer (connected to the Internet) to access any of my automatically synchronized files and have an automatically updated install of LaTeX. I personally found that value proposition worthwhile.

<comment><USER31> This is a false anecdotal dichotomy: either install latex on your computer at the cost of "clogging up your filesystem" (whatever that means), or give up your freedoms.

textlive-most (which is a meta package which includes almost everything an ordinary user need) uses 1.2GBs on Arch Linux, so for sure it's not "couple of GBs". And even if it takes a couple of GBs: I'm using ~60GBs in my root filesystem, and never experienced any "clogging" (granted, GNU/Linux doesn't use Windows Registry).

If installing programs "clogs up your file system" in Apple's proprietary fork of BSD (don't know/care how they call/stylize it these days), another viable option, before throwing away your freedoms, is to consider switching to a different filesystem or operating system which doesn't "clog up" when you install new programs (and which isn't riddled with backdoors and doesn't spy on you, like Apple products do: [https://www.gnu.org/proprietary/malware- apple.en.html](https://www.gnu.org/proprietary/malware-apple.en.html) [https://www.gnu.org/proprietary/proprietary- surveillance.en....](https://www.gnu.org/proprietary/proprietary- surveillance.en.html) ). Now I'm not sure whether this is an issue with HFS+ or a more general one within Darwin, but what is the point of having harddisks with large capacities (measured in TB these days) if you can't actually use it?

> ShareLaTeX is that I can use LaTeX from any computer (connected to the > Internet) to access any of my automatically synchronized files and have an > automatically updated install of LaTeX. I personally found that value > proposition worthwhile.

I'm not seeing any convincing arguments or any "worthwhile propositions" here. With GNU/* and *BSD, that burden is on the package maintainers. System updates do include latex updates too (I know that it isn't the case with proprietary system you're using, but that's an argument for switching to a free/libre OS, not throwing away your freedoms). And I am able to synchronize my files (including .tex files) files across devices over the internet using syncthing, while still not yielding my rights and data to others, and there are plenty of FOSS alternatives to syncthing too.

And even if your original dichotomy was a real dichotomy, I would encourage people to protect their freedoms, not to throw it away for convenience.

<comment><USER32> > "clogging up your filesystem"

In this context, I mean that in two ways (but mainly #2):

1) macOS has a feature (Spotlight) where I can search all of the files on my entire computer with a simple keyboard shortcut. >99% of the time, the result pops up within a second. I use that feature literally dozens of times each day. With LaTeX installed, I got a lot of results that are not relevant to what I want. In hindsight, I should've just disabled the indexing of the files in my install directory.

2) My computer (at the time) had a 64 GB hard drive. As a result, I was straining against the limits of that pretty hard. Uninstalling MacTeX (I believe that was the distribution I used) freed up at least 2 GB. I'm not sure why there's a discrepancy between your quoted figure of 1.2 GB and my experience.

\---

In addition, ShareLatex's UI was far superior to anything available for OS X (at least, at the time).

My primary interest is in making myself as productive as possible. If using non-libre software gives me significant gains in productivity while not being unreasonable with their licensing terms/costs, then I will use it. That's the same reason I am using macOS. By using this proprietary piece of software, I do not have to tinkle with the inevitable strange bugs that pop up with the various libre options and therefore I am allowing myself to be the most productive I can possibly be. Every time I have tried using a libre OS, I have experienced some kind of bug that's simply impossible to diagnose and solve.

In sum: the value proposition of non-libre software is increased productivity. I highly value productivity. So, I am willing to make the tradeoff. I recognize and accept that if everyone does this, the world is worse off. But, I am selfish and therefore am willing to make the tradeoff (to some extent; my willingness to tradeoff is not infinite).

Sidenote: I could (technically) not throw away my freedoms by hosting my own instance of ShareLatex (as it is, now, licensed under the AGPL), but that's highly inconvenient and I have no interest in being a system admin. Again, this goes back to the idea of increased productivity by using "proprietary" services.

<comment><USER31> Wow.

So, behind all your marketing buzzwords, you're trying to portray GNU/Linux software as buggy in contrast to superior Mac/Windows, which has, interestingly, long been a FUD and a lie propagated by Microsoft. This suddenly takes me back to halloween documents and "real cost of 'free'" because you're saying exactly the same thing, only in 2016 (on halloween eve!).

Like many others, I've been using GNU/Linux since ~1997, and been totally happy overall, and I can vouch it's nothing like you're trying to portray.

You may, of course, value your freedoms less than the conveniences you find in Apple or SaaSS programs. You prefer trading your privacy and freedoms for bits of conveniences, and that's the way you chose to live. I did hear you the first time. No need to reiterate, as this is not about your personal feelings or the "values" you found here and there (and no offense, but frankly I don't care about your personal feelings or anecdotes).

I'm trying to make a point that goes beyond your "productivity": this line of though shouldn't be advertised as a good thing due to the fact that it eventually hurts us as a society at large (see the references in my previous posts).

</comment></comment></comment></comment></comment></comment><comment><USER33> "Brief Intro to Latex for programmers/developers" vs "Master LATEX in minutes", quite a difference! But looks nevertheless like a good introduction to LaTeX. Just why the all the emoji...

<comment><USER34> I've personally have had a lot of fun abusing emoji/dingbats in curses TUIs.

        VOL〈▰▰▰▰▰▰▱▱▱▱〉

</comment></comment><comment><USER35> Tip for people who want to compile LaTeX from the command line: latexmk is basically a build tool for latex, which can also do things like incremental compilation and listen for changes. It's part of MacTex and can also be installed with the package manager of your choice if you use texlive.

Another tip: If you usually write markdown, pandoc can turn Markdown interspersed with LaTeX code into pdfs.

</comment><comment><USER36> I personally really like using latex. But the main problem for me is that latex is not really designed for collaborative editing, especially with people who don't know latex. are there any track changes feature plugin/app that's available and relatively simple for people who mainly use MS word.

<comment><USER37> Well, the fact that it is a plaintext-based format makes it work extremely well with git. So for collaboration you can have a repo (even hosted in github) and your co-authors can propose merges, etc. It is extremely nice to be able to see the log of commits and who changed exactly what at any point in time, something I think it's difficult in complex formats like Word. Or you can use sharelatex.com as others have commented.

<comment><USER36> This all sounds great. I'll definitely look into it for myself. However, coming from academic biology (I am a bioinformatician) where most of my collaborators won't even know what git is, this is just not a realistic solution. If Sharelatex (I actually wrote my phd thesis on sharelatex) or Overleaf (I used for my last publication) have a nice built-in GUI that does all of this auto-magically, I think a lot of people from the biological fields will probably start using it.

<comment><USER38> I work on a popular academic philosophy magazine which is now transitioning from a centralised inDesign model to a distributed LaTeX model. The idea is that aside from the egrarious costs involved with inDesign (licencing, buying great big computers to run it), the main issue is that it centralises our production around a few people who have both inDesign and typography skills. LaTeX, on the other hand, allows us to abstract away the typography skills with a class file, and have everyone learn some essential syntaxs such as \footnote{}, \includegraphics{}, \begin{quote}, etc. We'll use git or, if people really can't get their heads around a nice git gui, dropbox, to collaborate. I really can't understand why this isn't a more popular approach, especially for academics.

</comment></comment></comment></comment><comment><USER39> The author mentioned ShareLaTeX but not the other popular cloud service overleaf.

I actually would have done the same given my experience with both. Recently I tried out overleaf in order to allow others to collaborate on a paper. However, what was compiling perfectly fine on my local machine just refused to compile on overleaf, keep throwing me error related to $ symbol even though I did not use $ symbol at all (I used my own bst and cls). After googling for 30 minutes without finding a fix, I gave up and turned to the alternative, ShareLaTeX. It compiled perfectly with no errors on the first try.

<comment><USER29> (Co-founder of Overleaf here.) Sorry to hear you had a bad experience --- we run a standard install of TeX Live, so that's surprising. If you try Overleaf again, feel free to send your project's link to our support team via www.overleaf.com/contact, and they can help you fix any issues.

<comment><USER39> Good to hear that. I've sent it via www.overleaf.com/contact and I hope this would help your team figure out why.

</comment></comment></comment><comment><USER40> LaTeX is much deeper than this "mastery" document conveys. Although, LaTeX is significantly easier to pick up if you learn to program first. I appreciate the author sharing this here though :)

</comment><comment><USER41> I still wake up from nightmares about pages upon pages of overfull hboxs...

</comment><comment><USER42> Pro tip: you can't.

</comment><comment><USER43> Stupid question: Outside of the maths heavy documents, could markdown or restructuredtext be a substitute to Latex nowadays? It is a lot easier to learn and use.

<comment><USER44> I use Pandoc [1] to write in Markdown and then have it converted into LaTeX. There's been some bumps, but it seems to let me have (most of) the best of both worlds.

This post was the inspiration for using it: [http://kesdev.com/you-got-latex- in-my-markdown/](http://kesdev.com/you-got-latex-in-my-markdown/)

[1] [http://pandoc.org/](http://pandoc.org/)

</comment></comment><comment><USER45> Sometimes I wonder: why can't LaTeX be just as simple as HTML, or perhaps even simpler? Except perhaps for pagination and available default fonts, HTML practically fulfills all my formatting needs. (Note: HTML includes MathML, a mathematical formula markup language). And for automatically numbering tables and figures, one can easily write a script that is completely independent from the underlying formatting language.

<comment><USER14> Try writing a 300 page book in HTML, create citations and bibliographies, table of contents etc. Then convert it to a pdf, say using Pandoc and then you will have a better understanding where TeX/LaTeX fits in. Write also some complicated formulae using MathML. Save the document and render it again in 30 years!

TeX was designed to typeset a document always the same way on any machine that could run it. You can typeset any of Knuth's papers from the 80s and they can still compile today. Maths as Barbara is fond of saying has a long shelf life.

<comment><USER45> I'm not saying that HTML is totally suitable, but a slight modification of it could be, and it would be a lot simpler to use than TeX. And who says that it could not be rendered in the same way in 30 years?

By the way, the one thing that disappoints me most about LaTeX is that you often cannot nest one environment in another without running into issues. In HTML the "composability" is much better.

<comment><USER46> Have you ever looked at "bare" latex? It really isn't any more complicated than html. Especially early html.

But you are being somewhat naïve on the render in thirty years point. Html from two years so probably renders differently today. Never mind how different it is on machine that is rendering it.

So, could someone have made a simple one? Maybe. Evidence looks unlikely. Plenty have tried.

<comment><USER45> Well, I'm not so sure if LaTeX renders the same in 30 years, given all the packages and their dependencies, that might also change. In fact, I'm not sure the document will even still compile by then.

<comment><USER46> If be surprised if latex didn't compile. Maybe people today make packages that break, buy I doubt it. The reason there are so many packages is because changes should only fix bugs. Not change current working behaviour. So bugs are typically defined as clear crashes.

</comment></comment></comment></comment></comment></comment><comment><USER47> While I applaud the effort, this sort of thing suffers from the same problem any "quick introduction" to something rich and complex has: it's easy to see the complexity and discern the unfamiliarity, but requires effort to discern the value. No one has ever been convinced of the value of TeX/LaTeX, Vim, Emacs, Awk, Lex, Lisp, etc. by a fifteen minute intro. They're convinced by pushing themselves (or being forced) to use the tool for a substantial period of time (usually weeks) over several significant projects until they discovered the familiarity, power and utility that it affords people who are sufficiently familiar with the tool. In a machine shop, a lathe isn't an obvious choice for a project until you already know how to use a lathe.

</comment><comment><USER48> Just wondering if people here use ConTeXt [0] as well?

I've personally found it somewhat easier to manage floats in ConTeXt as compared to TeX/PDFTex.

[0] [http://wiki.contextgarden.net/What_is_ConTeXt](http://wiki.contextgarden.net/What_is_ConTeXt)

</comment><comment><USER49> A better title would be "How to produce a simple LaTeX document in minutes". Or perhaps even "Another brief LaTeX tutorial".

When I first began to use LaTeX long ago, a friend of mine gave me a preamble and essentially told me to not touch it until I knew better. This was very helpful to me, and I immediately began to use LaTeX in a mindset that separated content from presentation. Later, I did know better, but I'd already gotten the gist of what's going on.

Years later, when I introduce LaTeX to others (which I have frequently done), I follow the same starting path.

</comment><comment><USER50> Surprised no one mentioned TeXworks[0] as an alternative for easy installation.

0.[https://www.tug.org/texworks/](https://www.tug.org/texworks/)

</comment><comment><USER51> I used Latex extensively in Univ for thesis and publishing papers. Since then, I forgot that knowledge and am having hard time picking it up.

However, I briefly used www.sharelatex.com, is a web GUI (or WYSIWYG) type approach to Latex. It's a good project and makes using Latex slightly easier, but user must still know various packages, how to layout images etc. Nonetheless, sharelatex is a good effort and hope it benefits others.

</comment><comment><USER52> At my school overleaf.com is the standard. Some professors are git-savvy, but most use overleaf to keep tabs and comment on dissertations.

</comment><comment><USER53> I just use TeX, never LaTeX. With TeX, the documentation is shorter and, IMHO, better written. That is, get to concentrate on just Knuth's _The TeXBook_ \-- nicely done technical writing.

With LaTeX, I suspect that really should also know the underlying TeX, but with some understanding of TeX can do just fine without LaTeX and all its extra considerations.

</comment><comment><USER54> I am not really into LaTeX but i write all my letters with it and like doing so very much. I get nice looking clean documents that have a very professional appeal and are much more convenient to create than in any full fledged editor.

I just use templates and fill in the blanks. I once showed my not so computer affine sister how to do it and she likes it too.

<comment><USER55> LyX is good for that.

</comment></comment><comment><USER56> An important correction: don't use TexMaker, it's no longer actively developed. Use TexStudio ([http://www.texstudio.org/](http://www.texstudio.org/)), the fork/continuation of that project. Much more polished, performant, and many more convenient features.

</comment><comment><USER57> Filename for screenshots should be changed ;)

</comment><comment><USER58> Has anyone tried the Lout typesetting program? I worked with it several years ago and was very impressed. Mark Summerfield uses it for his programming books:

[https://www.qtrac.eu/lout.html](https://www.qtrac.eu/lout.html)

</comment><comment><USER59> For those of you who like latex output but find learning it daunting, give emacs org mode a try, as it can export to latex easily, and you can always break into actual latex inside org if you are doing something more complicated.

</comment><comment><USER60> If you are looking for a more coherent and better source, Wikibooks has an amazing Latex guide:

[https://en.m.wikibooks.org/wiki/LaTeX](https://en.m.wikibooks.org/wiki/LaTeX)

</comment><comment><USER61> A latex tip: hover over equations in Wikipedia to get the syntax.

</comment><comment><USER62> I love the licence he has included. Rarely see it used anywhere.</comment>


Oddities about JavaScript - <AUTHOR> http://www.smashingmagazine.com/2011/05/30/10-oddities-and-secrets-about-javascript/

<comment><USER2> That NaN (not a number) doesn't compare equal to itself is not, in my opinion, a JavaScript oddity. NaN behaves like that according to the IEEE 754, and Wikipedia suggests that using the fact that x == x returns false is a way to test if x is NaN (<http://en.wikipedia.org/wiki/NaN>).

<comment><USER3> Nothing odd about it, it's the good old math at work.

Is (3 / 0) == (4 / 0)?

Is even (3 / 0) == (3 / 0)?

EDIT:

also, see [1] on what becomes when dividing both sides of equation by zero and assuming equality still holds. Essentially, both sides become NaNs and everything is possible -- up to and including 1 == 2. Now that'd would be _odd_ , should it happen in your program.

[1] [http://en.wikipedia.org/wiki/Invalid_proof#All_numbers_equal...](http://en.wikipedia.org/wiki/Invalid_proof#All_numbers_equal_all_other_numbers)

<comment><USER4> The problem with this line of logic is that == is not equality. Two things being equal means they are actually the same thing and there aren't two things there at all, just one thing expressed two different ways. == is a binary relation [1]. In the context of that binary relation, if you made NaN == NaN it wouldn't really affect anything mathematically, because you already can't equationally reason on the basis of that binary relation, so there is no equational reasoning to become corrupted by accepting a contradiction.

[1]: <http://en.wikipedia.org/wiki/Binary_relation>

<comment><USER3> _> (...)there aren't two things there at all, just one thing expressed two different ways (...)_

I have to respectully disagree with you :-)

Consider for a moment ``3 + 0''. That expression (those three tokens) denote something we can talk and reason about. Now the important point: not because of some inherent property of the notation itself, but because we, the people, agreed what we mean by that expression.

Contrast that with expression ``3 / 0'' -- which does not denote anything. Maybe, just maybe, there _is_ something usefull that stems from division by zero, but! so far, we have not agreed upon what would be denoted by division by zero. We haven't agreed upon anything this expression would mean. It denotes no single thing, and neither a (nonempty) set of things. Of course, we have to somehow describe the fact of ``having nothing to say'' -- we use `NaN' -- but that's not a number symbol, that's a meta-symbol. Means, ``nothing to see there, my dear CPU, please move along''.

Note also, how in SQL, the following does _not_ hold true: NULL = NULL. In SQL, `NULL' doesn't stand for something, but for no thing at all. And whaddya know, division by zero yields NULL in SQL.

* * *

As for the equality itself (as opposed to assignment), so far we, the programmers, have only one common use for it -- checking whether data from some source ``equals'' data from another source. There are three common ways of doing that:

0) pointer equality. Fastest, simpliest, but won't suffice in some programming languages. Thing is, one kind of languages keep just single copy of all the same values (say, every variable that holds string "foobar" points to the same memory cell), but others do not, and here you need one of the two following ways.

1) value equality (== in JS): whether the two expressions ``evaluate'' to the same value. This has two downsides: is generally slower (the overhead of runtime evaluation), and often is governed by twisted rules reagarding type coercion. For example, in PHP, the following holds: 0 == "1". Fun fact to know and tell: those twisted rules stem from the language creators' desire to make programming easier.

2) type-and-value equality (=== in JS): this straightens some ofthe twisted rules of 1), due to comparing data types first (instead of prerforming type coercion), but otherwise does the same thing: compares value. May often be faster and also simplier to grasp, but also may blow up when you mix up data with different types. Which nb. is easy to overlook when data comes from data sources having different semantics or idioms.

To put 1) and 2) in another way, those operations compare two values by their properties. Yet the NaN doesn't have properties to speak of, because it is not a value in the first palce. The operation of comparing is thus not well defined for NaN. Oops? :-)

<comment><USER4> "I have to respectully disagree with you :-)"

You said this, but you never seemed to get around to an actual point of disagreement that I could see.

I'm not sure you realized that I was talking about _math_ equality. In math, there is no distinct "3" vs. "3 + 0". We can indeed talk about how they are different tokens but there's no second "3". There's just the one in conventional systems that most people have heard of, expressable in a countably infinite number of ways (without getting crazy).s

(Yes, I know some of the other ones. That's why I said "conventional systems", after all.)

Math equality not being the same as programmer equality was my entire point. Thanks for elaborating on that theme, I guess? And given that it isn't the same thing, we aren't particularly constrained in how we use our programmer equality except by practical considerations. If we want NaN to == NaN and not === NaN, it's just a matter of making the programming runtime do it. Or vice versa. Or we can simply crash, which actually given how frequently people _actually_ want NaN in Javascript is probably actually the choice I would choose. We aren't constrained by how continuous mathematicians of a certain school think our numbers work, because as programmers we _never_ work with those numbers. We have completely different things going on. Actually if you operate on the assumption that your computer numbers are like mathematician numbers you will be in for nothing but pain on both sides.

</comment></comment></comment></comment></comment><comment><USER5> Section 7 is so completely wrong:

        var someVar = 'hello';
        setTimeout((function() { alert(someVar); })(someVar), 1000);
        var someVar = 'goodbye';

This won't do what he thinks it's going to do. Instead of alerting 'hello' after 1 second (after the value has been changed to 'goodbye') it alerts 'hello' immediately and does nothing after 1 second. Perhaps he meant something like:

        var someVar = 'hello';
        setTimeout(
            (function(innerVar) {
                return function() { alert(innerVar); };
            })(someVar),
            1000
        );
        var someVar = 'goodbye';

This should alert 'hello' after 1 second even though someVar has by then been overwritten.

<comment><USER3> ((EDIT: was irrelevant, as pointed out by stanleydrew in the post below. Thanks!))

<comment><USER5> That's the example of what doesn't work from the beginning of section 7. That will alert 'goodbye' after one second. I'm calling out his "fixed" code, which is supposed to alert 'hello' after one second.

</comment></comment></comment><comment><USER6> Please don't vote for this article, it's full of half-truths and misconceptions.

You can not "fake" scope. When you call `call` on a function and pass an object as an argument, you are calling the function as a method of that object. This has nothing to do with a function's scope.

<comment><USER7> Please:

Vote for articles you feel contribute to HN, either directly or through their discussion (a vote for a post does not necessarily imply _agreement_ , it implies "This is worth reading.")

Please:

Point out half-truths and misconceptions.

Please don't:

Ask other people to vote for or against a post or comment.

</comment></comment><comment><USER8> The statement "Null is an Object" is probably more confusing than enlightening. I would prefer to say that typeof(null) non-intuitively returns the string "object".

<comment><USER3> The ECMA standard supports your story. The `null' is the only instance of type `Null'. A Null instance does not have any properties; in particular, doesn't have the `constructor' property all actual object do.

What alert() does is an implicit conversion to string, and _that_ is surprisingly defined to say "object" in ECMA standard. Could be matter of backward compatibility...

<comment><USER8> It actually makes some kind of sense in a dark, twisted way. If you think of it in terms of the Java type system, then the type of null is arguably Object.

</comment></comment></comment><comment><USER9> > 9\. 0.1 + 0.2 !== 0.3

You get this in most other programing languages too.

> 8\. Firefox Reads and Returns Colors in RGB, Not Hex

The title says JavaScript, this is the DOM.

> 7\. Functions Can Execute Themselves

Why is this so odd? I feel the author is too biased towards other languages. Also his example totally misses to point of closures.

> 6\. You Can Fake Scope

No you can't fake scope, you override it. Why is this so odd? Again the author is not looking at it correctly, this is natural if you use it correctly.

Most of this article seems to come from someone who didn't really use JavaScript a lot, hence there is a lot of bias and prejudice. All you need to do is tell yourself that classical OOP is not the only way to code, and you will see that most of those things are really good stuff and not oddities.

</comment><comment><USER8> My favorite oddity in JavaScript: Arrays are actually indexed by strings. arr[17] is just syntactic sugar for arr["17"].

<comment><USER10> Arrays in JavaScript are merely objects with some extra bits tacked on to make them appear "array-like". Underneath they are still a collection of key/values like all other JS objects.

<comment><USER11> But the "oddity" is that unlike many languages there are only string keys. Many languages implement the array type as a map but still distinguish between a[17] and a["17"].

<comment><USER10> Maybe I'm missing the point. I don't see how that is an oddity as all objects in JavaScript only allow string keys.

edit: JavaScript arrays are odd in general since they are just objects designed to look like "true" arrays. I guess I'm so used to that now that nothing about them feels "odd" anymore.

</comment></comment></comment></comment><comment><USER12> This article smacks of being written by someone who came to javscript from the design world, as opposed to coming to javascript as a programmer.

</comment><comment><USER13> Javascript has automatic semicolon insertion. This function:

      function a() {
        return
          true;
      }

return _undefined_.

<comment><USER14> This Python

        def a():
            return
            False;

returns _None_.

<comment><USER15> That's because in Python the line break is the statement terminator.

<comment><USER14> Python and JavaScript both accept semicolons or line breaks to terminate statements. JavaScript's syntax problems are a bit more subtle than just that.

</comment></comment></comment></comment><comment><USER16> wow this article is full of errors</comment>


2001: Linux is cancer, says Microsoft. 2019: ah, can we join Linux mailing list? - <AUTHOR> https://www.theregister.co.uk/2019/06/27/microsoft_linux_distro_list/ <comment><USER2> First we copy the cancer. Then we incorporate the copy of the cancer and make it a productive part of Windows. Then we starve the cancer of users. This is how we kill the cancer. Really guys we have changed, we're not into profit anymore, we're into freedom and user rights. Really. You can trust us, we are your friendly neighbourhood corporation. We don't even siphon as much data as Google, we're the good guys.

</comment><comment><USER3> I'm still in 2001, Dave.

</comment><comment><USER4> It's OK, they fired that other guy.

</comment><comment><USER5> So in 2019 Microsoft confirms that its 2001 assessment is correct and they have been assimilated.

</comment><comment><USER6> guess it got better...</comment>


I just found a Rapportive rip-off - <AUTHOR> https://chrome.google.com/webstore/detail/aboutnumber-for-gmail-bet/pofgjjnmencehbdejkfedapopepabpej

<comment><USER2> >> great tool.

<comment><AUTHOR> yes, and guess it is working alongside rapportive!</comment></comment>


Map school: a free introduction to geo - <AUTHOR> http://mapschool.io/

<comment><USER2> This is a great starting point to mapping

I've always found coordinate systems both extremely challenging and fascinating - like how longitude and latitude isn't the same across the world according due to different models of the earth.

Have you got any plans to add a more extensive introduction to geodesy?

</comment><comment><USER3> For those with a preference for Coursera type of learning, there's a course coming up in April that will cover much of the same material — [https://www.coursera.org/course/maps](https://www.coursera.org/course/maps)</comment>


Apple has restored Facebook's enterprise certificate - <AUTHOR> https://twitter.com/MikeIsaac/status/1091103868463636481 <comment><USER2> Really wish we knew the contents of the conversation that took place for this to happen. I can't imagine Apple just took an apology and said "okay, you can have it back". Blocking Facebook from their platform wouldn't really be workable for them long-term, but I expected them to perhaps hold Facebook and Google out a bit longer.</comment>


Apple Patent Reveals New Colored LED MacBook Pro Keyboard - <AUTHOR> https://www.forbes.com/sites/ewanspence/2020/01/09/apple-macbook-pro-macos-gaming-keyboard-backlit-color-patent-new-leak-published <comment><AUTHOR> Patent link: [http://patft.uspto.gov/netacgi/nph- Parser?Sect1=PTO2&Sect2=H...](http://patft.uspto.gov/netacgi/nph- Parser?Sect1=PTO2&Sect2=HITOFF&u=%2Fnetahtml%2FPTO%2Fsearch- adv.htm&r=33&p=1&f=G&l=50&d=PTXT&S1=\(apple.ASNM.+AND+20200107.PD.\)&OS=an/apple+and+isd/1/7/2020&RS=\(AN/apple+AND+ISD/20200107\))</comment>


Subtle bug in Google can get you banned - <AUTHOR>

I just had my IP banned from google and I couldn't understand why, after enabling the 'google toolbar'.
The toolbar is useful because it allows you to see the pagerank of your pages, after enabling it the browser will restart.
And that's where the problem will occur, if you have a large number of browser windows or tabs open when you do this (or if after a browser crash you do a recovery) google will interpret the flurry of toolbar requests when the browser comes back up as an attempt at automated requests to their servers and will block your IP accordingly.
Highly annoying! Effectively the use of one (luxury) google service disables the use of another one that is far more essential.
I hope there is a way out of 'toolbar induced google purgatory'.
update: I can use google again (after 15 minutes), but the toolbar still does not function. <comment><USER2> There are a lot of people that scrape Google pretty badly, so we do need to have protection against bots, including ones that look like the Google toolbar. If you're resuming ~50 tabs, I can believe that might look like a scraper to us for while. I'm glad you could do regular Google searches after 15 minutes or so.

<comment><AUTHOR> So, are you seriously telling me that google can't tell the difference between their _own_ toolbar used by a logged in user and a bot?

How about changing the toolbar code so it paces the requests to something that sits below the frequency of the 'ban for bot use' trigger? That would seem to me to be an obvious fix.

<comment><USER3> Bots can probably perfectly duplicate the behavior of a toolbar. Only the rate and volume of requests would be different.

I'm assuming the toolbars can't communicate between each other. On toolbar launch, it should pick a random number between 1 and x and wait that many ms before contacting google. Pick x by looking at the number of req/sec that trigger a ban and the high-end number of tabs a power user might restart with. This would spread the requests out over that time period and keep it under the ban.

<comment><USER4> > Bots can probably perfectly duplicate the behavior of a toolbar. Only the > rate and volume of requests would be different.

If they do, isn't that precisely what Google would want? Isn't it only the rate and volume of requests that are a problem?

<comment><USER5> They might not want someone to build a large database of pageranks.

<comment><USER6> ok, wouldn't that require like a very very very long time? Google has a dadabase probably terabytes big and if someone does want it can't they do something like what DDG does? I believe they get their searches by yahoo for free

</comment></comment></comment></comment></comment></comment><comment><USER7> I'd report that to Google as a bug.

[http://www.google.com/support/toolbar/bin/request.py?contact...](http://www.google.com/support/toolbar/bin/request.py?contact_type=problem)

The official toolbar should not exceed request limits that were designed to prevent PageRank scraping by third-party software.

<comment><AUTHOR> It's now over half an hour, the toolbar _still_ doesn't function.

"We're sorry...

... but your computer or network may be sending automated queries. To protect our users, we can't process your request right now."

Right...

I'll try to file a bug with them, but my experience with google and support issues so far does not lead me to believe that anybody will actually read the report.

"I know this form is used to track new issues so I won't receive a response"

Does not give me great hope.

</comment></comment><comment><USER8> Reminds me of how I used to get banned from reading Google Groups all the time just for opening a bunch of threads in tabs from Google Reader. Now I know that I have to open a couple, read a couple, go back to Reader and repeat. Kind of a shame that people have to act differently just to not be banned as robots.

<comment><USER9> Yeah, I usually need help to do Google's captchas too. Amazingly hard to convince them you're human.

</comment></comment><comment><USER10> Generally when this type of thing happens, Google will reply with a captcha that, if you correctly solve it, will let you keep going for a while. I guess toolbar requests might be a little different than web requests.

<comment><AUTHOR> No captcha to be seen, the IP ban is still in place, it's now 8 hours later.

</comment></comment><comment><USER11> Enabling instant search in Chrome did this for me. Pretty sad really.

</comment><comment><USER12> OP, any chance you could say how many total tabs+windows you had open? That should be useful while this bug is open.

Thanks for the tip!

<comment><AUTHOR> About 50 in all. And I'm on a 10 Mbit link, possibly on a slower link it would not have triggered. More than an hour has passed now, I think I'll give up for the day (3:50 am here anyway) and hope that by tomorrow things will have normalized.

What a silly situation to be in.

I could change my IP by calling my provider but it is also entered in a fairly large number of ACLs that will not be updated automatically.

</comment></comment><comment><USER13> same thing happened to me with auto pagerize extension while incrementally refining my search because none of the results i was getting back were meaningful. i moved to duck duck go and bing. if they don't want me to use them for search, then fine. plenty of alternatives. haven't missed google so far.

</comment><comment><USER14> Somebody from <http://geotool.flagfox.net/?search=220.127.116.11> hacked into my Gmail a/c</comment>


Canonical, Ltd. On Record: Seeking Open Core - <AUTHOR> http://ebb.org/bkuhn/blog/2010/10/17/shuttleworth-admits-it.html <comment><USER3> Whlie I agree with the whole article, there is something wrong with it.

Nokia changed Qt's policy from dual-license, half-open model to a totally open, community based project, because they werent looking at Qt as a product to sell.

TrollTech's product was Qt. They used dual-license model to sell it. And it was partially closed.

Nokia's product is NOT Qt. Qt is a platform which they try to find partners, developers and community around it. They dont want to make money through Qt. They want Qt to be a perfect platform and complete transparency and openness is the way they achieve it.

</comment><comment><USER4> In the last millenium I had a few emails trading with the author. The FSF take the view that there is one definition of Free: It's their way or the highway. Canonical don't conform to this definition of Free, instead they have something different, that probably works better for them.

In a previous life I worked at an Open Source company and we had to put up with zealotry on a daily basis, both externally and internally. On the one hand the FSF see themselves as guardians of the Free Software Movement - <USER2> mantle nobody else seems to want to take up. On the other hand, sometimes they act like douches. This is one such time in which the douche element of the FSF comes up for air (in my opinion, and yours may differ, there doesn't appear to be a clear right of wrong).

Canonical own Ubuntu. It's up to them to run it the way they want to. If they want copyright assignment under their terms, that's their choice, not the FSF's. If they don't like it they can always fork it, but of course their fork won't be nearly as popular. This implies that Kuhn wants to have his cake and eat it, or at least eat Canonical's cake and tell them how to mix the ingredients.

<comment><USER5> > The FSF take the view that there is one definition of Free: It's their way > or the highway.

No. The FSF takes the view that there is one definition of _Free Software_. Considering it's a concept invented by its creator and one the FSF was specifically created to defend, I don't see how they could be wrong.

> On the one hand the FSF see themselves as guardians of the Free Software > Movement

Because they are, that's very specifically what the FSF was created for.

<comment><USER6> Well, that's why "open source" was coined in the first place, because many people or companies releasing software under an open-source license feel uncomfortable about associating their software with any political agenda.

</comment></comment></comment><comment><USER7> _...the copyleft itself...actually keeps us harmonious._

How can this be said with a straight face in a most unharmonious essay that decries 1) the practice of adding copyright assignment (above & beyond the terms of the GPL) to a non-FSF entity and 2) suggests that the GPL is not sufficient and that additional promises must be made by that entity.

Either the GPL is sufficient to keep participants harmonious or it isn't.

This essay embodies everything that keeps the free software movement from greatness. I'm grateful that free software was there for me during the dark ages of computing, but I wish it could be more than an escape valve from monoculture. Alas, the movement is perpetually suspicious of those who want it to flourish.

Edit: jdub, I appreciate your reply. Could you be more specific about exactly which statement of fact is incorrect? "This is factually incorrect" sounds ominous, but I don't see where you contradicted anything I wrote. Nothing about our perspectives seems mutually exclusive at all.

<comment><USER8> Personally, I'm a big fan of the BSD-style and MIT licenses. I don't care how or why anyone uses my code, I just want a little credit for writing it.

<comment><USER9> How carefully have you thought about that?

Are you fine with someone integrating your code into a GPL project that competes with you, and potentially _out_ -competes your project?

<comment><USER10> I have, and I am. If I write some code, and Microsoft takes it and improves Windows, I've just helped a zillion people, regardless of how much I dislike Microsoft, and regardless of the fact that I won't see a dime or any credit.

I do think the opposing position has merit, I just don't take the same position personally.

<comment><USER9> The reason I mentioned a GPL project specifically is that that would be competing directly with the BSD project for the hearts and minds of the open source community. For some people I think that would be harder to swallow than say Microsoft using the code in Windows.

</comment></comment></comment></comment></comment><comment><USER11> The danger of individuals with vast pools of funding is that they can afford to cause havoc in the community & their bank accounts for years before finally giving up on ideas that are simply unsustainable inside the ecosystem we have grown&cared for for so long.

Something to be said for a profit-imperative to keep conversations honest & feet on the ground.

Canonical has grown a strong brand in huge swathes of previously Microsoft territory.

They would do well to follow RedHat's example and trade on a reputation for competence&quality rather than trying to place their faith in various recipes of secret herbs&spice.

</comment><comment><USER12> _UbuntuOne, integrated on nearly every menu of the desktop, ... might help Canonical, Ltd. make a few bucks?_

If you don't like it, fork it, right? Isn't that the main strength of F/OSS? For example, CentOS is a white-label fork of Red Hat Enterprise Linux. The same argument could be applied to Canonical's inclusion of Adobe Air and Flash in Ubuntu.

Canonical is targeting a market previous unserved by other Linux distros. To get to these users, the experience needs to be polished and complete. There's a reason that, for example, Slackware, isn't going to be installed by your grandmother...it's too difficult.

<comment><USER3> You cant fork a Company!

But, really, why people bring the 'Ubuntu is polished' argument all the time? Noone is against it being user friendly. They can be user friendly AND upstream friendly.

And their upstream happens to be the free software community. And they claim they respect it. And they dont.

<comment><USER13> Ubuntu is polished to a point, kind of like a ball of mud can be polished to a high sheen. There "are" issues that continue to plague Linux in the Desktop department. To say that Ubuntu is polished enough for grandma to _really_ interact with the machine without root is silly IMHO.

<comment><USER14> > There "are" issues that continue to plague Linux in the Desktop department.

I'd be interested in knowing what you are referring to here.

<comment><USER13> Things like not being able to delete files out of your trash because the permissions are set such that you need to sudo rm -rf ~/.Trash/ _

</comment></comment></comment></comment></comment><comment><USER15> A reply from Alex Hudson <http://www.alexhudson.com/2010/10/17/bkuhn-on- canonical/>

</comment><comment><USER16> In the humanities, one way into a text is through close reading. So here goes (just the first paragraph mind you because this can get tiring).

>>> I've written before about my deep skepticism regarding the true motives of Canonical, Ltd.'s advocacy and demand of for-profit corporate copyright assignment without promises to adhere to copyleft.

There is nothing wrong with Canonical requiring copyright assignment. The FSF do it, SUN did it, I would guess Microsoft does it. It is not unusual for a corporation to be a for-profit entity. There is no way someone would do unpaid work for somebody else and get nothing in return unless they were a slave or forced to do so. How would it be even possible to contribute to a Canonical project if you are not part of Canonical if the codebase is not freely accessible or at least in some way open?

>>> I've often asked Canonical employees, including Jono Bacon, Amanda Brock, Jane Silber, Mark Shuttleworth himself, and — in the comments of this very blog post — Matt Asay to explain (a) why exactly they demand copyright assignment on their projects, rather than merely having contributors agree to the GNU GPL formally (like projects such as Linux do),

That's interesting because the issue of copyright assignment arose when SCO started the whole litigation thing against Linux (well, Linux companies). Also, again, canonical is a for-profit corp, Linux is a (as you say) project so you can't compare them. I wonder what the policy of the Linux Foundation is?

>>> and (b) why, having received a contributor's copyright assignment, Canonical, Ltd. refuses to promise to keep the software copylefted and never proprietarize it (FSF, for example, has always done the latter in assignments).

Why should they promise? It's not their job to promise such things. The, again, are a corporation and have to look after themselves. They are not the FSF which is as far as I remember, a charity. What does Redhat do? Or Novell? We know that SUN required copyright assignment for OOo so it's not unreasonable for corps to have this requirement. If your issue is with code being worked on by individuals not employed by Canonical, with that work then being used in non GPL projects and with the copyright assignment of that work being handed over to Canonical then fair enough - please show me how this happens and where.

>>> When I ask these questions of Canonical, Ltd. employees, they invariably artfully change the subject.

Seriously. Citation please.

</comment><comment><USER17> Anyone care to explain how Canonical requiring copyright assignment for contributions to their projects is different from Red Hat requiring a Contributor License Agreement for contributions to Spacewalk, their now-open- source Red Hat Network code-base?

At first glance it seems that Canonical ask for copyright assignment and then 'grant a very broad license back', while Red Hat let the contributor retain copyright but ask for a similarly broad license for their use of the contribution. Other than the name in the copyright statement, it's difficult to see there's much difference in the control over downstream use of the contributed code, and it's potential for downstream (mis-)use that the original article seems to be primarily concerned about.

Yes, the disparity between the contributor agreements is confusing and requires potential contributors to put their legal head on to work out what they're agreeing to for each project they want to contribute to. That's where the free-software/open-source licenses were a few years ago before efforts were made to catalogue them and reduce their number somewhat (largely by The Open Source Initiative, I seem to remember). And that seems to be the problem that Project Harmony is trying to tackle.

So, are there real differences between these two instances? I'm having trouble spotting the objective difference between 'This set of policies has some flaws' in one case and 'copyright assignment intimidation tactics' in the other.

<comment><USER18> Red Hat no longer requires a CLA for contributions to Spacewalk. We realized it was a bad policy: [https://www.redhat.com/archives/spacewalk- devel/2010-August/...](https://www.redhat.com/archives/spacewalk- devel/2010-August/msg00024.html)

<comment><USER19> @rfontana, You should updated the SpaceWalk wiki to be clear. It still links to the old CLA. See: <https://fedorahosted.org/spacewalk/wiki/PatchProcess> I am glad you changed the process, I'm going to update this.

<comment><USER18> @bkuhn, that's generally the responsibility of Spacewalk project developers, of which I am not one. If anyone signs the CLA, we'll tear it up.

</comment></comment></comment></comment><comment><USER20> It's too bad that Canonical has, in effect, surfed the wave of free software, but refused to be a integral part of it, as they really could be. It's disappointing that they are "open-source" but not free.

Including Adobe Air and Flash in their repository is really disheartening, but so is UbuntuOne.

I'm not exactly pro-Red Hat either... <http://tinyurl.com/27x6c59>

No bias here folks, I'm using Ubuntu right now! I also use Fedora, Trisquel, and gNewSense, but Ubuntu is my "main" OS. I also like how they've cleared up some of the cryptic messages in their software center (Licence: Unknown to Licence: Proprietary).

I'm just _very_ concerned about free software.

<comment><USER21> What is, in essence, the real difference between free and open source?

<comment><USER20> Open source (or should I say, the catchphrase open-source) lets you "see" the source code, but not use it. It's more loose than:

Free software (some call it "libre") lets you see _and_ use the source code.

Proprietary does not let you do either.

Some software makers call their software "open-source" when it's really free, and some call their software "free" when it's really just "open".

<http://www.gnu.org/philosophy/free-sw.html>

<comment><USER22> That's nonsense. Open source is defined by the Open Source Definition as published by the OSI. <http://www.opensource.org/docs/osd> Read section 3, Derived Works. Putting a source tarball online with a license that says "you can read this source but you can't do anything else with it" doesn't make it open source.

<comment><USER20> I was talking about the catchphrase "open-source", not what the OSI talks about.

<http://www.gnu.org/philosophy/free-software-for-freedom.html>

</comment></comment></comment></comment></comment><comment><USER21> I think Mark Shuttleworth is right, when he tries to improve the Ubuntu ecosystem. I needs more than code to have a great computing experience. People miss the point, when the critisize Canonical so often.

<comment><USER23> What about this article makes you believe Shuttleworth is focused on "improving the Ubuntu ecosystem" with his position on copyright assignment?

It seems to pretty clearly show focus on improving the Canonical bottom line, to me. Which is also fine...but, Open Source fans should be aware of what motivates the organizations they work with. Red Hat and Debian have a _long_ history of choosing openness and freedom over control and profit (though Red Hat still manages to be the most profitable Linux vendor). Canonical has a less stellar record, generally speaking, with a history of unilateral decision-making, and questionable motives.

Note that I'm not at all opposed to the idea of so-called "Open Core" software. Virtualmin and Cloudmin are effectively Open Core projects, with proprietary additions being where our profits come from. But, we don't have any non-employee contributors to speak of (we get a bugfix patch every three months or so, on average). Whereas Ubuntu is 99+% code written by non- employees. Their contributions to Gnome, arguably the most important single aspect of the famous Ubuntu "ease of use", are miniscule compared to Red Hat and several others. And, of course, I'm not saying that Canonical shouldn't be praised for their 1% contribution to Gnome. It's just that their contributions do not justify the level of control they desire over the community, and that the free software community should be highly suspicious when Canonical make these kinds of power grabs.

In short, Canonical historically isn't all that great of a community member, and this is one more example of them putting the desires of Canonical above the desires of the Open Source community in importance. Open Core is fine, if they want to do it with their own entirely in-house written code. But, it sounds like they want the culture of Open Source to start shifting in the direction of corporate-led Open Source projects, even in situations where non- profits and communities are currently leading effectively (like Gnome).

<comment><USER24> "Their contributions to Gnome are miniscule compared to Red Hat and several others."

No, they are not minuscule. I could not use Red Hat and several others(suse, mandriva...) because for me, and for many others Linux was a pain to use, with obvious design flaws.

Red Hat and others could not care less about the "normal user", they care about companies, witch is fine, but they made very little actual contributions to me if I could not use it.

There is no problem having an "Open Core" strategy if the code is GPL, and you could see it. They give the company(in this case Canonical) control over the design, witch is fine too. If you don't like it you could fork or create a new project.

Way easier to criticize than do anything.

<comment><USER23> "Way easier to criticize than do anything."

Yes, it is, and I do both. I've written code that ships in Ubuntu (and Debian, and Red Hat, and Fedora, and FreeBSD, etc.), and I've worked on Open Source projects for over a dozen years. I believe that grants me a right to speak on the subject, particularly since I'm not advocating a position that benefits me in any way; it merely presents my opinion as an Open Source contributor of many years.

</comment></comment></comment></comment><comment><USER25> I'm not intimately familiar with the details of this debate. So I have the following semi-organized line of thought, and I'd love feedback.

This line of thought comes from curiosity, not because of an agenda. I really don't know what tack I should be taking here, so insight is welcome.

Is there a problem with a company taking source code that I've licensed as free to use (code that I haven't bothered to make consumer-friendly, just well-written) and then turn that into a viable product, where the core of the product--my core--is very much open source? If not this way, then how will the vast majority of open-source products find acceptable use to the everyday consumer in the market of applications?

It seems to me like many open source programs don't strive to improve the user experience, at least very rapidly. For example, OpenOffice (to me) could use a lot of tweaking, at least in GNOME. For such an open product, I can't modify very much about the interface as a user. Of course, I could go in and recode part of the application to my liking. But I probably don't want to expend that kind of effort just to get a suitable (to me) looking product. Evolution also comes to mind. There are changes that I find obvious and pressing--appearance settings, more minimalist interface, better interface with an external contacts manager--but have yet to improve. Where will the impetus for these kinds of changes come from if there is no monetary incentive?

If allowing a company to add proprietary UI goodness on top of an open source core means that we get solid products with a secure, beautiful, open base, what is not to like? If a developer can develop solid, clean libraries and then license his product for other companies to follow through with design that he doesn't want to do, why not support his decision to do so?

Especially in an arena where standards and interoperability are valued, it seems like allowing a company to use open source code in its proprietary software won't harm data portability or open source ideals. For example, say some startup X takes OpenOffice's core and redoes it using slick GTK and innovative UI elements. The company will likely fail unless its quasi- proprietary software supports open document format standards. (Interop with existing standards is likely key to success in current data processing markets.) If indeed it does support those standards, and I know what the core source code is, what do I care if the UI code is proprietary? I get a solid program out of it and can take my data elsewhere without conversion if I become dissatisfied.

It seems to me like the alternative to a hybrid model is a developer-centric platform and ecosystem that lacks many end-users to develop for. I love Ubuntu because its commandline and developer tools are fantastic, really a pleasure to use. But I have maybe 10 friends who also use Linux. So I could develop useful applications for myself or other developers, but not for too many end users. Without compelling UI, this situation isn't likely to change, right?

I know that Ubuntu is making headway in the UI department, and I think 10.10 is slick. Is that a result of the movement toward OpenCore described in this article?

<comment><USER6>
        I love Ubuntu because its commandline and developer
        tools are fantastic, really a pleasure to use

Then you should give credit where credit is due: to Debian, not Ubuntu.

I love Ubuntu for their UI breakthroughs, but I'm only tolerating them for stealing Debian's work as long as Ubuntu stays free (as in price).

If you want to sell your Linux distribution, at least build it yourself.

        So I could develop useful applications for myself or
        other developers, but not for too many end users.

If your app is so dependent on GTK+ as to be unportable to other platforms, you're doing it wrong.

<comment><USER26> > stealing Debian's work

That's a completely unfair statement. I wasn't aware following the license of an open source statement constituted stealing.

<comment><USER27> That was more a hypothetical.</comment></comment></comment></comment>


From Retail Palace to Zombie Mall: How Efficiency Killed the Department Store - <AUTHOR> http://www.collectorsweekly.com/articles/how-efficiency-killed-the-department-store/

<comment><USER2> > "We have different ideas of efficiency now," Wood says. "We want to shop > with as little intrusion by anyone else as possible. Self-checkout is one > of, in my opinion, the least efficient tools in the world, yet everyone is > obsessed with using self-checkout at the grocery store. It's so much faster > to just wait in line and have someone check out for you."

There seem to be contradictory statements there. No wonder online vendors are killing the retail outlet.

Self checkout appears to be a way to lower both employee costs and customer satisfaction. These systems often don't work well, and with the cashier staff reduced to minimums, often it takes longer to un-wedge the self checkout process than to wait for the one or two human cashiers among the 20+ unused registers. My local Target and Home Depot stores come to mind.

> In actuality, I think Amazon is highly inefficient if you don't know what > you're buying because you don't have anyone to help you and say, 'No, > actually, this is better than that.'

That service died with the management ilk of chains like Circuit City in the US that replaced experienced, knowledgable salespeople with underpaid "ad pushers", trained in nothing more than moving the hot item of the week. In some cases I found it most efficient to order online for pickup at the local store, and bypass all the unhelpful "help".

With Amazon, I can at least read reviews, attempt to pick out those that are informed, and get some actual information. Modern retail does _not_ have a current or past equivalent.

<comment><USER3> Amazon had a nice tax dodge for a while too. Lower price for the same thing; not bad.

<comment><USER4> Amazon is frequently more expensive on some items I buy; I _still_ buy from Amazon because the experience is better, cost savings be damned.

Drive to the store, have to talk to someone, grab item, checkout, drive home? NOPE.

</comment></comment></comment><comment><USER5> Retail stores just physically cannot compete on choice. There's only so much stock that you can hold at a walk-in store and they all seem to become necessarily limited to the 'popular and generic items'. The smaller niche stores meanwhile get squeezed out by rising costs.

There have been times I've gone into the city with the intention of buying something from a retail store, because I want it that day. I spend hours walking around trying to find the particular thing that I know I want, but to no avail. Everyone seems to carry the same stuff and more often than not it isn't the stuff that's generally recommended as excellent.

One example that comes to mind - I went out once looking for an iPhone/Android compatible game controller (specifically it was the MOGA Power Pro but I would have taken anything similar at the time). Went to the only big game store chain we have (EB Games), couldn't find it. Went to the two big electronics store chains we have; couldn't find it. Went to two different big-box department store chains we have; couldn't find it. I think I even went to the Apple store and they didn't have the one I was looking for. Ended up just ordering it online.

Another example - one day I felt like getting some physical books. Went out to the local mall and to the physical bookstore they have there. Worse situation. Out of the whole store, I think only two shelves were computer/IT books. Nearly all of which were "Teach yourself X in Y hours" or "Microsoft Office something or other". Figured this was a lost cause; I could take the nearly hour commute into the CBD and go to one of the big shops but at that point I thought, why bother? Ordered from Amazon, just waited for the international shipping. At least I got what I was looking for without feeling like I wasted my time.

For an educated consumer, there is just no reason to go retail other than the social experience. I don't remember it always being like this, but maybe it's because I was young and without the ubiquitous Internet you actually went to a store to browse and discover new products.

It used to be different and exciting to go to a big electronics/music/book store and see all the new things that you didn't know about before walking in the store. That just isn't the world we live in anymore.

<comment><USER6> Maybe it is more of an Australian thing but limited choice is a big thing for me. I currently live in a rural area and the last few times I have travelled to the nearest city to do shopping I have left disappointed and swore I would just shop online in future.

It used to be there would be many different stores offering specialised stock but now it is all identical franchises nationwide. People drive to the nearest big box store that has the same severely limited range as the next big box store a 20 minute drive away. You can travel from one side of the country to the other and every store is the same. Useless.

</comment></comment><comment><USER7> Good riddance. I've never liked shopping, and these days, if I can't find something in 10 minutes, I'll go home and buy it online in 5. Note that I'm more than willing to try buying local first, support local businesses, etc, but malls have always been a blight.

</comment><comment><USER8> I wonder why the flagship department stores seem to have perished in the USA but not as much in Europe. Of course Harrods comes to mind. KaDeWe in Berlin is an amazing store the recalls and even surpasses the main Marshall Fields in Chicago 50 years ago. KaDeWe is always packed with locals and tourists alike. The author of the article seems solely focused on the USA.

<comment><USER9> Nordstroms in the US seems to be doing fine using the classic department store setup. I think the difference is they don't sell electronics or home appliances and target upmarket.

IMO, while everyone blames online shopping it's arguably the death of the middle class that's really at fault.

<comment><USER10> I don't need to visit frequently, but when I do, I am always surprised and delighted by the customer service at Nordstrom. They seem to be the only national brick & mortar chain [I've encountered] that has a Zappo's level of service.</comment></comment></comment>


The Skein Hash Function - <AUTHOR> http://www.schneier.com/blog/archives/2008/10/the_skein_hash.html?1

<comment><USER2> The nut of this story: use SHA256 until NIST selects a "winner" in a couple years. Schneier's team submission will be competing with submissions from better-regarded cryptographers, and everything submitted to this contest is unusually liable to be broken due to the competition.

Just so you know, you're reading about Skein because Schneier has an extremely popular blog and is a well-known personality. He is less well-established as a credible cryptographic researcher, as a Google Scholar search will establish. He has a smart team, and his last NIST submission (Twofish) was an AES finalist, but you'd get looked at funny if you were caught using Twofish in 2008.

<comment><USER3> Is Twofish broken, or is the reason to look funny at it's users simply that they should use AES because it is the standard?

<comment><USER2> None of the AES finalists have been "broken", and all of them (except maybe I think Serpent?) have had cryptanalytic results published in the literature. It is indeed because AES is the standard --- everybody uses it, there are many good-quality implementations, and everybody knows _how_ to use it.

It's all kind of a moot point. If you're typing the name of a cipher into your code, you're doing it wrong, and you'll pay down the road when you get pentested.

</comment></comment></comment><comment><USER4> I'd like to see how it goes. Among some of the submissions I viewed, it is the fastest one which make it very practical to replace now file digest method. But I do not want to adopt the method now as it is not be widely accepted yet. As there are other interest algorithms out there (more than using block cipher) like using properties of log func. From my own perspective, I do prefer different ideas.

<comment><USER2> Check out:

<http://cr.yp.to/hash.html>

The cipher DAG paper is pretty awesome. I want to make prints and hang them on my wall.

</comment></comment><comment><USER5> This function is purportedly quite fast, but I thought slower hashing functions were more secure because they take longer to build tables from?

<comment><USER2> A secure hash function is a cryptographic primitive. Its goal is to resist collisions, particularly preimages (predictable collisions), while being _as fast as possible_. To steal Schneier's words, hash functions are the glue that binds most cryptosystems (like SSL/TLS or PGP).

A password storage function is a cryptosystem built out of crypto primitives. The primitives are designed to be fast, but the cryptosystem should be slow. One of the goals of a password storage function is to find a reasonable, flexible way to slow down fast crypto primitives.

So the problem here is just terminology; you're conflating password storage functions with hash functions.

And now you have another perspective on why "salted SHA256" is an evil password storage function: it's simply using a raw hash function, rather than building a password storage function out of them.

Also: you can't really "build tables" out of any password storage function with a nonce ("salt"); defeating "tables" is as simple as adding a public random number to each password. I'm writing this because it's worth remembering that "building tables" is just one of many attacks against a password storage function, and it is not the most important one.</comment></comment>


Apple: Building A YouTube Killer? - <AUTHOR> http://blogs.forbes.com/ciocentral/2011/04/20/apple-building-a-youtube-killer/ <comment><USER2> This is ridiculous. The article spends 9/10ths of it explaining the current video infrastructure, then takes one paragraph to say "Apple has to create a youtube killer. Expect it to be called iVideo and unveiled at WWDC."

Maybe this guy has sources he doesn't want to burn, and he wants to be able to point out that he was right, but for us readers, the people the guy should be writing for, he's burning us w/ conjecture and a story about the recent changes in video, not about the future.

<comment><USER3> Also, why does everything get called a "Killer"?

Not only is the terminology getting beaten into the ground (see "solution" in the early 2000s), it's rapidly becoming associated with products that are flat, and could never hope of dethroning the product they're supposed to rival.

<comment><USER2> Headline-bloat. 'Killer' expresses a concept really quickly (ie this aims to displace that) which has some utility, but you're right, eventually it loses its actual meaning.

Solution doesn't actually seem to have any real meaning, or at least the buzzword bingo quotient (see the new up-and-comer: Agile) makes any headline using it lose credibility.

</comment></comment></comment><comment><USER4> Maybe this is the cynic in me, and people will come back to this as they did with Slashdot's famous "No wireless. Less space than a nomad. Lame" for the original iPod, but I can't fathom how they could beat YouTube. There's already seemingly an endless amount of other video sites as it is that hold a piece of the market (Vimeo, Metacafe, Break, DailyMotion, etc), and I can't imagine any feature that would make me switch over (although I've always wanted an online fully featured video editor).

Id much sooner believe that the 1bn data center is for Cloud iTunes than for a YouTube competitor.

</comment><comment><USER5> TL;DR Author thinks Apple should build a video upload service, forgets about MobileMe.

</comment><comment><USER6> The author spends most of the piece talking about YouTube hasn't made money; but now they have a plan to make money (or so he thinks.) He neglects to tell us how Apple's iVideo will make money. Subscription fees like Mobile Me? That sounds like a niche play. Alas, our guru does not mention how this "YouTube Killer" will hunt and gather the dollars.

</comment><comment><USER7> Yet another pundit giving an use to the North Carolina data center.

Apple makes awesome software to boost the hardware sales, cheaper software lowers the barrier for people to buy the hardware.

</comment><comment><USER8> Apple is a company that cares about earnings. Why would Apple want to get into a business that is known to be at best marginally profitable?

Apple may get into the video business, but making a YouTube killer would be a giant money wasting expedition. Netflix is profitable. If they do anything, it is more likely to be a Netflix killer.</comment>


Mind-Bending "Quantum Darwinism" Theory Passes Experimental Tests - <AUTHOR> https://futurism.com/quantum-darwinism-theory-experimental-tests <comment><USER2> Article dereferenced, with more details on the experiments: [https://www.quantamagazine.org/quantum-darwinism-an-idea- to-...](https://www.quantamagazine.org/quantum-darwinism-an-idea-to-explain- objective-reality-passes-first-tests-20190722/)

<comment><AUTHOR> Useful reference, thanks.</comment></comment>


Guix Reduces Bootstrap Seed by 50% - <AUTHOR> https://guix.gnu.org/blog/2019/guix-reduces-bootstrap-seed-by-50/ <comment><USER2> Unfortunate that this seems to have dropped off the front page. It really is a lot more fascinating than the title suggests:

"A year later, Mes 0.5 had become a tiny Scheme interpreter written in simple subset of C that came with a simple C compiler in Scheme. And yes, these were mutual self-hosting."

<comment><AUTHOR> indeed, but well, [https://news.ycombinator.com/item?id=21201413](https://news.ycombinator.com/item?id=21201413) did get more love it seems :)</comment></comment>


Show HN: Tundra.sh – Blog friendly static pages generator using pandoc - <AUTHOR> https://frainfreeze.github.io/tundra/ <comment><AUTHOR> Hello HN community, I have been messing around with different static pages generators for years. I stitched tundra.sh up around tools I already had installed (shell, cat, awk, pandoc...) to generate myself a simple blog and static pages.

I hope it could be useful for you too. I would appreciate any feedback on it. Thank you!</comment>


Ask HN: Best way to conduct user testing? - <AUTHOR>

Hello,
I'm one of the founders of a startup from Slovenia that's been performing customer development
for the past few months and we think we've discovered the right product to wrap our idea into.
The quickest description of what we're building goes "Pandora meets Evernote for RSS",
or if you're not into that sort of analogies, it's a personalised newspaper-ish thing that lets
you to process all the RSS feeds you're following.
Anyhow, onward to my question. Our past experience has shown that getting quality alpha/beta testers is very difficult, so this time 'round we have promised to lend everyone who applies an iPad for a few days
and on our launch at the end of the summer our "favourite" tester gets to keep the iPad.
But since iPads don't come cheap, how can we make the best out of the whole experience? I was thinking about setting up a programme where the testers have to bring the device in every evening to be updated with the new daily build and while we're upgrading the app, the tester answers a survey about their experiences and so on.
Is that a good way to do this, or do better ways exist? More important still, how would one go about designing good questionnaires? What sort of things should we be on the look out for? How can we make sure the users answer even those questions we didn't think of asking etc.?
Thanks for the help, ~Swizec <comment><USER2> After 10+ years of evaluating how a software product resonates with people - my preferred technique is very simple and inexpensive.

1\. Find some people that you'd like to use your product 2\. Spend an hour talking to them, one on one. Confirm they have the problem your product solves, talk with them about the products they currently use to solve the problem. Have them show you how they use those products. 3\. Really listen. Ask stupid questions about what they're doing and why they're doing it. 4\. Towards the last 15 minutes of the conversation - have them try out your product. Have them talk about the differences between the product they're familiar with and your product. 5\. Really listen. Ask stupid questions about how they're expecting your product to behave. Prevent yourself from justifying your product or asking them to imagine what could be. Just listen.</comment>


Rust Performance: A story featuring perf and flamegraph on Linux - <AUTHOR> http://blog.adamperry.me/rust/2016/07/24/profiling-rust-perf-flamegraph/? <comment><USER2> I'll be around on and off if anyone wants to discuss, although I hope it is a fairly uncontroversial post. Since so many Rust folks (including myself) come from non-native code, I think it's good to take time to document the discovery process as it pertains to Rust and ideally make it easier for future programmers to pick up.

<comment><USER3> Great writeup.

<comment><USER2> Thanks!

</comment></comment></comment><comment><USER4> Bounds checking can be a nuisance in Golang as well. One trick I've picked up is if I want to iterate over some small prefix of a slice, say the first 10 bytes of a slice of bytes that is known to be longer than 10 bytes, it is tempting to do this:

      for i := 0; i < 10; i++ {
        something(honk[i])
      }

But if you do that, you get a bounds check on every iteration. Much faster to do this:

      subhonk := honk[:10]
      for _, v := range subhonk {
        something(v)
      }

There's no range check inside the loop of a golang range iterator, for obvious reasons.

<comment><USER2> Rust does this as well with iterators and iterator adapters -- I just forgot to include the version that did so in the blog post. Writing a loop like this:

        let mut count = 0;
        for b in &bwt[(i * self.k) + 1 .. r + 1] {
            if b == a {
                count += 1;
            }
        }

Gave me similar performance to the filter/count iterators, as both elide bounds checking. I thought I mentioned that in the parting thoughts, but I may be misremembering and I have to run.

</comment></comment><comment><USER5> For further utility in benchmarking Rust programs, see cargo-benchcmp: [https://github.com/BurntSushi/cargo- benchcmp](https://github.com/BurntSushi/cargo-benchcmp)

</comment><comment><USER6> Are perf and flamegraph the de facto tools for recording and viewing performance?

I was looking for an alternative to Instruments (macOS) on Linux and I came across callgrind and kcachegrind, which worked really well for me when profiling some Rust code.

<comment><USER2> I'm not sure what's de facto, but I most commonly see other Rust/Linux users reaching for valgrind (callgrind, cachegrind, etc). I've recently used massif (part of valgrind) for doing profiling of heap allocations, as well. In the past I also used oprofile because it gave me a nicely annotated source dump of sample rates in different statements.

I am growing to like perf a lot, though. It seems (haven't measured though) to impose less runtime overhead, and the reporting and source annotation tools are top notch.</comment></comment>


Show HN: Broot 1.0, a novel terminal file manager - <AUTHOR> https://dystroy.org/blog/broot-1-0/ <comment><USER2> I would highly recommend everyone to install broot and just once open it in a deep and wide directory, broot is a paradigm shift in file explorers (I only use file explorer feature)

One more feature of broot (currently behind a compilation flag) is client- server. I keep a broot instance pinned to my desktop on the right 20% of screen and have a hook which automatically updates it whenever I cd into a directory. It's very handy for a quick glance, better than constantly typing ls and tree and still not getting an overview.</comment>