My Emacs Productivity Tricks/Hacks - <AUTHOR> http://www.mycpu.org/emacs-productivity-setup/ <comment><USER2> The one thing I consistently do in emacs that shocks my coworkers -- is running this (custom) function, that I call "arrayify":

      (defun arrayify (start end quote)
        "Turn strings on newlines into a QUOTEd, comma-separated one-liner."
        (interactive "r\nMQuote: ")
        (let ((insertion
               (mapconcat
                (lambda (x) (format "%s%s%s" quote x quote))
                (split-string (buffer-substring start end)) ", ")))
          (delete-region start end)
          (insert insertion)))

What it does: Given a list of strings separated by newlines (commonly, something copy-pasted from a table) like:

      josh
      sam
      jed
      C.J.
      toby

You select the text, and run "arrayify". You can optionally provide a quote character and, in about half a second, get to:

      "josh", "jed", "sam", "C.J.", "toby"

This is incredibly useful for taking lists of IDs, or email addresses, or whatever, and transforming them for pasting into documents, or emails, or "in" clauses in SQL, etc.

It is _unbelievably_ useful.

<comment><USER3> In vim:

        :'<,'>!awk '{printf("\"\%s\", ",$0)}'

or to do the whole file:

        :%!awk '{printf("\"\%s\", ",$0)}'

What I find nice about this approach is that I can use my knowledge of awk in other non-vim contexts. Similarly I can use my knowledge of other text processing commands to do things in vim, like reformat text into columns (:%!column -t) for example.

Of course you could use vim commands to do the same thing:

       0<ctrl-v>GI"<esc>$<ctrl-v>GA", <esc>VGJ

Which would have the benefit of making it more customizable at the expense of....well you can see what you have to type.

<comment><USER4> You can use your knowledge of emacs in other non-emacs contexts as well! Elisp is a reasonably capable, if sprawling, programming language and comes with a lot of useful text and code munging stuff, as well as with cross-platform networking and filesystem support, and more esoteric stuff like calendar and symbolic/aribtrary precision math. And that's before installing any extra packages. I've written shebang scripts with Emacs (rather than say python or bash) on multiple occasions. Prior to windows growing linux support it probably also used to be one of the easier ways to write some unixy-feeling but cross-platform scripts; you can even craft a "shebang line" that works for both windows and unix. Having said that, due to general eco-systems advances, writing scripts in emacs has probably become less attractive than it used to be.

<comment><USER3> I really dig that about emacs. Having a programming language that is geared toward text processing is super useful. Doubly so when your editor is extensible in the same language.

</comment></comment></comment></comment><comment><USER5> This is mostly a listing of packages and very known ones at that.

One of the best features I like is undoing regions. That is, if you know the approximate location of the text that you want to undo, you just select a region that contains that location and call undo. It can be used as a quick git alternative. Say you modify the buffer all over the place. If you want to undo some text that you've modified an hour ago but you did other modifications to the buffer in countless other places, you can undo just that region and you don't have to go back throught the whole undo tree.

Another one that I've currently discoverd and I'm very excited about is yasnippet (the modern variant of abbrev). You can define a string that stands for an abbreviation for an expansion. Everytime you type that string, it is replaced by that expansion. The nice thing about yasnippet compared to abbrev is that, among others, you can specify where to leave the cursor after the expansion. One example: "lt" expands to (let ((_))), where _ is the cursor position after the expansion. This also saves typing of all the parantheses. Or "mcar" expands to (mapcar (lambda (_))). You can expand anything to anything, in short. With time, you can type less and faster.

<comment><USER6> Yasnippet is amazing. Being able to tab through different fields is a game changer. You could make a snippet for every lisp function and never have to enter a paren ever again! The only probablem is that yasnippet can't handle multiple nested expansions: it only keeps track of the current expansion.

<comment><USER7> If you set `yas-triggers-in-field` it will work with multiple nested expansions.

</comment></comment></comment><comment><USER8> I've used Emacs for decades and still feel like I'm barely scratching the surface.

What would really help me with articles like this one is more narrative on _why_ these particular modes are so useful. For example, it took me a long time to learn org-mode because I just didn't know what to do with it! I feel like Helm is similar, I've tried it briefly, but I'm not sure if or how it would fit into my workflow.

<comment><USER9> I completely agree. I used vanilla Emacs for about a decade before finding list-packages. (I know, I know. I was really behind.) But stuff like org-mode never clicked for me. I had to sit down with the manual and read it to finally get a handle on what it is.

I'm currently drafting an essay on what makes org-mode compelling, rather than how to use it. I think I'll do the same for other tools I use.

<comment><USER10> > I completely agree. I used vanilla Emacs for about a decade before finding > list-packages

I think it helps to think of Emacs as just another platform - and a nice stable one. You may or may not use, or know about, all the "applications" available for it. New stuff comes along that you haven't heard about; you might occasionally want to review things; and it doesn't really matter if you don't.

I've been using it for the usual handful of decades and have gone through phases of using one exciting new thing or another, but I've dropped most of them - I no longer run builds from Emacs (I do recompilation in the background in a separate terminal), nor read mail or use version control software from within it. I don't use evil and my colour scheme is mostly black-on-white. My .emacs has ended up almost back where it was 25 years ago. (In fact it still has references to Epoch and Lucid Emacs in a couple of comments.)

The two additions in the past couple of decades that have made a big difference to me are Tramp (a nice upgrade from ange-ftp) and the ability to set non-integer line spacings.

<comment><USER11> As an Emacs neophyte and vi vicenarian, I'd love to know why you ended up ditching evil alongside the other goods. I see the ortholinearity of e-mail and vcs in an editor, but evil seemed to me living within the editor, rather than atop it. Appropriately: a minor mode rather than a major. Like, say, editorcfg. Was this not your experience?

<comment><USER10> Oh, evil wasn't something I ditched - I never used it. I just mentioned it because it's so often cited as a vital thing. (ooh, nice potential pun there in vi-tal... hm) Same goes for the colour scheme. It's the higher-level applications that have come and gone. Sorry to be unclear.

</comment></comment></comment></comment></comment><comment> why-el Another beautifully designed piece of Emacs software is magit, where the defaults are extremely sane. The package is self-documented and you can learn it all by typing ? anytime. Being able to git log the file you are in is also a huge plus.

<comment><USER12> Magit made me a better programmer. Learning `git` proper would probably be as good (and certainly get more street cred), but magit was more accessible and more fun to use since I was already emacs-proficient.

<comment><USER7> The thing I love about magit is that it taught me git. You can hit $ and see exactly what I'd bring run and many of the options are in the pop up.

</comment></comment></comment><comment><USER13> I used to think that Emacs is some weird editor with absurd keybindings, until I learned lisp and understood what makes it so special. Now Emacs (Spacemacs[0]) is my main driver.

[0] [https://www.spacemacs.org](https://www.spacemacs.org)

<comment><USER14> How did learning lisp help you understand the power of Emacs? Just starting down the Spacemacs road myself (from Sublime Text), and curious to hear more about your experience!

<comment><USER5> In short, you can add new functionality to Emacs yourself.

And just like in the world of Lisp, after you add a new functionality, it becomes indistinguishable from what you already have. That is, it looks like it has been there all along, from the start. It doesn't look like a 3rd party plugin that you need to take special precautions to install. It just blends in nicely, and naturally.

Or, to put it another way, if you learn (Emacs) Lisp and you start to tweak Emacs to your own liking, you can transform Emacs into your own personal tool, adjusted exactly the way you like it, no questions asked.

<comment><USER13> Thank you molteanu for chiming in. I would also add, that everything has the exact same interface, meaning I can access every tool in the same way, the consistency is unparalleled. For example: In VSC when I want to use the shell, I suddenly lose my vim bindings and thus drop down to the casual user mode. In Emacs I can treat the shell like any other buffer, apply all my tools and knowledge, so it's nothing foreign or something that wants to be treated differently. For instance similar point in VSC regarding the file explorer, it forces you to abandon the keyboard homerow, I can't use my vim bindings from the plugin, because the plugin is something 'foreign'. Sure you can memorise shortcuts, but it's not the same as using your vim bindings for everything, always.

<comment><USER5> Yes, indeed. All the tools, all the time, always available. Something like writing a macro in Lisp. All the language is there at your disposal and it's nothing compared with C macros where you have huge limitations, it being actually a different language than C. I feel your pain with the VSC example.

"Consistency" is a good word. The result, for me at least, is that I can actually think about what I want to do with the tool and not how to use it. It gets out of the way, it does not try to fight me.

I think maybe that's one interpretation of the saying "Emacs is an operating system".

</comment></comment></comment></comment></comment><comment><USER15> Emacs is the spaceship of typewriters. Whenever I try using it, I end up feeling like a centipede who began thinking about which leg it should move first.

</comment><comment><USER16> I installed Doom[0] and called it a day!

[0] [https://github.com/hlissner/doom-emacs](https://github.com/hlissner/doom- emacs)

<comment><USER17> Looks interesting, but the main page claims it has support for a lot of languages, but according to this module page it only supports javascript, typescript, and html?

[https://github.com/hlissner/doom- emacs/blob/develop/docs/ind...](https://github.com/hlissner/doom- emacs/blob/develop/docs/index.org#lang)

<comment><USER18> The TODO is regarding documentation iirc.

All the languages supported are in the init.example.el file seen here: [https://github.com/hlissner/doom- emacs/blob/develop/init.exa...](https://github.com/hlissner/doom- emacs/blob/develop/init.example.el#L107-L165)

Uncomment them, run doom refresh. Check their module under [https://github.com/hlissner/doom- emacs/tree/develop/modules/...](https://github.com/hlissner/doom- emacs/tree/develop/modules/lang) for any external requirements that they need or flags that they support.

<comment><USER19> The comments are hilarious:

;;hy ; readability of scheme w/ speed of python

;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap()

;;javascript ; all(hope(abandon(ye(who(enter(here))))))

</comment></comment></comment></comment><comment><USER20> Helm-projectile rant is well deserved. I'm often ashamed looking at my colleagues trying to find some file with a mouse in their big fat IDEs.

<comment><USER21> All decent IDEs have a file search command.

<comment><USER20> Somehow my colleagues who use VS Code or JetBrains IDEs don't manage to learn about those features while all of my vim-using colleagues somehow do. (Haven't worked with anyone using Emacs yet)

<comment><USER22> I use CLion almost exclusively and I use shift-shift to find things so often that I have basically no idea what file anything is in.

Is there anything free that even begins to approach the quality and accuracy of the JetBrains Rust analysis plugin? If so, I'd love to know about it and start using vim.

<comment><USER23> I'm sure there has to be a vim plugin for rls

<comment><USER22> Yes, there is. But RLS is much worse than the CLion Rust plugin, in my experience.

</comment></comment></comment></comment></comment></comment><comment><USER24> > All the packages were installed from Emacs package Manager. By running, `M-x > list-packages` This should bring up a list of packages available in MELPA. > Now, don't worry if you don't know what MELPA is, just think of it as a > repository of all packages, as in, analogous to the Debian Package Repo in > Debian/Ubuntu distros.

Article seems to confuse MELPA with ELPA. MELPA is something you have to add via your init file. Not terribly hard to do, but just FYI for anyone who is actually using these tips from scratch.

</comment><comment><USER25> I use Emacs every day. But only for org-mode which is fantastic.

Besides that I really really tried hard to love Emacs as my go-to editor. However I found no alternative for

decent CSV file support (like [https://github.com/chrisbra/csv.vim](https://github.com/chrisbra/csv.vim) simply great!)

Inspecting large XML files with syntax highlighting and folding. VIM is also not the fastest here but at least 10 times faster (emacs SGML mode is a joke for xml files and forcing xhtml mode of web-mode is also not that great)

Maybe all my emacs doing was just wrong.

<comment><USER6> csv-mode does exactly what you want.

<comment><USER25> Filter rows based on a value?

Deleting a Row?

Easily navigating from the nth element in a CSV header to the nth element in data row 1000?

<comment><USER6> Sure, just use SES and import the CSV. It's no excel, but it does what you're talking about.

</comment></comment></comment></comment><comment><USER26> also tramp, for editing files on any machine you can ssh into ...

[https://www.emacswiki.org/emacs/TrampMode](https://www.emacswiki.org/emacs/TrampMode)

<comment><AUTHOR> <Same response as org-mode> A resounding YES! But Org-Mode and TRAMP are so well written about that although I have "special" setup for these in my config I felt I could not do more justice than other expert write-ups. Maybe, I should add them in a separate entry.

</comment></comment><comment><USER27> use-package would be an improvement upon most of the code snippets in the blog post. Loading packages without it these days feels like a sin.

<comment><USER19> I would also recommend straight.el or perhaps even guix.

<comment><USER28> I'll give another vote for straight.el and its use-package integration.

</comment></comment></comment><comment><USER29> I'm ashamed to say I've been using Emacs since 1992 but I have never been able to impress into my brain anything other than the minimal set of keystrokes to do basic editing. I feel like I need to be trapped on an island where the only thing I could do was learn emacs for a bit. There's so much there to dig into.

<comment><USER30> This is why I regularly create hydras for every emacs mode that I use. That way I don't have to remember any extra keystrokes, as the hydras will remind me.

<comment><USER10> What's a hydra? (in this context)

<comment><USER31> A cluster of Emacs keybindings that share a common prefix, implemented using the hydra library:

[https://github.com/abo-abo/hydra](https://github.com/abo-abo/hydra)

<comment><USER10> So it's sort of like a mode switch? You give the prefix, and then you can give it a whole series of commands, based on a crib sheet that it shows you, that have that common prefix - without having to retype the prefix - before passing a different key to drop out of the mode again?

That does sound potentially handy, if I have it right.

<comment><USER30> Yes, though I'd describe it more as a fully-customizable popup menu that appears when you type a certain keystroke. Once the menu appears you can type more keystrokes to perform an action or bring up another custom menu.

Also, it's possible to configure it so that there's a delay between the time you type a keystroke and the menu appears, so that if you remember the key- sequence you need to type to perform a certain action and you type it fast enough, then the menu won't pop-up, but if you forget the full sequence then you can type just the first keystroke and then wait a bit and the menu will pop up and remind you of what needs to be typed to execute the action you want.

It's super handy, and is one of my all-time-favorite emacs packages.

</comment></comment></comment></comment></comment></comment><comment><USER32> One of my favorites is creating a separate backup dir where all backup "~" files are created and versioned and rotated in and out etc at specific intervals, so I no longer get the random files in the dir I'm working in but can still go find backups if I mess something up.

      (setq
       backup-by-copying t
       backup-directory-alist
        '((".*" . "~/.emacs.d/bu/"))
       delete-old-versions t
       kept-new-versions 6
       kept-old-versions 2
       version-control t)

<comment><USER33> I already use this in my _shrc files:

        alias ls='ls --hide="lost+found" --hide="#*" --hide="*~" --hide="*.pyc" --hide="*.egg-info" --hide="__pycache__" --color=auto'

But I'll be adding your item into my config for the rotated versioning, I wasn't aware that emacs does that but I assume it'll save me anything from few hours to a few weeks yearly. Thanks!

<comment><USER32> If you like it check out this and see if you like anything else: [https://sanemacs.com/sanemacs](https://sanemacs.com/sanemacs)

or [https://www.sandeepnambiar.com/my-minimal-emacs- setup/](https://www.sandeepnambiar.com/my-minimal-emacs-setup/)

</comment></comment></comment><comment><USER34> I'm extremely surprised to not see Spacemacs mentioned in the article or the comments. Spacemacs is, IMHO, the most sane and useful default configuration of Emacs. It is friendly to people switching from vim and includes all the packages listed in the article by default (as well as many more).

It has been my go-to editor for many years now; I highly recommend it.

</comment><comment><USER32> One of my favorites is creating a seperate backup dir where all backup "~" files are created and versioned and rotated in and out etc at specific intervals, so I no longer get the random files in the dir I'm working in but can still go find backups if I mess something up.

</comment><comment><USER35> org f-ing mode

edit: actual package is called "org-mode"

<comment><USER36> org-mode for notetaking/journaling/organizing and writing documentation with org-babel for interactive (literate) programming and making diagrams (gnuplot, matplotlib, graphviz, mscgen, plantuml).

Can't say this for many tools but using org-mode has been life changing for me.

<comment><USER35> I'm writing a novel with org-mode and it's the most transparent writing tool I've ever used, and so flexible too.

</comment></comment></comment><comment><USER37> What is the emacs equivalent of package.json?

(whenever I git clone my dotfiles on a new machine I usually have to comment out a bunch of stuff in my ~/.emacs because it's referencing packages which aren't installed, and I forgot where I installed them from, what version, etc...)

<comment><USER38> I use straight.el[0] for a reproducible package list. It basically clones the packages and stores a map of package->commit, so you can freeze your packages and reproduce them on another machine.

You could also use the Guix package manager[1] or the Nix package manager[2] to achieve a similar effect.

Reproducible software is much more stable!

[0][https://github.com/raxod502/straight.el](https://github.com/raxod502/straight.el)

[1][https://guix.gnu.org/#guix-in-other-distros](https://guix.gnu.org/#guix- in-other-distros)

[2][https://nixos.org/nix/](https://nixos.org/nix/)

<comment><USER37> Awesome, thanks!

</comment></comment></comment><comment><USER39> It seems a lot of people have used emacs for years and love it. I never saw the point of learning as it seemed cryptic. In 2020 is it worth putting the effort to learn now? I figure with vim and IDEs I dont really need it.

<comment><USER40> I switched to emacs in 2019 after using primarily vim for 12 years, and I think it's more than worth it. It's not an editor, it's not an IDE, it is kind of like an operating system where you can have a text editor, debugger, notes, mail, whatever you want. If you dig that, you'll love emacs. It's extensible in a way you've probably not experienced anywhere else, so if you like honing your tools so they fit the way you want to work, emacs is for you. I've actually come to long for an operating system that gives me the same "interactivity" as emacs does.

Of course, I edit text in emacs with evil: [https://github.com/emacs- evil/evil](https://github.com/emacs-evil/evil)

<comment><USER15> > _not an editor_

It's "editing macros," so yes, it's an editor first and foremost.

> _not an IDE_

It's integrated; mostly used by developers; it's an environment.

<comment><USER6> I mean, I play NetHack in it. I don't think any IDE has that kind of flexibility.

<comment><USER15> [http://eclipse-games.sourceforge.net/](http://eclipse-games.sourceforge.net/)

<comment><USER41> That's nothing. You can do, in Emacs:

\- Run Nethack

\- Chat over IRC. Double combo with Bitlbee

\- Chat over Slack/$whatever proto is designed in Elisp

\- Write Interactive Fiction

\- _Emulate_ Interactive fiction with a Z machine in Elisp

\- Write and read emails/news with GNUs

\- Listen to music with EMMS

\- M-x doctor because is too complex and you need to talk to someone

\- Comment on HN with eww

\- Do literate programming

\- Do math, and with Maxima/R, algebra/statistics/whatever

\- Use GIT with Magit

\- org-mode. With this you could write three ebooks larger than the Java specs.

\- org-babel. I forgot it. This is damn magic. Programming as if you were in a word processor, going back and forth, easily, showing up your results inline.

<comment><USER6> I particularly like calc mode. Top notch programmable rpn calculator with basic CAS support. Good for most algebraic transformations plus derivatives and integrals. It also supports graphing!

Also you missed that you can run WebKit inside of emacs. Also you embed X apps in emacs and use it as a window manager.

<comment><USER15> > _embed X apps in emacs_

Not in the console mode, you can't.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER42> As a long time emacs user, I'm sad to say but I've become pretty content with Visual Code and I don't think I'm going back. Ofcourse, took a lot of time customizing Code retaining all my emacs keybindings, etc.

<comment><USER43> What was it that made you move, and what is it that will make you stay?

</comment></comment><comment><USER44> a few I use:

      (defun shift-left  (beg end) (interactive "r") (shift-region beg end -1))
      (defun shift-right (beg end) (interactive "r") (shift-region beg end 1))

      (global-set-key [A-M-right] 'shift-right) ;; >> shift every line of region
      (global-set-key [A-M-left]  'shift-left)  ;; << (and region remains highlighted)

      (global-set-key "\M-+" 'text-scale-increase)
      (global-set-key "\M--" 'text-scale-decrease)
      (global-set-key "\M-=" (lambda () (interactive) (text-scale-set 0)))

</comment><comment><USER45> the others I cannot live without:

neo tree

winner mode

god mode (I use instead of evil mode)

avy (visually jump to any char on the screen)

undo-tree (really neat, though I don't use it as much any more)

<comment><USER46> winner-mode was new to me. Thanks! The most annoying thing about Emacs for me is random windows popping up; I'm a "separate frames" person (the OS window manager does fine for me, I don't need much help from Emacs), and anything that streamlines windows is great.

<comment><USER45> then here's another just for you!

      ;;from https://github.com/m2ym/popwin-el
      ;; prevents annoying popup buffers/windows
      (require 'popwin)
      (popwin-mode 1)

</comment></comment></comment><comment><USER47> emacs as a binary editor: useful. Any other uses: counter-productive. I've (painfully) watched some amazingly gifted researchers/engineers using it, and saw them waste about 50% of their attention trying to use it. Emacs is not an editor, it is an OS with non-obvious semantics.

</comment><comment><USER48> If the author, @mycpuorg, is reading this comment: please, PLEASE, do write about your mu4e configuration.

<comment><AUTHOR> @rntski, I will be happy to.

I feel I get a bigger bang for buck for Work Email on Outlook Exchange since Email on mu4e makes me less distracted.

<comment><USER49> This sentence is either missing a negation or correlates "bang" with "distraction", which is wrong since "bang" is positive and "distraction" negative.

<comment><AUTHOR> You are right, scratch that and I will try this again. I meant to say:

I have configured and used mu4e on a GMail account and another account hosted on Microsoft Exchange Server (MSE).

The Linux based email client I had tried before mu4e for MSE account are: * WebMail (Outlook's less capable younger cousin on a browser) * a slew of Linux UI email clients like Thunderbird etc.

I disliked all of them equally. However, using mu4e for emails with Outlook/MSE account makes doing emails less painful and less distracting. However, using mu4e as a mail client for Google accounts may not be preferable if you have bought heavily into the Google ecosystem. I have had trouble with things like Google API authentication on Emacs.

</comment></comment></comment></comment><comment><USER50> My favorite these days is a package called find-file-in-project. Ideal for navigating large projects.

<comment><USER51> related, projectile-mode gives a bunch of similar niceties

</comment></comment><comment><USER52> I would be productive if there were an emacs that weren't a parenthesis hell and slow as molasses. I hope there's is a lumacs

</comment><comment><USER53> Whenever I hear about or see the .vimrc and .emacs files people create, maintain and constantly modify to me this just looks like the perfect example of a sunk cost fallacy.

IDEs are usually dismissed by many such people since you can (allegedly) do the same in vim/emacs but to me this seemed crazy as I'd see people spend hours configuring plugins, writing Lisp and whatever to save them on some task they'd get for free with a right click in IntelliJ.

I really do think people completely underestimate how much time they have and will invest in such endeavours. I mean if this makes you happy or you like this tinkering, by all means be my guest, but I'll take a hard pass.

<comment><USER54> Would you rather drive a nice car that needs some loving care and maintenance once in a while or an old banger that just gets the job done? It's the same sort of prospect.

Some people like to work in a nice environment where they are able to remove all the little frustrations that less customizable tools often force upon you. When emacs annoys you at least you can fix it if it is annoying enough for you to want to do so.

In any case neither choice is wrong or right. Do whatever floats your boat.</comment></comment>


Microsoft Forcing Windows 10 -app version of Skype - <AUTHOR> https://www.skype.com/en/get-skype/ <comment><AUTHOR> There's no more possibility of downloading the classical version of the app, even an external installer throws an '500' error and redirects to Windows Store

</comment><comment><USER2> Guess i'll continue not using skype then.

</comment><comment><USER3> Where do you want to go today?</comment>


To study possibly racist algorithms, professors have to sue the US - <AUTHOR> http://arstechnica.com/tech-policy/2016/06/do-housing-jobs-sites-have-racist-algorithms-academics-sue-to-find-out/ <comment><USER2> Interesting...I would've guessed that this was referring to propietary algorithms used by the criminal justice system to determine recidivism [1], but it's actually about pushing back against the CFAA, which may restrict researchers' ability to write scrapers and deploy bots (and create fake profiles on services).

[1] [https://www.propublica.org/article/how-we-analyzed-the- compa...](https://www.propublica.org/article/how-we-analyzed-the-compas- recidivism-algorithm)

<comment><USER3> The pro-publica article is self-debunking. The R script written by the authors is unable to find statistically significant evidence of bias.

[https://www.chrisstucchio.com/blog/2016/propublica_is_lying....](https://www.chrisstucchio.com/blog/2016/propublica_is_lying.html)

That's probably why the article is nothing but a bunch of anecdotes.

<comment><USER4> So I've read the PP piece and your article, and I think your criticism is way off-base. The most technical part of your argument relies on a p-value being .057 vs .05, which is not a good one. No one seriously believes that .05 is magical number that determines true from false; things that are close to it but not quite below .05 are not automatically false.

They go on to give supporting analysis in form of the false positive and false negative rates by race, which is pretty compelling evidence. You claim to not believe that because you cant find it in the notebook but its literally right underneath the Cox model section.

I was intrigued by this article and went a step further to plot the ROC curves and the evidence is solid. It's messy, but you can see it here [https://github.com/stoddardg/compas- analysis/blob/master/my_...](https://github.com/stoddardg/compas- analysis/blob/master/my_analysis.ipynb) in cell 78. Its quite clear that the algorithm is choosing a different point of optimization on the ROC for white people (a more lenient one) than for black people. A white defendant with a risk score of 5 is as likely to commit a crime as a black defendant is with a score of 7. That's an obvious case where you could simply relabel and be more fair but their algorithm chooses not to.

I also hate when people abuse bad statistics and reasoning to sell page views.

<comment><USER3> I have plenty of criticisms of hypothesis testing and p-values. Nevertheless, if you choose to run that type of analysis, _do it right_ \- this means sticking with your analysis and not using weasel words like "almost statistically significant" when it doesn't come out the way you want. Incidentally, the real p-value is 11.075% since they ran _two hypothesis tests_ and didn't adjust for multiple comparisons.

Your analysis might be right - if so, that's interesting. I'll take a closer look and write a followup piece if true - among other things glancing at your ROC curve suggests they are pretty close, and perform better for whites in some regions and better for blacks in others. But it's 7:30AM (pre-coffee) and I haven't looked closely yet.

But since PP did not do any of this, my criticism of them holds - they ran an NHST, got the wrong result, and then spouted a bunch of anecdotes instead of admitting that their analysis went against what they wanted to find.

<comment><USER2> What's your response to the GP that you seem to have missed the part where false positive/negative rates in the notebook? In your blog post, you said this:

> _Finally, the article includes a table of false positive probabilities (FPP) > and false negative probabilities (FNP). This may or may not be evidence of > bias - the authors would need to run a statistical test to determine that, > which they don 't. In fact, I can't even find the place in their R notebook > where they did that calculation. Is this the result of bad statistics? Is it > merely random chance? Who knows!_

Looking at PP's Jupyter Notebook, the calculations seem to be performed at lines 50 onwards (if you're referring to the table that I think you're referring to).

FWIW, those "weasel words" you allege are in the writeup of the methodology, where the audience is expected to follow along and see how the 0.057 is calculated. I'm not sure how you're interpreting that calculation...My read is that it's not the bedrock from which all of the other analyses are based from. Where in the story do you see that particular calculation being used as the main (or even ancillary) thrust of the piece?

<comment><USER3> Aggregate false positive/false negative rates don't prove anything. They can be caused by composition differences, which the analysis demonstrates the existence of.

But I'm sure they look convincing to ProPublica's readers who are not statistically sophisticated.

<comment><USER2> What's even more concerning is that these statistical noobs sometimes look to experts, unaware that these math geniuses may lack the literacy to read a plaintext notebook to the end.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> What does this have to do with racist algorithms? I know that Ars is big on pushing whatever the latest progressive agenda is, but the connection is tenuous even considering that.

<comment><USER6> The article cites academics looking at "possible racial discrimination in online advertising for housing and employment." Since online advertising tends to be selected algorithmically, I think the connection is pretty clear.

<comment><USER7> Unfortunately whatever algorithm computers come up with to assess creditworthiness is going to be "racist" by the broad disparate impact definition of racism that the government uses. Ironically, the algorithms will have to be made actually racist to correct for this.

</comment></comment></comment><comment><USER8> Umm. They want to commit click and impression botnet fraud without consequences? Do they plan on compensating the advertisers after their studies?

<comment><USER9> Are advertisers owed compensation for non-humans wasting their ad exposures?

If you're a site owner and you're using bots to screw over your advertisers, that's one thing.

But otherwise, what's their claim here? I'm sure web crawlers interact with ads all the time in the course of their crawling, and no one's complaining about that.

<comment><USER10> To the contrary, advertisers complain about it constantly. But they're only one piece of the ad industry, and everyone else in the industry is okay with it, if only because its another methods of auditing the advertisers.

</comment></comment></comment><comment><USER11> This famously reminds me of this fiasco [http://blogs.wsj.com/digits/2015/07/01/google-mistakenly- tag...](http://blogs.wsj.com/digits/2015/07/01/google-mistakenly-tags-black- people-as-gorillas-showing-limits-of-algorithms/)</comment>


A Personal Lisp Crisis (2012) - <AUTHOR> http://blog.jacius.info/2012/05/29/a-personal-lisp-crisis/? <comment><USER2> I love Clojure and I think it's the first Lisp to take the language family out of "cons cell and parenthesis hell". My personal opinion is that Clojure with the following changes would take over much of the Lisp space:

\- Rewrite most of Clojure in Clojure (which has been talked about since the beginning, really) to find the "small core". Thankfully ClojureScript has helped hasten the CiC movement.

\- Base FFI and code gen on more abstractions so that Clojure living in a .net world or a C/C++ world or a Python world would feel just as cozy as Clojure living on the JVM. Rich Hickey talked about why he abandoned primary CLR support early on. He said he "didn't want to keep writing everything twice". This was probably the best strategy at first, but now one hopes that with ClojureScript + Clojure enough has been learned to discover more ways to factor out the commonalities so that Clojure is more easily retargetable.

\- Speaking of targets: there should be a first class, fully supported Clojure frontend to LLVM. There are research projects and personal projects in this area, but that's about it. I'd like to see an official LLVM target.

\- Introduce or surface more abstractions and macros such that the immutability and pure functional underpinnings could be extended, removed, or replaced. This is likely to be the most controversial change, but it would be essential to the possibility of Clojure running on small embedded systems and other environments where the choice of underlying data structures and concurrency algorithms can't come baked in. This is mostly done already (as most things in Clojure are built on top of abstractions), but it still needs a deep look.

\- Open up the reader. A Lisp without full reader macros is unlikely to win over all potential converts, not because reader macros are this incredibly common thing, but because the personality of most Lisp hackers tends to thinking like "well I don't think I'll need a reader macro, but why would I want a language that won't even give me the option?"

<comment><USER3> One interesting thing about having entirely immutable data structures is that you can allocate a temporary heap, and flip the GC around. Copy off just the result and junk the rest without looking at it. All without blocking the main thread.

In certain circumstances - for instance a web framework creating a heap for each request - this will make GC dramatically cheaper. Though of course your cache locality will be poor.

<comment><USER4> This is a common practice in GC. For example, the JVM already does this by default, and you don't need to give it immutable data.

<comment><USER3> But immutability makes it conceptually a hell of lot cleaner, and feasible to do even if you're investing orders of magnitude less in your GC than went into the JVM.

Which is important if Clojure gets ported to bare metal runtimes, as the parent was suggesting.

</comment></comment></comment></comment><comment><USER5> First there are a lot of programmers who come to CL to debate. They read, they study, and then they complain. I've sat in #lisp since about 2007/8 and there have been numerous nicks that show up just to ask a few rather philosophical questions and debate the merits and technical decisions that went into CL. They usually end up leaving and writing blog posts about how terrible a language CL is and how caustic the community is.

There isn't a problem with the CL community. There's a problem with the culture surrounding CL that seems to attract trolls.

Newbies get answers to genuine questions. I've received a great deal of help over the years from experience CL programmers. Anything from beginner questions to code reviews of various snippets I've been working on. I have received a lot of great advice over the years that has helped me tremendously. And I've seen other newcomers receive the same treatment as well. If you arrive in #lisp of c.l.l and have a genuine question about a problem you are stuck on you will likely attract someone willing to help you. It's a small community but it is friendly.

Second, CL was in the end designed to outlive itself. You get full programmatic access to the compiler and reader. It is trivial to add any feature a modern programmer may require that wasn't accounted for in the original specification. CLUEL could certainly have been useful if the author had finished it and put it out into the wild (maybe waiting until it was _finished_ was the wrong choice).

I think if you are genuinely interested in learning CL you need to check your ego at the door, so to speak, and just start from scratch. Write programs that solve yours or your users' problems and ask questions in #lisp and on c.l.l if you get stuck. There is a wealth of great literature, papers, tools, and a small, friendly community to help you.

 _Edit_ : I meant to note that the reason the specification hasn't been updated, afaik, is because it doesn't have to be updated. All the tools you need to add the features you require are there in the spec. You can make it into the language you need.

<comment><USER6> > Edit: I meant to note that the reason the specification hasn't been updated, > afaik, is because it doesn't have to be updated. All the tools you need to > add the features you require are there in the spec. You can make it into the > language you need.

That's a big part of the reason I haven't used CL for anything bigger than some toy projects.

It's a crusty, old language, and instead of keeping up with the times, everybody has to build the features they need. I can do that, or I can use language that has the features I need and that I don't have to assemble myself.

And to make it worse, it's hard to even use libraries that solve the problem, because nobody in the CL community can agree on anything. There's always a dozen incompatible solutions, and it's never clear which one should be used.

<comment><USER5> I don't really understand the, "crusty, old language," argument either. C++ became an ISO-certified specification in 1998 which is roughly around the same time that CL became an ANSI standardized language. We still use C in many systems for very valid reasons.

However unlike the C++ and ANSI C standards, the CL specification left room for programmers to extend the language as they need it. Instead of waiting for decades of expensive committee debates and meetings as you do with C/C++/ECMAScript/etc the programmers using the language in the field can go ahead and add the features they need and implementors can fill the gaps between new OSs and hardware. How is that bad?

<comment><USER6> It's bad because every implementation fills the gaps in their own incompatible way. And then instead of converging on the "best" solution, the community argues endlessly about each unique solution is the best.

And it's also bad because CL is ancient and it's filled with things that simply don't make sense any more, or have been replaced by "better" solutions in every other language. Look at filename and filepath handling to see what I mean. 2 or 3 of the fields haven't been used in real systems in 20 or 30 years, yet they're kept around because they're in the unchanging CL standard.

</comment></comment></comment></comment><comment><USER7> I am not sure it is true that comp.lang.lisp _barely tolerates_ newbies. I have posted there on several occasions and when I say something wrong, I am politely corrected. I have seen a lot of less experienced programmers come there, ask an obviously beginner question, and get helpful answers. Reading through the past few days of posts, I can see a few beginner questions which all received helpful answers.

The problem in comp.lang.lisp is the number of trolls -- in other words, the universal problem on Usenet. People come in trying to prove that some other language is superior, or asking questions like "If Lisp is so great why is nobody using it?"

<comment><USER8> It has been absolutely years, but I recall they didn't like homework problems. This made it really difficult to ask newb questions.

<comment><USER9> homework problems are different than newbie problems..

a homework problem is a problem you're charged with solving so as to reinforce elements and critical thinking from the chapter or segment of teaching that you experienced before the problem. Very few homework problems are given that cannot be solved by the user, if they paid attention to the work. There is a very thin line between someone trying to crowd-source their homework to a programming forum, and actually asking for help. This can usually be determined by how the question is asked.

Example: "How do I write this..?" is not as respectable a question as "I am writing this, i'm this far and I ran into this problem, can anyone help me to understand my problem?"

a newbie problem is a problem generated through normal use of a language to achieve a goal, in which the language user ( the newbie ) lacks the personal experience to conquer some goal post standing between him and his reason for writing what he/she's writing.

Example : "I'm coming from such and such a language where we can do this... ... will this ... work the same in CL?" or "This piece of code behaves in this way ... can anyone help me work through as to why it does this?"

The problem (that people have) with the lisp community is that they tend to be highly sensitive in regards to hand-holding, and can usually sniff out homework problems with relative ease.

</comment></comment></comment><comment><USER10> Perhaps the author will find the answer to the "why" of how unwelcoming a community can be in his choice of opening paragraphs. A story that calls some number of his audience as stupid[1] or ignorant[2] for holding a belief is probably not the best way to introduce your soul searching on why the community he was a part of is not a welcoming one.

1) the implication if you have read your holy book and still believe then you are a poor thinker.

2) if we were in the Middle Ages, the story might be more relevant. I do believe most believers of any religion in the modern era have probably read their own holy book.

<comment><USER2> Coming from the Bible Belt, I can assure you that point 2 is absolutely false.

That said, even as a non-Christian I was also uncomfortable with that as an introduction. I'm sure many Lispers are of the opinion that almost 100% of their peers are atheists or other "nones", but that's (I suspect) more a function of geography than language choice.

It's unwise to turn off what could be a significant portion of your readers in the first paragraph!

<comment><USER11> Indeed, you can catch more flies with honey than vinegar. This author has told us up front attracting people to LISP/Clojure is _not_ his primary goal.

There's also the _minor_ detail that if you're a Christian the really canon stuff is in the New Testament, a lot if not most of the problematic stuff is in the Old Testament and not longer strictly applies (surely most of us remember "Let he who is without sin cast the first stone"???), so I suspect the whole premise is false.

<comment><USER10> Well, certainly the procedure for going to the bathroom is a bit different in modern times[1], and what parts of the Old Testament is a matter of debate between branches of Christians. Heck, the english translation of "thou shalt not (murder|kill)" is a bit of a thing. By the time you get out of bible school and listen to the sermons, you have gone through the whole bible[2].

I just found it very tone deaf to open with that kind of story when it basically has the same effect as what he is complaining about. Its just odd.

1) Although if you happen to hit a disaster, reviewing a bit of the health guidelines in Leviticus couldn't hurt. It will also probably help if you remember a lot of it is basic how-not-to-die health guidelines.

2) I came from the Catholic and 7th Day Adv family (yeah, not exactly the most agreeable to mix), and both seem to have gone through the whole thing. Plus, they have a bit of disagreement as to what constitutes the whole thing. Luther did a bit of pruning.

<comment><USER12> the Catholic church did a bit of pruning too, in the 3rd century AD. Council of Nicea

<comment><USER10> The Council of Nicea didn't deal with bible canon - that was made up for "The Da Vinci Code". Various religious sites debunked that one during the books and movie introductions.

</comment></comment></comment></comment></comment></comment><comment><USER13> As someone who learned a little Lisp in the last few years, I think there is a good collection of books available for the newbie who wants to learn. For Common Lisp, _Land of Lisp_ , _Practical Common Lisp_ , and _Ansi Common Lisp_ all seem good enough to get hacking quickly.

Thinking about community effects, I'm not as convinced a community represents a gating factor for hackers. I attend the occasional Clojure meetup (and Clojure/Conj for that matter). The meetups in my area are well-attended and run, although they could be improved with a better introduction and ice- breaker for more introverted attendees (yes, I've just outed my personality type).

But from an opportunity mindset, the Clojure community seems to have done an admirable job getting the message out. Multiple good books, the Clojure/conj, and a well-attended meetup in my area all make me feel like I may not only stretch myself and learn new programming techniques, but that I have some hope of advocating for Clojure in my workplace or, good grief, applying for an actual day job where I would use Clojure.

It's unclear to me that Common Lisp can offer that.

<comment><USER14> Hi tom_b, I'm one of the co-organizers of the NYC Clojure meetup. I don't know if that's the one you attend, but I'm definitely interested in any specific ideas you might have for better introductions and ice breakers.

<comment><USER13> Thanks for organizing a Clojure meetup, it is much appreciated.

My only recommendations are quite generic - for smaller meetups, make sure a group introduction is on the agenda and actually happens. Might be nice if there were easy ways to become more active in the group, but this is hard for the meetup/talk format.

I'm definitely not being critical though - I feel lucky enough to have a Clojure meetup happen in my general area. Mostly it falls back on me, as an interested-in-the-community hacker to find a way actually be social and integrate myself into that group.

</comment></comment></comment><comment><USER15> Honestly, I don't know that CL was ever exactly beloved among Lispers. (Scheme may fit that description better). CL was a pragmatic construct from the beginning, responding to many conflicting demands.

</comment><comment><USER16> This is a strange article.

Let's address his complaints in two basic areas:

1\. Community.

The Lisp community as typified by #lisp and comp.lang.lisp can be remarkably acerbic to the point of toxic, depending on who feels like contributing at the time. Part of this are the annoying trolls that show up; one's patience wears thin. A FAQ document might go a ways. However, there are a large number of people who don't ream newbies out and really are helpful. lispm here on HN is one of the friendliest Lispers out there and actually has helped me out tons.

Addendum: r/lisp on Reddit is good for generalish Lisp questions. StackOverflow's common lisp tag almost always gets an answer to most any reasonable question. sbcl-devel mailing list is useful if you want to take the time to posit in-depth technical questions to the SBCL developers. Lispforum, oddly enough, I haven't used much. I simply don't go there much. I should, I suppose. :)

2\. Technical. I can do no better than quote my /r/lisp post on this (r/lisp is _really_ good for lisp help).

\---

First of all, consistency. A variety of things are peculiar in how they are named. TERPRI? Really?

Second, Common Lisp is a (the?) programmable programming language. CLUEL-esque platforms could be used to drive CDR adoption and cleanups of the original language.

My primary gripes with CL are the lack of CDR-2, lack of CDR-8, the lack of hierarchical namespaces, the funky naming conventions & expectations[1], and the lack of deeper CLOS integration[2].

[1] ELT vs AREF vs NTH, for instance. Or, LOOP for lists vs arrays vs (your data structure here).

[2] See CDR-8.

</comment><comment><USER17> Props to the author for mentioning Chicken Scheme. The community is very friendly indeed. There are lots of eggs and the easy C integration means that one is not usually left wanting for libraries, assuming a minimal knowledge of C.

Also, it runs basically anywhere. One could embed it inside an iPhone app, for instance.

There are some big things missing still. There is no standard database access library, or an equivalent to Python's WSGI (or Ruby's Rack). Or MongoDB drivers (that's my fault, I promised the community one a couple of months ago).

There's also some missing tooling. Better debugging support, for instance. That's mostly avoided by the use of unit tests and the REPL, but is occasionally required. Or profilers. Or code coverage tools. Due to the fact that everything is compiled to C, there are some tools that may be used, but it is still not ideal.

</comment><comment><USER18> There isn't, as far as I'm aware, another language with CL's popularity that provides either its condition system or the full power of the CLOS (method combination, for instance). These two major subsystems are still significant improvements over what modern languages have to offer.

<comment><USER11> Good point about CLOS, but for a lot of us who've gained an allergy to OO over the years, especially in its difficult relation to functional programming, that's of limited appeal unless you're working in one of the areas its fruitfully employed.

Would have to look at it's condition system, it's been way too long.

<comment><USER19> Have you really looked into CLOS? Because IMHO it doesn't have much common with any of the OO systems in any of the mainstream languages.

<comment><USER11> Yes, I have, and starting from the Lisp Machine Flavors precursor. While I haven't used it in anger, it's in theory by far my most favorite OO system.

This is in part philosophical, the "prefer 10 data types and 90 functions that operate on them, often all of them" sort of thing, in part my horror at smearing behavior _and_ data all over the place, and pragmatically, how that's much more of an imperative than functional approach. And functional is where its at for what I want to do. And experience in using OOSE to develop a greenfields system. That was utterly cool and amazing, but ... see my last sentence below.

Which is not to say that the next time I do a GUI I'm not going to use OO to model the widgets et. al. on the screen. I believe it has its place, but that it's used _much_ more widely than makes sense.

</comment></comment></comment></comment><comment> wes-exp Should be tagged [2012]. Rubyist briefly falls in love with CL, then falls out of love. News at 11.

</comment><comment><USER20> This reminds me of my experiences with Plan 9. A very cool system, but it's managed to attract some of the absolute worst people in computing. Dare to criticize something and they'll leap down your throat. In the end, I just gave up. We tried to drag things kicking and screaming into the 21st century with source control, 64 bit kernel, automated builds and testing, etc. but nobody wanted it.

On the other hand, the mailing list did get a lot of posts that kind of remind me of this: "Hi, I just started using Plan 9, where's emacs? Anyway I have a lot of great ideas on how to fix this OS so you should all start doing these things... I'll set up the wiki and write the newbie guide"

<comment><USER21> Maybe this:

 _On the other hand, the mailing list did get a lot of posts that kind of remind me of this: "Hi, I just started using Plan 9, where's emacs? Anyway I have a lot of great ideas on how to fix this OS so you should all start doing these things... I'll set up the wiki and write the newbie guide"_

and this:

 _Dare to criticize something and they 'll leap down your throat._

are related?

</comment></comment><comment><USER22> > the surest way for a Christian to lose their faith is to read the Bible, > cover to cover.

I doubt that, based on my observation of a strong correlation between intense academic study of the Bible and fortitude of Christian faith.

</comment><comment><USER23> Is this not just another point in a decades long quest to save LISP?

Maybe LISP doesn't need saved? Maybe it's okay that a language isn't popular? Maybe It's okay that a language isn't hip? Maybe it's okay if a language doesn't have the latest gee wiz social status? The fact that people keep trying to save LISP every 4 or 5 years could mean it's perfectly fine how it is. I don't see people trying to save the COBOL, or FORTRAN, or <insert favorite esoteric language here> community.

<comment><USER11> Maybe ... prior to the R6RS debacle I had my hopes on Scheme, but it's still digging itself out of that mess, plus the long term failure to advance from R5RS that prompted the process change.

Common Lisp has had 3 decades to get its act together and is an abject failure in my view, plus it's got a half century of accumulated backwards compatibility accreted messiness.

Clojure is not a LISP, as in LISt Processing is not its alpha and omega. For now I won't go into details on I think it's being so successful, expect to point out that its architect has exquisite taste and savvy pragmatism, has made some great innovations in e.g. making maps and vectors syntactically first class citizens, and of course if you like serious functional programming and/or multi-core SMP/ccNUMA programming is has a great story. And most of all it's developed an ecosystem that has left Common Lisp and Scheme in the dust.

BTW, I don't think anyone needs to "save" COBOL, it's still used a lot, and as I understand it FORTRAN is still going strong in its niche, with regular new standard. Either are very far from being esoteric languages, although COBOL action is mostly hidden in the IT departments of organizations that write and maintain their custom systems.

<comment><USER24> Am I the only one who thinks Clojure is extremely ugly, especially compared to CL?

I work a lot with clojure, and it reminds me a lot of when I was forced a hack ruby. There is this guy, or even a group of people, who get caught up in the glamourous idea of reinventing programming. They then jerk their favourite features and design artifacts into a language. The main point of the design seems to be being able to express the thing in fancy words.

Some people love that stuff, they think its beauty and good design because it's somewhat consistent (usually not after the second glance).

I think good design is whats works, and what has evolved due to the needs of practicioners. And that is the beauty of CL, it's shaped by evolution and consensus, not by some vison.

Edit: Also, ever taken into account, that CL is maybe simply good enough? Every possble feature can be included by libraries. There is no need for an updated CL, what we need is more standards like bordeaux-threads, usocket, closer-mop...

<comment><USER11> Sort of. On the surface I find Clojure infinitely more ugly than true LISPs ... but if hairing up the syntax with vectors results in more adaptation its a price I'm willing to pay. On the other hand I'm _really_ pleased at its making vectors, maps and sets first class syntactic citizens, and the other things that have unified them with lists.

Underneath the hood I think there's no comparison, then again it addresses exactly the sort of things I'm interested in. Common Lisp just can't win there due to it being the current version of mainline LISP going back to, well, I supposed the punched card days when it was implemented as FORTRAN subroutines. Yeah, car and cdr are neat, and even useful in combination, but ... well, no where can you assume TCO.

(Have to run, more later.)

<comment><USER24> > well, no where can you assume TCO.

(recur ...) Is an ugly hack. Yes in CL you can assume TCO from good implementations.

You know you can add vector/map whatever syntax to CL in like 50 loc? Are you seriously saying that syntactic sugar is in any way relevant to anything? Let alone an important feature of Clojure? Thats just sad.

> car and cdr are neat, and even useful in combination,

Actually wether you call them car cdr first rest or whatever, it's actually about CONS or call it a pair if you like. A very simple but infinitely powerful datatype. This is the first thing I teach when I teach programming for a very good reason.

<comment><USER25> "A CONS is an object that cares." \-- Bernie Greenberg

<comment><USER11> Which is followed by: "It cares about its CAR and its CDR." Then as I recall he went to the blackboard.

Still trying to find a copy of his MIT IAP Lisp course notes (haven't tried very hard yet); they and his delivery of them were very very good.

At the same time Jeff Schiller (JIS) would give a short neat talk on how macros worked and why they were neat.

</comment></comment></comment></comment></comment></comment></comment><comment><USER26> I came to precisely the same realization about ten years ago, after struggling in vain with the culture and quirks of Common Lisp. There's no question that learning Lisp in some form will make you a better programmer but don't get caught up in the cult that surrounds it. Virtually all of Lisp's innovations now been validated and adopted by more mainstream languages and the fact that nobody has picked up the s-expr syntax is telling.

These days I focus more on writing useful code and making end users happy and I've found that to be much more satisfying than wringing my hands over the inelegance of everyday languages.

</comment><comment><USER27> heresy</comment>


Apple restores Google's internal iOS apps after certificate misuse punishment - <AUTHOR> https://techcrunch.com/2019/01/31/apple-ban-google-data-app/ <comment><USER2> I hope all of the publicity this gets will somehow bring more attention to how much control Apple exerts over the iOS app ecosystem, and maybe bring change there.

I think developers should be able to distribute their apps outside of the App Store if they want, just like on macOS and Android, but Apple is allowed to have this much control because the iPhone doesn't represent the majority of the market, so they aren't as subject to monopoly/antitrust stuff.

I can still hope that Apple will open up their mobile platform further, one day.

<comment><USER3> They seem to be the only body capable (and willing) to enforce privacy measures, so god I hope your wrong.

<comment><USER2> I don't understand how allowing people the option to download things outside of the App Store mitigates the iPhone's ability to enforce privacy measures. It's completely possible to sandbox apps that don't come from the App Store, and they could even default to only allowing you to install apps from the App Store, with a secondary security tier of "allow installation of signed apps" and a third security tier of "allow installation of unsigned apps". If you _choose_ to install things outside of the App Store, you would be in the minority. Very, very few people have ever installed anything outside of the Play Store on Android... with the exception of Fortnite.

This isn't an all-or-nothing proposition... and I'm definitely not suggesting "iOS should run all code encountered on the internet as root".

<comment><USER4> People could click the checkboxes and give away their privacy, as panelists in these Google and Facebook research programs did.

Some privacy advocates think that people shouldn't have the freedom to do that, because they can make bad choices. They aren't wrong that a locked down system like iOS is safer overall for users, as long as you're ok with Apple controlling what content you can use.

<comment><USER5> Apple can do what they want, I am happy that now we have a good example to show people that iOS devices are more like a console and less like a computer. I would like at least GPL software to be allowed on the store.

<comment><USER6> Just to clarify: It's not the GPL that is not allowed on the store, it's the GPL that forbids putting software licensed under it on the store.

<comment><USER7> Yes; and what a lot of people omit is that if you have the full copyright to a GPL'd piece of software (because you don't accept contributions without extra license/assignment), you can publish it to the app store.

Why do you think Wesnoth is on iOS?

<comment><USER8> > Yes; and what a lot of people omit is that if you have the full copyright to > a GPL'd piece of software (because you don't accept contributions without > extra license/assignment), you can publish it to the app store.

In this case, you're effectively dual-licensing your software.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Apple hands companies who sign up for an enterprise signing certificate the equivalent of a "get out of walled garden free" card, on the condition that you not use it to distribute software to people outside your company.

This is made VERY clear when you sign up and Google, at least, made it clear that using it to distribute software to the public violated the agreement they had entered into.

>A Google spokesperson told The Verge, "The Screenwise Meter iOS app should not have operated under Apple's developer enterprise program — this was a mistake, and we apologize.

[https://www.theverge.com/2019/1/30/18204064/apple-google- mon...](https://www.theverge.com/2019/1/30/18204064/apple-google-monitoring- phone-usage-screenwise-meter)

</comment><comment><USER7> Apple would never restore services to any individual or small business like this.

Neither would Google.

This is bullshit and Google should've been forced to deal with their mistake.

<comment><USER10> Yes, this is why we need to stop supporting companies that run such centralised walled gardens. This includes google, facebook, youtube, instagram, whatsapp etc.

<comment><USER11> Could have just said Google and Facebook since they're run by those two companies.

<comment><USER10> Sadly true and most on HN probably know that but even more disturbing is not everyone knows.

</comment></comment></comment></comment><comment><USER12> There really is a blind spot in the app distribution mechanisms. There is no way to distribute your app only to a selected amount of "customer / partners".

Either you put it on the app store, and everybody can download it, or you use an enterprise certificate but you're now at the mercy of apple having a different definition of what you're allowed to do with it and what constitutes a "member of the company".

<comment><USER13> There is TestFlight: [https://developer.apple.com/testflight/](https://developer.apple.com/testflight/)

(With the caveat that builds expire after 90 days)

<comment><USER12> TestFlight doesn't work for b2b. You can't sell or give a private customer a software solution then ask them to register for a test to get the iOS software.

<comment><USER14> You can distribute it on the App Store and only allow customers to use it via a login. This is a solved problem and what my previous company use to do.

<comment><USER12> You can't do that if you also distribute apps in b2c, because people wouldn't understand which app to pick, it would create confusion.

Also, asking for a login at startup without providing a way to register via the app was against the store tos, iirc.

<comment><USER14> Again. There is an existence proof. I worked for a company in the healthcare space that was strictly business to business it was used for secure HIPAA compliant messages between doctors in a hospital network.

You couldn't use the app unless you were a doctor who belonged to a clients network.

As far as not understanding what app to pick. There are plenty of companies including FB that have apps for the general public and apps for a subset of users.

<comment><USER12> That's also a thing with app store : the fact that someone else's app works one way doesn't mean a lot. Your app could get accepted for months and then all of the sudden be rejected after an update makes it go through validation again.

But that was the App store's rules, and people more or less learned to go with it. What worries me a lot with the recent news is that the lottery could now affect enterprise certificates as well.

<comment><USER14> Well, you can't register from within most of the streaming apps including DirectvNOW, Sling TV, Netflix, etc.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> Is Apple now also going to ban Square, Sonos, Amazon, DoorDash, Instacart, Postmates, Uber, DBS Bank, Handy, Vseen, Shiphero etc for also misusing their certificates?

If you're going to rule with an iron fist on your walled garden, then you better do it fairly. If they don't then they stand to be ridiculed and lose face.

[0] Square [https://squareup.com/help/us/en/article/5492-customer- displa...](https://squareup.com/help/us/en/article/5492-customer-display)

[1] Amazon [https://www.azflexinfo.com/how-to-download-and-install- the-a...](https://www.azflexinfo.com/how-to-download-and-install-the-amazon- flex-app-on-your-phone)

[1.5] Casino 2020 [https://www.igt.com/promotions/casino2020](https://www.igt.com/promotions/casino2020)

[2] Doordash [https://dasherhelp.doordash.com/download- app/](https://dasherhelp.doordash.com/download-app/)

[3] Sonos [https://twitter.com/archer_mcgee/status/1091176871734108161](https://twitter.com/archer_mcgee/status/1091176871734108161)

[4] Instacart [https://shoppers.instacart.com/apps](https://shoppers.instacart.com/apps)

[5] Postmates [https://fleet-help.postmates.com/hc/en- us/articles/225239347...](https://fleet-help.postmates.com/hc/en- us/articles/225239347-Download-the-Postmates-Fleet-app-for-iOS)

[6] Uber [https://help.uber.com/partners/article/updating-the- driver-a...](https://help.uber.com/partners/article/updating-the-driver- app-?nodeId=3b6e7a5f-41b1-4da5-b14a-6305f66dbdaf)

[8] DBS [https://www.dbs.com.sg/ibanking/mbanking/demo/index.html?pid...](https://www.dbs.com.sg/ibanking/mbanking/demo/index.html?pid=sg- dbs-lp-btnappstore-mbanking-app-download-page)

[9] Handy [https://prohelp.handy.com/hc/en- us/articles/217292127-Downlo...](https://prohelp.handy.com/hc/en- us/articles/217292127-Download-Handy-Pro-for-iOS)

[10] [https://viseven.com/ar-app](https://viseven.com/ar-app)

[11] ShipHero [https://help.shiphero.com/article/246-trusting-ios-apps- on-d...](https://help.shiphero.com/article/246-trusting-ios-apps-on-device)

Worth noting the relationship between these services and the "paid contractors" that use the app is expressly not Employer-Employee. Facebook and Google paid third party personnel, so is Instacart and Uber.

<comment><USER16> Any idea how companies like Nielsen get their stats?

<comment><USER17> Last I checked it was way more low tech than you'd expect for a company people put a lot of stock in. Basically, they put scanners on some people's TV's (with their permission, which is good but introduces a lot of selection bias) and try to correlate what gets watched with the ages of the people in the house (while not knowing whos watching what and hoping the TV doesn't just get left on for hours with no one watching).

<comment><USER18> They give you a remote with toggle buttons labeled with people's names so you can tell it who is watching or if multiple people are watching. They also have software for media pcs but you can hook up an intermediary box if you want. They also pay you per hooked up tv, and have stats on whether a tv is a bedroom / kitchen / family room tv.

</comment></comment></comment></comment><comment><USER19> Anyone know how the revocation and subsequent reversal works at a nuts and bolts level? I'm curious.

<comment><USER8> Revocation is simple: Apple simply blacklists the certificate, and iOS devices will refuse to run the app. I'm not sure how reversal works, but it's likely that either Google was granted a new certificate to sign their apps with or Apple somehow has a way of "unblacklisting" certificates.

<comment><USER20> Do iPhone users lack the ability to have control over their device by adding their own certificates?

<comment><USER21> Unjailbroken iOS users, yes - certificates are signed by Apple. That said it's pretty easy to get a developer certificate for yourself. You just have to a) own a Mac and b) agree to not use it externally (which is what both Facebook and Google failed to do), but nothing prevents there being e.g. a community of people running open-source apps that don't abide by the App Store restrictions, all compiling them on their own machines.

<comment> eric-hu > but nothing prevents there being e.g. a community of people running open- > source apps that don't abide by the App Store restrictions, all compiling > them on their own machines.

My memory could be wrong on this, but I thought this is exactly what the Flux app did and Apple sent them a cease and desist for keeping the self compile and self sign instructions online.

In a sense, you're still right as long as the community stays small enough that it doesn't get the attention of Apple.

<comment><USER8> f.lux is not open source, and Apple told it to stop because it tried to distribute itself as an opaque binary rather than something that users could compile themselves.

<comment> eric-hu I don't think this is accurate. The original announcement HN thread includes discussion of the source, which is linked and still online on GitHub: [https://news.ycombinator.com/item?id=10550427](https://news.ycombinator.com/item?id=10550427)

<comment><USER22> The comment you linked discusses the source of a different project, doesn't it?

<comment> eric-hu You're totally right. I remembered that incorrectly and then didn't double check when I saw the link. My mistake!

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER23> It should be noted that (I don't believe) Google nor Apple aknowledged why the certificate stopped working. And shortly after it did stop working both Google and Apple said they were working to get it fixed.

<comment><USER24> Right, this is probably techcrunch saving face because they really have no idea what they are talking about, so have to make it seem like whatever happened was in line with what they reported.

<comment><USER8> Sorry, but why do you think this? The Facebook app was very clearly Onavo rebranded and signed with an enterprise certificate; I have a copy of the file if you'd like to check it yourself.

<comment><USER24> We're talking about the google one,not the facebook one.

The google one - there is no sourced evidence that apple banned them.

Apple has no reason to include friendly PR and did in the google case.

So did Google. These were coordinated messages clearly.

In the facebook case that did not happen That suggests the are not the same.

I posited a working theory above.

<comment><USER8> Facebook and Google engineers have weighed in on Hacker News confirming that their internal apps stopped working. Again, why do you think TechCrunch doesn't know what they're talking about here?

<comment><USER24> Again, i don't disagree both certs were revoked, and it's been actually confirmed that apple banned facebook .

That doesn't mean apple intentionally banned Google. This has neither been confirmed (and is completely and totally unsourced), nor would it make any sense for them to ban google and then issue friendly press about it.

So I'm suggesting the different reactions from apple and coordinated messaging differences imply there is something different about this case.

<comment><USER8> You think that Apple _accidentally_ revoked Google's certificate?

</comment></comment></comment></comment></comment></comment></comment><comment><USER25> Why do these bigcos use native apps for internal tools? I would think a progressive web app would be easier to maintain for multiple platforms and a good-enough user experience for an internal tool.

<comment><USER26> PWAs aren't fully supported across devices yet. For example, push notifications don't work in iOS Safari.

<comment><USER27> They could just use SMS notifications instead of push notifications. Both Google and Facebook have the infrastructure for that.

<comment><USER28> But you also would have many more native devs on hand who specialize on that device

<comment><USER29> This argument is hilarious :)

I'm pretty sure both Google and Facebook have way more webdevs available ;)

<comment><USER28> But not many web devs that specialize in that device or mobile devices in general. As someone who does both usually the native dev have a much better advantage if given 2 native devs vs 2 web devs. But thats just my experience.

</comment></comment></comment></comment></comment></comment><comment><USER30> So does this mean Facebook is going to get their restored? Or is this some kind of slap on the wrist for google but also not really. Very confusing messaging from Apple here.

<comment><USER31> Facebook's was restored a few hours ago.

Apple likely wanted to have a nice long chat with some people at each company about their behavior. This was probably meant as a warning not to step out of line again.

<comment><USER24> Or one was an accident and the other wasn't?

<comment><USER24> Here, let me posit a theory that fits all facts:

Apple banned Facebook. They said nothing in PR about it.

Apple did not in fact ban Google. Instead, one of (Apple, Google) fucked up removing the screenwise app and accidentally revoked the cert.

Techcrunch being techcrunch, they assumed Apple banned Google and published that with literally no supporting evidence.

If that was true, why would anyone publish friendly press so quickly? and at literally the same time?

All data instead suggests if Apple banned Google, both would shut up about it.

Instead, here, both Apple and Google release press statements stating they are working to fix the issue as soon as possible in a coordinated manner.

Unfortunately, techcrunch/et al can't walk back their statements without looking like idiots, so they go with "Apple banned google and then google must have apologized or something" as their narrative, even though that narrative makes literally no sense given the difference in reactions from Apple.

</comment></comment></comment></comment><comment><USER32> Why aren't they using Android phones? You have full control over what apps your device runs.

<comment><USER33> Presumably some of their 85000 employees prefer to use iphones.

</comment></comment><comment><USER34> I said on one of the other posts about this that I wouldn't be surprised if Apple gave Google a heads up to let them know they have to be consistent. Especially given that Google basically apologized. Now I'm more convinced.

</comment><comment><USER35> Is Facebook still revoked?

<comment><USER36> No; [https://www.theverge.com/2019/1/31/18206020/apple- facebook-i...](https://www.theverge.com/2019/1/31/18206020/apple-facebook- internal-ios-apps-restores-enterprise-certificate)

</comment></comment><comment><USER37> That was fast.

</comment><comment><USER38> So, random people, non-employees, not QA testing, not bound by real business relationships, get a copy of some enterprise FAANG apps...

And that certainly is insteresting, and significant, but what circumstances does this confer to those who get the app? And are normal, ordinary commoners disadvantaged by this and missing out, or are the enterprise randos getting a hyperinvasive, buggy, flakey, nightly, crash prone, hazardous, insecure, warranty voiding piles of garbage?

I guess we can't know, without seeing what the enterprise distributions look like, and the point is that there are consumers getting special treatment, when that's not the way the game is supposed to be played, violating franchise rules...

</comment><comment><USER39> Just a ploy to distract away from the FaceTime bug. What was the point of revoking the certificate if they've restored it the next day?

<comment><USER8> It's not clear whether the Google was given a new certificate, or if their old one was reactivated, but either way it stopped both of them from abusing their enterprise certificates.

</comment></comment><comment><USER40> The irony is that Apple and Google and most larger tech companies require every single one of their _own employees_ to install these certs on their phone.

</comment><comment><USER41> Devils advocate here but who would still use an iPhone if Google and Facebook pulled their apps?

It's all sunshine and rainbows if this ends here but if it escalated it would be worse for Apple than they think.

<comment><USER42> FB would just make their mobile web version work a bit better to get the users back. It's not like they would just sit there an allow the users to go away. They'd do whatever they can to get their golden gooses back, including just beefing up the website. FB also still works fine on mobile browsers anyway, without all of the unnecessary access to your filesystem, contacts, text messages, images/videos, cameras, microphone and everything else on it.

You don't need apps to live in 2019, although a lot of people seem to think so, or at least act as though they do. Not saying you, just in general. I've gotten rid of most of my apps and just use the web version of everything. I can still bank fine, use fb, instagram, youtube and everything else. No problem. There are very few things on a phone that actually need special hardware (sensors, etc) that would actually require a native app, and most apps that do need that kind of access are mostly just gimicky wastes of time. Most, not all. Who really gives a crap about being able to make your poop emoji animate by using your face. Sure, it can be fun, but not necessary. It adds nothing to my life. Is there an app for that? Yes, but there doesn't need to be an app specifically for that. Most are just glorified websites under a different interface. yipee.

<comment><USER43> >FB also still works fine on mobile browsers anyway.

No, they artificially prevent it from working well. If you try to read or send a private message, it forces you to go download Messenger.

<comment><USER42> How am I able to click on "messenger" in the upper left menu of the website (2nd option down under News Feed) and able to send/view messages on my mac? I also get an instant email notification if I'm not logged in when someone messages me so I don't need notification alerts.

<comment><USER43> I was talking about phones, not a mac.

</comment></comment></comment></comment></comment><comment><USER44> Big fan of Apple products and privacy in general, but this was a really dumb move and to what end? This effort has done some serious damage to the relationships of the companies and caused needless divide. Google and Facebook should have been given a reasonable amount of time to remove the software and/or been denied renewal of their signing certs.</comment>


Tesla Powerwall Battery Economics: Almost There - <AUTHOR> http://rameznaam.com/2015/04/30/tesla-powerwall-battery-economics-almost-there/

<comment><AUTHOR> I liked his post "Why Energy Storage is About to Get Big, and Cheap". In this article he says that Tesla Storage is not quite cheap enough for most to buy on a purely cost-benefit basis, yet. But it will be in 3 to 5 years, if not sooner. I find that really exiting. I'm wondering if they will be able to keep the supply up with the demand once this really becomes a smart cost effective move for a lot of people. Even with the huge battery factory Tesla is building.

<comment><USER2> Yes, it's really exciting. I'm convinced that this kind of storage will open big new markets.</comment></comment>


Bringing black and white photos to life using Colourise.sg - <AUTHOR> https://blog.data.gov.sg/bringing-black-and-white-photos-to-life-using-colourise-sg-435ae5cc5036 <comment><USER2> This seems really cool; I think it would be even better if they adopted head and tail models similar to how style2paints does it for colorizing manga.

Style2Paints: [https://github.com/lllyasviel/style2paints](https://github.com/lllyasviel/style2paints)

It does increase memory consumption by a lot but idk, the improvement to performance is a little nuts

<comment><USER3> Style 2 paints is pretty sophisticated. This thing not so much. I feel like they just took some model and trained it on a specific dataset and called it "new"

</comment></comment><comment><USER4> Tangentially related: if you have the chance to go see Peter Jackson's _They Shall Not Grow Old_ then do so. What he managed to do with that old footage is simply incredible. I was left in absolute awe at how he and his team were able to bring that black and white footage to life...not to mention the gravity of the subject matter.

<comment><USER5> except they didn't just colorize them, but more importantly fixed FPS

</comment></comment><comment><USER6> When Ted Turned tried "democratizing" old classic B&W movies he was made fun of, a lot, not by the audience/viewers, but by the professional critics who claimed he was ruining the intrinsic art of those movies, the implication was he was degenerating them.

Sure, the colors were not quite right (I think they improved them after initial missteps), but he was a man ahead of his time with his vision in that regard. Few would bat an eye today.

<comment><USER7> Black and white movies should stay black and white. George Lucas shouldn't have messed with Star Wars. Film movies should have film grain. You shouldn't use a computer to remove grain and make Arnold look like a Madame Tussaud's sculpture. You shouldn't crop 4:3 sources to 16:9 because you think people prefer losing some image to black bars. Stop tinkering with shit to "improve" it.

I wouldn't care, but I do care because it means I have to spend my time taking hours on the internet to find an obscure VHS rip of a version that has not been debauched by digital Dicks.

<comment><USER8> I mean, I agree with you, but I don't think GP overstated at all just how much the average consumer doesn't care about this stuff. Most of us know people who _prefer_ to have their TV _stretch_ (not just crop) the image from its original aspect ratio to 16:9. I know people who refuse to watch black and white films because they're "boring". Not because of the subject matter, but because they're black and white.

</comment></comment></comment><comment><USER9> black and white photos are already alive. colour doesn't make the better

<comment><USER10> Funny, I bet dozens of people said that exact same thing to Maxwell and Sutton before they invented color photography.

</comment></comment><comment><USER11> Aaand it works surprisingly well with color photos. It can remove the insta filters and the overdriven HDR effects. Great work!

</comment><comment><USER12> > none of these tools have been trained to colour images specific to the > Singaporean historical context.

Interesting aspect of image colorization that I hadn't given too much thought to. Will this NN for example handle images taken in different historical contexts, and vice versa?

</comment><comment><USER13> Cool technical achievement, however many pictures are B&W even in the age of colour for a reason, the meaning changes with colour, the sentiments that one as artistic wants to awake on the viewer aren't the same in the presence of colour.

</comment><comment><USER14> This isnt cool. These are not accurate. To properly judge any colorization you have to compare against real color photos. Take a color photo, convert it to b+w. Then feed it to the colorization bot. Compare the original to the colorized. It never comes out very accurate. So you know that neither are the historical photos.

Converting b+w to color is like taking a photo and making it into a 3d model. No matter how hard you try, you are inventing data. It isnt a revitalized photo, it is a new piece, an interpretation of the original. Call it computer art, not history.

<comment><USER15> Tell me this documentary won't change your mind:

[https://www.youtube.com/watch?v=IrabKK9Bhds](https://www.youtube.com/watch?v=IrabKK9Bhds)

(They Shall Not Grow Old)</comment></comment>


The future of cinema and TV: It's game over for the hi-res hype - <AUTHOR> http://www.theregister.co.uk/2013/06/25/the_future_of_moving_images_the_eyes_have_it/

<comment><USER2> tl;dr Doubling (or quadrupling) the frame rate would make for a bigger improvement than higher resolution.

That's interesting. However, I'd prefer if we just got 4k 120Hz TV's and screens. Why choose just one?</comment>


Breakthrough Listen publishes first analysis of 692 stars in ET search - <AUTHOR> https://www.universetoday.com/135281/breakthrough-listen-publishes-first-analysis-692-stars-et-searchi/ <comment><USER2> From what I have read, most of this SETI data processing involves very long FFT to channelize down to 1 Hz BW. However, assuming any alien signals would be like our digital comms, those signals are pseudo noise like, so using very narrow bandwidths just reduces the signal too. These narrow bandwidths would only be good for CW signals?

<comment><USER3> If I recall my EE schooling correctly, the 1Hz resolution bandwidth significantly reduces the noise floor of the receiver, and this allows you to resolve smaller signals from the noise. Also, assuming it is sweeping, having a digital signal with greater bandwidth is no problem to find.

<comment><USER2> Yes, EE here too, but if the signal you're trying to detect is also noise like (pseudo random), it is averaged out with the noise. That's why I'm thinking that any moderately complex signal won't be detectable. We'd have to detect a signal that aliens purposely sent out at a very narrow bandwidth; essentially seconds per bit, or even narrower.

<comment><USER4> And that they didn't bother to compress to save on bandwidth.

To me that's the kicker. There's only a 100 year or so window during which you can catch a civilization's transmissions un-encrypted and un-compressed. After that it might as well be noise.

<comment><USER5> Even after they have switched to encrypting and compressing their transmissions, they might still have have unencrypted, uncompressed station identification messages transmitted periodically.

</comment></comment></comment></comment></comment><comment><USER6> I hope we find some ETs. Otherwise I'm worried we're either:

\- in a simulation, and they didn't bother to simulate other parts of the universe in high fidelity.

\- in a zoo, and somehow we're blocked from seeing other civilizations.

I don't buy, for an instant, that in a universe of this size, we'd be the only life forms.

<comment><USER7> I've always thought that this was the most likely reason for our simulation, and the most telling evidence for it:

In a universe where intelligent life is common throughout the galaxy, there'd be no way to tell what our species would have become left to its own devices. What discoveries we would have made, what cultures we would have created, what our destiny might have been.

The only way to discover it would be to simulate human life on a planetary scale in a universe where other intelligent life is mysteriously absent. Which is exactly the situation we find ourselves in.

</comment></comment><comment><USER8> _" The Green Bank Telescope searched for these signals using its "L-band" receiver, which gathers data in frequencies ranging from 1.1 to 1.9 GHz ... they conducting three five-minutes observation periods, while also conducting five-minute observations on a set of secondary targets"_

Does this seem like a really short timescale to anyone else?

Of course, anything on human timescales is but the blink of an eye on geological, never mind astronomical timescales, but it still fells like you'd have to get awful lucky to catch something in just the 5 to 15 minutes you happened to be listening on a narrow range of radio frequencies.

<comment><USER2> Yeah, I have read to detect a transmission from several light years, it would take a transmitter like Aeroceibo. Also must assume the alien politicians would fund it long enough.

</comment></comment><comment><USER9> I thought this may have been NIROSETI but it isn't I wonder how NIROSETI is doing they search by looking at near infrared signals.

Here is what they do: >Near-infrared Optical SETI (NIROSETI) has the advantage that light at infrared wavelengths is less affected by interstellar gas and dust; an infrared signal can be seen at greater distances than an optical signal at shorter wavelengths. Also, it takes less energy to send the same amount of information with an infrared signal than at shorter, optical wavelengths.

</comment><comment><USER10> The data is analyzed on a distributed network. You can download the app and have it run in the background or as a screensaver. If ET is found, they promise to credit the computer owner that actually finds it. Just think, you might be the one!

[https://seti.berkeley.edu/participate/](https://seti.berkeley.edu/participate/)

I have been doing this since 2005, have processed over 5 million units, and am in the 98th percentile worldwide.

</comment><comment><USER11> Sounds a little like taking a few sniffs and hoping to smell campfire smoke 100 km away. Eventually I hope we'll find more effective methods for SETI

<comment><USER12> But these "few sniffs" amount to 8 Petabytes of data, according to the article.

<comment><USER11> But what? If anything that 8 petabytes is 1/1000000 of a sniff in Universe scale</comment></comment></comment>


The Best Ideas Are Always This Controversial - <AUTHOR> http://johnthedebs.posterous.com/the-best-ideas-are-always-this-controversial

<comment><USER2> But, conversly, being controversial doesn't mean it's a good idea. And, while indeed different, the app store is in my opinion killing Apple because it pushes away developers, and developers are oxygen for companies like Apple.</comment>