EasyOS: An experimental Linux distribution designed from scratch for containers - <AUTHOR> https://easyos.org <comment><USER2> After spending a scant few minutes looking at it, here are the things I like about this project so far:

\- It has a "How and why are we different" page. In the age of "I made a meta package on top of Ubuntu and called it a new OS", it's refreshing to see a Linux distribution come right out and say "here's what we do that separates us from the other 700".

\- It actually is different. Recognizing the nigh-uselessness of separate user accounts (for personal computers), embracing of simple GUI tools over terminal wankery, eschewing of the legacy UNIX file hierarchy.

\- They use the ROX filer, the only file manager for Linux with AppDir support and the centerpiece of the unfortunately long-defunct ROX Desktop.

I'm anxious to find out more.

<comment><USER3> > embracing of simple GUI tools over terminal wankery, eschewing of the legacy > UNIX file hierarchy.

So you're telling me I have no tools and no existing tools are going to work.

Good to get that out in the open, I suppose.

<comment><USER2> God forbid someone not create another Ubuntu derivative that isn't substantively different than every other Linux distro on earth, right?

<comment><USER3> Do you have a point to make about how this is _better_ , or is this change for the sake of change?

<comment><USER2> GUI tools provide significantly better discoverability, for one. The file hierarchy is a mess to put it mildly.

<comment><USER3> Discoverability is only possible if the tool is trivial. Otherwise, you have to hide functionality inside the UI to prevent the creation of an unusable mass of buttons on the GUI's main screen. This also kills fluency, by preventing people from developing muscle memory.

</comment></comment></comment></comment></comment></comment><comment><USER4> Fedora Silverblue is already semi-production ready [https://silverblue.fedoraproject.org](https://silverblue.fedoraproject.org)

[https://fedoramagazine.org/what-is- silverblue/](https://fedoramagazine.org/what-is-silverblue/)

[https://docs.fedoraproject.org/en-US/fedora- silverblue/toolb...](https://docs.fedoraproject.org/en-US/fedora- silverblue/toolbox/)

<comment><USER5> I waved off Silverblue when I learned one must reboot to install packages. Maybe that's not a big deal with a server OS, but having to unlock the full- disk encryption, then restore my desktop and possibly reauth any apps is a bridge too far for me. To say nothing of the heartache involved when you realize that, haha, you didn't know the full package list you needed, so now you are iterating through that process.

</comment></comment><comment><USER6> If everything is a container, does that mean processes have failed?

<comment><USER7> I'd personally say that the concept of users and user groups have failed, at least on systems that have only one user.

<comment><USER8> _> the concept of users and user groups have failed_

Hopefully we won't go back to the Win95/98 era of everything running as single user!

Having services run isolated as their own users is not merely a good security mechanics, it provides for a clear and simple mental model of what is what. A clear permissions barrier that's enforced pretty strictly by the OS.

Moreover we see separate user accounts more and more; even on small devices like phones it makes sense to have, for example, separate "private" and "business" accounts.

 _> does that mean processes have failed?_

Nah, that's too general of a take. There are two more specific failures. First up, people fail to realize the present-day crop of containers are re-inventing processes. "Those who do not learn history, etc, etc."

Secondly, there's a significant failure of certain key features (like IP stack, FS handlers, etc. - in general, NAMESPACES) having been provided almost exclusively in kernel, and thusly requiring either superuser access or complex work-arounds (like FUSE) to manage. Plan 9 did it the right way; on P9, processes == containers.

<comment><USER9> > [...] services run isolated as their own users [...] provides for a clear > and simple mental model [...]

How is that a clear and simple model? Are email or printing _users_?

I think the whole discussion is futile without having a common understanding of what we are talking about. That is:

\- What is a user?

\- What is a group?

\- What is a role?

\- What is an account?

\- What is a service?

\- What is a job?

\- What is a process?

\- What is a container?

\- What is a namespace?

Moreover, you cannot say whether an abstraction is good or bad without knowing what our goals, use cases or target users are.

</comment></comment></comment></comment><comment><USER10> More interesting link, IMO: [https://easyos.org/tech/how-easy- works.html](https://easyos.org/tech/how-easy-works.html)

</comment><comment><USER11> They bought me on "No full install".

I've always been annoyed how Unix systems treat the system as "their property" with the user just being a temporary guest (if not an intruder).

</comment><comment><USER12> TBH, it doesn't look "easy" at all. Plus, why re-inventing the wheel and create yet another containerization system?

<comment><USER13> > why re-inventing the wheel and create yet another containerization system?

Because that is how we make progress. Try different approaches, learn and evolve the ecosystem. That is how we got usable containers in the first place, it's not a new idea and variants have been around for decades. But only now we've seen it evolve in to something usable.

At least they are trying to solve problems. It might not be the best/right solution, hell it might not be an improvement, but if we don't try, we will never learn.

<comment><USER14> As a long time BSD and UNIX user, I disagree with the premise that containers have only recently been usable. Even on Linux, solutions like Proxmox made containers incredibly useful in the pre-LXC / pre-Docker days. And that's discounting FreeBSD jails, Solaris Zones, etc which have existed a lot longer.

If anything, Docker just made containers _trendy_ (they gave more talks at more conversations, etc) when before it was seen as a niche toy compared to virtualisation which few had heard of and fewer had bothered to look into. However being trendy doesn't mean better nor easier to use.

</comment></comment></comment><comment><USER15> OpenSuse has something like this as well. We are seeing more and more OS go in that direction.

[https://en.opensuse.org/Kubic:MicroOS](https://en.opensuse.org/Kubic:MicroOS)

</comment><comment><USER16> > Run as root. This is controversial, however, it is just a different > philosophy. The user runs as administrator (root), apps may optionally run > as user 'spot' or in containers as a "crippled root" or user 'zeus'. The > practical outcome is that you never have to type "sudo" or "su" to run > anything, nor get hung up with file permissions.

Yeah, no thanks.

<comment><USER17> Quite, it's ridiculous.

You have individual account for individual people. Use sudo if you need to elevate permissions - that gets fired over to your syslog server, so if you screw up you know what you did. If someone else screws up, you can see who it was and either fix it, or contact them to find out what they were trying to do (likely both)

<comment><USER18> Based on the language ("the user") and the focus on the GUI, I think this OS is designed more for single-user workstations, rather than multi-user servers. This philosophy of "root by default" is also implemented by Puppy Linux, which was created by the same person.

<comment><USER19> But what would be the benefit of containers on a single-user workstation?

<comment><USER20> From what I can gather skimming instead of using users / groups to isolate processes they are using containers.

It feels like Linux and windows are converging into a single OS

</comment></comment></comment></comment></comment><comment><USER21> Iirc Clear Linux also started as an OS for containers and morphed into a full functioning desktop OS, let's how this goes.

</comment><comment><USER22> Run as root to avoid typing sudo or su? That is like having a handgun without the safety! No thank you!

<comment><USER23> Interestingly I've been told by handgun users that this is currently a popular idea.

<comment><USER2> That's because when you actually need the handgun you'll want it to function as expected when you pull the trigger. A safety is just extra complication that provides no significant benefit if you're already handling the firearm like you're supposed to (which is to say, never pointing it at anything you don't want to destroy). Even without external safeties, modern firearms often do contain internal safeties to ensure that they only go off when the trigger is operated, as opposed to being dropped or something.

</comment></comment></comment><comment><USER24> So, like Qubes OS, but on an application-level isolation?

<comment><USER25> Yes, like qubes but without the security.

<comment><USER18> But also more lightweight, since it doesn't have to run a kernel for each application.

<comment><USER25> Running regular processes is even "more lightweight".

<comment><USER18> A containerized process is a regular process, which just happens to be in a different namespace from the init process.

<comment><USER20> So your definition of a container is simply the namespaces ?

No cgroups ?

<comment><USER18> Eh, for the purpose they're essentially the same thing: just kernel metadata on how to group regular processes.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> I'm interested to know how this improves on Moby and ContainerLinux, both of which are "designed for containers"

</comment><comment><USER26> If EasyOS is specifically for containers, I do not see a container image at the LXC/LXD repository at [https://us.images.linuxcontainers.org/](https://us.images.linuxcontainers.org/)

Even Kali Linux has a container image at [https://us.images.linuxcontainers.org/](https://us.images.linuxcontainers.org/)

edit: If anyone at EasyOS wants to add a container image, see as an example the PR for Kali, [https://github.com/lxc/distrobuilder/pull/179](https://github.com/lxc/distrobuilder/pull/179)

<comment><USER27> it's because EasyOS runs containers, it's the host. Did you read the post ?

<comment><USER28> Asking if the person read the post adds nothing to your comment and is against HN guidelines.</comment></comment></comment>


Remember when, on the internet, no one knew who you were? - <AUTHOR> http://www.kaamranhafeez.com/product/remember-internet-nobody-knew-new-yorker-cartoon/

<comment><AUTHOR> Actually laughed out loud at this.

[http://en.wikipedia.org/wiki/On_the_Internet,_nobody_knows_y...](http://en.wikipedia.org/wiki/On_the_Internet,_nobody_knows_you%27re_a_dog)

<comment><USER2> It really is funny. And it's the same dogs in the new article, but noticeably older.

</comment></comment><comment><USER3> Still no one knows who I am... except dang it I chose poorly in the username department for this</comment>


Show HN: Zero-friction mind mapping - your feedback appreciated - <AUTHOR> http://www.mindmup.com

<comment><AUTHOR> We just pushed out the first public beta of a new mind mapping app with the aim to make it the most productive mind mapping canvas out there. We're planning to properly opensource the code soon. We'd love to hear your feedback on how to improve it.

<comment><USER2> Just wondering what you are using to connect the nodes. Is that all done with kinectjs?

<comment><USER3> Yes, it's all KineticJS, we developed a custom shape for connecting nodes.

<comment><USER2> Thanks. I liked it, Their should be visual buttons to do what the keys do. Unless there are and i'm just blind. It would also be nice is if you double click anywhere it creates a node that you can then connect to another node.</comment></comment></comment></comment>


Ask HN: How Do Techmeme and Google News Cluster Stories? - <AUTHOR> Gabe Rivera's Techmeme site is able to mostly automatically cluster different stories together into one larger "story". And Google News can do the same, fully automatically.
Is there an algorithm particularly well suited for this task, or even better, APIs that can accomplish it? <comment><USER2> The Drupal memetracker module (admittedly pre-beta) uses Python's Pyclust. With Techmeme, linking is definitely part of it, but not all. I found this out when experimenting with Onespot.com a site that aspires to be, but is not yet, white-label memetracking. They cluster _only_ on links, and as a result, have barely any clusters picked up.

Aside: I think Techmeme does a much better job than Google News, it not only clusters, it kind of threads. Techmeme's Gabe Rivera, who jokes so much you can't tell when he's serious, has said that Techmeme "has always been biased," and I sometimes take that to mean not that it's biased in terms of what's "hot" (that's the political interpretation), but that it's biased in terms of what's a cluster.

Techmeme also recently openly added human curation, but that's a separate level of intervention than the clustering we're talking about.

<comment><USER2> Weird. RossM and I were just voted down in one swoop. Normally I wouldn't comment on this, but our posts are so innocuous, I can't help but wonder if there's a bug.

</comment></comment><comment><USER3> Techmeme's algorithm seems to rely on a combination of clustering similar articles and an analysis of the interlinking of various articles. So if you a textual analysis of two articles and discover that both use very similar words -- e.g. both discuss possible merger talks between yahoo and microsoft, they would be placed in a meme together. Also, if an article links to the main article of a meme, odds are it's on the same subject as the main article of the meme. The larger the meme and the more clicks it gets, the higher on the page it rises. And I'm sure there's a number of other factors considered.

Google News seems less sophisticated. I haven't worked as hard at reverse engineering it but it seems to rely solely on clustering.

I wrote the Drupal](http://drupal.org/project/memetracker) Memetracker module last summer as part of Google Summer of Code. At this point it's a usable but fairly simple + unsophisticated memetracker (but patches are highly welcome!).

It relies solely on clustering right now to find memes. To step a bit into machine learning concepts -- to cluster items, you first find the "distance" between different items. Then the clustering algorithm runs through the different items bring together items close to each other until it reaches the distance threshold you've set (i.e. at this point items are too far apart to bring together). This type of clustering is called Hierarchical agglomerative clustering see [http://nlp.stanford.edu/IR- book/html/htmledition/hierarchica...](http://nlp.stanford.edu/IR- book/html/htmledition/hierarchical-agglomerative-clustering-1.html)

Memetracker uses two tools to do the clustering. It uses the MySQL FullText search to find the distance between news articles. Basically it searches every article against every other article which returns a very accurate distance score.

Then for clustering, it uses the PyCluster library as thesethings mentioned.

It uses PyCluster as thesethings mentioned.

</comment><comment><USER4> I've found this tutorial on 4 of the big clustering algoritms helpful:

[http://home.dei.polimi.it/matteucc/Clustering/tutorial_html/...](http://home.dei.polimi.it/matteucc/Clustering/tutorial_html/kmeans.html)

I've always been curious about the subject, and would love to know more. I've admittedly not gotten very far.

</comment><comment><USER5> I experimented a little with this a while back but I didn't get very far. My first assumption was to rely on keywords in the article, and match them with articles from other sources, but I wasn't able to find a good solution to finding those. My suggestion would be to go that route however.</comment>


Doctors face moral injury with business model that interferes with patient care - <AUTHOR> https://www.washingtonpost.com/health/too-many-tests-too-little-time-doctors-say-they-face-moral-injury-because-of-a-business-model-that-interferes-with-patient-care/2020/01/31/c00e9d58-3d3a-11ea-8872-5df698785a4e_story.html <comment><USER2> [https://web.archive.org/web/20200202100803/https://www.washi...](https://web.archive.org/web/20200202100803/https://www.washingtonpost.com/health/too- many-tests-too-little-time-doctors-say-they-face-moral-injury-because-of-a- business-model-that-interferes-with-patient- care/2020/01/31/c00e9d58-3d3a-11ea-8872-5df698785a4e_story.html)</comment>


Founder of Voat,'Censorship-Free' Reddit, Begs Users to Stop Making Death Threat - <AUTHOR> https://motherboard.vice.com/en_us/article/gy4gzy/founder-of-voat-the-censorship-free-reddit-begs-users-to-stop-making-death-threats <comment><USER2> I tried out Voat when it was new. It's a truly creepy place.

<comment><USER3> I'm from the Usenet generation. No user accounts, no way to ban anyone and no way to block anyone, only client-side message filters. The alt.* hierarchy was an early iteration of the "censorship free" concept and this is why we can never speak of Usenet again.

</comment></comment><comment><USER4> It's baffling to me how SV, which created USENET, likely the freest forum for speech in history, now cheers on censorship. Free-thinking and wide exchange of heterodox views strike me as a necessary accompaniment to creativity in the tech world.</comment>


Limiting Concurrency in Node.js - <AUTHOR> http://journal.paul.querna.org/articles/2010/09/04/limiting-concurrency-node-js/ <comment><USER2> This is a really bad idea. Please don't do this in production settings — it'll open you up to really easy denial-of-service attacks. See the classic Slowloris attack for a case study <http://en.wikipedia.org/wiki/Slowloris>

<comment><USER3> No, its not a bad idea.

The article is fundamentally about hitting limited backend resources.

Most application servers shouldn't have to deal with Slowloris attacks. Your load balancers will, your frontend proxy will, but not your application servers.

Letting your application servers transfer this load deeper into your architecture is a bad thing. Its even harder to debug the farther you get away from a web request. The right place to mitigate and detect is in your load balancing or reverse proxying layers -- most production node.js deployments I know about today, still sit behind nginx or apache proxies.

<comment><USER2> The primary example you give in the article is that of a reverse proxy. I have trouble seeing how that equates to an "application server" — but let's put that aside as a difference of perspective. Attacks like Slowloris are very much based on exploiting rate-limiting vulnerabilities in the application layer.

And rate limiting by accepting less — as neat as your Node.js hack is — explicitly opens up Node.js to this vulnerability. The vast majority of load balancers will just pass the request onto Node.js. Not to mention the bizarre nature of a setup where you "push back" to a load balancer sitting in front of a rate limiter?? If your backend resource can only handle connection rates less than what an individual Node.js server can process, then why is there a load balancer in front??

Even just looking at the situations where one has apache/nginx sitting in front of the Node.js server — both of them will happily pass on all Slowloris- like requests. So if you had maxClients set to 100 and an attacker decides to spend 30 minutes sending you the 100 requests, the rest of your users will be shit out of luck during this time period.

The initial approach you took to rate limiting would've prevented such a vulnerability. That is, accept and parse the request before queueing it to access the limited backend resource. But by limiting accept(), slow requests will quite easily bring your system to a halt. You could've avoided this by doing the rate-limiting _after_ the request has been accepted and parsed.

I apologise if I haven't been as clear in my explanation as I could've been — but I would strongly recommend against rate limiting by accepting less. Please don't do it in production. Thank you.</comment></comment></comment>


Lily Programming Language - <AUTHOR> https://github.com/jesserayadkins/lily <comment><USER2> Looks very nice! The templating and server support makes Lily look like a nice "next step" for PHP developers/shops/projects. PHP's "installed everywhere" feature is pretty hard to beat, especially for host-it-yourself projects like Wordpress. I could see such a language catching on for custom, in-house development though; for example to implement microservices.

It's nice to see that there's a trend for such small, (relatively) simple languages to include nice features like first-class functions, convenient lambda notation, sum types, type inference, etc. A few years ago it seemed most new languages were just nitpicking over syntax, without bringing much to the table. I'm glad to see we're leaving the local minimum of "class-based OO with slight different static method mechanism"!

</comment><comment><USER3> Love it. It's like someone used C# a lot and got fed up with how much cermony goes into making a simple sum type and exhaustive handling of the variants.

A pet peeve of mine is the sloppyness by which .NET allocates things like iterators etc. I'd very much like to see zero-cost abstractions in a new language, so that there is no surprise differences between various ways of iterating over collections. I read it only quickly but couldn't find anything related to how enumeration/iteration works under the hood.

<comment><USER4> Actually, no, I've never used C# except for a few minutes and only one time. I have more experience with the syntax of Scala and Rust. Between the two, I found Rust's more appealing. I like that enums serve a single purpose and can't be inherited.

Currently, the best you can get for iteration of Lists and Hashes is to do each-ing the way you'd go about it in Ruby, except that the language currently lacks iterators.

That's not to say I don't want iterators. But I've spent a huge amount of time of this release in making sure that all of the built-in classes get dynaloaded so that memory usage stays low. Now that everything's getting dynaloaded properly, I've less of a problem with doing iterators.

<comment><USER5> Very cool - haven't come across a fun new language for a while. When thinking about iterators, think about coroutines a la Lua. Otherwise you're going to get yield-with-serious-restrictions.

<comment><USER6> When I was adding for each style loops to my language, plastic [1], I just opted for 'you can iterate over any expression that produces a coroutine'. It shouldn't cause any problems a tracing jit can't fix and it's super convenient.

[1] [https://github.com/DanielWaterworth/plastic](https://github.com/DanielWaterworth/plastic)

</comment></comment></comment></comment><comment><USER7> Hello jesse, it is one hell of an inspiring work!

I read from your blog that you are self-taught programmer. Would you mind sharing something about yourself? In particular, I'm interested in area like what do you do for your day job? Is it programming related? What resources did you come across that you find particularly useful in making lily? Anything would be appreciated!

<comment><USER4> Thank you!

As for me, I'm not so sure what to share. I'm not all that exciting. Most of the time I have I spend on Lily. Once in a while I take a break. But I don't get out that often. Lily's nice in that it's a place for me to do something and feel like I make a difference.

My day job? For most of the time that I worked on Lily, I was working part- time at [redacted] as a Maintenance Assistant. My favorite memory was talking shop with a guy there who had some computer knowledge. He asked what I had done and I told him that I had just written a garbage collector and that it was so awesome because it took just a week and it went well.

He answered me saying something to the effect of "Well of course you wrote a good garbage collector, you're Maintenance! That's what you do!" We both had a good laugh at it.

I've never had a job doing software development. I recently left [redacted] to pursue a job in software, but haven't had much luck with it. I'm still holding out hope though.

So, no, my job isn't programming related.

Resources? My strategy is that when I get up to something new, I do all of the research that I can both in the topic itself, as well as how other languages do it. One example would be Exceptions. I didn't know how to do that, so I started researching how Python did it, how Java did them, Ruby, etc. I started thinking of what I wanted, and also what the goal of having them in my language was. I also made sure to search through Haskell, Scala, Rust, and OCaml since they don't use exceptions as much. The point being that I wanted to know what languages do when they tend to not use exceptions.

Rather than starting off as "This is a good idea", I instead approach it as, "I think I would like X. How does that typically get done?"

For resources, the most helpful thing I've read has been ESR's guide on struct packing:

[http://www.catb.org/esr/structure- packing/](http://www.catb.org/esr/structure-packing/)

I'm afraid not much else comes to mind though.

<comment><USER7> Thank you for getting back!

Coding itself is fun, yet it is always interesting to know the guy behind software. It is a tough road in making a new language and you have invested 5 years on it! That determination is something I hope could achieve :)

</comment></comment></comment><comment><USER8> I like some of the things they're doing here but I have a big problem with the language design choice of having multiple valid syntax doing the same thing (e.g. declaring a new class as Cat('Spike'), Cat.new('Spike') or 'Spike' |> Cat.)

I tend to subscribe to the philosophy that language designers should be as strict as possible; choose the "best" syntax for doing something and only allow that unless there's really compelling reasons for alternatives.

<comment><USER9> As stevedonovan says, the 'Spike' |> Cat is probably contrived. The feature probably exists for the sake of things like

       cats.map{|c| c.name} |> print

Which is more readable to me than

       print(cats.map{|c| c.name})

It's a little jaring that it has both Cat(arg) and Cat.new(arg) syntax. But I wouldn't want to judge that without learning about the semantics that it emerges out of.

<comment><USER4> They're the same thing. The first (Cat(arg)) is the same thing as the second (Cat.new(arg)). The reason for the distinction is...umm...I'm still not sure if I want to eventually include classes as values the way that other things are values.

If you're grabbing the constructor as a function, for example, then it's a bit more sensible to use Cat instead of Cat.new. I don't know...it seemed at the time neat to allow a shorthand way of constructing something, but it's kinda wonky.

<comment><USER10> Hey, I just wanted to shout out and say that your reply here is refreshing. I appreciate that you admit that the feature is "kinda wonky" and that you're still looking at and intellectually rationalizing about such things. There's no harm in trying out the various constructor approaches, and then see how it feels in the real world.

This is refreshing from other newish ( _cough_ golang) languages which pick the "wonky" path, but go on to defend it tirelessly. Keep up the good work.

</comment></comment></comment></comment><comment><USER11> The language itself might be quite different, but a few of the design parameters remind me of Wren[1], another language that's on my "try to embed it somewhere" list...

[1]: [https://github.com/munificent/wren](https://github.com/munificent/wren)

</comment><comment><USER12> I wish we had more actually decent statically typed interpreted languages (ones that are easily embeddable, to be precise), this looks very interesting.

And no, AngelScript REALLY does not count as anything interesting. (unless you really really like C++)

<comment><USER13> I started working on an embeddable, byte-compiled dialect of Standard ML after coming to the realization that Lua with types (as I conceive of it) is _extremely_ similar to ML, but I've had to put it on the backburner for now. But, I agree: a typed language that can be used as an embeddable extension/scripting language would be cool.

</comment></comment><comment><USER14> This is an impressive volume of work, especially for one person. How do you stay motivated?

<comment><USER4> First of all, thank you! As for what motivates me, it's a few different things:

* The challenge of it. Lily's one of the few things that I've done where I feel really challenged, and where I can actually make a true difference in it. It gives me something to do, something that I can always be refining and thinking about.

* I -strongly- believe there is a market for this. I want to see this used in game development, used in server development, and used standalone. It's really, really fast scripting language with static typing that brings a unique blend of features that allow for terse code. I want to eventually port this to Arduino, just to say that I did it (Lily boots in 6K with 64-bit pointers, so I think it's possible).

* It's something that I can put at the top of my resume.

* I balance what I do. You might see me spend a week doing plumbing work in lexer, and the next I jump around and patch different places in emitter. I try to not stick in any one area too long. If I do a feature that's difficult and takes a long time, I balance that out with what I term "candy". Candy, in this case, being something that's more immediately visible. I added the constructor shorthand syntax shortly after doing type erasure. Type erasure took a month, and I was a little burned after that. So I balanced it out with a feature that was easier, and had a more visible effect on the language.

* Once a week, I'll go over what I've done, and sort of pat myself on the back, and also think of "Alright, X is done..." and it always goes to "So what's next week?" There's never been a "I'm done". Honestly? The first two years were the hardest, because I didn't have a product that I cared much for. These last three have been easier, because I'm excited about what I'm doing, and there's a more broad spectrum of what I can do.

* You all. No, seriously, I'm finding myself more often talking to different communities about what I've done. I talked to 4chan's /g/ last night. Sometimes I talk to different boards on Reddit, sometimes I try to talk here. I tried Slashdot once, but they didn't bother to even approve the article. Some people give crummy comments, but seeing the new stars, seeing people say they're willing to try the language, that means a lot to me. I really enjoy engaging people when it's over text about what I've done, since I'm comfortable when talking over text and I don't get RL opportunities to talk about what I do hardly ever since I don't know anyone personally RL who does coding for a living, and I'm a pretty stay-to-myself person.

<comment><USER15> Shoot me an email (its in my profile.)

<comment><USER4> I can't seem to find it. Am I missing something?

<comment><USER15> My bad I thought the email field shows publicly. Try viewing again. Should be there now.

</comment></comment></comment></comment></comment><comment><USER16> I really dig the syntax of this language, I must say. Great job. I'm interested in the embeddability of this language. There doesn't seem to be any documentation on the API features, short of looking through the source code. I would be greatly interested in this. Specifically, how to add calls that the Lily code can call, or how to call Lily code from within the interpreter.

<comment><USER4> This is a big problem in the language now. There's no solid apis for working with the frontend (invoking the parser and getting a result). The backend apis are acceptable, except that it's difficult to move values around.

I'm a couple of weeks away from the end of a three month release window, so I've (for the moment) given up on trying to finish the apis. But I'm not far from having them done. A month, maybe?

But after that, I'll write a guide on how to embed Lily, and how to extend it.

For the moment, your best bet if you're creating a standalone package like postgres is to refer to how postgres structures the dynaload table. If you're looking to embed the interpreter, it's awkward and hard.

Once this release cycle ends (July 10, Lily's true 5 year anniversary), it's the first thing on my list. I want to give people a solid api so that other people can start building stuff and not have to worry about me breaking it.

First the api, then the tooling, then documentation. You've got my word on that (and HN won't let me delete this, on top of that).

</comment></comment><comment><USER17> Is Lily a cat?

Anyway, somebody hire this guy. I'm sure someone that can do this is qualified to make web CRUD for lots of money (should he so desire).

<comment><USER4> No, I'm just terrible at making up examples so cats! Cats everywhere!

</comment></comment><comment><USER18> • Have you considered allowing returning multiple values, like in Lua and Go, and also returning errors through them? esp. instead of exceptions? (Though I suspect this could be problematic to match with the sweet |> pipe operator)

• Have you considered supporting Lisp/Scheme-like or Rust-like macros? or Rebol-like DSLs? (though I suppose the latter are probably strongly tied to Rebol's minimalistic syntax)

<comment><USER4> Multiple return values I'm not very interested in. Lily has first-class tuples, and you can return a tuple which I might later add in desugaring for. But multiple return values themselves cause a lot of problems with the internals being pretty set on 0 or 1 return.

Macros are a hard no. DSLs, maybe. For the latter, I could see allowing a pluggable import handler through Lily's options. But I'm reluctant to commit to a yes or no on that at the moment, since I'd rather get over the hump of api not being fully fleshed out.

<comment><USER19> Really glad to hear that about multiple return values. In my mind multiple return values are a solution for the problem of "oh, we haven't invented pattern matching yet", and matching against tuples is soooo much cleaner and more consistent.

</comment></comment></comment><comment><USER20> I love that there's a focus on low memory usage.

<comment><USER4> I owe ESR a lot for writing about struct packing, because that's a large part of how Lily uses so little memory:

[http://www.catb.org/esr/structure- packing/](http://www.catb.org/esr/structure-packing/)

</comment></comment><comment><USER21> I don't like this syntax: "if: {". Using ":" for a one line statement is ok, but in most cases you have to use multiple lines and end up with two identifiers that represent the same thing. Maybe you can make the "{" for multiple lines and ":" for one line. I like to have an indentifier for one line statements, unlike the C approach.

<comment><USER22> I don't like the colon too. Not in Python, not in Nim. It seems jarring to me, something someone fearful of programming might want!

Also, as Larry Wall said: everybody wants the colon, so it is an extremely useful symbol elsewhere! A shame to waste it.

That being said, this is by a long shot the most tasteful little language seen in a long time.

</comment></comment><comment><USER23> Earlier submission: [https://news.ycombinator.com/item?id=11934295](https://news.ycombinator.com/item?id=11934295)

</comment><comment><USER24> I registered #lily on Freenode if you want it.

Impressive work! I think this is the first relatively conventional language that I've gotten really excited about in a while. It's a really nice blend of features and a quality implementation. Definitely going to use it next time I embed a language.

</comment><comment><USER25> Does it support operator overloading? I tried it quickly (`define +(...){...}`) but it didn't work. Maybe there is a notation for it but I couldn't find it in the tutorial.

<comment><USER4> There's no operator overloading. I'm pretty reluctant to add it too, because I've seen it be abused far, far too many times. It has uses, yes, but I'm not very interested in it at the moment.

I won't say absolutely no to it, but if it were to be added, it wouldn't be right now. There's too much api that needs doing right now.

<comment><USER26> I always dreamed of language without operator overloading, but with builtin vectors and matrices. Maybe they could be easily mapped to SIMD instructions. They can have a bit different operator (like in one PEP [1]).

I know that there are intrinsics for C, but they are non portable. Maybe except NaCl [2].

Also is concatenation of strings only done through usage of $"^(variable)" syntax?

[1] [https://www.python.org/dev/peps/pep-0465/](https://www.python.org/dev/peps/pep-0465/)

[2] [https://developer.chrome.com/native- client/reference/pnacl-c...](https://developer.chrome.com/native- client/reference/pnacl-c-cpp-language-support#portable-simd-vectors)

<comment><USER4> It's probably possible, especially with today's compilers being smarter about using those instructions. You're right, in that concat is currently only available through interpolation.

At the moment, I'm not interested in adding vectors or SIMD. It's something I might try further down the line, but not now.

</comment></comment></comment></comment><comment><USER27> This looks pretty cool.

When ever I discover a new language, I try to find out why it was created.

Why did you make Lily? Are you aiming to solve any specific problems, or is it a fun project you wanted to do?

<comment><USER4> Thanks!

I started Lily to be an alternative to PHP. The first commit was adding templating support, and it was a while before the language could be standalone.

I had two requirements when creating and designing Lily:

One, that the language had to be interpreted. I didn't want to offer people an alternative to PHP but then tell them that they would need to repeatedly run compile passes over it. Facebook has HipHop, and it transforms PHP into C++. I wanted a language that could be used like PHP, but having a faster interpreter wasn't enough.

The other requirement was to have a statically-typed language. I believed that a statically-typed language would lend itself to better transformation into a lower-level language. In theory, an llvm frontend might also be writable that took Lily as input.

I wanted Lily to outperform PHP both when interpreted, and when compiled. Over time, the focus broadened once I realized Lily's low memory usage, and how fast the turnaround of the parser is.

<comment><USER27> Awesome, thanks for sharing this!

</comment></comment></comment><comment><USER28> Why did you name it Lily? That's my daughter's name so I'm genuinely curious.

<comment><USER4> I couldn't think of a good name. I had ideas of something like Meteor or Hurricane or Tornado. The first was taken, and I -very- quickly had second thoughts about the other two.

My mom, from time to time, mentioned that she really liked the name Lily. After giving it a lot of thought, I said, "You know, why not go with that?"

I've grown to like it.

<comment><USER29> I think it's a great choice, it's catchy, short, simple and kind. A perfect fit for a programming language, I love it.

</comment></comment></comment><comment><USER30> What can I go out and immediately build in Lily as a "useful" hello world program?

<comment><USER4> That's a good question, and unfortunately one that I'm at a loss as to how to answer right now. I've been focused more on building it, and less on using it. However, I've been looking to change that lately now that the core is becoming more stable and usable.

<comment><USER30> Awesome I would _love_ to get to grips with this and start building.

</comment></comment></comment><comment><USER31> What about polymorphism ?

How does one deal with low coupling? For instance, in PHP I would have used interfaces to decouple collaborators.

<comment><USER4> No traits yet. A few other things need to be done first. Generics need to be name-able, System F, and core api is a more pressing need right now.

My plan is to tackle traits in a few months, so long as everything goes well. But I want the above stuff done first, so that when I do traits I can start thinking about higher kinded types, trait inference, and the like.

</comment></comment><comment><USER32> Is the speed of startup entirely based on the dynaloading, or are there other choices that make it faster than Lua?

</comment><comment><USER28> Why did you name it Lily?

<comment><USER29> Already answered :) [https://news.ycombinator.com/item?id=12017668](https://news.ycombinator.com/item?id=12017668)

</comment></comment><comment><USER33>
        print($"My name is ^(@name).")

I don't understand why anyone would still require special notation for interpolated strings, when we have the awesome and unambiguous string interpolation syntax introduced by Swift (granted, this project was started in 2011, before Swift).

> Reference counting has the benefit of giving consistent, and more easily > measured performance. There's no fear of the garbage collector suddenly > leaping into action right at the worst time, or having to tune the collector > to minimize pauses.

LoL. Refcounting can lead to just as long pauses as GC, if your reference is the last reference to a huge object graph.

<comment><USER34> Swift string interpolation syntax is not more awesome or any less ambiguous than other syntaxes used in other languages

In fact, it's the first time that I've seen interpolation with round parentheses, rather than curly braces (which are used in javascript with $ (es2015 template literals), python, bash with $, ruby with #, groovy with $, etc... )

> LoL. Refcounting can lead to just as long pauses as GC

He didn't say more performant, he said _consistent_

<comment><USER35> > I don't understand why anyone would still require special notation for > interpolated strings, when we have the awesome and unambiguous string > interpolation syntax introduced by Swift

You're both wrong. String interpolation is just a very thin syntactic layer. It's easy enough to write

      printf("Half of %f is: %f5.2", someVal, someVal * 0.5)

instead of

      print("Half of $someVal is: ${someVal * 0.5}")

and a lot easier for a programming language to parse, without needing to feed the parser into the lexer. And you also get easy formatting of the decimal (e.g. %f5.2), whereas string interpolation (in Swift, Apache Groovy, etc) requires a separate call, e.g.

      print("Half of $someVal is: ${format(someVal * 0.5, "%f5.2")}")

<comment><USER36> C#'s new interpolation syntax is a counterexample to your point about easy formatting:

[https://msdn.microsoft.com/en- us/library/dn961160.aspx#Ancho...](https://msdn.microsoft.com/en- us/library/dn961160.aspx#Anchor_1)

        $"Name = {name}, hours = {hours:hh}"
        var s = $"hello, {name}"
        System.IFormattable s = $"Hello, {name}"
        System.FormattableString s = $"Hello, {name}"
        $"{person.Name, 20} is {person.Age:D3} year {(p.Age == 1 ? "" : "s")} old."</comment></comment></comment></comment>


Today's CPU vulnerability: what you need to know - <AUTHOR> https://security.googleblog.com/2018/01/todays-cpu-vulnerability-what-you-need.html <comment><USER2> One large gaping problem with this information is about all the _unpatchable_ android phones out there.

I think it's high time Google revisits how security updates can be rolled out to all phones that want to get them... This would be oodles better than relying on the mercy of hardware manufacturers, who are quite happy to leave older devices running archaic versions of android.

</comment><comment><USER3> [https://news.ycombinator.com/item?id=16065845](https://news.ycombinator.com/item?id=16065845)

<comment><USER4> How is this a dupe? The linked one talks about technical details of the exploit, this one is mostly about consequences and about the Mitigation status of Google products.

<comment><USER3> The one I linked to in my comment was initially the same as this story, but was changed to the Project Zero post after a third submission got marked as a dupe [https://news.ycombinator.com/item?id=16065919](https://news.ycombinator.com/item?id=16065919)</comment></comment></comment>


Best Open Source Games - <AUTHOR> http://worldofgnome.org/best-open-source-games/

<comment><USER2> I discovered Cataclysm: Dark Days Ahead ([http://en.cataclysmdda.com/](http://en.cataclysmdda.com/)) yesterday. It's an extensive open-source rogue-a-like set in a post-apocalyptic wasteland. They've just successfully finished a Kickstarter to pay for one of the developers to work on it full-time.

There's a summary video at [https://www.youtube.com/watch?v=GurxnNDl1AU](https://www.youtube.com/watch?v=GurxnNDl1AU) and an extensive Let's Play at [https://www.youtube.com/playlist?list=PLGe_S5n7MjT1o79KUbduh...](https://www.youtube.com/playlist?list=PLGe_S5n7MjT1o79KUbduhe4xkZ- zUbY7J)</comment>


PayPal told customer her death breached its rules - <AUTHOR> https://www.bbc.com/news/amp/technology-44783779 <comment><USER2> Title is borderline a little clickbaity. There's not a ton of information but from what I gather it seems like the following happened:

She had a PayPal credit card or some other form of revolving account with PayPal (the letter references to "PayPal Credit" agreement) with a balance of just over £3,000.

Dead people can't legally hold credit cards so she "breached" her credit card agreement by dying - that is, an action on her part made the agreement no longer valid. This caused PayPal to close the revolving credit line and the balance to be due in full.

As I understand it her estate would be legally required to pay the balance if it had the funds to do so. (99.9% sure - correct me if I'm wrong)

The letter was sent informing her of the above.

So seems like the letter was "technically correct" (the best kind of correct!) but horribly insensitive to the point of basically being straight up cruel. The other mistake is it should have been addressed to the executor of her estate instead of her personally.

EDIT: Here's the UK version of "PayPal Credit": [https://www.paypal.com/uk/webapps/mpp/paypal-virtual- credit](https://www.paypal.com/uk/webapps/mpp/paypal-virtual-credit) Looks like it's a revolving account without a physical card.

<comment><USER3> > Title is borderline a little clickbaity

What? It's literally what the letter they sent to the dead customer says.

> PayPal told customer her death breached its rules

> You are breach in [rule] because ... you are deceased

<comment><USER2> To me it makes it seem much more outrageous than it is.

The letter is absolutely terrible, horribly insensitive, cruel, and should have never been sent.

However, like I said, it seems "technically correct" with the information we are given.

<comment><USER3> > Dead people can't legally hold credit cards so she "breached" her credit > card agreement by dying

No it is not technically correct.

Death is not a breach of contract in UK law. It causes the contract to end.

<comment><USER4> I thought that's what happened? Or is debt not part of the inheritance in this case and only the savings/property given to the family?

<comment><USER5> > Or is debt not part of the inheritance in this case and only the > savings/property given to the family?

Inheriting debt is virtually unheard of in most of the western world. The estate will pay off what it can, but the rest of the debt is simply wiped out.

The exceptions here are mortgages, which are attached to the house and therefore would transfer to whoever inherits the house, if they accept it. And in the US some states have some kind of exception which transfers medical debt to children in some circumstances, apparently, which strikes me as barbaric.

<comment><USER4> i guess germany isn't part of the western world in that case?

you've got a choice if you've got an inheritance. You either inherit everything that you're eligible to inherit (this includes any outstanding debts) or nothing.

At least that's my understanding of my local law, but I'm neither a lawyer nor did i ever inherit anything.

<comment><USER3> > you've got a choice if you've got an inheritance. You either inherit > everything that you're eligible to inherit (this includes any outstanding > debts) or nothing.

But that's effectively the same situation as in almost any other country. Debts are settled before you are eligible to inherit anything. If debts are more than the estate has, then you don't inherit anything.

<comment><USER4> Oh, it's very different. Either the court figues out if there is any inheritance and distributes everything left over after settling any debts... Or the inheritor has to figure everything out himself, potentially indebting himself because he didn't know about a debt.

Accepting an inheritance is pretty risky in Germany, if your parents weren't well off.

And PayPal's letter would make sense if its left for the inheritor to figure out. But that doesn't seem to be the case if I understood the sibling comment correctly? It's always interesting to learn stuff like that :)

<comment><USER3> So why would anyone ever choose the second option? What's the upside to that?

<comment><USER6> No, option one is: you get everything and have to pay off any debts that come with it.

Option two: you refuse the entire inheritance, get nothing but also don't get any debts.

<comment><USER3> That's not what they said. They said they distribute everything left over after debts to inheritors.

> Either the court figues out if there is any inheritance and distributes > everything left over after settling any debts...

<comment><USER4> The former isn't an option in germany. As someone else mentioned on a sibling comment: I asked about the inheritance law in UK and compared it to the german one in your quoted sentence.

This comparision was pretty off topic and probably shouln't have been posted in this context.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> What does section 15.4(c) of the Paypal Credit agreement say?

<comment><USER8> This is 15.4 (c) of the Paypal Credit agreement - "We may close the Credit Account and demand repayment of the full amount you owe us if you die or become of unsound mind"

<comment><USER9> "demand [...] if you die"

I'm sure it will be very fruitful to make such a demand.

<comment><USER10> If the customer's estate has enough assets to pay the balance then the demand will be fruitful.

</comment></comment></comment></comment><comment><USER11> Although it's insensitive, it makes sense from a legal perspective. IANAL, but I imagine it's something like:

1\. paypal receives notice she's deceased, so they have to collect the remaining balance

2\. the creditor must notify the client (hence the letter being addressed to her) of their account being closed, and that the full amount is due

3\. the creditor must specify a reason for terminating the account, hence the "see section X of the agreement that says you have to be alive to hold an account", "...you are deceased"

<comment><USER12> >it makes sense from a legal perspective

No it doesn't.

This is the work of a second rate player on paypal's legal team. You do not address letters to dead people. You address letters to their estate or if you know who the individual is, the executor of the estate in respect of their estate.

You do not say someone breached a contract when in fact you're exercising a right to wind up the account triggered by death.

Either one of these errors is an annoying mistake. Both of them together is a fairly large fuck-up. Lawyers put a LOT of work into drafting the right tone into their correspondence.

Estates law isn't particularly esoteric, either, but most in-house counsel practice corporate law, primarily, so it's probably just a case of a few corporate guys going "It looks okay, I guess" when proofing the template and not firing off a quick call to their pal that works in estates to review the deceased creditor notice.

<comment><USER11> I'm just saying it sounds like legal CYA. Consider [1] defines "you" in the agreement as "The person who applied for this Account and agrees to this Agreement." Further down, section 12 specifies that the account automatically moves to a "in default" state if you "Pass away or become incompetent;"

Considering that "you" needs to be notified when their account goes into default, does "you" automatically become "the estate"? Is "the estate" the one who "applied for this Account and agrees to this Agreement"? Can an estate agree to anything?

Is it possible a deceased person would be able to get off the hook for this kind of debt is the agreement isn't followed to the letter by the creditor?

[1] [https://www.paypal.com/us/webapps/mpp/bmlterms#accountAgreem...](https://www.paypal.com/us/webapps/mpp/bmlterms#accountAgreement)

<comment> vertex-four There isn't anything to do with the person once they die - _obviously_ you don't need to notify a dead person that they're dead. The whole mess with simply becoming "in default" is likely outright wrong in the U.K., as there's a pile of somewhat complex law surrounding what happens to people's debts when they die.

</comment></comment></comment></comment><comment><USER13> My best guess is this is a "cover our asses" (literally) template not intended to be read by the recipient.

Maybe their target reader is people who fake their deaths?

<comment><USER10> > "cover our asses" (literally)

Don't you mean, "figuratively"? Or are you implying that there is some dude at PayPal that is using this legal template as undergarments?

<comment><USER14> I think the charitable interpretation is that a manager said the literal words "cover our asses" when setting this up. Or possibly the GP meant "exists for literally no other reason than "cover our asses"".

<comment><USER13> Sorry, I meant it it's literally a letter that was not intended to be read by anyone.

</comment></comment></comment></comment><comment><USER15> This email would not have been totally abnormal from a legal perspective, if the first person references and grammar were changed to third person, and it was addressed to an estate executor rather than directly to the deceased. Credit card companies and similar will do the same.

</comment><comment><USER16> I bet the customer didn't mind.

</comment><comment><USER15> In the United States private debt collectors will attempt to get bereaved family members of a recently dead person to begin payment on the deceased person's debt, with social engineering tactics.

When the appropriate legal response is: "NAME is deceased, here is the contact info the for executor of the estate".

<comment><USER17> I've never understood this behavior. How is this not considered harassment?

<comment><USER18> Because debt collectors have literal exceptions to harassment laws.

<comment><USER19> In the US at least, you can serve debt collectors notice that they must cease all future communications with you, and if they disregard that, the FTC can and will go after them.

I'd recommend reading the Fair Debt Collection Practices Act.

[https://www.ftc.gov/enforcement/rules/rulemaking- regulatory-...](https://www.ftc.gov/enforcement/rules/rulemaking-regulatory- reform-proceedings/fair-debt-collection-practices-act-text)

</comment></comment></comment></comment><comment><USER20> I always see Paypal's negative stories on Ycombinator and only positive stories of Square & Stripe. Let's not be an unnecessary devil's advocate or a cheerleader!

<comment><USER21> Excuse me, but Paypal is not a regulated bank in the USA, and they routinely hold customer account money for 6 months.

Additionally, periodically they purge entire business categories by locking accounts until you can prove you're not violating their terms of service du jour.

The complaints about Paypal are justified.

<comment><USER22> You can say that about anything. Pick a technology/company you like and I'll write an "excuse me, but" piece that "justifiably" criticizes it.

<comment><USER23> Can you think of any good thing about paypal beyond user experience? I am open to suggestions, but I don't know of anything.</comment></comment></comment></comment>


Ask HN: What common misconceptions do people have about raising capital? - <AUTHOR> <comment><USER2> 1) the tech matters - obviously depends on your business but in my case after three rounds no one has ever really looked into tech. 2) investors will deeply understand your business and question your ideas - We never really felt challenged in the process, even though we have our doubts</comment>


Help crowdfund the future of better nutrition, in a one-click gadget - <AUTHOR> http://igg.me/at/shonutrition

<comment><AUTHOR> Forget about your vitamins? Deterred by hard to swallow pills? sho™ can help. You can click your way to better health with the all-new sho™ Vitamin System, now crowdfunding on Indiegogo. Easy to use, easy to swallow, fun Nutriball™ dispenser makes better nutrition just a click away.</comment>


Visualising weather reports as a graph - <AUTHOR> http://weatherspark.com/#!dashboard;a=USA/CA/San_Francisco

<comment><USER2> I really like the way that the Norwegian site yr.no does this:

[http://www.yr.no/place/United_States/California/San_Francisc...](http://www.yr.no/place/United_States/California/San_Francisco~5391959/hour_by_hour.html)

Nice and simple, without any fancy Flash/animation going on. Take a look at the "Detailed" view to see pressure and cloud cover on the same graph.

Compare the two of them, and I find this much more readable.

<comment><USER3> Thanks! I'm a sysadmin at met.no, and will forward your comments to the devs.

I found the OP solution interesting in regards to visualizing historical observations. As of now, we have a system seperate from yr.no for that (but I believe it is still accessible from api.met.no).

<comment><USER4> Great work on the graphics - concise and informative.

Coverage in western Europe for wind speed and pressure on the advanced map is limited to the North Sea, and Northeastern Atlantic. Is this due to limited access to the data or because Scandanavians think that it is always sunny and warm in Iberia so the weather is not worth reporting.

<comment><USER3> Our primary sector is the Northern Atlantic and the North Sea from Faroe Islands/Iceland and up to and including the Arctic. We do those calculations based on observations from several sources (like weather stations, weather balloons and satellite imagery) that we feed into our meteorological and oceanographic models. The stuff we create for our sector are in principle always made public, and you'll see those products on yr.no and on the API.

We also retrieve and use observations and products from partner institutions like NOAA (US) and the ECMWF (EU). Some of the partners (mostly national services) do not accept redistribution, so some areas might unfortunately only have basic meteorological and oceanographic data made available on our API.

It's amazing how popular yr.no has become. We got word from some South African farmers who said they were using yr.no instead of their national service, as our service was of better use for them. (The distance between Oslo and Johannesburg is 6010 miles.)

</comment></comment></comment></comment><comment><USER5> I use this service all the time since I found out about it last year (on HN) because it gives me more information than I will ever need and still makes it easy to consume. The most unique aspect of this implementation is the historical data they provide to give you an idea of weather even when there is no forecast. This is unbelievably valuable when planning a trip to a new region of the world and I routinely use it to plot my locations and timing accordingly.

The only real problem I have with this site is the heavy dependence on flash, and a few clunky UI controls when interacting with the graph over a long period of time.

<comment><USER6> We recently added some very simple keyboard controls: the arrow keys (left- right: pan, up-down: zoom), that might alleviate that problem a little.

Yes, you need to click in the app once to give it focus before it registers the keyboard clicks. Just one of the many little gotchas with flash... (don't get me started ;)

(disclosure: I'm one of the weatherspark devs)

</comment></comment><comment><USER7>
      Loading Google Maps plugin...

      If you're using HTTPS Everywhere please disable it for
      GoogleMaps since it makes the authorization request fail.
      Tools Menu -> Add Ons -> HTTPS Everywhere Options -> Search
      for 'GoogleMaps' -> Click on the green check mark to turn
      it into a red x.

Is this a problem with the google maps 'plugin' or their implementation?

<comment><USER6> The authorization request that the google maps flash SDK issues to google fails when it's issued as an https request. The HTTPS everywhere plugin forcibly changes the request type, thereby making it fail.

AFAIK there's no way to fix it on our side.

(I'm one of the devs on weatherspark)

</comment></comment><comment><USER8> Just to throw this out there, most of this is already presented directly by the National Weather Service: [http://forecast.weather.gov/MapClick.php?lat=35.73285&lo...](http://forecast.weather.gov/MapClick.php?lat=35.73285&lon=-78.69814&unit=0&lg=english&FcstType=graphical)

<comment><USER6> ... and most computer languages are turing equivalent, yet people prefer different ones ;)

Seriously, yes, all the data is freely available in some combination of text and graphics on the internets - the pitch here is the presentation, aggregation and ease of exploration.

(disclosure: I'm one of the weatherspark devs)

</comment></comment><comment><USER9> Previous posts:

<http://news.ycombinator.com/item?id=2330429>

<http://news.ycombinator.com/item?id=2310535>

<http://news.ycombinator.com/item?id=3094357>

</comment><comment><USER10> Very cool, wish I had known about this before I built my own. Of course, building my own let me tailor it to the data and style I wanted (<http://dustytome.net/demos/widg/>).

As a side note: is there any place to get free(ish) weather forecasts? I've been using Wunderground's API (which is nice), but I don't see any way to let multiple people use it without shelling out more money than I can justify at the moment.

<comment><USER6> NOAA has an api ( [http://forecast.weather.gov/MapClick.php?CityName=San+Franci...](http://forecast.weather.gov/MapClick.php?CityName=San+Francisco&state=CA&site=MTR&textField1=37.775&textField2=-122.418&e=0) click on the red XML button down right on the page)

As someone else mentioned, so does api.met.no (they power yr.no).

World Weather Online and Weather Central are commercial offerings, but reasonably priced.

(disclosure: I'm one of the weatherspark devs)

</comment></comment><comment><USER11> Would be cool if you changed Europe/Vilnius shortcut to Lithuania with capital Vilnius and not Vilniusstrasse in Austria :)

<http://weatherspark.com/#!dashboard;a=Europe/Vilnius>

suggesting to replace it with: <http://weatherspark.com/#!dashboard;ws=29009>

By the way I really like viewing weather as graph! Nicely done.

<comment><USER6> Yes, yahoo's geocoding is not perfect... Searching for just "Vilnius" does the right thing though, and takes you to:

[http://weatherspark.com/#!dashboard;a=Republic_of_Lithuania/...](http://weatherspark.com/#!dashboard;a=Republic_of_Lithuania/Vilnius)

(disclosure: I'm one of the weatherspark devs)

</comment></comment><comment><USER12> I really wish the terms 'chart' and 'graph' were not used synonymously.

</comment><comment><USER13> Very similar to the My-Cast Weather app in horizontal orientation.

</comment><comment><USER14> flash? try again please.

<comment><USER6> I hear you about flash, HTML-only "simple forecast" is in the pipeline, so do check back.

(disclosure: I'm one of the weatherspark devs)

</comment></comment><comment><USER15> I like it.</comment>


How Kevin Mitnick Convinced Motorola to Send Him Source Code - <AUTHOR> https://www.youtube.com/watch?v=UBaVek2oTtc <comment><USER2> Great story! I listened to his audiobook 'Ghost in the Wires' a few years back. It's a fantastic read (listen)!

[https://www.amazon.com/Ghost-Wires-Adventures-Worlds- Wanted/...](https://www.amazon.com/Ghost-Wires-Adventures-Worlds- Wanted/dp/B005HBO3BY/ref=tmm_aud_swatch_0?_encoding=UTF8&qid=&sr=)

</comment><comment><AUTHOR> I hope HN will forgive the slight title modification. The original title is "How a Hacker Convinced Motorola to Send Him Source Code", but I think HN folks will know who Mitnick is :)

</comment><comment><USER3> Social engineering for the win! Such a great story. I'm always amazed by really good social engineering, people are generally the weakest link in any security system!</comment>


Web Art Project with CSS - <AUTHOR> https://css-doodle.com/ <comment><USER2> Useful. And also in my eyes, it's really an art</comment>


Typy – type checking library for JavaScript with a 'sweeter' syntax - <AUTHOR> https://github.com/flexdinesh/typy <comment><USER2> For the nested object traversal, is there a reason this uses string based paths instead of array based? Dynamic path building via string concatenation feels messy.

Seems like there may be a performance hit too with all the string operations inside 'utils/getNestedObject'. Probably not an issue for messing around in small amounts of data, but using this to manipulate a big server response could run into issues.</comment>


Resurrecting Duckhunt - <AUTHOR> http://hackaday.com/2015/11/16/resurrecting-duckhunt/ <comment><USER2> > ""If the NES is just looking at the state of the photodiode, can I just > point my gun at a bright light and score a hit every time?" This is another > good question. The NES engineers took this cheat away by first writing a > black screen and looking at the state of the photodiode, ensuring this would > not be allowed. If it sees anything other than the black screen, it will > record the shot as a miss. It is rumored that some very early versions of > the game might not have had this bug fixed, but there has been no > demonstration of such a bug to date."

It's funny that they mentioned this because my first memory of the NES was when a kid in my neighborhood got one for his birthday soon after they came out in the US. This was the kid who got every cool toy and we were all a bit jealous. At his birthday party we hooked up his NES Deluxe set (the one with the console, the light gun, and the robot that you used for Gyromite) and spent the afternoon messing with it and fighting over turns.

At some point, we found that pointing the light gun at the lamp in the room really did register as an automatic "hit" every time. Maybe this was one of these early versions or maybe it was something else. I just remember distinctly seeing the "bug" because it pissed off all the other kids when birthday boy started doing it to get the high score.

</comment><comment><USER3> The timing of the beam racing down the screen is used by the more modern guns which were used by the SNES, PlayStation, or the Dreamcast.

So, it's really not much of a "myth". Most light guns worked that way. The zapper is an outlier.

<comment><USER4> Even the Sega Master System used that technique.

</comment></comment><comment><USER5> I did not know the NES version, but in Germany a remake called "Moorhuhn" [0] was hugely popular in the early 2000s.

[0] [https://en.wikipedia.org/wiki/Moorhuhn](https://en.wikipedia.org/wiki/Moorhuhn)

</comment><comment><USER6> TL;DR: Apparently, Duck Hunt (NES Zapper) only works on CRTs because they don't have input lag.

<comment><USER7> Anyone feel like putting up an explanation for why CRTs are faster than LCDs? Something I've always been curious about.

<comment><USER8> An LCD has to buffer the entire frame, then process it, then display it, and there's also a small delay for the crystals to transition to the new frame.

Meanwhile, a CRT shows the frame as it's still being transmitted, while the source computer is streaming each line out from the video buffer, with only a negligible delay (analog electron beams are fast!). This means a maximum of a 1/60-second delay even if the source is composing the whole frame beforehand (double buffering).

If the source is doing computation between the scan lines (very common and even necessary on old systems, like the Atari VCS) that delay can be shrunk even further.

<comment><USER7> So then how does the TV's with things like "game mode" or whatever handle this? I assume some delay is inevitable based on your explanation (and it still feels slow) but I guess it just dumps the filtering and processing to what's bare minimum required?

<comment><USER9> In a nutshell, yes. I think there is some variance in what precisely they do, but that's the essence.

If you don't like the postprocessing the TV does, which I often don't, "game" mode is often a good solution.

</comment></comment></comment></comment></comment><comment><USER10> The comments say the author got it wrong, essentially, and that the gun looks for a 15.7khz modulation, rather than just contrast in a certain time range. The commenter says he's used the zapper in a light-harp application and knows that the sensor cares about the modulation frequency.

The linked to video (of one working on an LCD) has been hacked to work with an LCD and is not stock, per the comments on the video.

Interesting!

</comment><comment><USER11> I am sure that the description of how the sensor works is correct, but I can't reconcile this with the fact that there is one point near the center of the screen that will always register a hit. I used to aim for the tree branch and hit ducks every time.

<comment><USER12> I wonder if your gun's sensor was picking up a reflection in your room. Maybe there was a bright lamp in just the right spot behind you. You can even see an example of this in the gif -- look at the white spot in the top right corner of the TV.

<comment><USER11> The gun doesn't sense a bright spot. It senses the difference. It must be dark then bright.

<comment><USER13> Which a lamp reflection in the middle of the screen would be. I.e. entire screen is black, then for the white part its the real duck - and then your lamp reflection.

<comment><USER14> No, the point is the place the gun is pointed to needs to first go black, then white. If it is a static reflection of a light that area will never be filled in with black.

They do mention in the article that early versions of the game may not have had this protection, so that could be the case with OP.

</comment></comment></comment></comment></comment><comment><USER15> I spent some time thinking about this problem a while ago, and I think I have a solution that I would never actually take the time to implement. The trick would be doing it all fast enough, which is over my head.

* Intercept the video output from the NES.

* Place a camera on the end of the zapper.

* Use static images such as the trees to determine the coordinates of where the camera is currently pointing.

* Use LEDs directly in front of the zapper's sensor adjust the light to what those coordinates would be based on the intercepted output of the NES.

</comment><comment><USER16> [http://www.thefreedictionary.com/resurrecting](http://www.thefreedictionary.com/resurrecting) (note spelling)

<comment><AUTHOR> Sorry!

</comment></comment><comment><USER17> The real solution is to make a ntsc demodulator, combined with 61440 LEDs that get strobed by the signal. Problem solved.

</comment><comment><USER18> Great writeup of a classic game. Loved playing it

</comment><comment><USER19> Flagged for typo ("ressurecting") in title. The linked article / URL get the spelling right.

<comment><USER20> It's probably better to email mods rather than flag the submission.

<comment><AUTHOR> Have done so, thanks.</comment></comment></comment>


Let's block all referrals from TC - <AUTHOR>

I personally don't want to see the crowd from Techcrunch here on the site. Blocking the traffic won't really change things... but damn this might suck. <comment><USER2> That's silly. The way to maintain a community is to control who sticks around, not who randomly stumbles across you in the first place.

</comment><comment><USER3> no need to take such measures. just disallow folks from submitting articles and voting under a certain karma level. they need to earn the right to participate based on making worthwhile comments.

We can automatically remove any user with a karma level too low (-20?). So new users have a choice: make good comments and participate in the discussion, or start get banned relatively quickly for making digg/reddit level comments.

</comment><comment><USER4> Worrying like this is a sign of lameness that you should fear. I'm all for community. But the whining I've seen on sites like reddit and digg is a huge turnoff.

</comment><comment><USER5> No, that's silly.

If you don't want HN to suck then do two things: vote up good stories on the New page, vote down stupid comments.

</comment><comment><USER6> Wow! Rough attitude there. Less coffee, more Cheerios :) Hopefully new users who find Hacker News from Tech Crunch will be good contributors, but eventually there will (hopefully) be more users, and I'm not sure the source properly indicates the quality of the user referred.

<comment><USER7> i really hope so

</comment></comment><comment><USER8> there's several ways to skin a cat my friend.</comment>


Style Is an Algorithm – Racked - <AUTHOR> https://www.racked.com/platform/amp/2018/4/17/17219166/fashion-style-algorithm-amazon-echo-look <comment><USER2> Repost, previous discussion: [https://news.ycombinator.com/item?id=16858805](https://news.ycombinator.com/item?id=16858805)</comment>


The weirdest soccer match and game theory - <AUTHOR> http://mindyourdecisions.com/blog/2010/06/16/the-weirdest-soccer-match-and-game-theory/ <comment><USER2> It seems to be an indicator of when are arbitrary rules more important than the game itself... If you do things which make you lose in a normal game, just to satisfy some organisational requirement, it gives an impression that the rules are either not thought through, or there are too many dependencies that make the game itself matter less.

In this example - either winning or losing by one goal meant winning, but not doing anything meant losing... which goes completely against the basic rule of the game (team scoring more goals wins).

</comment><comment><USER3> The same sort of thing happens regularly in any sport where any sort of external outcome is dependent on individual games. The best example is any league that relies on final standings to determine the next season's draft order. When the team with the worst record gets to pick first in the following year's draft, it begins to make little sense for teams close to the bottom of the standings to win games at all.</comment>


Ten years of professional blogging – what I've learned - <AUTHOR> http://andrewchen.co/professional-blogging/ <comment><USER2> I've found that writing a blog post is one of the best ways to learn something deeply. So I write stuff, not for marketing but own my personal development. Of course marketing is nice sub result, but I never focus too much on title like the OP.

My process looks like folowing

\- Choose the subject (usually a very small topic or algorithm)

\- Study it deeply for at least a weak, sometime months.

\- Start writing the post, learning is still happening.

\- Finish the post. At that point I usually have a very good understanding of the topic.

Never think that you can't write about a subject because you are not an expert. You may not be an expert but there are more people who know less than you and they will find the post worthwhile.

[https://blog.chamoda.com](https://blog.chamoda.com)

<comment><USER3> I have found the same thing while teaching during my PhD. Most of my student peers despised it and couldn't understand that I wasn't volunteering to teach to help the university, I did it for the very selfish reason of helping myself cement basic undergrad knowledge.

</comment></comment><comment><USER4> Good read. I used to blog very regularly years ago, but since the end of Google Reader and the growing popularity of Facebook and Twitter, I've been blogging less and less. Always wanted to pick it up again.

Anyway, this caught my attention:

> Since starting a normal job (haha) it's gotten harder to write on Sunday > evenings, since that's when the work email starts

Don't do this to yourself.

</comment><comment><USER5> I've been blogging for about 2 years (120ish articles posted) and a lot of what he says makes sense.

Especially finding your voice. I still don't feel like I've figured that one out. My problem is I started blogging after working as a developer for 20 years so I want to talk about a billion different topics.

But the quickest way to become successful in this field is to write a ton about 1 specific thing and then suddenly you're "that guy" about the topic you're writing about.

</comment><comment><USER6> A few counterpoints on benefits of using Medium over of your own blog:

\- Submitting your articles to publications is a very easy way to get a lot of free exposure. For example, my most successful post [1] generated 36k views and 1.5k medium subscribers in the first couple of weeks just by being accepted to HackerNoon.

\- Collecting email addresses is extremely easy. Design a pretty CTA image that links to your email sign up form. Bonus points if you'll create a free guide or some other giveaway. This makes Medium about 95-99% as effective at building an audience on a custom blog. The post mentioned above generated about 200 email signups over time, which is pretty good for free exposure I wouldn't have gotten otherwise.

\- If you're interested in growing your own publication, you can easily request good stories written by other authors(one click on a menu under each post). That gives you free content and audience, if you want.

\- For me personally, Medium's editor _significantly_ lowers the barrier of entry. Something about the well designed WYSIWYG format takes away the pressure and makes writing more engaging. Besides it's easier to publish short-form content. Many of my posts start out as tweets that ended up being too long, or as HN/Reddit comments I'd like to share in a better format. 100-200 word Seth-Godin-style posts are easy to write regularly and medium's format encourages you to do that.

\- You can always export your posts from medium into your personal blog. That's what I do for mine[2]. Write on medium to gain free audience and exposure, repost to your website, then promote posts from your site on twitter/reddit, thus still keeping all the benefits. You can even cherry pick your best articles - use medium to generate a ton of posts without any pressure to be good, and publish the ones you're most proud of on your site.

[1] [https://hackernoon.com/full-stack-web-development-the- comple...](https://hackernoon.com/full-stack-web-development-the-complete- roadmap-9fe43ec0ba32)

[2] [https://startuplab.io/blog](https://startuplab.io/blog)

<comment><USER7> Medium in it's purest form is a blatant SEO siphon from your website. Well written articles will generally place highly on Google's search results no matter the domain(unless you've got shady shit going on). God knows what metrics they're using these days (mostly ML?) But Google readily recognizes articles well written from expert sources in my opinion. I've only written around ten blog posts but they're all first page, some first result, for my goal keywords.

And this is on a no-name website not optimized for SEO at all. The SEO arms race has been going on so long that we've reached a point where, if you're a good writer, it's easier to follow Google's guidelines than try to cheat the system.

Medium and other blog sites are basically a guest blog, except you're not getting paid for placement. Google ranking is everything and posting on medium does nothing but hurt you gravely

<comment><USER8> > Well written articles will generally place highly on Google's search results > no matter the domain(unless you've got shady shit going on).

Absolutely. I've written two blog posts on PostgreSQL on topics that, in my opinion, weren't well covered and often misunderstood by its users. Both posts show up on the first page on a google search for "psql cli" and "postgres timezone".

I honestly never understood this whole fuss about SEO. In my opinion SEO is about good content. Good content over time will spread, which will result in a higher ranking.

<comment><USER7> Google heavy promotes articles that use their Google Analytics and have high time-on-page scores. Everything Google does with search ranking is gameable but built to focus on high quality content. The best thing about having a couple high ranking pages is that it becomes much easier to make others. Your trust score is already high so there's a good chance other articles about postgres will also reach first page, even if they're not about specialized topics. This is what the SEOtards fail to understand

</comment></comment></comment></comment><comment><USER9> Somewhat relevant is a question I asked here several months ago. There were 181 comments, so there's enough to be able to extract some knowledge from them.

Ask HN: Has attracting a blog audience become harder?

[https://news.ycombinator.com/item?id=13966190](https://news.ycombinator.com/item?id=13966190)

</comment><comment><USER10> I've been blogging for 14 years. The hardest thing for me is to dive deep into a particular topic. My blog reflects what interests me at a given time, and that can vary wildly.

This keeps the blog interesting to me, but means that the vast majority of my traffic is search engine based, rather than folks who are coming to my blog to find out what Dan thinks.

It's a tradeoff I'm willing to make, and have even blogged about: [http://www.mooreds.com/wordpress/archives/2188](http://www.mooreds.com/wordpress/archives/2188)

<comment><USER11> Sounds like me. You seem to blog more consistently though. I can see a blog post a day the last days.

My blog has month-long gaps. I have accepted that. It has a few popular pages which produce occasional spikes. Mostly, it is a long-form storage of my opinions, where I can refer people to.

[http://beza1e1.tuxen.de/blog_en.html](http://beza1e1.tuxen.de/blog_en.html)

<comment><USER10> I actually try to blog once a month, but this Dec I challenged myself to blog every week day: [http://www.mooreds.com/wordpress/archives/2495](http://www.mooreds.com/wordpress/archives/2495) (and have been actually finding the time to do it on the weekends).

Love the idea of "long form storage of opinions". I actually think everyone should blog. If you can write a email, you can blog. Writing clarifies the thoughts, IMHO.

</comment></comment></comment><comment><USER12> > Titles are 80% of the work

If you writing fluff sure, but if your writing great content the title is less important. Good work sells itself. 90% content 10% title just my 0.02.

<comment><USER13> Badly titled articles with excellent content can get rapidly flagged to death on HN.

</comment></comment><comment><USER14> I'm curious about the point of running your own blog instead of hosting on Medium et al. I get that you want to avoid being locked in to a platform that could belly up, but isn't there a big benefit in network effect? Is he just counting on external channels like Twitter to promote his site?

<comment><USER15> This person has been blogging for 10 years. How long has Medium been around? How long will they continue to blog? How long will Medium continue to be around?

My blog is quiescent right now (I discovered I'm an essayist rather than a "blogger"), but it goes back to 2000, albeit quite messily from the first platform conversion I did. No platform has been around that long. Goodness knows the platform where it started is long gone and forgotten by almost everyone.

<comment><USER16> Wordpress has been around for quite a while.

</comment></comment></comment><comment><USER17> Surprised at how poorly written this is. Typos all over. I would hope that someone who considers himself a writer would take care to write well.

<comment><USER12> He only spends 20% on the actual writing, and 80% on the title. So out of an hour only 12 minutes of writing and 48 minutes of working on title. That may explain the typos

<comment><USER18> So he spends 20% time on writing, but can't run spellcheck?

<comment><USER19> The title had no spelling errors.

<comment><USER18> But the body text has quite a few.

</comment></comment></comment></comment></comment><comment><USER20> Not blogging professionally, only for "personal use", but recently wrote up my experience of blogging for 6 years: [https://henrikwarne.com/2017/11/26/6-years-of-thoughts-on- pr...](https://henrikwarne.com/2017/11/26/6-years-of-thoughts-on-programming/)

</comment><comment><USER21> "Titles are 80% of the work" That's called click-bait.

If you want good advice, follow Jeff Atwood's post on the subject: [https://blog.codinghorror.com/how-to-achieve-ultimate- blog-s...](https://blog.codinghorror.com/how-to-achieve-ultimate-blog-success- in-one-easy-step/)

<comment><USER14> It's only click-bait if the headline is a lie. A great headline for great content is a win-win.

<comment><USER22> Click-bait doesn't have to be a lie. Stuff like "... will make your jaw drop!" or "... what happened next blew my mind!" aren't really lies.

</comment></comment></comment><comment><USER23> I'm happy he wrote this, and I'll read it again at home tonight.

But what's the deal with "write the title last" and his examples all start with the title?

<comment><USER13> I don't really understand your point. This is what he means:

 _I often write a placeholder title, write the essay, and then at the very end, spend a good chunk of time iterating on titles until there's a good one._

It isn't uncommon for me to handle blog posts that way as well, or even paid freelance articles if no title was provided. You put in a title that suggests what you are talking about, then you write the piece, then you try to figure out what the most important detail is or the most compelling hook or the shortest way to make the essential point.

Writing good titles is quite hard and good titles often grow out of the piece after it is written. You get to the end and you have written multiple paragraphs to give a good lead up and then your final paragraph draws a conclusion in a way you didn't have in mind when you started. And therein lies clues to a good title.

I fairly often pull ideas for a title from the last paragraph or two of a blog post. And I usually don't know what that last paragraph will be until I have written the entire piece.

<comment><USER23> I must have missed that. Thanks for pointing it out, I was bothered by the seemingly contradictory advice :)

all I noticed was:

      >"Titles are 80% of the work, but you
      write it as the very last thing.
      It has to be an compelling opinion
      or important learning"

followed by

      >"Most of my writing comes from
      talking/reading deciding I strongly
      agree or disagree. These opinions
      become titles. Titles become essays."

and then the example

      >"The best example of this in
      my work is 'Growth Hacker is the
      new VP Marketing' which started
      out as a tweet with 20+ shares, and
      then was developed into an essay
      afterwards."

</comment></comment></comment><comment><USER24> How to achieve money blogging in three easy steps:

1\. Attract people with titles like this one

2\. Make your blog popular (???)

3\. Put advertising

Thanks for reading this post!

PS: How I made $100,000 a day with one weird trick

(Long sales copy follows)

"I used to not make money and now I made $20K! This system is great!"

(Keep

Scrolling)

If you act now it will be only $10!! And we chare you $300 a month later.

PPS: Does anyone know why they always use the word _weird_ trick? The author comes across as super unbiased that way? LOL

<comment><USER25> Step 3 should go before step 2, or else you'll lose most of the profit.

</comment></comment><comment><USER26> I appreciate you taking the time to summarize all this; I've only begun writing in earnest this past year and I'm glad to know that the habits I'm working on developing now are sustainable for the long term.

</comment><comment><USER27> My biggest issue with blogging is that my writing isn't that great, and that while I'd rather write on a wordpress platform, medium is just easier to write with (WYISWYG). Or even posting on a discourse forum is easier. That, and blogging is technically not productive so I can never find a happy mix between the 2.

</comment><comment><USER28> I often find that writing blogposts is essential to help my learn. I find that understanding formuale and understanding how things work is often better for my academic learning than memorising formulae

[https://medium.com/@brandonskerritt51](https://medium.com/@brandonskerritt51)

</comment><comment><USER29> Interesting. I wonder what opportunities blogging has given him.

<comment><USER30> This is also a question I have. I'll often find comments everywhere that when applying for tech jobs, having a relevant blog is of little value, hardly looked at.

If the goal of your blog is purely to establish yourself as some authority on topic(s), do you then have to build audience numbers like he has? Is it common for a lot of people doing this to also do talks at conferences, etc?

If your goal is to monetize the blog, then I think his points matter. Titles matter, attracting readers matter, establishing an email list matters. However if you just want to share opinions and ideas or work you did I don't think a lot of his points matter.

<comment><USER29> yes I have seen some who have progressed into publishing books based around some particular interesting topics they wrote about on their blog. But I am curious to know if some less obvious benefits come from blogging. I could imagine that you could get more of the spontaneous oportunities from speaking at conferences because of the in-person interaction after/during your session. But from blogging, the long tail might be what is really valuable. Blogging for ten years for instance, at least you have ten years of stuff online to your name. Has to be worth something.

</comment></comment></comment><comment><USER31> Funny I never heard of him until today.

<comment><USER32> One of the top 5 bloggers in tech.

<comment><USER33> Be that as it may why should the poster be downvoted for this?

Whenever I fool myself into thinking HN is above petty ego bullshit this kind of thing reminds me how mistaken I am.

<comment><USER34> The comment was unsubstantive and arguably a bit snarky. Those are downvoteable qualities on HN.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

</comment></comment></comment></comment><comment><USER35> _That's why I refuse to write on Medium or Quora._

Quora is also remarkably corrupt and has a habit of banning people who speak out against bad practices in venture capital.

<comment><USER36> That's an interesting accusation but without anything to back it up it's hard to assign much value to it do you have a sample of such a case?

</comment></comment><comment><USER37> Tweet # 6 in her 'Tweet Storm'

> So I flipped to his feed, and sure enough, there'd been a post in November > about him being in the hospital. I was never shown this post.

How does she know that she was NEVER shown this post?

Isn't it possible that she didn't scroll all the way past a few 100 status updates, and the friend's hospitalization post was #101 in that scroll list, and she just didn't make it that far with her limited attention span?

<comment><USER38> Okay first of all - you're commenting on the completely wrong post.

Secondly, in reference to the story you _are_ commenting about, she says in the thread that she always consumes her feed until she sees repeats. Not to mention that she says _none_ of the people in that social circle saw the post. At some point, if Facebook is pushing something down that many spots, it is the same as never showing it. Everyone's attention span is limited.

</comment></comment><comment><USER39> "People are often obsessed with needing to write original ideas. Forget it."

I hate him. Idiot! Fuck this guy

<comment><USER34> Please don't.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

[https://news.ycombinator.com/newswelcome.html](https://news.ycombinator.com/newswelcome.html)</comment></comment>


Yahoo Open Hack (Day) NYC Oct 9-10  - <AUTHOR> http://upcoming.yahoo.com/event/4417074/

<comment><USER2> Registration link here: <http://www.hackday.org/> or <http://icanhaz.com/yahoohacknyc></comment>