Syntax Highlighting Off - <AUTHOR> https://www.robertmelton.com/2016/02/24/syntax-highlighting-off/ <comment><USER2> Former neuroscientist here. Please take this article's pop science proclamations with a grain of salt.

1) "Additionally, we process words much faster than we process colors". Wrong, I'm pretty sure areas V2/V4 received information much faster than the visual word form area, especially given that it may require a saccade to take in a long word. Not sure where this claim comes from.

2) "...we instinctively jump to luminous or high contrast colors with our eyes, interrupting reading a program in a more standard way..." Half-true. There are well-known pop-out effects, but it's unlikely we read programs the way we read prose, so it's not clear it's an interruption at all.

3) "When syntax highlighting is on you also are spending cognitive energy (which is finite) on item-specific processing rather than organizational processing." No evidence offered. I could just as easily make the counter- claim, that syntax highlighting frees up the brain to _more_ organizational processing, since there's _less_ load necessary to figure out item-specific properties. Not necessarily wrong, but needs to be tested.

I think the biggest mistakes in the article (and perhaps what he got from talking with his friend in the cognitive sciences) are equating prose with code, and not accounting for novelty effects. I have no doubt that coloring random words in prose disrupts things, since it's novel and captures attention. But it doesn't automatically follow that people experienced with syntax highlighting experience similar effects.

It would be cool to see more actual research in this area.

<comment><USER3> Excellent points. What I would add is that he talks about finite cognitive energy, but nowhere in the article mentions how highlighting _helps_ to save the very same cognitive energy.

For example, if there's a comment in the code, without highlight you would need to follow the comment and look for closing quotes. If the comment contains escaped quotes it becomes even more difficult. With highlight you immediately see where it ends.

Another example are keywords - when they are highlighted, you don't even need to read it. You glance at them and know the meaning by their shape. While without highlighting you would have to read every single one of them to understand that they are in fact keywords and not something else.

</comment></comment><comment><USER4> I'd freely speculate that 90% of the benefit of syntax highlighting comes from mere lexical highlighting - specifically, making comments, strings and keywords visually distinct from everything else. And even keyword highlighting is very secondary to the first two.

Making comments distinct from normal code is nice because you can easily alternate your focus on one or the other while reading through; and you're not likely to accidentally read commented out code as actual code. You're also not going to forget to close out your comment, for languages with paired comment delimiters.

Making strings highlighted makes it a little bit easier to ensure you're terminated your strings, especially in edge cases around escaping and quoted quotes (for languages that have a choice of quote characters).

Semantic highlighting - distinguishing identifiers based on their definitions - is a seriously niche win most of the time, where you're spending ever increasing amounts of CPU for a marginally actionable hint.

<comment><USER5> One of the most important benefits of syntax highlighting that no one in this thread seems to be discussing is the highlighting of syntax errors. That is the number one benefit of syntax highlighting for me. It immediately shows me where there's a problem in my code (like if I haven't closed parenthesis or quotes) and keeps me focused on "completing the thought", as it were.

This is also a reason that I don't like using editor features that automatically close parenthesis or quotes when you type the opening pair. That may make the expression syntactically correct, but semantically incomplete and the burden will be on me to notice, since syntax highlighting won't help me then.

<comment><USER4> Highlighting of errors is, for me, something distinct; a background parse / compile process that reports line numbers is sufficient. It doesn't need deep integration with the editor. A keyboard shortcut to go to the next error and you're pretty much all set.

I'm also not a big fan of overly eager syntax checking because I tend to compose abstractions on the fly, leaving a statement incomplete while I flesh out a dependency, or vice versa. Syntax aware indenting usually breaks badly in this situation - I generally prefer dumb indenting, with an opt-in block or file format option for where I want to fix code over a large area. I've had big fights with Emacs over this; it almost always does the wrong thing by default, whether it's indent location, continuation indent, mixing tabs and spaces in the indent, etc. About half my .emacs is replacement indentation functionality and configuration per mode.

I also don't like auto-completing parentheses, because it puts text ahead of the cursor on the current line. That's a PITA because the editor almost invariably doesn't know when I want to complete the expression or how. Eclipse is the worst at this (it's actually not possible to turn off in a sane way). It interprets RET as completing the expression when I want a line break inside the parens, and I'm constantly having to go back and forth to work around its mistakes.

<comment><USER6> Autocompleting is by far my biggest pet peeve in modern IDEs. With default settings in Jupyter, for example, typing """ immediately creates another """. Another great one is when autocomplete tries to be vindictively clever and often deletes your open parentheses if you delete its closed parenthesis. Complete concentration killer.

</comment></comment></comment></comment><comment><USER7> I went the other direction, I programmed for decades without syntax highlighting because back in 1989 I thought ANSI color directory listings were for MS-DOS weenies, so I used a monochrome terminal for everything. I finally became a software developer and adopted syntax highlighting and haven't looked back. Catching unterminated strings and mismatched do..end blocks in ruby saves an incredible amount of time where you can just fix it immediately in- editor as you are coding.

I find it amusing that now we've got hipster programmers wanting to get back to basics and reject syntax highlighting. Trust me, its not better, colors do make you more efficient.

<comment><USER8> I tried it with and without recently, I found that for languages I'm familiar with having it on or off made no difference however having flag errors on off did.

For languages I don't use much I found having it on more helpful, could I work without it of course, I grew up with computers that didn't have syntax highlighting but I'd miss it.

One side result of the experiment was that I turned down the number of colours I used, not everything needs to be a different colour.

<comment><USER9> The only synhi I've ever not actively hated was the elvis defaults on a slackware install ten years ago, which basically bolded/italiced/faded text but didn't change the colour.

</comment></comment></comment><comment><USER10> Next step: programming using ed.

But jokes aside, use whatever environment you like best. For me syntax highlighting is extremely useful. Knowing whether some strings of characters is a type or a variable, or a class type or a basic type makes programming just that much easier. It also helps catching simple typos if something doesn't have the color you'd expect.

<comment><USER11> A high number of Unix programmers (Ken Thompson, Brian Kernighan, Doug McIlroy, Tom Duff & Bjarne Stroustrup) used sam at Bell Labs, which is known as "ed on steroids, lots of steroids".

[http://sam.cat-v.org/](http://sam.cat-v.org/)

<comment><USER12> From an interview with Peter Salus [1]:

      By the way, 'em' stands for 'editor for mortals' - I
      christened it that after Ken Thompson visited our lab at
      QMC while I was developing it and said something like:
      "yeah, I've seen editors like that, but I don't feel a need
      for them, I don't want to see the state of the file when
      I'm editing".

[1]: [http://web.archive.org/web/20080103071208/http://www.dcs.qmu...](http://web.archive.org/web/20080103071208/http://www.dcs.qmul.ac.uk/~george/history/)

</comment></comment></comment><comment><USER13> This post misses, for me, the greatest benefit of programming without syntax highlighting enabled. I went through a period of doing it for 5 years or so and the biggest effect was ultimately on how I wrote code, not how I read it.

Without syntax highlighting I gradually became more focused on the legibility of what I was writing, because none of the visual cues were there when I read stuff back. Function length, module size, naming and vertical whitespace were are all things that I began to think more deeply about.

I turned syntax highlighting back on a few years ago because I was getting so many complaints from co-workers when pairing on stuff at my machine. But I definitely think the experience made me a more considerate, better programmer and I'm glad I did it.

<comment><USER14> I'm glad you had a positive experience, but I'd like to point out that thinking about legibility, whitespace, naming etc should be done regardless of highlighting.

I don't blame you, IMO it's one of the major issues with computer science education. Even basic principles of clean code are often neglected or never taught, in large part due to the lack of professional experience in academic circles. This leaves aspiring developers to figure it out on their own, as you did through turning off highlighting. I'm glad you did, but there are better ways to learn the same concepts IMO.

<comment><USER15> >Even basic principles of clean code are often neglected or never taught, in large part due to the lack of professional experience in academic circles.

There's a lack of experience in professional circles too.

One of the questions I always ask during programming interviews (on either side) is "is your code clean? if so, why?". Invariably the answer is a variant along the lines of "if it passes the linter it's clean", which is stupid.

I'd like to say that's an automatic fail or automatic "don't work at this company" but it's just far too common.

<comment><USER16> Perhaps you should use a less ambiguous term than "clean". They're giving you a correct answer, so perhaps you should ask the correct question? "Is your code readable", perhaps? "Are you proud of your code?". Something like that. No-one's going to admit their code isn't clean, regardless of how they interpret that term.

<comment><USER15> >They're giving you a correct answer

Is spaghetti code clean if it lints successfully?

<comment><USER16> Yes. And no. Depends on the context. Microsoft and malware coders both think windows is great for the same reason; it's very popular.

<comment><USER15> >Yes. Depends on the context.

I can't think of any context where I'd consider spaghetti code clean. It's exact opposite of clean.

<comment><USER16> Clean...in the sense that it passes lint, unit testing, continuous integration etc. Not clean in the sense that "internet user #1209828 approves of its aesthetics", which is a metric subject to fashion, opinion etc.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> Syntax highlighting can help structuring your source code when done well and tastefully - coloring your source in all bright colors of the rainbow rather achieves the opposite effect.

Personally I am working with a white background, so I try to keep the syntax colors all very dark, so while the different colors can be seen, they should not distract from reading. The correct amount of highlighting very much depends from the language at hand, but it can be very helpful in separating elements, just as an example take this function parameter list:

func foo(name, family string, age, size int) {

The correct reading of this parameter list entirely depends on the placement of the commas and the knowledge that "string" and "int" are parameter types - highlighting the type elements can help a lot.

With the availability of high-dpi displays, perhaps colors should be replaced with more traditional ways of markup as used in book-printing, replace coloring with different typesets and fonts.

<comment><USER18> > coloring your source in all bright colors of the rainbow rather achieves > [badness]

Low-hanging fruit is the braindead R/G/B/Cyan/Magenta/Yellow used by some terminals in response to ANSI escape codes: [https://sdkmvx.files.wordpress.com/2008/08/ansi- colors.png](https://sdkmvx.files.wordpress.com/2008/08/ansi-colors.png)

In my mind, there's three types of colouring: None, Designed-By-Human, and the aforementioned Eye-Searing-255 (which should really be killed off or at least not be the default for _anything_ used seriously). It's disgusting to open source code using vi or similar and have it presented in Eye-Searing-255.

<comment><USER19> > Eye-Searing-255

Lol....this. If your primary workstation OS is Windows then I recommend grabbing a copy of MobaXTerm. It has the ability to override and tame the "Eye-Searing-255" beast with its own themes (Solarized Dark and Light, Pastels etc). No more "oh-my-god-my-eyes" when you open up "ooby-doofer.pl" in vim.

</comment></comment></comment><comment><USER20> I've always wanted to try this.

I started programming in 7th grade by randomly typing commands into my TI-83 during algebra class. I had no syntax highlighting, auto-complete, or even a choice of font, but I would sit there for _hours_ meticulously making lines jump around the screen.

Now I get stressed out when my color scheme isn't perfect.

</comment><comment><USER21> I've had syntax highlighting enabled in Vim for many years without really thinking about it. I just recently started to learn a new programming language (Go) and that got me thinking about the effects of syntax highlighting. I felt that colours would distract me from efficiently learning the syntax of the language so I turned it off for a while, now I'm never going back.

(I really do like having another color on just comments though, code > comments. Separating them makes a big difference when reading source code for me.)

Ended up having to create a Vim color scheme to get what I wanted: [https://github.com/ggustafsson/Static-Color- Scheme](https://github.com/ggustafsson/Static-Color-Scheme)

<comment><USER22> For me, it really helps to have code and comments the same colour. That way I give comments the attention they deserve, and I can resist the temptation to comment out code.

</comment></comment><comment><USER23> I started programming a long time ago, without any syntax highlighting at all, and the first time I tried it I found that all the different colours were more distracting than without, so count me as another for whom it's always remained off.

On the subject of unusual programming preferences, perhaps antialiasing off would be the next one the author could try. For me completely off is most comfortable, regular grayscale antialiasing is just bearable, and subpixel (like what's shown in his screenshots) just makes me feel dizzy after a short time.

</comment><comment><USER24> I don't understand the reasoning behind this. What possible benefit could you get from turning off all syntax highlighting?

It's useful to distinguish between language keywords and user specified names. Being able to visually ignore one of them, while focusing on the other, is a tremendous benefit. It cuts down the number of things you need to hold in your head at once, by half.

It's useful to distinguish between local variables and instance variables. It helps to better understand the dependencies that exist between a method and other methods/state.

It's useful to distinguish between mutable variables, and constants. It tells you at a glance how something is being used, and the pitfalls you need to watch out for.

Turning off all syntax highlighting destroys all of the benefits above, and I can't think of any notable benefit you would get out of it.

I guarantee you, whatever "upside" you think you're feeling right now, it's simply the novelty effect. This is a very common phenomenon in AB testing. Often times, you see an initial improvement, simply because users respond positively to the initial novelty of something being different. I guarantee you, if you continue to work without syntax highlighting for 6 months, and then turn it back on for a few weeks, you'll realize how much you actually love it.

<comment><USER25> > _I don 't understand the reasoning behind this. What possible benefit could > you get from turning off all syntax highlighting?_

He explained his reasoning (and theories why it would work) in enough detail. You might disagree, but I can't see how you can't understand it.

> _It 's useful to distinguish between language keywords and user specified > names. Being able to visually ignore one of them, while focusing on the > other, is a tremendous benefit. It cuts down the number of things you need > to hold in your head at once, by half._

That's the conventional thinking. The whole point of TFA is that it's not useful -- rather it's distracting, making eyes automatically focus in such distinctions while losing the bigger picture.

Plus, just because you've colored "language keywords and user specified names" doesn't mean it's now easier to "visually ignore" one of them while focused on the other, it can mean the exact opposite: the extra color distraction makes you jump from one to the other -- unless you put extra conscious effort.

<comment><USER24> Yes, I read his reasoning, but I still can't make sense of it. The most common theme seems to be that having more colors is "distracting". I mean yes, having more colors gives your eyes more things to process... the same way that 7 letter variable names creates more work for your eyes compared to 2 letter variable names. But if someone told me that they avoid naming their variables using complete words because it's too distracting, and only used 2 letter symbols, I wouldn't understand that either.

From a physics/math perspective, yes, I get that "more" implies more entropy. Having 4 colors on your screen is more entropy compared to 2 colors. Having 7 letter names is more entropy than having 2 letter names. But if that additional entropy is used to convey clear, unambiguous and useful information, it actually makes the overall message simpler. The same way that long/descriptive variable names make reading code simpler compared to random 2 letter symbols.

On more reflection, the one reasoning I can somewhat understand, is the idea of handicapping yourself. If you force yourself to type with one hand behind your back, it gives your brain additional incentive to find concise solutions. In theory, I guess I understand this line of reasoning, but in practice, I'll still continue typing with both hands, thank you very much.

Anyway, just thinking aloud here. When I come across something I don't understand, I try my best to understand what the other side might be thinking. Not trying to attack anyone... to each his own. Best wishes.

<comment><USER26> I found the Alice in Wonderland image at [http://www.linusakesson.net/programming/syntaxhighlighting/](http://www.linusakesson.net/programming/syntaxhighlighting/) particularly compelling, in support of the argument that highlighting may emphasize syntax at the cost of obscuring semantics.

<comment><USER27> I've not found that Alice analogy colorizing the "verbs" convincing.

With human language like English, we learn it and use it _without the formal grammar_ ++. A 5-year old child can speak to her mother ( _" I want some candy!"_) without conscious knowledge of "verbs" or "nouns". A formal grammar for categorization is what we _layer on top of_ language for analysis in school. Two people can communicate and understand each other without any exposure to any grammar lessons. So yes, colorizing verbs looks superfluous and noisy.[2]

On the other hand, computer programming syntax _starts_ with grammar. You learn that certain specific tokens are "data types" and other tokens are "literals", etc, etc. And that grammar categorization in programming languages _never goes away_ as you're typing out new code. (Otherwise, you'd get a compiler error or unintended behavior because x="3"+"5" with quotes ("35") means something different from x=3+5 without quotes (8).) This is why so many programmers find color highlighting helpful even if they've been programming that language for 10+ years. Sure we want to focus on higher cognitive purpose of "semantics" but the grammar is deeply intertwined with _reconstructing_ what the semantics _is_.

A closer analogy of color highlighting in a different realm would be different colors in TCPIP traces such as "red" highlighting external ip addresses. This can be helpful for forensics of malware phoning home.

Or in financials dashboards where uptrends are "green" and downtrends are "red".

The same reasons that colors help the malware analyst or stock trader quickly parse data at a glance is also how it helps programmers.

++ (at least not consciously that a 5-year old would be self-aware of it. A theory of innate universal grammar in the brain by Chomsky isn't what I'm talking about.)

[2] except for rare examples of using annotation or coloring of verbs to help parse sentences like this: [https://en.wikipedia.org/wiki/Buffalo_buffalo_Buffalo_buffal...](https://en.wikipedia.org/wiki/Buffalo_buffalo_Buffalo_buffalo_buffalo_buffalo_Buffalo_buffalo)

</comment></comment></comment></comment></comment><comment><USER16> "One of the basic rules of thumb in typography is that, when writing a piece of text, you should choose one typeface and stick to it."

How about an analogy from cooking, too?

"It's easy to spot all the verbs, but why on Earth would you want to do that? "

Well, exactly! Makes it obvious how stupid your argument is, huh?!

I'm pretty sure the people who choose syntax colouring know what they're doing, just like the ones who don't use it. One of those choice things.

<comment><USER28> ... sorry but syntax highlighting on spoken languages for parts of speech would be CRAZY useful when learning to read that language.

</comment></comment><comment><USER29> In hindsight, while comments and strings deserve syntax highlighting there's an argument that the rest is a solution looking for a problem. I'd argue that the highlighting would be better-spent giving each nested tier of parens a distinct color. Like make the first tier brown, then do ROY G BIV, and if you need more than 8 tiers I don't want to read your code.

</comment><comment><USER30> Some people are definitely in the camp against syntax highlighting.

Some examples:

1\. Linux Akesson (LFT) wrote an article quite some time ago about it: [http://www.linusakesson.net/programming/syntaxhighlighting/](http://www.linusakesson.net/programming/syntaxhighlighting/)

"A case against syntax highlighting:

Do you rely on syntax highlighting when developing software? If so, you may be shooting yourself in the foot. In this post, I will argue that syntax highlighting, while aesthetically seductive, moves focus from content to form, and discourages those who look at the code from trying to understand it."

2\. The Acme text editor does not support syntax highlighting and probably never will. Prominent contributors to golang use this editor.

On my own, I started to program without syntax highlighting, then used it and now I use a much weaker one. I like to be able to track individual variables by color as a form of semantic highlighting and to bring up comments rather than dimming them like it's often done.

</comment><comment><USER31> What I've once read is that the advantages for syntax highlighting are biggest for beginners (in general or in that programming language). This seems logical when looking at what syntax highlighting does: colouring differently according to the token type. Beginners might have more problems finding the borders of what belongs together and what kind of token something is.

If we compare this with classical text, we won't have any typographic help for the inner structures of sentences, maybe simply because colouring different types of words differently was quite hard. Typography there is used for the outer structure. Mostly vertical space is used to separate paragraphs. This is also used in programming. However making headlines bigger and use a different type isn't used in programming. Programming uses indentation instead. It is pretty obvious that it's this way because of the limitations of the medium in the beginning. Also it's not as easy as classifying tokens.

<comment><USER32> It can also help when jumping around between many different languages, especially when they are similar.

<comment><AUTHOR> Interestingly enough, the author of the article notes that it has become easier for him to jump around different languages.

</comment></comment></comment><comment><USER33> Syntax highlighting is a topic where EVERYONE has an opinion, so I'll give my 2 cents as well. I am using solarized light ([http://ethanschoonover.com/solarized](http://ethanschoonover.com/solarized)) for my coding, and am very happy with it. I like having keywords emphasised, because they convey a lot of the structure of the program. If you need to switch syntax highlighting off to see whether code is ugly or not, you might not have a very refined sense of beauty anyway. That said, I am perfectly fine with programming without syntax highlighting, I am not dependent on it to understand code. It is similar for type inference: I think it is OK if it makes your code easier to read, if you use type inference though to a point where you cannot understand / write your code without it, you are doing it wrong.

</comment><comment><USER34> I'm on exactly the opposite end of the spectrum (and no one else seems to be supporting the full opposite position, so I may as well). I use use emacs with rainbow-identifiers-mode[1] enabled, which gives every variable a different color. I can't say for certain that it makes me more productive. I just turned enabled it on a lark when I installed spacemacs. But it's fun, and looking at code without it on seems somehow boring now. I'm definitely more comfortable with it on than with it off.

[http://i.imgur.com/Q8D9dXz.png](http://i.imgur.com/Q8D9dXz.png)

1: [https://github.com/Fanael/rainbow- identifiers](https://github.com/Fanael/rainbow-identifiers)

</comment><comment><USER35> I do something very similar (grey strings/comments, some bold/underline identifiers): [http://i.imgur.com/i5j0QKT.png](http://i.imgur.com/i5j0QKT.png)

<comment><USER36> I really like that colorscheme, care to share it?

<comment><USER35> Hmm not sure if this is exactly what you are looking for, but this is the relevant section in my CUSTOM-SET-FACES:

      '(font-lock-builtin-face ((t (:weight bold))))
      '(font-lock-comment-face ((t (:foreground "#707470"))))
      '(font-lock-constant-face ((t (:underline t))))
      '(font-lock-doc-face ((t (:inherit font-lock-comment-face))))
      '(font-lock-function-name-face ((t (:inherit font-lock-constant-face))))
      '(font-lock-keyword-face ((t (:weight bold))))
      '(font-lock-preprocessor-face ((t (:underline (:color foreground-color :style wave)))))
      '(font-lock-string-face ((t (:foreground "#707470"))))
      '(font-lock-type-face ((t (:inherit font-lock-constant-face))))
      '(font-lock-variable-name-face ((t (:inherit font-lock-constant-face))))
      '(font-lock-warning-face ((t nil)))
      '(fringe ((t (:background "#ffffff"))))
      '(glyphless-char ((t (:slant italic))))
      '(highlight ((t (:weight bold))))
      '(isearch ((t (:box (:line-width 1 :color "#000000")))))
      '(isearch-fail ((t (:weight bold))))
      '(italic ((t (:slant italic))))
      '(lazy-highlight ((t (:box (:line-width 1 :color "#d0d4d0")))))
      '(link ((t (:inherit button))))
      '(link-visited ((t (:inherit link :box (:line-width 1 :color "#707470" :style pressed-button)))))
      '(minibuffer-prompt ((t (:weight bold))))
      '(mode-line ((t (:inherit mode-line :background "gray93" :foreground "#000000" :height 110 :family "Source Sans Pro"))))
      '(mode-line-emphasis ((t (:underline t))))
      '(mode-line-inactive ((t (:inherit mode-line))))
      '(mouse ((t (:background "#000000" :foreground "#ffffff"))))
      '(region ((t (:background "#d0d4d0"))))
      '(secondary-selection ((t (:background "#e9eee9"))))
      '(show-paren-match ((t (:weight bold))))
      '(show-paren-mismatch ((t (:underline t))))

Other than that I use the Inconsolata font.

</comment></comment></comment><comment><USER37> Nice experiment and I encourage any developer to tune up their tools so they are happy.

My experience is the opposite: I use syntax hilighting on Emacs, TextMate, and the JetBrains IDEs. When I SSH to a server and use Emacs to edit code, I find it jarring if syntax hilighting is not set up for whatever programming language I am editing. I can't read and understand the code as fast.

</comment><comment><USER38> No thanks.

I started using syntax highlighting still in the MS-DOS days, and hate when I am forced to downgrade my developer experience.

But to each its own I guess.

</comment><comment><USER39> I use syntax highlighting, but I prefer it to be quite minimalist. I use bold for keywords and different colors for string literals and comments. Also I use underscore for object fields. Modern IDEs usually configured with a lot of visual noise and it might make it harder to read, but probably it depends on person.

</comment><comment><USER40> I'd like to see slightly more difficult to read fonts as an isolated experiment in this exploration. [http://www.wired.com/2011/01/the-benefit-of- ugly-fonts/](http://www.wired.com/2011/01/the-benefit-of-ugly-fonts/)

</comment><comment><USER41> Thanks. I use Jetbrains IDE's for coding where my colorschemes have a similar setup. Code, Comments, Strings, are different, and that's about it. Never got around to doing this in Vim which I still use for many tasks (who doesn't?). So this is much appreciated.

</comment><comment><USER42> I think the usefulness of syntax highlighting is highly dependent on the amount of colors you use. For me, anything more than three separate colors is just visually distracting.

It's also nice to have low opacity comments, as many others have said.

Oh, and never bright colors. I use solarized or similar.

</comment><comment><USER43> Purely eye candy here--visual enjoyment that makes code seem more interesting and fun.

Did anybody else go from needing a white background, to preferring a dark one?

(I had the zebra effect for years when trying to read light-on-dark, then one year something changed--I don't know exactly what.)

<comment><USER44> went dark years ago, never looked back.

"one year something changed - I don't know exactly what" \- you matured:)

<comment><USER43> Have not--how dare you!

</comment></comment></comment><comment><USER45> Many color schemes take the most important parts and fade them out: comments!

In Haskell I have different colors for the comments, keywords, and literals. That's it. Anything more is not helpful.

It's baffling to me to look at source on Github and see a screen full of comments, greyed out.

<comment><USER46> Comments are like footnotes in a book: great for adding context to the main text, but they work really well when shoved off to the side somewhere, easily accessible to those who want them, easily ignored by those just into the main text (e.g. Author). Unfortunately, code typography is so horrible in our field that we lack the ability to use the bottom page margin or a side bar for this purpose, so we hack it up with what's easy: syntax highlighting.

<comment><USER47> Comments also lie.

At best, they are a statement that, at the time they were last edited, the author believed their stated facts were true, or might become so, plenty are aspirational, "this is what this function or change to it, which I've not yet written, will do".

He might have been wrong, or the code might have changed without updating the comment, the actual running code _is the only truth_.

<comment><USER48> I find that comments at the top of functions are helpful when implementing an algorithm found in reference material, especially if they have a citation. At least that way you can check that the function appears to do what the reference material specifies.

But generally commit messages, descriptive symbols, simple logic, short functions, and unit tests are better.

</comment></comment></comment></comment><comment><USER49> I have had syntax highlighting off for a few years, but I always turn it on when looking at XML... especially poorly formatted files. It helps my eyes navigate the soup. That's where I think the value is: it helps to make up for confusing formatting.

<comment><USER50>
      nmap <F11> :if exists("syntax_on") \| syntax off \| else \| syntax on \| endif \|<cr><C-g>
      nmap <F12> :set wrap! wrap?<cr>

My personal productivity boost :)

</comment></comment><comment><USER51> I've found that I really appreciate my editor's (aoeui) use of blue and black foreground colors for matching up parentheses and other brackets. Keyword highlighting is less useful apart from being a cue for correct spelling.

</comment><comment><USER52> I can't recall who, either Pike or Crockford said that syntax highlighting was a regression. I kinda agree that a well balanced comment code ratio, and clear system / design makes up for most editor enhancement.

</comment><comment> Pirate-of-SV Many syntax highlight themes seem to hide comments in code by decreasing their contrast. I'm strongly against that so for me the author lost credibility when I saw that's more or less only what his theme do.

<comment><USER53> Comments lie, frequently. The only time I need to look a comments is when someone has done a poor job of naming things. The comments may explain intent, but they do not explain what it's doing.

Never question someone's credibility because their preference differs from yours. It'll make people question your credibility.

<comment><USER54> If your comments lie, you're doing it wrong.

<comment><USER53> Not a lot of team experience I'm guessing?

</comment></comment></comment></comment><comment><USER55> There's an Atom theme called Hacking the Kernel that does some minimal bolding of keywords but is otherwise monochrome. I use it at times but never thought about whether I was faster with it.

</comment><comment><USER56> let's have a version for emacs !

</comment><comment><USER57> "Reading code is simply more straightforward, smoother and less jumpy. I get the overarching context faster and with less hassle."

This makes me think the author might be one of _those people who can not superficially scan text very efficiently_ and resort to.. well, just reading it, word by word. (Is there a term for this phenomenon?)

<comment><USER58> Yeah, syntax highlighting definitely makes things easier to scan and quickly process a file in my head.

It also helps with instantly seeing if you are missing a "/' (or used the wrong one to terminate a string variable), as the rest of the line/file has the wrong colours.</comment></comment>


How I lost 30 pounds in 2010. A simple guide for overweight hackers like me - <AUTHOR> http://zippykid.com/blog/2010/12/how-i-lost-30lbs-in-2010-a-weight-loss-guide-for-developers/ http://zippykid.com/blog/2010/12/how-i-lost-30lbs-in-2010-a-weight-loss-guide-for-developers/<p>Having lost this weight has helped me considerably as an entrepreneur as well. I feel more confident, I'm more energetic, and I'm more focused. <comment><USER2> It's really simple to lose weight. It's really simple to be in shape. It's really simple, but it isn't free.

2010 was a year for me that saw rapid weight gain - something I never had in my life. My gut was getting big - almost certainly a result of too much beer. I decided to do something about it in November.

For all the skeptics out there, please don't shoot me down on this! It works, and it's amazing to me.

I started P90X in early November. 5'11, 183/4 lbs. Within two weeks, I was down to 175 or so, at end of 30 days, I was sitting at 169/170. Now, over 50 days into it, I'm still at that weight, but I have substantially changed my appearance. I'm highly confident my fat percentage has dropped substantially and my muscle gain is impossible to ignore (for anyone who has seen pics).

P90X takes all the elements found in the article posted, but makes it very simple to do.

You get the diet (which, fwiw, I do not follow). You get the stretching (and yoga, which is amazing). You get the weight training (you need dumbbells and a pull-up bar) You get it fed to you a day at a time. All you have to do is show up.

I've taken before pictures - and taken pictures at the end of every week. I was going to wait until I completed the program and then post something here on HN about it - not only for the physical changes, mental changes, etc... but mostly for the benefit of doing something, with intense focus, for an hour or so every day, and watch the results - be it physical fitness, or more appropriately for this audience, starting or improving a business. I think the principles apply across the board.

I'm confident if a person went to the gym 6 or 7 days a week, cut out the bad crap from their diet then they would see the same or better results than what I've received with P90X. But P90X makes it stupid-simple to do. You are guided every step of the way. You just do it and don't have to waste any time thinking about what to do today or the next day. It's not rocket science - it's good hard work that anyone without underlying physical issues can ease into. To me, it is almost instant gratification; the results come quickly.

</comment><comment><USER3> This actually flys in the face of my recent published research, which recommends low-glycemic impact diets that do not count calories. I largely agree with you that aerobic exercise is overrated for weight loss, but we should be explicit in that the goal is not to lose any kind of body mass, but to lose fat. The best ways to maintain muscle mass while losing body weight is to lift weights and and eat adequite protein (also backed by up by research, though I don't have the links handy). One of the nice features of low-glycemic diets, like the Atkins diet, is that you get a lot of protein and thus maintain more muscle mass.

<comment><AUTHOR> frankc, I agree with you too. My point with the post was to show what's possible, and more importantly, to not sweat the small stuff, like what's low glycemic, or whatever. The simplest rule, is eat less. move more.

As I said in the post, eventually, you'll want to talk to a nutrionist, eating less can easily be changed into "starvation".. which will get you to lose weight, but you're not going to be healthy.

I personally don't know what's high glycemic, or low glycemic, all I know is I feel better, I'm stronger than I used to be (thanks to training and exercise with Steve), and i'm only eating items that have ingredients I can pronounce :).

</comment></comment><comment><USER4> I can echo a lot of this, having lost 30 pounds as well, though that was through the Ideal Protein diet. But the info about how to maintain weight after the initial fat burn portion is invaluable. Cut back carbs and sugars (it's amazing how many things have sugar...), processed grains, etc. For this diet, lots of veggies, lots of protein (un-fried).

Absolutely agree about the energeticness, focus, and confidence. Went from 215 to 180, and it's a huge difference.

Good post!

<comment><AUTHOR> thanks. Steve, my trainer, motivator guy, is getting me to eat more protein as well now. Really getting into the nutritional aspect of things now.

</comment></comment><comment><USER5> The Shangri-La Diet has worked wonders for me. I lost 24.5 pounds in 2010. I used oil. It's like instant willpower.

</comment><comment><USER6> What about skinny ... umm... wannabe hackers like me? I am not underweight, my weight is fine according to my height. But I just look too skinny. Any of you have faced that problem? Any suggestions as to what I can do to gain some respectable muscle.

<comment><USER7> Weight training at the gym. Hire a trainer to get you started on proper technique, bad form lead to injury. Also will have to force yourself to eat a lot more!</comment></comment>


An artificial glacier growing in the desert (2017) - <AUTHOR> http://edition.cnn.com/style/article/ice-stupa-sonam-wangchuk/index.html <comment><USER2> Not really sure this counts as "an unprecedented icy structure"; there's been a semi-sober alaskan ice climber, part of the "Alaskan Alpine Club" building these every winter out of sprinkler parts and an old garden hose, appears to be the same scale:

[http://alaskanalpineclub.org/old/IceTower/IceTowers.html](http://alaskanalpineclub.org/old/IceTower/IceTowers.html)

</comment><comment><USER3> Seems like one of the best low technologies I have seen so far

<comment><USER4> This is IMHO very much an example of "permaculture"-ish thinking, at least in the original spirit of the philosophy.*

Studying and leveraging natural dynamics (e.g. the role the glaciers previously played), paying attention to energetics (in the physical sense), avoiding waste by clever system design (e.g. harvesting the gravitational potential energy upstream that would otherwise be dissipated, volume/surface ratio, etc).

For those who like this kind of thing, ref. also the returns on swaling dry areas, Geoff Lawton's "Greening the Desert" work, Alan Savory's surprising conclusions about the restorative value of animals in Africa, etc.

Anyhow, what a great story. Thanks to the OP for the point-out!

* I use original in terms of the older original work by Bill Mollison and Masanobu Fukuoka, who had a more general systems take on ethics. More modern interpretations tend to be more political and also come to some more limiting conclusions.

ETA examples and fix grammar

</comment></comment><comment><USER5> > But a cone has more desirable properties: "It has minimal exposed surface > area for the volume of water it contains."

That would actually be a sphere. Cones are actually not that great, especially if they're tall.

<comment><USER6> I'm not sure that's true. I think they're talking about how much they're in the Sun and I think I can construct a single counter example, r=2 h=1 for the cone, r=1 for the sphere should be the same volume. For light at 90 degrees the area in the sun would be 2m^2 for the cone and pi m^2 for the sphere.

That's not a perfect calculation so I don't know where the limits are here but I don't think they're talking strictly about surface area.

</comment></comment><comment><USER7> Does anybody know what has happened with this in the last two years? I'm curious if they are successfully being used.

<comment><USER8> At the stated 150,000$ to irrigate 25 acres this is in no way viable.

At a guess this is generally viewed locally as rather pointless as you can store far more water with a simple earthen dam. Basically, the hard part is having water in the first place not storage.

In terms of efficiency, spraying water into dry winter air likely resulted in quite a lot of evaporation. Further 150,000 liters of water sounds like a lot but it's about 1.5 inch of water across an acre. Which is why you would need dozens if not hundreds of them per farm.

</comment></comment><comment><USER9> Wow, a snow lance powered by melting snow. It seems weird to me that conditions should remain favorable long enough to build up a lot of ice.

<comment><USER10> The reason this works is that it is only filling the gap between the end of winter and when the glacier melt catches up. So you freeze water over the winter, and then it melts in the spring to feed your newly planted crops. By late spring the ice is all melted but that's fine because your normal source of water is active again.</comment></comment>


People love the idea of 20-minute neighbourhoods - <AUTHOR> https://theconversation.com/people-love-the-idea-of-20-minute-neighbourhoods-so-why-isnt-it-top-of-the-agenda-131193 <comment><USER2> Detroit is experimenting with the twenty minute neighborhood concept. They've created walkways, closed streets and redone parks. Right now I think they've targeted six prospective neighborhoods.

Unfortunately the city's planning director has just been hired away by Chicago that wants to copy what Detroit is doing.

[https://archpaper.com/2019/07/detroit-planning- development-d...](https://archpaper.com/2019/07/detroit-planning-development- director-maurice-cox-chicago/)</comment>


Breaking down Barriers for a more Powerful platform - <AUTHOR> http://techblog.appnexus.com/2013/api-rearchitecture-series-breaking-down-barriers-for-more-powerful-platform/

<comment><USER2> I wonder what parts of PHP (if any) they're re-writing in C or if it's purely application-code that they've ported to C.

<comment><AUTHOR> We created an extension called "json-stream-encode" which doesn't encode JSON in a single large block, as the standard PHP code. For large JSONs this is a large memory improvement.

</comment></comment><comment><USER3> Why not use hip hop?</comment>


L-99: Ninety-Nine Lisp Problems - <AUTHOR> http://www.ic.unicamp.br/~meidanis/courses/mc336/2006s2/funcional/L-99_Ninety-Nine_Lisp_Problems.html <comment><USER2> This list was originally written for Prolog, and it looks like not all of them have been fully translated. Here are a few notes to help read it:

In e.g. "Write a predicate hbal-tree/2 to construct...", hbal-tree/2 means a predicate with two values. Lisp's cons would be cons/3, cons(Atom, List, Result). In Prolog, you can leave other arguments (not just the "result") as a variable and will often serve as a generator for all possible values. hbal- tree/2 would be used as hbal-tree(T, R). If T was defined and R wasn't, it would return a balanced version in R. With R defined but not T, it would generate all permutations of trees that balance to R (perhaps very slowly). T and R both defined would check if R is a valid balanced version of T.

Also, Prolog syntax uses "name(arg1, arg2)." rather than "(name arg1 arg2)".

</comment><comment><USER3> If you havin' Lisp problems I feel bad for you son... You got 99 problems, but parens ain't one...

J/K - This actually looks like a great start - like when I started Scheming for the first time.

</comment><comment><USER4> This is in the webpage of a professor at my university. His class was entertaining, and he is clearly really smart, but he scared off most of the students by asking them questions about the material, and teaching only the minimum necessary.

These problems are really cool, and seem to cover a lot of ground from silly list manipulation techniques to dynamic programming.</comment>


shouldireplyall.com - <AUTHOR> http://www.shouldireplyall.com

<comment><USER2> What's the idea behind this ?

<comment><USER3> In the spirit of <http://hasthelargehadroncolliderdestroyedtheworldyet.com/> and <http://www.shouldiusecomicsans.com/> or the (defunct?) "is it christmas yet" page, and maybe <http://www.downforeveryoneorjustme.com/></comment></comment>


Bringing the heavens down to earth: the early history of telescopes - <AUTHOR> https://thonyc.wordpress.com/2017/05/11/bringing-the-heavens-down-to-earth/ <comment><USER2> Interesting article.

If you have any interest whatsoever in the history of science, you should check out the blog. It is simply marvelous.</comment>


The Real Reason We'll Miss Steve Jobs - <AUTHOR> http://thetudu.wordpress.com/2011/10/12/the-real-reason-well-miss-steve-jobs/

<comment><USER2> We're not going to miss him if you guys don't stop posting stuff about him. In fact, personally, I'm getting tired of the man.

<comment><USER3> I'm not tired of Steve Jobs, but the idealized adulation is not only off- putting, but also opposite of what Jobs valued.

</comment></comment><comment><AUTHOR> sorry it's so long!

<comment><USER4> Not long enough! I can't speak for anyone else, but you've eloquently described the main reason why I found Steve Jobs so inspiring. If you've read _The Talent Code_ , I am definitely reminded of the chapters on Ignition, where the author Daniel Coyle writes about the conditions under which people are inspired and motivated.</comment></comment>


158,616,176 Reasons Why Google Chrome OS Won't Fail - <AUTHOR> http://siliconangle.net/ver2/2009/11/20/158616176-reasons-why-google-chrome-os-wont-fail/

<comment><USER2> Does anyone else think that Twitter-based comment sections are just plain broken:

158,616,176 reasons why Google Chrome OS won't fail @SiliconANGLE. <http://bit.ly/7TDjDp>

158,616,176 reasons why Google Chrome OS won't fail @SiliconANGLE. <http://bit.ly/7TDjDp>

158,616,176 reasons why Google Chrome OS won't fail @SiliconANGLE. <http://bit.ly/7TDjDp>

... ad infinitum

<comment><AUTHOR> It's a P2 based theme.

It operates just like Google reader. j/k go up and down the page, hit r to reply to a post. No Twitter needed.

Twitter comments are pulled in via Backtype.</comment></comment>


Lesion network localization of free will - <AUTHOR> http://www.pnas.org/content/early/2018/09/25/1814117115 <comment><USER2> Can anyone spare $10 so I can read it?

<comment><AUTHOR> [https://sci-hub.tw/https://doi.org/10.1073/pnas.1814117115](https://sci- hub.tw/https://doi.org/10.1073/pnas.1814117115)</comment></comment>


Atari is opening eight video game hotels across the U.S. - <AUTHOR> https://www.inputmag.com/gaming/atari-is-opening-eight-video-game-hotels-across-the-us <comment><USER2> Atari doesn't really exist. It's just a brand name now.

</comment><comment><USER3> I was going to ask where they were going to get all the money to fund this considering they're having trouble paying people for much smaller scale projects such as the Ataribox but then I realized the same thing the executives realized a long time ago. They have a name and can abuse it.

Either that or it's another classic Atari "unrealistic at best" announcement. The pre-emptive design is cool though.

<comment><AUTHOR> I hope they get quality partners to make this project sustainable.

</comment></comment><comment><USER4> Hopefully they have gambling

<comment><USER5> I think that's the plan. Apparently that's Atari's new business model:

 _On January 21, 2013, the four related companies Atari, Atari Interactive, Humongous, and California US Holdings filed for Chapter 11 bankruptcy in the United States Bankruptcy Court for the Southern District of New York.[48] All three Ataris emerged from bankruptcy one year later and the entering of the social casino gaming industry with Atari Casino.[49] Frederic Chesnais, who now heads all three companies, stated that their entire operations consist of a staff of 10 people.[50]

On June 22, 2014, Atari announced a new corporate strategy that would include a focus on "new audiences", specifically "LGBT, social casinos, real-money gambling, and YouTube"._

[https://en.wikipedia.org/wiki/Atari#Infogrames/Atari,_SA_(20...](https://en.wikipedia.org/wiki/Atari#Infogrames/Atari,_SA_\(2001%E2%80%93present\))</comment></comment>


The Most Important Software Innovations - <AUTHOR> https://dwheeler.com/innovation/innovation.html?source=post_page-----14d878a48f55<comment></comment><comment></comment><comment>---- </comment><comment><USER2> In our university course on the Philosophy of Science we were taught the difference between _innovation_ and _invention_ , and it seems like the recent trend is to substitute one for the other. I find it to muddy the discussion a great deal. This paper actually describes inventions, i.e. totally novel ideas (at least not previously well-known, so reinvention). Innovation, on the other hand, requires introduction to novel ideas _to market_ , the novelty being relative to what was available commercially.

So in our high tech business we always talk about innovations, and it's totally normal for what we claim to be an innovation to be known in academic circles for decades: it's (relative) practicality that matters. In this sense, Babbage's Engine was totally not an innovation, yet an important invention.

<comment><USER3> > the difference between innovation and invention

That seems an odd thing to learn about in philosophy of science! Your use of the terms is new to me, and doesn't seem at all how the words are generally used. So, I don't buy your description of what the paper "actually" does. That's nice if the meanings you were taught help you think about things, but I don't think that makes your meanings right and other meanings confused or wrong. And why bring money into it? ("available commercially").

There's a part near the end of the webpage that I think bears on what you wrote: (the rest of my comment is a quote)

It's okay to not be innovative

There's nothing wrong with a technology or product not being innovative. Indeed, a technology or product should primarily be measured as whether or not it solves real world problems (without causing more problems than it solves). Linus Torvalds, creator of the Linux kernel, has stated that a pet peeve of his is that "there is a great deal of talk about 'innovation' and 'vision.' People want to hear about the one big idea that changes the world, but that's not how the world works. It's not about visionary ideas; it's about lots of good ideas which do not seem world-changing at the time, but which turn out to be great after lots of sweat and work have been applied." Instead, the Linux kernel (which has been wildly successful) is the result of lots of small ideas contributed by lots of people over a long time.

The focus of this paper is innovation, not utility. Do not confuse innovation with utility.

<comment><USER2> Okay, but then: what is the difference between innovation and invention, from your understanding of the common word usage?</comment></comment></comment>


Ask HN: Do you know of a good personalized concert listing service? - <AUTHOR>

I'm imagining something like pandora where I can enter in an artist and a zip code and it will recommend nearby concerts. What do people use for this now? <comment><USER2> <http://www.songkick.com/> (YC07) provides something similar to what you describe, though with a slightly different UX.

It lets you import your listenings (bands/artists) from last.fm, pandora & itunes and creates a personalised calendar - location aware - of nearby gigs.

I love it :)

<comment><AUTHOR> This looks pretty promising. I guess "there's a YC for that", hehe.

</comment></comment><comment><USER3> Reverbnation is especially good for lesser known acts. Last.fm has some concert listing service. Jambase is a pretty decent iPhone app that takes your location and finds nearby concerts.

</comment><comment><USER4> I'd love to see something like this that handled local bands, with information, press, reviews all consolidated.

Yelp for local music, maybe.

</comment><comment><USER5> Try seatgeek.com</comment>


Designing a Choke-free Hot Dog - <AUTHOR> http://www.fastcompany.com/1564477/oh-i-wish-i-weren-t-an-oscar-meyer-weiner?partner=homepage_newsletter <comment><USER2> There's a good article on stats.org that examines the statistics and concludes that this whole thing, as with many public health stories, is overblown: <http://stats.org/stories/2010/choking_hot_dog_feb23_10.html>

The key finding: "it is reasonable to assume, based on this data, that the number of children who die from choking on hot dogs is somewhere between 1.5 and 5 per year in the United States. The risk is overwhelmingly to children aged three and under, based on the natural tendency of infants to put stuff in their mouths. While each death is a terrible tragedy, it is not clear that this is something that this amounts to a "significant and unacceptable choking hazard" to the public warranting recall procedures, product changes and more warnings than already exist. The problem with the American Academy of Pediatrics paper is that it uses percentages without the context of frequency, so that you end up comparing percentage fatalities for widely different time periods without any indication of the actual number of deaths."

<comment><USER3> I'd be much more interested to know how many parents of children that have died from choking were trained in CPR techniques. I would be willing to bet that almost none of them were. Having a one year old and having had to clear his airway once myself and having watched my wife do it twice, I find it appalling that more people don't bother with this type of training. It doesn't take long, isn't expensive, and can save not only the life of your own child but the life of someone else as well. Even with the appropriate training you won't always be successful and a 911 call may be necessary, but being able to try to clear the airway while you wait several minutes for responders to arrive can mean the difference between life, death, and brain damage from lack of oxygen.

</comment></comment><comment><USER4> I feel like this post, the essay on the phrase "it turns out," and the post on eating slower to reduce caloric intake, all showed up at the same time for a reason.

"It turns out, eating slower will help you avoid choking on hot dogs, too."

</comment><comment><USER5> How about parents just not be idiots and cut the hot dog up into small pieces for their children? The fact this is even an issue just shows how much common sense we've lost as a species. It's much better for parents to have the burden of responsibility than relying on the entire food industry to cater to their needs. Personally I don't think the food industry should be obligated to help parents be dumber and less engaged in their children's safety. If someone makes a "kid safe hotdog" will people buy it? Absolutely. My concern is it makes parents less aware of other risks of choking if they have an expectation that any food item for children has no choking risks. That is impossible. If your child scarfs down food without chewing they can choke on almost anything. As a parent it's your obligation and responsibility to prevent it.

</comment><comment><USER6> Turn them into meat-based cephalopods with Octodog

<http://www.octodog.net/>

</comment><comment><USER7> Given that the rate of deaths atributed to diet-related conditions is several orders of magnitude higher, I think this is trying to optimize for the wrong metric.

</comment><comment><USER8> How about jumbo franks? I can't see a 4 yr old could swallow without chewing first, at which point, it is chewed into smaller bits and thus no choking.

Alternately, an accordion-like zig-zag groove lengthwise (like a line of ketchup/mustard) could ensure a piece that was lodged was not wider than each groove, and thus would be unstable enough to not block the airway.

</comment><comment><USER9> Given that the root cause of nearly all the world's problems is over- population, we should recognize that we need to build _more_ opportunities for "Darwinian Correction" into society. So leave the Hot Dog alone, and leave the Golden Gate Bridge alone. :-)

</comment><comment><USER10> All jokes aside, I didn't realize that there was actually a hot dog choking problem. I can't say I wouldn't give a "choke free" hot dog a try though. Eating a coil of meat could be fun.

<comment><USER11> The only student I know to have died on campus during my K-12 education was a middle schooler who choked on a hot dog in the cafeteria.

</comment></comment><comment><USER12> I feel like this is another attempt of humans to avoid natural selection.

<comment><USER12> Now I feel like a dick, re: the post above me.</comment></comment>


Show HN: Analyse hops taken by an email to reach you - <AUTHOR> https://emailtrail.herokuapp.com/ <comment><AUTHOR> I wanted to get familiar with vue.js so I made this simple web app that analyses hops taken by an email to reach you. [https://github.com/akshayKMR/emailtrail- webapp](https://github.com/akshayKMR/emailtrail-webapp)

It shows hostnames, protocol used, timestamp, delay of the servers involved in chronological order.

The extraction and processing of all this info is actually done on the server, using a python module I made earlier [https://github.com/akshayKMR/emailtrail](https://github.com/akshayKMR/emailtrail)

The frontend calls the api server and then presents the analysis in a way that is easy to understand (converted to your local time zone, presentation etc.)

Similar tools are :-

MessageHeader in G suite toolbox: [https://toolbox.googleapps.com/apps/messageheader/](https://toolbox.googleapps.com/apps/messageheader/)

Message Header Analyzer by Microsoft: [https://testconnectivity.microsoft.com/MHA/Pages/mha.aspx](https://testconnectivity.microsoft.com/MHA/Pages/mha.aspx)

Cheers!</comment>


New England Lost Ski Areas Project - <AUTHOR> http://www.nelsap.org/ <comment><USER2> I just now realized I owe nelsap.org a debt of gratitude. I _stumbled upon_ this site back in 2004/5 and, for some reason, was inspired to ride my bike down Neutaconkanut Hill in Providence. The "trail" was pretty much non- existent and that trip wasn't particularly fun, but it did give me a taste of what mountain biking _could_ be like. Afterwards, I decided to explore other biking trails in the area (Lincoln Woods, Burlingame, Weetamoo Woods, etc.) and I've been mountain biking regularly ever since.

</comment><comment><USER3> I remember skiing Prospect Hill as a teenager. In the wintertime prior to 1990 it was possible to leave work at Polaroid or one of the other big office complexes along Rte 128 in Waltham and be booting up at the base of Prospect Hill 15 minutes later. Just a few slopes and a WW II-era T-bar, but still ...

[http://www.nelsap.org/ma/prospecthill.html](http://www.nelsap.org/ma/prospecthill.html)

ETA: A quote from a former employee during its last year of operation:

 _I was part of the ski school management team in Prospect Mountain 's last year of operations, 1990. They had been out of business for two or three years before this season. A man named "Bill Krikorian" had been trying to reopen Mt. Watatic in Ashby, MA. The town fathers saw through him and would not allow him the permits. He leased Prospect Hill from the MDC, but three problems arose: 1. They would not give him a liquor license for the premises 2. There was virtually no natural snow that winter 3. His "cannon-style" snow gun literally blew up on the hill in mid-December._

</comment><comment><USER4> This is one of my favorite sites on the internet. Having grown up skiing at Ascutney, one of the largest ski areas to ever die, seeing it and other CT river valley areas such as Mt Tom memorialized here is very meaningful to me.

<comment><USER5> Maple Valley still has infrastructure in place though I'm sure it's rotting away. I drive by there often when I'm back in 05301-land and it's haunting to behold. I think it's been for sale[1] for ... decades ... hard to imagine small hills like this ever being economically viable again. Even when I was a kid my peers chose to break their arms and legs at the more distant (and likewise defunct) Hogback Mountain.

[1] [https://youtu.be/eb9iZY_wCwc](https://youtu.be/eb9iZY_wCwc)

<comment><USER6> That video brings me back. I learned to ski and snowboard at Maple Valley. My elementary school had a program where you could get a seasons pass and go there on Wednesday's and Fridays. In high school we ended up at Okemo which wasn't bad but never had the charm of Maple Valley.

</comment></comment></comment><comment><USER7> Nice! A blast from the past. This is a classic "old internet" site that still works fine and appears to be maintained by someone.

<comment><USER3> _< meta name="GENERATOR" content="Microsoft FrontPage 6.0">_

Guess he's manually updating it now ... or running FrontPage on an old PC.

Is it possible to run FrontPage on a newer PC?

</comment></comment><comment><USER8> A friend is working on providing access to abandoned ski areas in the rockies, how timely, and what a relic!

<comment><USER9> Does he/she have a website or a forum? I think I know folks who would be interested in this.

Unless they don't want the publicity. I'm not that popular though. :-)

<comment><USER10> Here are some in Colorado. Most ski resorts (open and closed) in Colorado are on public land.

[http://www.coloradoskihistory.com/lostresorts.html](http://www.coloradoskihistory.com/lostresorts.html)

<comment><USER11> Great website! Took my first and only ski lesson at Broadmoor. They had an alpine slide as well at one point. Only time I've skied as I tried snowboarding the next time and never looked back (those scotch-guarded jncos kids wore... ugh ;)

</comment></comment></comment></comment><comment><USER12> Crazy, I never would have guess some of these I live very near. thanks for this.

<comment><USER13> There used to be a huge number of these rope tow and a hill or maybe a chairlift and a small mountain areas in New England. But the business really became go big or go home given factors like snowmaking and modern chairlifts. There are a few survivors but not many.

<comment><USER14> Even some of the bigger mountains are struggling. Saddleback, in Rangeley, ME has shut down, and Sugarloaf, also in northwest ME, is not doing that great.

<comment><USER15> Ugh I HATED Sugarloaf. Got my ticket cut at 9 am for doing a helicopter on a small jump on the side of the trail. I never went back. They claimed to be the family resort and would hunt teenagers down, this was a few decades ago. I never was even warned at any other resort in my life and never had my ticket cut.

</comment></comment></comment></comment><comment><USER3> Easy to get lost in this site. Many unusual stories, including the "Private Property No Trespassing Keep Out Ski Area" ([http://www.nelsap.org/ma/private.html](http://www.nelsap.org/ma/private.html)):

 _I actually once owned the farm that included the hill that the ski slope was on (long before I bought the property though). I was there with Peter Kallander, its owner operator, on what was likely the last occasion the rope tow was operational on that site. I think it was in the fall of 1983. Peter was the guy that built the lift and owned several hundred acres including the mountain.

Peter was a pilot of wide-body jets for Delta Airlines. He had a small private airport on the site (with grass north-south and east-west runways), and the run-out for the ski slope ran across the east-west runway over toward Stoneybrook golf course a few hundred yards away. Peter built that golf course with his dad when he was younger on another part of the property. It was a small 9 hole par 3, which is the golf equivalent of his small ski slope. They sold the golf course at some point I believe. Here's the Airline Owners and Passengers Association link to the private air strip, which is still in operation: [http://www.aopa.org/airports/09MA](http://www.aopa.org/airports/09MA).

... Kallander Hill, which it should be referred-to as, was north facing, and had two purposes. In the summer and the fall, Peter told me if the conditions were right, he would take his plane up the hill and take off. I never saw him take off on that side of the hill because my property was a few hundred yards south and west, and the ski slope faced pretty much due north. I did, however, help Peter clear the west side of the mountain in 1983. At that point he hadn't been operating the lift in the winter for a number of years. The lift was an old farm vehicle with its drive-train intact. I did see it, and I think we may have fired it up that day to see if it was still working properly. He showed me how it operated because he knew I was a life-long skier and had learned at a place like this in Dudley Mass near Nichols College, and at Mount Tom and Maple Valley. The rope was attached to one of the back wheels with its counterpart at the bottom. He'd just start it up and run it for his kids and their friends. I don't recall him ever saying if it was ever a commercial venture for Peter. It was likely just for his kids and for locals. Peter was a popular guy around town and had been the president of his class in high school.

... We cut down a number of cedars that fall weekend, and I took them to use for a fenced-in paddock that I was going to build off my barn (which I never got around-to). Peter then had a west-facing runway on Kallander Hill that could be used when the winds came from the other direction. I don't believe anyone ever skied on that, although I had planned to try it. My estimate is the hill had a vertical of at least 200-250 feet. On that day Peter gave me the history of the mountain that I note here. Over the next year I did see him take off from the part of the hill we cleared. I think he did that as a practice exercise for having to take off or land in extraordinary conditions. He had a house on Moosehead lake in northern Maine, and would fly up there regularly.

Around the time I moved away a few years later he had purchased an amphibious plane (either a Lake or a Seabee), with a large prop high and behind the cockpit. I did see him taking off and even doing the last part of his landings on the side of the mountain with that and its predecessor plane, sort of like touch and goes. It was an amazing site for me and all the other neighbors that could see it. I think he bought the rear prop plane because there wasn't enough prop clearance on the west facing hillside given the steeper grade.

Peter also told me that the mountain was his retirement, so that would explain why he never tried to develop it into a commercial ski area, as he did with the golf course. He was going to build houses on it. Clearing the portion on my side was likely a part of that strategy. It was pretty steep, and I didn't quite understand how he was planning to do that. I also didn't completely realize how big the mountain was. But he had been seeing it from all angles during his years of flying around it.

About 15 years ago he did that and there must be 60 high-end homes/condos on it now, most with magnificent views. It's a high density development with 2-4 units in each structure. They've also made major topographical changes, taking off at least 100 feet of vertical and creating a large plane for the area where the homes are now._</comment>


Should my startup pay to advertise? A quick calculator - <AUTHOR> http://ad-spend-calculator.qwilr.com/

<comment><USER2> Really nice. It's refreshing to see a post on HN looking at such low level marketing numbers. At the end of the day, these are the most fundamental metrics to growing an online business, and the most important as well.

</comment><comment><USER3> Some simple (but useful) calculations presented in a user friendly package. Nice execution!

This is the sort of post that HN used to be all about, thankyou!

<comment><USER4> Thanks Zizee!

</comment></comment><comment><USER5> interesting work boys</comment>


Javascript Ray Tracer - <AUTHOR> http://fooo.fr/~vjeux/epita/raytracer/raytracer.html

<comment><USER4> Not to toot my own horn too loudly, but I built a realtime (unicode) raytracer in javascript: <https://github.com/trevlovett/AsciiTracer>

<comment><USER5> That's very nice!

And here's yet another JS raytracer: <http://www.syntensity.com/static/raytrace.html>

</comment></comment><comment><USER6> This water WebGL is another cool demo of raytracing on WebGL: <http://madebyevan.com/webgl-water/>

HN comments: <http://news.ycombinator.com/item?id=2884141>

</comment><comment><USER7> I remember the days when ray tracing one frame would take several hours or even days. This just kinda blew my mind a bit.

<comment><USER8> They still do in the VFX industry - 48 hours+ is not uncommon when using Arnold. The difference is, these days, the output is literally physically photo-realistic, with fully-accurate GI lighting and accurate BSDF material interaction. There's normally over 200GB of geometry and over 100GB of textures too :)

<comment><USER7> Interesting. There will always be high-end stuff I guess. The stuff in this demo was probably about as good as my 1989 Amiga 500 was capable of doing in several hours, but done in 20 seconds.

The Amiga was 7mhz. I'm now running quad core i7 2.2ghz, so I'm - what? - <USER2> times faster on one chip? 1200 times faster potentially? 20 seconds now would have been (20*300) = 6000 seconds, close to 2 hours. I guess this shouldn't be all that shocking, but it is.

<comment><USER9> Don't forget that the Amiga demo was probably (optimized) machine code while this demo is in JavaScript. That should add a factor 1000 to 10000 to your estimate. Which sounds correcter, as so much more has happened other than increase of processor frequency.

<comment><USER7> I'm not referring to any particular demo - many of the animations for Amiga were raytraced animations, but no one claimed it was realtime raytracing. I was referring just to the time it took to render a single frame of an animation.

re: the juggler amiga demo - <USER3> <http://home.comcast.net/~erniew/juggler.html>:

The images were generated with a standard Amiga with 512K memory. A ray tracing method was used, which simulates rays of light reflecting within a mathematically defined scene. Each image requires the calculation of 64,000 light rays and takes approximately 1 hour to generate. An image is compressed to about 10K bytes for storage. Images are expanded in less than 30 milliseconds. The Amiga hold and modify mode is employed so that up to 4096 colors can be displayed at one time.

</comment></comment></comment></comment></comment><comment></comment><comment>==

So... 1 hour for each frame... hrm...

</comment><comment><USER9> I had to do a raytracer for a class in university this semester, too bad I didn't think of portals. It's almost a trivial example of recursive raytracing.

The interlacing is a nice touch too. I shuffled an array of pixels and filled it sequentially.

The low speed is unfortunate though. Any plans for using NaCl or Dart?

<comment><AUTHOR> I've not looked much for optimization. First, what you can do is reduce the number of allocations. Instead of creating a new vector3 for each operation, you can do it in place.

Another way to optimize is to make all the ray calculation on the GPU with WebGL shaders. There are a lot of demos of real time small ray tracers. It works well because it's massively parallel and vector operations are hard- wired. The downside is it's harder to debug and you cannot make long operations or it will crash the graphic driver.

<comment><USER10> Try doing a stochastic spread of the rays sent through each pixel, with attenuation based upon differences in the surfaces reached by the rays. I was able to create an adaptive raytracer with 4 test rays per pixel and up to 56 when adaptively needed. The speed gain is quite significant, with visual clarity equal to simpler renders requiring much more time.

</comment></comment></comment><comment><USER11> It's faster than what my Lisp raytracer used to be... I feel ashamed :/

<comment><USER12> Have you tried it on recent hardware?

<comment><USER11> In the same hardware (my 2008 Macbook). It was pretty much non-optimized at any level, and got out of hand when I added refraction and shadows the same day: the inner loops were a mess... I decided to refactor and grew tired before optimizing the loops 8-)

</comment></comment></comment><comment><USER13> How does it work? Nothing happens here. I'm on RHEL 6.2 with FF 3.6.24

<comment><USER14> It worked on Ubuntu 11.10 64 bit, Google Chrome browser, 6.5 year old machine with nVidia 6800. It took 29 seconds. It works on my newer 4 I5 core laptop running Ubuntu 11.10 and using Intel graphics, it took 17 seconds.</comment></comment>


Ticket 10919: "Rails improperly pluralizes 'penis.'  While technically this is a defect, 'enhancement' feels like a more appropriate word to describe this particular patch." - <AUTHOR> http://dev.rubyonrails.org/ticket/10919 <comment><USER2> Strangely enough, they did not accept the patch. Even if the reference was a slightly immature joke, "penis" is a word, after all, and there's no reason not to improve the dictionary.

<comment><AUTHOR> As a rule, the Core Team does not accept Rails Inflector patches for alternative spellings.

</comment></comment><comment><USER3> I am sorry this is just too funny, but i noticed the diff which is aptly named. The last line says CamelToUnderscore, I thought it said CamelToe. Ah Fridays.

</comment><comment><USER4> My favourite bit

+1 to penis enhancement. The current penis behavior is broken, without this it just won't perform properly. My expectation with rails is that I should be able to git it up and have Penis work from first pull all the way through deployment to as many servers as will come online. It may not be broken, but it's definitely badly bent.

</comment><comment><USER5> I wonder who came up with that bug - I mean what application are they developing that needs a database table called penises?

<comment><USER6> Let alone methods like:

has_many :penises

or

has_and_belongs_to_many :penises

I'm sorry I went there, but someone was going to say it.

</comment></comment><comment><USER7> the word penis now appears twice on the front page.

<comment><USER8> Not quite: the other one is 'pen1s'.

<comment><USER9> "The * game", involves a competition among friends, in public, to take turns saying a word at ever increasing volume. First to refuse to say the word because the requisite volume shout would be too mortifying, loses. Good for movie theaters before or during the show.

Also good for 12 year olds.

<comment><USER10> I once attended a lecture in which the lecturer proved that this game is isomorphic to 1-column Nim.</comment></comment></comment></comment>


Secure deletion: a single overwrite will do it - <AUTHOR> http://www.h-online.com/news/Secure-deletion-a-single-overwrite-will-do-it--/112432 <comment><USER2> If you think that you can recover overwritten data, feel free to accept 'The Great Zero Challenge' over at <http://16systems.com/zero/>

"Q. What is this?

A. A challenge to confirm whether or not a professional, established data recovery firm can recover data from a hard drive that has been overwritten with zeros once. We used the 32 year-old Unix dd command using /dev/zero as input to overwrite the drive. [...]"

It's been over a year, and nobody has accepted the challenge yet. Even if there isn't any prize money to win, I'd think that the PR opportunity would be quite enough for any data recovery firm to do it.

So my conclusion is: overwriting once is plenty good enough. You want to overwrite the whole disk though, otherwise the filesystem might leave metadata clues even after the file has been overwritten and unlinked.

<comment><USER3> I'd love to take them on. However they are right it is highly unlikely data can be recovered from that drive. They have only a few folders/files on there it seems leaving little to go on to rebuild the image.

It's not worth it - who needs the PR.. it's worthless when we recover zeroed disks frequently anyway :) If their willing to meet the cost to recover it (I'd do it cheap for £600). We are UK based so I guess they wont.

I dont think you can draw the conclusion that overwriting once is plenty fine based on their conclusions. At least not till: \- Someone has tried their disk (people not _wanting_ too is different from giving it a shot :)) \- Someone trying a more real life example (install an OS, then copy some files in, then DD it).

Considering the second one _has_ been done... :)

They are quite welcome to clone any old OS drive onto a disk and wipe it the same way with DD. Then fly it over to us here and pay the £1000 (ish) cost to recover it. (yes, I know that is a bit outrageous but so is their "challenge").

<comment><USER2> "Considering the second one has been done... :)"

It has? Do you have any source/article you can link to? I'd like to read about it and how it's done, seems to me like you'd need a fair amount of black magic to do it!

<comment><USER3> Well umm no article, rather practical experience :).

As I explained elsewhere we get wiped disks sent to us weekly. Some will have deen blanked with 0's (perhaps one a month). I know of only a few that specifically have had dd used on them - but usually we dont know the story of the disks :) so it could be higher.

We have a SEM that produces an image for our analysts to rebuild with a variety of software packages (Encase Enterprise is one example, and we have several pieces of kit from accessdata. Plus scripts/programs written in house).

With a zeroed disk your looking at minimum £1000 upwards and at least a months work (most of that time spent on the SEM and on one of our clusters processign the data).

<comment><USER2> Excuse the ignorant, but what is SEM short for?

Am I near the truth if I say that you analyze lots of residual bits to see how the drive usually manages to overwrite a one, and then use that to get a fuzzy logic version of the contents of the drive?

<comment><USER3> SEM = Scanning Electron Microscope. Actually when I say "ours" it is jointly owned by a local university who house it and use it when we dont need it. It is specialised (or rather adapted) for HDD scans though.

Yes that kinda explains the proces. It's rather complex and not something I am fully versed in (it not being my field, I process the data) but I will have a shot at explaining. It is possible to analyse the individual bits and predict what the byte was before by seeing what has "moved" (i.e. when you zero a byte or a cluster it simply moves all the 1 bits to zero)

The reason 3 passes defeats is (mostly) is that it deliberately makes sure _every_ bit is moved at least once (for example by writing first FF and then 00 to it). Then a final zeroing pass. Because you write the inverse of the first pass on the second run it ensures every "pin" is moved. Then when you write 0's anything that can be reconstructed is just the random garbage from the second pass.

Anyway; a 120GB disk will produce about 1TB of statistical data from the SEM process - which we can analyse. Once you get a handle on a few "known" files (like the OS ones) you can begin to rebuild unknown protions based on that data. Keyword recognition and file signatures help identify when we succesfully recover something.

You are talking about a weeks processing on 25 node cluster (100 cores).

<comment><USER2> Interesting. Are the known files required to be able to find the data, and how big they have to be?

I'm more or less wondering if a RAID:ed system (with say 64kb big chunks of data) will make it impossible to recover the data.

<comment><USER3> No not needed: but they shortcut the process because the software can get a handle on the data it is given a little better. It just cuts the processing down a bit (never tested it _without_ that kind of searching so I couldnt say how much).

I suspect that a RAID would foil it. For a start we would need to program in the facility to rebuild the RAID (and analyse based on Chunks). I doubt it would work out.

We do quote a price for SEM Raid recovery but it is in the 10's of thousands - a.k.a no thanks :D

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER3> Whilst I am in agreement 35 writes is serious overkill I would dispute that a single write is suitable.

Because of how standard data wiping software works one single pass would leave lots of traces. Perhaps not enough to pull entire documents etc. but with professional reconstruction software quite a lot of date can be recovered (I do this every week in my job). Given that you can guess at the contents of portions of the data (the OS :)) rebuilding is fairly easy.

3 passes is the correct method. One pass writing random data, one pass writing the 2's complement data (these passes ensure every bit has been "moved") then write it out with ) 0's. This ensures nearly untraceable data.

<comment><USER4> I would be inclined to agree with you. I don't think the inconvenience is too great to wipe with three passes just to make sure.

<comment><USER3> I had a bigt discussion about this not very long ago with a client we were destroying some disks for. He had read something along similar lines (one pass is fine).

I agree: 1 pass will tend to hide a lot of stuff. But when I did a quick example and showed him us recovering SAM files (windows password files) from one of his HDD's containing the MSCACHE hashes of several employees on his Windows Domain he was convinced

(edit: of course that was a lucky break - and you do have to crack the passwords too - but we got some contact info and other document segments too :)).

</comment></comment></comment><comment><USER5> I learned a nice trick with OS X's Disk Utility the other day. You can securely delete already-deleted files, after the fact, with this tool. Just select a volume, go to the Erase tab, and click "Erase Free Space..."

</comment><comment><USER6> I'd like to add something to this discussion, though, so others won't feel the pain I once felt some time ago: Sdelete from SysInternals is not safe to use if you are also using EFS (encrypted files on XP Pro / Vista etc.). You will get random corruption of random files on your file system.

SDelete works by using the NT defragmentation API to discover what disk sectors are allocated to a file, so it can write to them directly. However, for whatever reason, in practice this does not work with encrypted (EFS) files. I've looked at the source for sdelete, and I can't see how it's going wrong, but I do know from experience (twice) that it does. The symptoms include blue-screens from corrupted OS files, overwritten documents, etc.

There is further corroboration here:

<http://forum.sysinternals.com/forum_posts.asp?TID=3878>

[http://www.tech- archive.net/Archive/Win2000/microsoft.public...](http://www.tech- archive.net/Archive/Win2000/microsoft.public.win2000.general/2004-10/2258.html)

</comment><comment><USER7> I can kind of believe this is true.

Since I know if someone formats a drive, I can get bits of the data back with strings /dev/sda

but if they dd it with zeros, I can't do that.

I suspect most/all data recovery firms will only deal with the 95%* of easier cases - which involve them basically running some software and not opening the drive. If they are bit better they might attempt the 4.9%* of cases where they have to replace/fix/bypass the drive's firmware. They write off the 0.1%* with dd style problems because they would cost too much for the customer and would need a better class of staff (recovery typically only costs a three-digit sum)

That said it depends, how secure you need your data to be. I think given a budget of $100k (if not less) for one drive this could be possible (i.e. a government, competitor company). For example you could employ people from the company who makes the drives, reprogram the firmware to read the weak magnetic data etc.

* percentages made up, to illustrate the point.

</comment><comment><USER8> Most people forget overwriting on the directory file name holding structures (of the different file systems.) The names of the deleted files stay there for long time. This is more so on FAT and FFS-type directories (guesstimate ~99% of file systems.)

If a prosecutor (or government torturer) can prove the suspect had a file and wiped it out (e.g. _/documents/superillegalfile.txt_ ), I wouldn't like to be in his place.

<comment><USER3> > If a prosecutor (or government torturer) can prove the suspect had a file > and wiped it out (e.g. /documents/superillegalfile.txt), I wouldn't like to > be in his place.

In the UK that would be only sideline evidence, you'd have a hard time getting the CPS (crown prosecution service) to actually prosecute based on that evidence. Recovering the file is 9/10ths of the law :P

(this is our main revenue stream btw - forensics for law enforcement).

<comment><USER8> If [the proof of file name deleted] is backed by other evidence, like ISP logs, CPS will likely hold [the case] valid. In this example, the suspect cant deny it was him instead a housemate or neighbour.

It __always __adds.</comment></comment></comment>


ICANN Sells Out: Will Let TLDs Price Gouge Your Domain - <AUTHOR> https://www.namecheap.com/blog/keep-domain-prices-in-check/ <comment><USER2> What I'm wondering most is if I can buy my domains for the next decade at the current price and avoid some of the potential issues this could cause.

Further, with this thought, I'm wondering if this could be an underhanded means to get extra money by encouraging people to buy domains for many years in advance.

</comment><comment><USER3> The current title here ("ICANN Sells Out: Will Let TLDs Price Gouge Your Domain") is actually _more_ emotionally loaded than the advocacy piece that is the source.</comment>


A New Project To Run Mac OS X Binaries On Linux - <AUTHOR> http://www.phoronix.com/scan.php?page=news_item&px=MTI0Njc <comment><USER2> "Darling also possesses some hope as the project is being worked on for a diploma thesis research project by a university student..."

I would draw the exact opposite conclusion.

</comment><comment><USER3> I've long suspected that having OS X compatibility for Linux would be easier and more useful than Windows compatibility for many people. Due to their similar underpinnings and less legacy stuff in OS X.

Being able to run XCode , Photoshop and Sequel Pro under Linux would certainly make my life easier.

Whether Apple wants to kill this , support it or be indifferent would I suppose depend on whether they feel threatened by Linux on the desktop.

They may even be happy to push people who are unhappy with the "iOSification" of Apple towards Linux in the future.

<comment><USER4> Less legacy, eh? Well, I guess there has been less emphasis on compatibility throughout the years, but NeXTSTEP is older than Windows NT...

<comment><USER5> While I agree with your point, I'm not sure if Windows NT is the correct comparison.

\- Windows 1.0 released November 1985 [1]

\- NextStep 1.0 releaed September 1988 [2]

1\. <http://en.wikipedia.org/wiki/Windows_1.0> 2\. <http://en.wikipedia.org/wiki/NeXTSTEP>

<comment><USER4> I felt NT was an apt comparison because not only is it the basis for the current Windows, it also was their first 32-bit offering, i.e. where stuff got serious. 16-bit Windows was a fairly different beast. 9x was certainly influential but (1) is now dead and (2) came after NT, borrowed lots from NT in the beginning. In light of this, drawing comparisons between 1.0 and Win8 doesn't seem all that appropriate to me.

<comment><USER5> I see where you are coming from.

I guess my hesitation was caused by the assumption that while windows before NT was all 16 bit / 32 bit hybrid; it's API's are still essentially the same which is what you would care about when re-platting an API.

However I will concede my argument like a true gentlemen, as I now realize the ABI is what we should care about. It is almost certainly different even if the API's haven't fluxed that much, and that is what a re-platt project would most care about.

</comment></comment></comment></comment></comment><comment><USER6> An older such project, that already works for numerous use cases (such as running parts of Apple's toolchain) is maloader.

<https://github.com/shinh/maloader>

<comment><USER7> actually, darling is based on maloader. (or, at least, uses parts of its code)

</comment></comment><comment><USER8> I wonder if they could use anything from the Magenta project, an attempt to make an iOS-compatible Linux implementation.

Website: <http://crna.cc/magenta.html> \+ <http://crna.cc/magenta_source.html>

HN discussion: <https://news.ycombinator.com/item?id=4087224>

<comment><USER9> This mostly sits at a higher level than Magenta does -- you don't need kernel support for Foundation/AppKit ABI compatibility.

</comment></comment><comment><USER10> Even if you just focused on console apps, that would be a huge milestone for many folks.

One example: being able to run XCode's command line build tools to generate iOS and Mac builds on our Linux CI boxes without a dedicated Mac build slave would be huge.

</comment><comment><USER11> An interesting research project, but don't hold your breath. Apple's private APIs are going to take a very long time to reverse engineer.

<comment><USER12> Remember how exercised everyone got about Window's private APIs?

<comment><USER11> Reminds me of Yellow Box ([http://www.roughlydrafted.com/RD/RDM.Tech.Q1.07/4B800F78-0F7...](http://www.roughlydrafted.com/RD/RDM.Tech.Q1.07/4B800F78-0F75-455A-9681-F186A4365805.html))

</comment></comment></comment><comment><USER13> this has the potential to progress much faster, and much more completely than WINE, after all OSX is already a POSIX system, so many of the elements are already there.

<comment><USER14> Surely POSIX is the least of it. Mac apps are built on an API that has been much extended since the NeXT days and which even then was a complete wrapper over the underlying Unix OS. Think "copying QT and the whole KDE ecosystem" to get a grasp of the scale of it.

<comment><USER15> And without access to the source!

</comment></comment></comment><comment><USER16> Full support for Photoshop is one of the main things that keep me from being able to be fully linux

<comment><USER17> and OmniGraffle

<comment><USER18> that was the first app i thought of when i saw this. pretty much the only piece of osx software i know of that is that much better than any of the competition.

</comment></comment></comment><comment><USER19> I'd suggest going after source compatibility rather than binaries. It shouldn't be that difficult to check an Xcode project for things incompatible with GNUStep and offer a way to allow ProjectCenter to build binaries on and to other platforms, provided the developer refrained to use Mac-only features. It would be a nice way to collect hard data on what should be considered more important for GNUStep to develop, generating countless other opportunities for students pursuing various degrees.

BTW, is anyone building TextMate for platforms other than OSX?

</comment><comment><USER20> In similar vein, there is cocotron - a framework that implements Cocoa (OpenSTEP), and other things - <http://www.cocotron.org>

</comment><comment><USER21> Darling = darlin' = DARwin on LINux?

<comment><USER22> Yep. (The flashing cursor on the Wiki page gives it away.)

</comment></comment><comment><USER23> Interesting project, but probably runs afoul of a whole passel of Apple IP, and so will get nowhere useful.

</comment><comment><USER24> Ouch. This is not going to be easy. There are some major differences in dylibs versus so's in Linux.

</comment><comment><USER25> How long will this project be relevant considering that apple is planning on switching its processors from intel to some apple unique processor soon? If it is similar to the switch they made when switching to intel, nothing will be compatible.

<comment><USER26> The project will never really be relevant. If you have a serious need to run OS X probably already have OSX and a Mac.

If you need to simultaneously run Linux you install it in a VM.

This project like WINE for the most part will always be a "look what I can do" type project. It's never going to be a rosetta type system designed to bridge ecosystems as the VirtualBox / VMWare bridge already works quite well.

<comment><USER27> Having been disgusted by security holes in Preview and the lack of viable alternatives to Preview/Adobe Reader on OS X, I installed WINE and Foxit Reader on my Macbook Pro. (And used Automator to have it launched as an OS X app.) Google Chrome is ok for a PDF reader much of the time, but there are some really annoying bugs in its PDF functionality. (Which especially impact comics.)

<comment><USER28> Just out of curiosity, which security holes in Preview are you referring to?

<comment><USER27> Google OS X PDF security holes.

<comment><USER29> doesn't seem a situation so dire that it warrants being disgusted to the point of installing wine to me.

[http://cve.mitre.org/cgi- bin/cvekey.cgi?keyword=apple+coregr...](http://cve.mitre.org/cgi- bin/cvekey.cgi?keyword=apple+coregraphics+PDF)

no vulnerabilities in 2012, one in 2011 and two in 2010.

<comment><USER27> Note that Apple doesn't discuss vulnerabilities until after they are patched. Will unpatched ones even show up there?

<comment><USER29> so you are disgusted by something that may or may not exist?

CVE is public and collects both patched and unpatched known vulnerabilities reported by vendors and independent parties.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER30> How lovely would it be to be able to run Adobe products on Linux? ... When Apple decided to fuck over Adobe by killing Flash I though the perfect countermove would be to release AdobeOS. They could crowd source the design from its user base, port their products to Linux and be in a very strong position to compete with OSX and Windows. Now that Apple has abandoned its old users for the mass market there's room for an open source OS for the designers, photographers and developers whose needs are not being met.

</comment><comment><USER31> Photoshop here i come :)

<comment><USER32> It already runs on Linux, thanks to wine: [http://appdb.winehq.org/objectManager.php?sClass=version&...](http://appdb.winehq.org/objectManager.php?sClass=version&iId=25607)</comment></comment>


Starbucks says [homakov] gift card hack was 'fraudulent activity' - <AUTHOR> http://www.bbc.co.uk/news/technology-32844123

<comment><USER2> >"Starbucks should be grateful this bug was found by somebody who worked with it to fix the problem," he added.

This sums up the entire scenario. If he wanted to (although he'd probably be caught) he could have added $1000's of dollars to gift cards, purchased coffee, and resold it for a cheaper rate. Or just used it for infinite free coffee.

He would have solved The Programmer's Dilemna.. Dilemma? That looks wrong....wait...isn't it dilemna? The Mandela Effect strikes me again.... [http://www.dilemna.info/](http://www.dilemna.info/)

Well there went the rest of my day. Back to questioning my existence and multi-dimensional theory.</comment>