Rob Pike interview - <AUTHOR> https://evrone.com/rob-pike-interview <comment><USER2> > Although it's far from certain, after over a decade of work it looks like a > design for parametric polymorphism, what is colloquially but misleadingly > called generics...

What exactly is misleading about generics?

The psychology of thought leaders is fascinating. The term generics is colloquially understood to mean parametric polymorphism and here's Pike redefining the term to draw some distinction that doesn't really exist just to remain self-consistent.

Come to think of it, this is a really common pattern. If you've made remarks that you must now backtrack then refine terms until your old writing doesn't seem to contradict your current stance because you can just say people were using the terms wrong and you were right.

Some results for searching "generics": [https://docs.microsoft.com/en- us/dotnet/csharp/programming-g...](https://docs.microsoft.com/en- us/dotnet/csharp/programming-guide/generics/), [https://www.typescriptlang.org/docs/handbook/generics.html](https://www.typescriptlang.org/docs/handbook/generics.html), [https://docs.swift.org/swift- book/LanguageGuide/Generics.htm...](https://docs.swift.org/swift- book/LanguageGuide/Generics.html), [https://doc.rust-lang.org/rust-by- example/generics.html](https://doc.rust-lang.org/rust-by- example/generics.html). If you search for "Wadler generics" then a book about generics in Java is the first result: [https://www.amazon.com/Java-Generics- Collections-Development...](https://www.amazon.com/Java-Generics-Collections- Development-Process/dp/0596527756).

<comment><USER3> (Also, once Rust gets specialization, our generics will no longer be parametric.)

<comment><USER2> I don't think Go's proposed system is parametric either. It's not clear to me how their contracts actually map to generics so I have no idea if Pike is telling the truth or just "thought leading".

</comment></comment></comment><comment><USER4> What a wild generalization. I skimmed the article, and I see his point in "Go was designed by people working at Google to make it easier to write Google- relevant software, in particular network-resident servers", but that doesn't mean Docker and Kubernetes (and other tools that enable communicating with/usage of cloud infrastructure) being written in Go made it become the de- facto standard, and especially not "the language of cloud infrastructure". What about ALL the other components NOT written in Go?

<comment><USER5> Go certainly has a lot of mindshare in this space, and that can't be ignored. Some components of my production infrastructure I've used over the last year: cert-manager, concourse-ci, docker-registry, cilium, coredns, loki, grafana, prometheus, jaeger, influxdb, kubernetes, open-policy-agent; all those are Go. It's at the point where if you're in the business of writing software to run software, you're kind of surprised if you show up at some Github repo and it's not written in Go.

But, the joy of 2020-era design is that nothing is forcing you to use Go. Everything is coupled with network APIs these days, so you can generate your protocol buffers for whatever language you want and write your chunk in that. You don't have to look at the success of Go in this space, think "but I don't like it", and leave the field. You can do whatever you want. But, I do think it's accurate to say that Go has a lot of mindshare in this sphere of the Universe. It is what it is.

<comment><USER6> Huh? I am sure 80%+ of AWS is Java and probably 90%+ of Azure is C#. I doubt it is going to change any time soon. Kubernetes is but one successful cloud product out of Google, and it just happened to be written in Go. There are even rumors in that thread about it starting as Java.

<comment><USER7> Go is reasonably big on the open source side of the cloud space.

<comment><USER6> Not sure what you mean by "open source side" of the cloud space. PostgreSQL is still C, and Mongo is still C++ + Node.js.

<comment><USER8> The two don't belong to "cloud infrastructure".

<comment><USER6> The conversation is about "cloud space".

Also, by restricting to open source you dropped 2 biggest and successful players.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> * in companies that are using Go for cloud infrastructure

</comment><comment><USER10> Go is the language that made me realize I'm not much of a production quality software engineer.

Normally I would be quite happy riffing with ideas in Ruby or Python, and just running my code and iterating trying to figure out what to do.

When I tried this in Go, every time I wanted to change the shape of my code to try doing things slightly differently I had to do a lot of work to get the code to compile again.

I feel like a professional coder wouldn't hit that road block because they'd have a better idea what they were doing in the first place.

I have scurried back to Ruby with my amateur tail between my legs, but I hope to try Go again some day and find a style that's a bit more forgiving of my not-Staff-SWE skills.

<comment><USER11> This isn't true at all.

Go is not the tool of choice for experienced professional programmers for exactly this reason.

The ability to quickly refactor code is very important and Go fails at it horribly for a number of reasons. 1) sheer verbosity. 2) multiple return makes altering function signatures tedious. 3) no generics mean code is written in hard to refactor styles out of the box 4) poor reflection support 5) poor tooling compared to professional grade languages (Java/C#/etc)

I could go on but long story short it's not you, it's the tool.

These issues can be overcome by remaining vigilant but for the most part they are part of the accepted "cost" of Go.

Which is to mean you pay them in return for a language that is very easy to learn (albeit hard to master because of the above problems), has a great runtime and has reasonable out of the box performance and memory footprint and stellar compile times.

These tradeoffs can actually be right for some teams, i.e larger ones with less experienced engineers that can afford to spend more cycles doing busy work refactorings.

However it's often a poor fit for small teams trying to work on software that is evolving quickly and can benefit from features of more powerful languages.

<comment><USER12> > Go is not the tool of choice for experienced professional programmers for > exactly this reason.

that's really funny, because I always thought of Go as the language that programmers who were aging out flocked to because it has

1) google-cred

2) familiar algol syntax

3) close enough to C++ to make a run for it

4) (systems-wise) safe enough to make it worth it

5) hip enough that you don't seem like an aging out programmer anymore

(I myself am an aging out programmer, that ironically just got started, so take that as you will)

But my observation is from 5 years ago and things may have changed.

<comment><USER13> I had always thought the same thing about high use by aging out coders. Don't know how representative it is but the just released Go annual survey results seem to show that isn't the case.

<comment><USER14> We are busy keeping Java, .NET and C++ codebases running.

</comment></comment></comment></comment></comment><comment><USER15> This interview was refreshing to read and the comment section far too toxic for the content.

<comment><USER16> Generally speaking, hackernews comments related to Go have become toxic since last year or so. For some reason people seem to actually display hate.

</comment></comment><comment><USER17> Clearly doesn't know Azure is held together with tape made of C# and powershell :P

<comment><USER18> also hdl, no?

</comment></comment><comment><USER19> Really? Outside Google, I'm not aware of major orgs that use GO.

I see the same .net C# stack, python, Ruby...... Java and PHP.

<comment><USER20> How hard are you looking?

Facebook, Dropbox, Uber, Apple and literally thousands of other companies, big and small, use Go.

<comment><USER21> And those companies generally use C++, Java, etc. in a much larger capacity.

<comment><USER8> This not true for new companies, for example, Dropbox and Uber.

<comment><USER21> Those are more the exception than the norm, and their decisions to do so come at significant costs.

<comment><USER8> At least from what I know, Go is an important factor making Dropbox/Uber/Cloudflare succeed. Go is absolutely not an exception in successful startups.

<comment><USER21> I know people in at least one of the companies you mentioned, and things look very different on the inside. They succeeded despite of the language, not because of it.

<comment><USER8> Surely, "it is not because of", every language is ok. But experienced programmers will choose the most suitable (most efficient, either in runtime performance and development speed/quality) one they think.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> the language of choice for people who enjoy writing a sort function five times.

<comment><USER22> Actually - writing the copy loops for arrays a hundred times.

The sorts are in stdlib.

<comment><USER23> copy is also a standard function.

</comment></comment></comment><comment><USER24> This sounds like him trying to do PR to get everyone thinking everyone else is already doing it so they try to catch up. Act like something is true to make it true when everyone jumps on the bandwagon.

<comment><USER25> I disagree. I've noticed that a lot of infra tools that would have been written in Python 5 years ago are now in Go.

I know Docker is written in Go, and I believe the Kubernetes ecosystem uses it heavily, so those are compelling evidence for Pike's argument by themselves.

<comment><USER26> And I know many small and medium level go projects being rewritten in rust. Maybe rust is the future.

Deno comes to mind.

<comment><USER27> These tend to be applications with very high performance requirements, including Deno. It seems to me that the choice between Go and Rust is _generally_ a matter of whether you value iteration velocity more than peak performance or correctness.

</comment></comment></comment></comment><comment><USER28> A few fellow OpenStack developers and I half-jokingly suggested we rewrite some or all the services in Go. Python gets to be a bit hard to deal with at that scale.

<comment><USER29> I used to work at an Openstack shop (small public cloud) We considered this several times, very much not-jokingly. Ultimately the investments never came. At least for Swift the object-server was re-written in go as an alternative implementation.

<comment><USER28> Heh ours started out as "We should rewrite Nova and Neutron and then Ironic..." That's awesome that Swift was. I always felt like Swift was one of the more solid services, but maybe that's because I rarely had to deal with it.

We actually did write and deploy a small Go rescue agent for bare metal machines in Ironic. I'm not sure if that every got upstreamed though.

</comment></comment></comment><comment><USER30> What are the chances of Rust or another language coming to the fore for cloud infra?

<comment><USER11> Reasonably high. There is a good deal of frustration with Go from experienced programmers that worked with it for several years and grew tired of the tedium involved.

Rust has some obstacles to overcome to supplant Go on a wider scale though. Namely compile time and learning curve - especially in relation to concurrency and async which are key features to replacing Go as it's main draw is it's green runtime.

<comment><USER27> I'm not seeing that. It seems like there's lots of enthusiasm to use Rust, but that people can't justify choosing it over Go probably because Rust is quite a lot more tedious than Go and its strong performance and correctness guarantees aren't worth the tradeoff for very many applications. I'm hopeful that things like rust-analyzer will help close that gap, but I don't think it will ever completely close much less reverse.

<comment><USER11> This is true. It's worth remembering why Go got it's shot though which is at the time of Docker being written it was originally written in Python. A few members of the container/orchestration community pushed to try writing it in Golang as Golang was also new and combining the enthusiasm of 2 communities was likely to result in greater success (turned out to be correct).

On the other hand Rust hasn't had an oportunity for a killer app, in fact it's main sponsor project Servo/Firefox is pretty much the opposite. It's a browser, the definition of a complex and slow moving behemoth of a project.

I attribute Rust's slow takeoff compared to Go mostly to this phenomenon.

After Docker was written in Go and started popularising containers outside of the lxc/openvz/other hardcore guys doing their own stuff directly on top of the kernel APIs then it was only natural that stuff would want to integrate with Docker and using the same language was a way to capture some of that enthusiasm. This resulted in software like Flynn, Deis and Kubernetes all picking Golang. The resulting network effect is very strong.

To some degree this is also down to the strength of the Go standard library. It has an excellent HTTP and TLS stack, encoding/decoding etc. All of this made it a good fit to write software that is fundamentally fairly "dumb" quite quickly. i.e software the mostly shuffles bytes from one socket to another.

Rust will most likely not find such a killer app so I think people need to be realistic about how long it will take Rust to find a marketshare. The big difference though is one can actually make good arguments to use Rust over C/C++ where you can't in most cases for Go. C is the largest software ecosystem right now and Rust is best positioned to take some of this market share away.

<comment><USER14> Rust's killer app will come from OS vendors support, like Microsoft and ironically Google (Fuschia and Crostini).

However while I like Rust, it seems that it will become more of a C++ companion than a replacement, as it will take quite some time to get a foothold on systems where C++ is finally replacing C as of the last decade.

</comment></comment></comment></comment></comment><comment><USER31> Because of kubernetes, the "language" of cloud infrastructure is YAML...

<comment><USER32> Lord I hate YAML. 10 years after seeing for the first time I still haven't memorised the intricacies and feel unsafe modifying any file.

<comment><USER33> Just take the time to learn it, it's really trivial once you take the time to learn the basic types. You have lists, dictionaries (maps), and primitives. It could not be easier.

<comment><USER12> I think the real problem is that yaml encourages you to make things declarative (which is 99% of the time a good thing) but sometimes hiding complexity is the wrong thing, and so when you have clashing declarations, the imperative resolution path is not necessarily explicit, and hidden behind an operations layer that you can't really see or reason about.

For some reason YAML seems to be an attractive option to try to implement things that really should be imperative in a declarative sense. Other configuration languages are either semi-imperative (like the hashicorp stuff) or don't do that (I haven't seen TOML configs that do some of the thing that YAML does). My best guess is it's purely cultural, because that trend started with ansible, which, not to denigrate - in many ways did very good things.

The trouble is that 1% of the time always hits at a very inopportune time.

<comment><USER33> Markup languages are by their nature declarative. Take HTML, for example. You're providing a set of instructions for some other, smarter program to create some output based on your declarative input.

YAML is no different. You encode some configuration, something else makes it so.

Ansible kind of muddied things up because it looks like you're doing imperative things in YAML, but actually, you're doing declarative things and Ansible is interpreting your YAML in some particular way.

</comment></comment></comment></comment></comment><comment><USER34> It's funny how everything that bell labs alums have touched has influenced computing in a way that isn't publicly acked and how the network and namespace ideas in plan9 and inferno have become foundational to cloud native infra. Pikes assertions in a couple cases are just wrong or exemplify naivete however. He is surprised by how a language designed to be opaque to casual examination, statically compiled and used in a majority of high profile cloud native applications (where the install is often download and run a go binary as part of an un-examined curl | sh pipeline) is happily used for malware? Also interesting how designers of languages who are formerly avid critics of PL become reticent and opposed to negativity as authors. Finally he touts the 'hard' problem of concurrency that GO offers an unanticipated solution for as if OpenMP hasn't been around as a functional approach since 98 for concurrent programming in the HPC and scientific domains.

<comment><USER35> > a language designed to be opaque to casual examination

Is this really the case? I thought the prevailing wisdom is that Go was designed to be as simple as possible so newbs can pick it up faster. I find Go to be quite easy to read and follow along with even though I've never written a line of it. Rust on the other hand...

<comment><USER34> opaque to casual examination means that you simply cannot read the code. You would think that a statically compiled binary blob wouldn't be handled as if it was a perl script, but it is.

<comment><USER36> And Perl isn't opaque to casual examination? :D

</comment></comment></comment></comment><comment><USER37> Through kube and terraform? Are there other major tools?

<comment><USER38> Jaeger, prometheus, envoy, coredns, etcd, containerd, notary, linkerd, drone.io, helm, linkerd, grafana, traefik, caddy, gitea, rancher, moby/docker etc.

<comment><USER39> Didn't check others, but envoy I'm 100% sure is in C++

<comment><USER38> Oops, sorry got that one wrong indeed.

</comment></comment></comment></comment><comment><USER40> half the comments don't make any sense anymore because of the title change

<comment><USER41> Yes. It was a drastic title change- I wish mods (dang?) would note the change when it happens.

For others the original title was the title of the page:

Rob Pike interview: "Go has indeed become the language of cloud infrastructure"

</comment></comment><comment><USER42> Go is C for the cloud.

<comment><USER8> Go is a C framework.

</comment></comment><comment><USER43> I have huge respect for Rob Pike but there's a bit of revisionist history going on here.

Go was originally envisioned as a systems programming language. It was often called "a better C". This exposed Rob Pike's lack of experience in the area (IMHO) because anyone who had done any systems programming at all knew that garbage collection made any systems language a nonstarter.

Where Go succeeded was completely unintentional (as as often the case): it was (and is, IMHO) a better Python. Go hasn't attracted C, C++ or even Java programmers. It attracted Python refugees. So it's no accident the touted use cases ("cloud infrastructure") are _orchestration_ problems.

But at the same time, "cloud infrastructure" here refers to what, exactly? Kubernetes? Etcd? I think those could've been written in anything. More to the point, users of those don't really use Go as a result, right?

I think even Google found that internally Go was cannibalizing Python usage and little else.

Lots of Go newbies bemoan the lack of generics. I was never one of them. It's not the problem people think it is (IMHO). I'll be interested to see what this solution is even if simply means we can stop having having this conversation about Go not having generics. That alone is a win.

So I think there's two areas where Go screwed up. two big and one small.

The small one is the lack of IDE support. You don't need to write an IDE. You just need to have sufficient integration into Jetbrains IDEs (at a minimum).

The first big problem--and it still is a problem--is the dependency management, in that there wasn't a solution to this out of the gate (unlike, say, Rust and Crate). Like I was shocked the first time I saw import 'github.com/some_random_user/...' I dare you to go look at any even moderately sized Go project and unravel the levels of dependencies (including repeated dependencies, which may or may not impact binary size, I'm not sure). It's kind of a mess.

The second is, oddly, on concurrency or rather multi-core and multi-CPU utilization. Aren't we still in the GOMAXPROCS environment variable era? Really?

EDIT: adding this quote from Rob Pike in 2012 [1] as it's a first-hand account of Go's original design goals:

> I was asked a few weeks ago, "What was the biggest surprise you encountered > rolling out Go?" I knew the answer instantly: Although we expected C++ > programmers to see Go as an alternative, instead most Go programmers come > from languages like Python and Ruby. Very few come from C++.

[1]: [https://commandcenter.blogspot.com/2012/06/less-is- exponenti...](https://commandcenter.blogspot.com/2012/06/less-is- exponentially-more.html)

<comment><USER44> > It attracted Python refugees

Honest question: other than parallelism and performance, what are the main reasons someone would switch from Python to Go?

<comment><USER45> Single deployment binary, static typing, gofmt, and takes "there should be one and only one obvious way to do it" even farther than Python. It's very easy for new team members to ramp up on a Go codebase - formatting is standardized, libraries are standardized, and the language encourages very simple readable constructs (at the expense of brevity and abstraction, sometimes). That makes it attractive for companies in their growth stage, where you're working in teams but still have constraints on fast execution (CPU) and fast execution (developer velocity).

IMHO Go is still inferior to Python for solo-developer projects.

<comment><USER43> 100% this.

My personal view is that dynamically typed languages are largely falling out of favour with Javascript being the one glaring exception (and even there if I were starting a project today I'd use Typescript).

On the single deployment binary issue, let me just underline that point with one word: virtualenv.

<comment><USER46> > On the single deployment binary issue, let me just underline that point with > one word: virtualenv.

can you expand ?

</comment></comment></comment></comment></comment><comment><USER47> A little biased don't you think?

<comment><USER2> You have to be careful with everything Pike says. It's not just limited to Go.</comment></comment>


Roger Fuckbythenavele - <AUTHOR> https://en.wikipedia.org/wiki/Roger_Fuckebythenavele <comment><AUTHOR> As mentioned on the podcast "Lexicon Valley"</comment>


I built a COVID19 Node.js eventdriven application based on realtime data stream - <AUTHOR> https://dev.to/tweettamimi/how-i-built-an-event-driven-nodejs-app-on-realtime-covid-19-data-streams-3i98 <comment><USER2> awesome, thanks for sharing!</comment>


Click and Clack of Car Talk Retiring from Broadcasting - <AUTHOR> http://m.npr.org/story/154576808?url=/blogs/thetwo-way/2012/06/08/154576808/car-talk-guys-are-retiring-but-their-best-stuff-will-be-rebroadcast

<comment><USER2> I know these guys are a fixture, but I have never been able to stand them. Their voices to me have been like fingernails on chalkboards.

I would drive with the radio off until their show was over and only after, would I then turn it on to hear wait wait...</comment>


Inside the US government's war on tech support scammers - <AUTHOR> http://arstechnica.com/tech-policy/2014/05/stains-of-deceitfulness-inside-the-us-governments-war-on-tech-support-scammers/ <comment><USER2> One of these assholes incessantly calls up my grandmother (and everybody else in her building) daily, proceeds to scream at her when she denies owning a computer, insisting she does. Then calls her a liar (that she is lying she does not own a computer) until she unwillingly hangs up the phone... upset and confused as to why some young man is calling and yelling at her.

They're all coming from random phone numbers, and there seems to be literally nothing you can do to stop it. Apart from screening every one of her calls for her.

There really are some scummy people out there, unfortunately.

<comment><USER3> How about getting a new, unlisted number?

<comment><USER2> That's not really an option for a 95 year old woman whose friends only know and use the phonebook, unless she wants to risk losing contact with probably half of them.

</comment></comment></comment><comment><USER4> To anyone who suffers regular harassment like this, I recommend purchasing a singing bowl[1]. It's like a cross between a bowl, a bell and a large gong; when they call, place the phone receiver inside the bowl and strike the bowl repeatedly. Do this a couple times and chances are they won't call again.

[1] [http://en.wikipedia.org/wiki/Singing_bowl](http://en.wikipedia.org/wiki/Singing_bowl)

<comment><USER5> My way of dealing with it is giving the phone to my two year old. He gets a kick out of it, and usually keeps the scammers on the hook for a few minutes.

<comment><USER6> I would really recommend against this. Your child picks up nearly every word they hear. Some Indian shouting cursewords/insults at them isn't good for a developing brain.

</comment></comment></comment><comment><USER7> Most of the so called call centers and scammers are located at kolkata-India ( I know because I live in Kolkata-India ) , I hate how they scam and loot money from innocent people . Contact Indian Govt' ( Its changed now ) . and tell them about situation .

all this things creating a really bad image of India .

<comment><USER8> It does create a really bad image. Someone once traced the scammers all the way back to the Indian bank they were using. Do you think the banks care?

<comment><USER9> Bank probably knows you're unlikely to have much proof. I guess it's similar to the way people get away with putting flyers on car windscreens or paste up posters on buildings. You know with almost absolute certainty that the company being advertised is ultimately responsible, but unless you can connect all the dots, your complaint might not get anywhere.

</comment></comment></comment><comment><USER10> A friend of mine was approached by a similar operation to help them acquire a merchant account. As part of due delegince he went to their office and did cursory research.

He got them the merchant account. And then he started seeing the money roll in. Within 24 hours he heard from his merchant company whom he had a relationship with. They alerted him to the scam. He immediately refunded everyone charged despite his "friend" begging him to release the funds.

They give India a bad name and will ensure no call center business remains.

Scumbags.

</comment><comment><USER11> I always wondered how those 'YOUR COMPUTER IS INFECTED' ads actually were profitable. Now I see. A very informative article. It goes to show that some simple social engineering can outdo a vast amount of actual computer engineering when it comes to using technology to scam people.

<comment><USER12> Often they just open a payment gateway and ask the victim for money. Sometimes they install banking malware instead/as well.

</comment></comment><comment> slipstream- I once trolled a tech support scammer pretty hard through his own incompetence. He kept on trying to run a .NET based registry cleaner in my VM without the .net framework installed, and couldn't figure out why it wouldn't work. (I managed to grab the files out of the VM before he deleted them, and it was actually a registry cleaner, some rebrand of a commercial product that I forgot the name of now)

</comment><comment><USER13> These days its phonecalls. Everyone is continuously ringed by "Microsoft Technical Support".

Given what the HNers know about proxies and VoIP, I don't imagine there is a technical solution short of phone networks only accepting VoIP from some kind of certificate authority, which can be aggressively policed (by Western phone companies, somehow motivated to protect their customers and their good name)?

<comment><USER14> The obvious solution is for phones to work on a whitelist basis: only accept calls from a list of known good numbers.

Honestly, I'm astonished people put up with this kind of thing. If I was getting the kind of phone spam people are reporting, and no phone company was offering whitelisting, I'd just keep my phone turned off unless I needed it to make an outgoing call.

<comment><USER15> Whitelisting sounds appealing. I was going to say that it wouldn't be effective due to the ease of faking caller ID. However, I must admit that wouldn't be a big deal unless the scammer already knew one of the numbers on your whitelist.

A bigger problem, though, is that I'd like to accept some calls from strange numbers, like couriers trying to deliver something, or emergency calls from loved ones, or customer service reps calling me back about something.

For whitelisting to be effective, we'd have to change other things about the way the phone network and its participants work.

BTW if all your friends also turned their phones off except when they wanted to call someone, you'd seldom be able to reach them, unless you happened to call just before/after they had made a call.

<comment><USER16> I've been running a whitelist & blacklist on my landline phone (yes I still have one). Whitelisted callers get one ringtone & the phone flashes green, spam numbers are programmed into my phone as I detect them with no ringtone & the phone flashes pink (for spam). All other calls have a quieter ringtone that I may or may not answer depending on my mood - only once or twice have I missed an important call.

I realize landline phones are on the way out, but whoever makes a cordless multi-handset phone station with lots of number memory (I've nearly filled my 100 number memory) and features like VIP-callers-only, full disabling of ringer, and maybe even a downloadable spam/charity-call database, they'll get my next phone upgrade.

</comment></comment></comment></comment><comment><USER17> I was just reading through the righteous rants at [http://pccare247ripoffcomplaintsreviewscams.wordpress.com](http://pccare247ripoffcomplaintsreviewscams.wordpress.com).

What is his angle here ?

Was it some bad manager who asked his team at PCCare247 to get more clients by any means necessary while keeping their activities hidden from upper management ?

What else could have happened ?

The FTC recorded that the company

1\. Told their clients they had viruses when they did not

2\. Profited from this lie.

This is the central issue here.

Oh and by the way, 'we are going to adhere to the golden adage of Silence Is Golden while simultaneously blogging that resolutions were made ( without providing any evidence ) and extolling the possibly non-existing company virtues'.

<comment><USER18> That looks like a cover tactic. When users are curious about a company they often search company_name + " scam" or "complaint". Whoever set that site up wants to top those search results. Just look at how often they mention the company's name.

Granted such a blatant attempt is not going to fool Google, but it does show intention.

If I could guess whoever ran the scam tried yet another under-handed tactic to mislead victims.

</comment></comment><comment><USER19> An Indian company called iYogi is the pioneer of this scam. They have even raised over $85 million from these Investors:Saama Capital, Draper Fisher Jurvetson (DFJ), SAP Ventures, Canaan Partners, Sequoia Capital.

[https://www.google.com/search?q=iyogi+scam](https://www.google.com/search?q=iyogi+scam)

</comment><comment><USER20> Up next, the city government's war on jaywalking and the county library's war on overdue books.</comment>


A little rant about Dell - <AUTHOR>

I've just had to wipe my laptop and start over. Why do I have to download some software that will download a download manager so I can download drivers? Arrgh! <comment><USER2> Because you did not read and understand the click here for direct download. That is why. That is all. Get some glasses. Pay better attention. I hope you are not the Guy who works for me I'm scared.

<comment><USER3> Why is there even the option to do anything other than a direct download? Heck, why does he even need to bother with drivers? This isn't his fault. It's poor design.</comment></comment>


Poetry, real danger, and ASP.NET - <AUTHOR>

I'm a working ASP.NET Developer. I have the usual background in databases, Javascript, 3-tier architecture, AJAX, and so on. But what I want is an applied career working with graphs, networks, morphisms, and functors, where JSON falls away and transitive closure comes into play. I want to use Eigenvectors to tell what's important in data regardless of the data itself. I want to code with self-organizing semantic analysis tools (Microsoft Roslyn) and shortest-path algorithms. I want to model web services and complex systems using force-directed graphs (D3) that are rearranged on the fly to rewire the system. I want to compute system reliability not with Monkeys but with adjacency matrices.
I want bijective and injective, bipartite and clique, functors and connectedness and small world effects.
I don't want comfort. I want God, I want poetry, I want real danger, I want freedom, I want goodness, I want sin. <comment><USER2> You could try to find work with your local metro transit provider. Intel, AMD, ARM, or anyone doing Ads. Are you able to work for a startup? You may find the complexity you desire in the mastery of having no time to do any one thing completely.

<comment><AUTHOR> Thanks for the excellent suggestions. My local transit agency doesn't have a reputation for complexity, but I'll do some research.

Yes, a startup would certainly offer the complexity I'm after. I'm not pursuing insurmountable complexity in its own right. I feel we should be doing programming at a vastly higher level of abstraction.

Maybe I ought to shift to Haskell development, or spin higher level of abstraction into a venture of its own. Thanks again.</comment></comment>


Microsoft Sues Justice Department Over Secret Customer Data Searches - <AUTHOR> http://www.wsj.com/articles/microsoft-sues-justice-department-over-secret-customer-data-searches-1460649720 <comment><USER2> 'Microsoft's filing zeroes in on a provision of the Electronic Communications Privacy Act, written in 1986. The company argues that indefinite gag orders violate the First Amendment right to inform customers about the search of their files "as soon as secrecy is no longer required." Additionally, the suit claims that the law "flouts" Fourth Amendment requirements that the government give notice to people when their property is being searched or seized.'

This is pleasing news, but to be honest I am a little concerned about the fact the Amazon didn't attempt one of these lawsuit earlier. I am not sure how cooperative AWS is with the government but I would assume they are the largest target for these types of requests. In general I like Amazon as a company but this makes me question their respect for user privacy.

<comment><USER3> Amazon promised bi-annual transparency reports here:

[https://blogs.aws.amazon.com/security/blog/tag/Transparency+...](https://blogs.aws.amazon.com/security/blog/tag/Transparency+report)

However only one report (covering a 6-month period) has was issued and posted in the initial blog post on June 2015. None have followed:

[http://d0.awsstatic.com/certifications/Information_Request_R...](http://d0.awsstatic.com/certifications/Information_Request_Report.pdf)

<comment><USER4> Maybe they meant biennial rather than biannual?

<comment><USER5> I always thought those two terms were equivalent, and that "semiannual" was the every-six-months one. Turns out I as wrong.[1]

[1] [http://writersrelief.com/blog/2011/05/biannual-biennial- or-s...](http://writersrelief.com/blog/2011/05/biannual-biennial-or- semiannual/)

<comment><USER6> Many (most?) sources define "biannual" only as "twice a year". Yet Merriam- Webster says: "Some people prefer to use semiannual to refer to something that occurs twice a year, reserving biannual for things that occur once every two years."

<comment><USER5> It's a good lesson for contract writers and anyone else that wants to be clear. Never use any of those terms. Instead, write, "Inspections will be done every 24 months", or, "The toner needs to be ordered every six months".

If something is supposed to occur every other Friday? Write it just like that, or "every 14 days". Don't say, "Paychecks are distributed bi-weekly"

<comment><USER4> Is it common to give out paychecks twice a week though? I feel like common sense could rule out one of those cases...

<comment><USER7> Say you've got a 10 new joiners per week at your high-turnover packing factory, and a sign outside the admin office that says "Paychecks are distributed bi-weekly".

Maybe typically 5 of them have had a job before in the area, 3 have had a job elsewhere and 2 have never had a job. Not all of them have the same level of education.

How many will misunderstand your sign? Might any of those misunderstandings about money cause problems for people?

Considering the comparitive cost of writing the sign as "every two weeks", and the reduction in potential confusion, it seems like a no-brainer to write it that way.

<comment><USER4> I mean are you talking about jobs meant for those with some kind of college education, or are you talking about jobs aimed at (say) middle-school drop- outs? For the latter, I can see it, but for the former it's almost insulting to try to simplify things too much just in case the employee doesn't have common sense that they will need on the job anyway...

<comment><USER7> I was using a low-income example to make the point clear, but the same principle applies to everyone.

By assuming a high-education environment you might nudge down the number of misunderstandings. You'll nudge it further if you assume English is everyone's first language. [Note that these assumptions are probably discriminatory]

You'll nudge it further if you assume that nobody in your working environment is dylsexic, or has any other linguistic impairment. [This assumption is certainly discriminatory]

You'll nudge it further if you assume that everyone is operating at 100% all the time... which is just plain untrue, as nicely summed up by this slide from Microsoft's Inclusive Design reference: [https://marcysutton.github.io/mobile-a11y/img/injury.png](https://marcysutton.github.io/mobile-a11y/img/injury.png)

While you might be insulted by language that insufficiently feeds your desire to feel good about your intelligence, your right to not be insulted is a lower priority than communicating important information clearly.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Throwaway because I am currently under investigation. Apple inadvertently notified me that <Agency> had subpoena'd my iCloud backups. I suspect that they violated the gag order in error. As a result they expedited their physical warrant and raided me 2 days later. As someone targeted by a federal investigation, it is clear that the government will vacuum up as much information as possible without my knowledge. Hopefully Microsoft succeeds in this lawsuit.

<comment><USER9> Do you know why you are being investigated?

<comment><USER10> Are you a Fed? Why would you ask a question that could only hurt GP?

<comment><USER11> I'm not a Fed but I'm also interested.

It could be anything - from something insidiously evil or it could be something like they're a journalist.

</comment></comment></comment></comment><comment><USER12> Indefinite gag orders are definitely unconstitutional, and it has been proven before in Court. There should be an _automatic_ limit as well for when the gag orders expire, like say 1-3 months, or whatever is considered "reasonable" for an investigation. After that, the government should have to get extensions every 3 months from a judge. After 2 or 3 years, the extension should be obtained only from a federal judge.

And it goes without saying that the gag orders should only be given in very specific scenarios, not for _all data requests_ , or anytime the government wants to give one.

<comment><USER13> It would be a pipe dream, but at the conclusion of the gag period there should additionally be a disclosure requirement - like a data breach notification. That would help balance out the desire to keep these things under wraps.

</comment></comment><comment><USER14> As much as it is generally reviled (especially by those who hang around the Internet) I bet the _Citizens United_ decision will help Microsoft a bit in this suit as it reaffirmed First Amendment speech protections do apply to corporate speakers especially in the context of political speech.

[http://www.supremecourt.gov/opinions/09pdf/08-205.pdf](http://www.supremecourt.gov/opinions/09pdf/08-205.pdf)

<comment><USER15> Most of those who are against Citizens United do not understand how chilling to free speech the alternative would be.

Hint: there's a reason the ACLU believes Citizens United was the right decision.

<comment><USER16> So in a word where money != speech, speech is impacted negatively?

<comment><USER17> There are a variety of anti-Citizens-United positions, but the strongest (and most problematic) one is that corporations are not people, and the Bill of Rights secures rights only to people, therefore the First Amendment is inapplicable to corporations. That would, at the very least, require a revision in important precedents like _New York Times Co. v. Sullivan_ [1], which assume that the First Amendment is applicable to corporations' publishing activities.

[1] [https://en.wikipedia.org/wiki/New_York_Times_Co._v._Sullivan](https://en.wikipedia.org/wiki/New_York_Times_Co._v._Sullivan)

<comment><USER18> Corporations are people. They are taxed like people, they break laws like people, and they own property like people.

They just can't vote.

<comment><USER19> In every other way they are not like people. They are neither mortal nor corporeal (in the sense that a human body can be imprisoned or damaged). They can feel no emotion and are not subject to disease. This is important because humans are limited in myriad ways that corporations aren't and by giving corporations human rights the balance of power between actual humans and corporations tilts to the latter.

For example, while they can break the laws like people, corporations are not punished the same. When was the last time a corporation was "executed" (e.g. corporate charter revoked)?

<comment><USER20> Last one I could find was in California in 1976.

<comment><USER10> This should certainly be a more common occurrence.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER21> It's nice to see when two big corporations compete over each other over who fights harder for the civil liberties of it's users. You one-up those Apple bastards, MS!

</comment><comment><USER22> It is interesting that law enforcement doesn't draw the connection between the abuse of a capability with the people making it harder to abuse. I don't think there would be any outrage or pushback if such requests were in the 10's a month rather in the 1000's a month.

</comment><comment><USER23> Archive Link: [http://archive.is/L6fJf](http://archive.is/L6fJf)

If you want to skip logging in.

</comment><comment><USER24> I thought I'd repost the lawful spying guides by the biggest cloud service providers [1] (including Microsoft). There's a great one from the Hotmail era I couldn't find on a whim though.

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

</comment><comment><USER25> AP link in case you don't subscribe: [http://hosted.ap.org/dynamic/stories/U/US_MICROSOFT_SECRET_S...](http://hosted.ap.org/dynamic/stories/U/US_MICROSOFT_SECRET_SEARCHES_WAOL-?SITE=AP&SECTION=HOME&TEMPLATE=DEFAULT&CTIME=2016-04-14-18-06-40)

<comment><USER26> You can also just click through the |web| link at the top of this page.

</comment></comment><comment><USER27> [https://archive.is/L6fJf](https://archive.is/L6fJf)

</comment><comment><USER28> How nice of Microsoft, that they want to use the data all for themselves... and how nice for them that almost nobody even thinks that "not harvesting every bit of data you get your hands on just because you can" is also a possible scenario.

</comment><comment><USER11> What I want to know is - why now and not years ago?

</comment><comment><USER29> Does this imply that the Justice department can search your computer if Windows 10 is installed? Or does this just apply to data MS has on you at MS? (OneDrive, use telemetry, etc)?

<comment><USER30> So... there's no evidence the "Justice Department can search your computer if Win10 is installed" assuming your device is actually secure. Bad passwords, no supported integrated TPM or other issues (common to custom built machines) will comprimise your local device security and thusly make them the easiest method of attack.

If served a lawful subpoena, ANY cloud service provider may be required to hand over your data if they have that power. If you've got something truly critical (e.g., evidence you're transsexual in NC and use the "illegal"/correct bathroom) you should encrypt it even on top of what your CSP does. Windows, OSX and Linux all offer methods for doing this effectively.

I've used OneDrive with encrypted VHDs. It works fine, so long as you don't access the VHD from multiple places at once. I do this more because my OneDrive syncs to a surfacebook than because I am concerned about subpoenas.

As for the telemetry collected, it's probably not of any use to them. It's the same sort of stuff every app on your phone sends up to mixpanel. I wouldn't worry about that, as it's not a substantially greater privacy violation than the natural telemetry collected by the cell network and local ISPs. The only way it might be used against you is in proving a certain access pattern to the device at a certain time.

<comment><USER29> Oh I expect telemetry would be of great use to them. What you have installed, what your using and when. Log information would be extremely useful toward matching a person up with a crime. I doubt it is just OneDrive data they are providing.

<comment><USER30> > Log information would be extremely useful toward matching a person up with a > crime.

As opposed to the information that the ISPs are already offering? Sorry, but your underlying networks are already in collusion with the feds.

Were they not, the telemetry might provide signals that wouldn't be more easily obtained elsewhere.

But it's also worth noting that the telemetry for 'apps installed' is just your license list from the store. We don't have a ton of evidence that MS is combing your computer for random executables and reporting that back on a signal, or passing up full untrimmed process lists.

<comment><USER31> >As opposed to the information that the ISPs are already offering?

Log information _can_ be much more revealing if you are communicating only via encrypted protocols or Tor. We don't know for sure what exactly MS is transmitting in their logs but we do know quite well what traces we leave (or leave not) behind via our ISP. And that's definitely much less than what our machine can reveal via (encrypted) telemetry.

<comment><USER30> Three thoughts here.

1\. We really don't know the extent of telemetry collected via our ISPs, do we? Unless application authors go to the trouble of specific certificate or signatory cert pinning, it's not terribly challenging for certain classes of attackera to enter that connection.

2\. Wouldn't substantial data in Tor logs be a bug with your Tor client anyways? I've never seen a Tor client ship in a logging debug mode. But I haven't taken Tor terribly seriously for years. Did they start doing it wrong?

3\. The contents of the data that is being sent to Microsoft is entirely knowable. I'm waiting for a security researcher to just do it. I suspect most of what we see is something along the lines of standard app telemetry for core apps.

The amount of FUD that has been brought to bear against MS for this practice is pretty unsurprising given the scroogled campaigns, but it's funny to see a bunch of 3rd parties buy into it while posting from Macs that do the same thing.</comment></comment></comment></comment></comment></comment>


Judge orders cybersquatter to pay Verizon $33m - <AUTHOR> http://www.theregister.co.uk/2009/08/27/onlinenic_verizon_ruling_upheld/ <comment><USER2> i hope that some day patent trolling companies be treated this way.

</comment><comment><USER3> A legal system which orders fines so vastly disproportionate to the "crime" is no longer a real legal system, but a joke. If you want to make a point, write a damn essay. Your job is to uphold the law, not screw with people to try to scare them into obedience. This is ridiculous. It's time for these judges to get axed and to get some competency back (assuming it was ever there in the first place) into the U.S. legal system.

<comment><USER4> Damages, not fines. It's supposed to compensate Verizon for the losses it has suffered, due to the wrong-doing of OnlineNIC.

<comment><USER3> Damages, whatever. Terminology is really not worth fighting over.

There is no conceivable way this company did that much damage to Verizon. In fact, it's unlikely they damaged Verizon at all, especially when we know that most users find pages through Google and that Google would certainly return Verizon's real site first. If anyone was damaged, it was the people who thought they were at Verizon's site but weren't, and the number of those people is probably 3 at best.

Look at the other story they link to about file-sharing. A $2M fine for sharing 24 songs? Is there any possible way that one person sharing 24 songs can do $2M in damage? No. It's insane.

I think it's quite clear that judgements like these are designed to scare people. They have absolutely no basis in reality or sanity. Any judge that issues a judgement like this should be removed from service. I would feel the same about someone ordering life in prison for car theft... but this is more like ordering the death penalty for shoplifting.

<comment><USER4> _> Damages, whatever. Terminology is really not worth fighting over._

That's like saying "Cars, bicycles, whatever. Terminology is really not worth fighting over." There's a difference between the two.

 _> There is no conceivable way this company did that much damage to Verizon. In fact, it's unlikely they damaged Verizon at all, especially when we know that most users find pages through Google and that Google would certainly return Verizon's real site first. If anyone was damaged, it was the people who thought they were at Verizon's site but weren't, and the number of those people is probably 3 at best._

OnlineNIC claims that it made ~$1500 in profits from it. That's just their claim and already far more than 3 visitors. Some of those visitors may have gotten lost and never ended up on Verizon's website. They may have been able to make more from their visitors than OnlineNIC. Their brand is lessened by the experience. They had to find OnlineNIC. They had legal expenses. And there's probably more.

 _> Look at the other story they link to about file-sharing._

I have no interest in comparing anything to file sharing/piracy. That subject seems to cause some powerful emotions that make rational discussion impossible.

<comment><USER3> There's a difference between fines and damages, but the issue was simply terminology. I understand perfectly well what we're talking about. I used the wrong word.

I understand there are issues where this could have caused damages to Verizon, but I don't think they come to $33M. Either way, I don't think there's any way to quantify the damages to show what they really come to... which is sort of the problem.</comment></comment></comment></comment></comment>


Perlin Noise - <AUTHOR> http://freespace.virgin.net/hugo.elias/models/m_perlin.htm

<comment><USER2> This is just a simplistic description of Perlin Noise. However while implementing the algorithm this is not the way to go. Because it's very very slow -- the author has simply taken non-coherent noise and smoothened it and this is computationally very expensive.

And also Ken Perlin has made an improved version to his original with some speedups and a reference implementation in Java can be found here: <http://mrl.nyu.edu/~perlin/noise/>

<comment><USER3> Where are the permutation numbers derived from?

<comment><USER2> They are generated randomly. Ken Perlin has described it in his book Texturing, Modeling A Procedural Approach. If I remember correctly the numbers have to be such that every direction should have an equal chance. Even distribution I think.

<comment><USER3> I was thinking it would be more like the fast inverse square from Quake. If it's random, using the same code could be a problem, no?

</comment></comment></comment></comment><comment><USER4> I wrote a Python extension based on the original Ken Perlin's algorithm. Just found it on my hard drive and uploaded it to github: <http://github.com/ii/perlin>

</comment><comment><USER2> I've implemented 2D perlin noise for my final year project, but I think it has mistakes in it. Never got the time to verify. If anybody wants to take a look it's here: [http://trac.assembla.com/terrainium/browser/TerrainiumLatest...](http://trac.assembla.com/terrainium/browser/TerrainiumLatest/Terrainium/src/terrainium/AlgorithmPerlin.java)

perlinNoise() is the function to look at. I implemented it based on [http://web.archive.org/web/20070706003038/http://www.cs.cmu....](http://web.archive.org/web/20070706003038/http://www.cs.cmu.edu/~mzucker/code/perlin- noise-math-faq.html) but the images are missing in the web archive :(

</comment><comment><USER5> Wow, 2 Ken Perlin related posts in an hour! I met Ken Perlin once very briefly and randomly and was a bit in shock when I realized who I was talking to. He was in shock that I was in shock. Nice (and very smart) guy.

</comment><comment><USER6> Ken Perlin is one of the best computer science professors at NYU. Take a class of his if you get the chance.

</comment><comment><USER7> If you're interested in noise functions, you might want to check out Pixar's wavelet noise - <http://graphics.pixar.com/library/#WaveletNoise>

</comment><comment><USER8> A never-released (3d space mmorpg wing-commander-esque) game my friends worked on for a while used this for texturing their worlds: <http://www.cocommand.com/></comment>


Apple iPsum: Lorem Ipsum, Apple Style - <AUTHOR> http://appleipsum.org

<comment><USER2> Ahahaha, that was amazing; I got at least 7 words in before I realized I wasn't actually reading something meaningful!</comment>


Graphene production launched in Poland - <AUTHOR> http://www.wbj.pl/article-64641-graphene-production-launched-in-poland.html?typ=pam

<comment><AUTHOR> Online store of the company

[http://www.grapheneshop.pl/en/products/graphene-on- sic](http://www.grapheneshop.pl/en/products/graphene-on-sic)

[http://www.grapheneshop.pl/en/products/graphene-on- copper](http://www.grapheneshop.pl/en/products/graphene-on-copper)

Previous news about their production method - supposedly it's cheaper and produces bigger (and more uniform/pure) graphene waffers than other methods: [http://phys.org/news/2011-04-team-material- graphene.html](http://phys.org/news/2011-04-team-material-graphene.html)</comment>


Ask HN: Do you keep a journal of ideas? - <AUTHOR> How do you take note of interesting ideas you'd like to try out? <comment><USER2> I use Trello. Find just creating a spot for ideas (mine is actually called "random Ideas" and most are awful ideas I'm sure) in whatever tool you already use is the easiest way to get them down somewhere.

</comment><comment><USER3> I keep two documents:

Projects - for all sorts of stuff that can be anything from little one page apps, t-shirts, art projects, do X but for Y (like do this thing somebody did for US states but for European Countries), slogans to print on beer mugs - whatever.

Serious Projects - anything that will take several months of sustained development to be able to make an MVP and will require funding of some sort.

They're just on google drive, I figure if I get an idea on the bus and it can't last til I get somewhere to enter it in my projects document, it isn't a worthwhile idea.

</comment><comment><USER4> I've been maintaining a simple text file with project ideas for the last 3+ years. It's accessible from all devices I use. Each idea has a headline and three bullet points describing what it is.

<comment> a-saleh How do you make it accessible from all devices you use?

<comment><USER4> It's on Dropbox so I just use whatever apps can access it, specifically I use 1Writer for iOS on mobile.

</comment></comment></comment><comment><USER5> I use notes and create a new one every time I have a new idea. They are all in a note group "Ideas". Every few months I review it and put it in an excel where I rate it based on joy, roi, time needed, ... and if I feel like it I execute the top rated one.

</comment><comment><USER6> Absolutely. I come up with a lot of crappy ideas, but there's usually something worth exploring every now and then.

(1) I have an asana project called Ideas. Each task is an idea. I've set up a workflow where I can just send an email to the Asana project inbox and a task gets created. I've kept up this practice for more than a year and I have almost 300 ideas I've logged.

(2) Whenever I think 'alright, I want to work on a new side project', I go through the list of ideas and categorize them. A ton get categorized as trash, and a very small number get categorized as worth moving into customer discovery and validation.

</comment><comment><USER7> I use Emacs Org mode [https://orgmode.org/](https://orgmode.org/)

<comment><USER8> Me too. I keep trying different things (notion, bear, Evernote etc etc) and always find myself coming back to emacs.

</comment></comment><comment><USER9> Yes, I keep a small notebook with me all the time. I jot down small flashes of insights and a-ha moments in it. Then I timely review them. I discard some that doesn't make sense anymore; improve upon the remaining and congregate them in Notion.

</comment><comment><USER10> Yes. I use google keep for keeping interesting ideas. I also have one card created per month to note down important lessons I learned that month personally and professionally.

</comment><comment><USER11> I've got a little notebook of things I write down. Had to spend that mandatory college cash on something. It's got a little band to keep it closed and one of those built-in cloth bookmarks.

</comment><comment><USER12> Yes. I was using a bunch of tools to do so: Google Keep, Simplenote, Trello. Currently switching to Notion.

</comment><comment><USER13> Google Keep is what I use

</comment><comment><USER14> Yes I do. I keep it in notion or random .txt files.

</comment><comment><USER15> todo.txt in Dropbox root folder. Windows notepad as an editor.</comment>


Responsive Web Designs Services in Ghaziabad - <AUTHOR> http://www.itsws.com/responsive-website-designing-services.html <comment><AUTHOR> If you want to make a responsive website create, you must contact ITSWS Company, is one of the best website design company in Ghaziabad.</comment>


Avoid Customer Feedback Before Version 1.0 - <AUTHOR> http://adii.me/2011/08/avoid-pre-v1-feedback/

<comment><USER2> I can't seem to find myself in agreeance with what the author has written. It might be in the way it was written (author could have been pressed for time and compressed what he wanted to say).

How many years have we validated the effectiveness of "Get out of the Building" already? Not talking to customers before version 1.0 is against this highly effective principal.

Lean startup is not just 'iterate'. It's really a "huge customer feed back loop." You iterate based on things you learned from customers.

Replacing 'tech' with restaurant might make it easier to understand. The author is suggesting releasing food to users at a restaurant opening, prior to actually testing whether people want that food, think the food is good, or even if that food is appealing to the correct customer segment.

What the author and most commenters have already gleamed, is that customers can be wrong. But they can also be right. The same principles apply to founders as well. Here is a quote from Eric Ries:

## _Learning and executing customer feedback skills is as important as coding._ ##

Carefully snipped from: [http://www.startuplessonslearned.com/2010/09/visionarys- lame...](http://www.startuplessonslearned.com/2010/09/visionarys-lament.html) Go read the entire post. " ...

This is where data, focus groups, customer feedback, and collaborative decision-making get their bad rap. In many cases, these activities lead to bad outcomes: watered down vision, premature abandonment, and local maxima.

When visionaries say "but customers don't know what they want!" they are right. That's the problem with false dichotomies: each side has a kernel of truth within it. You cannot build a great product simply by obeying what customers say they want. First of all, how do you know which customers to listen to? And what do you do when they say contradictory things?

...

I recommend a mantra that I learned from Steve Blank: always consider your job to find out if there is a market for the product as currently specified. Don't try and change the vision every time you get new data. Instead, get out of the building and look for customers for whom your product vision is a slam-dunk fit. If and only if, after exhaustive searching, you cannot find any customers that fit the profile, is it time to have a serious conversation about whether and how the vision should be modified (a pivot).

... "

Now read the post title again, "Avoid Customer Feedback Before Version 1.0".

You see, its actually fundamental to keep the feedback loop going _as early as possible_. Even before version 1.0. This is why I don't agree with the article author. Again, it might be because of the way the article was written (it's always good to have more details) and trying to compress a startup in several paragraphs is near impossible.

Your goal isn't to put out a 'complete' app. Your MVP should be focusing on only providing a solution for the very defined simple and tiny problem which you found. In that exercise you will have to filter through customer feedback. Feedback includes metrics gathering whether or not people are using your product and if people are clicking on the wrong stuff. This kind of feedback helps you correct usability issues.

You cannot just go out and ask users "What features do you want." That is nuts. You need to script it carefully, you need to engage and ask users about ambient ideas, feelings, thoughts. Sometimes you also just need to let the customer speak. You will need to develop customer skills. There 'might' be some interesting discoveries along the way.

Eric Ries and Ash Maurya recommend about about 30 minutes for customer interviews and the script is VERY carefully put together as to AVOID "what features do you want".

<comment><USER3> This is how I see the problem. Feedback comes in different forms. Giving a potential client (or beta client) a survey that says "What can we improve?" might not yield the results you want. Listening to a client talk about the product, the interface, how they use, what they talk about in a day to day conversation, will yield you insight to the real problem. If you ever listen to PG break down proposed business ideas, he's very acute in finding real logic and reasoning behind problems people have and the solutions people are proposing. I believe this is both a mixture of natural ability (perhaps what we generally consider IQ?) and experience - not some manual you can read.

Most of us techies are very analytical - which means we analyze something and try to reproduce it. So when we read things like the lean startup or this blog post, we think "Copy+Paste = Success". I don't think there really is a manual for getting user feedback. I think you either get it or you don't (or you eventually get it). The lean startup is a framework. Like any framework, it doesn't do anything unless you understand it and know how to leverage it.

<comment><USER2> I agree and that is why I tried to frame my sentence above "Learning and executing customer feedback skills is as important as coding".

I am a firm believer that It can be learned. In fact I think many VCs look for entrepreneurs that are willing and able to learn these important skills.

I look at it this way as well, it is much easier to teach a hacker customer skills than it is a business person how to code, and code well (like a good hacker).

<comment><USER4> On your last remark, I've come to realize this assumption is false. Two points: (1) In the same way that hackers have practiced thinking like hackers all their lives, gifted business people have been practicing what they do well since a very young age. (2) What makes it "hard" for business people to learn to code may not be that it's hard to learn, but that the ROI isn't great enough.

<comment><USER2> Why would the 'I' in ROI not be (in some respect) the effort required to teach hacker-ness?

</comment></comment></comment></comment></comment><comment><USER5> Nice thought provoking article and I can empathise with it. But the title is dangerously misleading IMHO.

All feedback is valuable. Decoding it is the entrepreneur's job - shutting off feedback from your user base can be a quick death march to oblivion. Hear their pain, ignore their demands :-)

If it's overwhelming have a private beta and gradually let people in (we're doing that right now at <http://hashbo.com> \- I know, I know gratuitous plug) - listen to the first groups pain. Ease it where possible and accept the limitations present. Move to the next. You won't please everyone, doing so is the pitfall I believe this article is aiming at. Encourage users to feedback, but put it in a list you don't read. Every now and again look at the list for trends, for themes and reconsider if those themes are within product scope, if they are then get on it, if not forget it.

There's a huge middle ground between between reacting to each demand and ignoring all feedback :-)

Personally I decode feature requests into user desires or user pain, so I both agree with the principle of what you're saying but feel it's perfectly okay to receive feature requests if you are willing to decode them :-) But to be fair, my follow up the question is, why do you want this feature (i.e. where is the pain :-) )

Ok 2c given :-)

</comment><comment><USER6> Rather than say avoiding customer feedback altogether, I'd say to use it appropriately.

Whether you're using "Lean Startup" or traditional product development, you're going to encounter people who say "I want feature X". Rather than simply taking this as a request for a feature, you should act as if they said "I am trying to do something with your software, but I can't, and I think that if I had feature X I could do it."

Figuring out what that something that the customer is trying to do is invaluable. Then you need to figure out if you're going to help them do that something or not, and how to do it.

<comment><AUTHOR> Good point and you'll see that the title of my article is more provocative compared to the article itself, where I advocate exactly what you've said.

The most important point I tried to make was that generally one should avoid feedback this early, but if you decide to get feedback, be cautious in how you use it.

</comment></comment><comment><USER7> It's not the customer's job to know what they want. \- Steve Jobs

Customers are great at articulating problems but whenever they start suggesting solutions, I try and get to the root problems whether it's before Version 1.0 or a feature request after.

Before launch I do talk to customers - the first is an interview, second is for feedback. The interview is to learn about problems and how they solve them today (existing alternatives).

Armed with that knowledge, I then build a "demo" (prototype, mockup, etc.) that I show to them once more to validate this "will" solve the problem before I build the real product/feature.

For a more detailed write-up: <http://www.ashmaurya.com/2011/07/how-we-build- features/>

\- Ash

</comment><comment><USER8> Speaking to potential customers about the specifics of feature implementations might sometimes be a bad idea before version 1.0, but I definitely think it's good to speak to potential customers. It's by far the best way to understand your market - figure out what problems they face, what they (think they) want, and what they might be willing to pay for it.

I've spent the last year working on a new product. (What can I say, I'm slow!) At several points I've thought that I've spoken to enough potential customers, that I've got all the information and understanding of the market that I need to go on with... And then another potential customer pops up, I speak to them, and gain valuable insights that I never would have imagined I was lacking.

These conversations haven't really slowed me down; if anything it's the opposite. They've helped me make decisions that I was struggling with and they've helped me to prioritize what's important. I think they've helped me to avoid costly mistakes. Every month I feel more comfortable with the product that I'm soon to launch.

And I can still change direction after launch, if it makes sense to do so.

It's not just about figuring out what features your product should have. It's about figuring out what types of people (or companies) are going to want to buy it, which you can most profitably target, how much they're likely to want to pay, and how best to sell it to them (e.g. what about your proposed product really pushes their buttons?). Understanding this stuff affects so much, like your choice of product name, how you should market it, and price it. Figuring out the initial feature set is just part of it.

</comment><comment><USER9> Guy Kawasaki has a great story here. As he tells it, customers surveyed about the Apple II said they wanted more memory, more color, and more expandability. What Apple delivered with the Mac was less memory, no color, and no expandability. The point is that customer feedback is great for gathering ideas to evolve a product, but you'll never get customer surveys to suggest an outright revolution.

<comment><AUTHOR> I've never heard that story before, but it sounds just about spot-on. Do you have a link to it perhaps?

<comment><USER9> I believe it's in his book Rules For Revolutionaries. I remember it as audio of a speech he gave. I'll try to find that speech.

</comment></comment></comment><comment><USER10> Good reasons. Having a channel for customer feedback doesn't hurt, but ultimately it's up to you and what you feel is good for your product/business.

You may have a list of 10-15 projected features based on the direction you see the product going. However, once your customers begin using your product, their ideas may drastically change your product. For better or worse.

That's all part of the fun of running a business. There will be days where you'll be on top of your game and feel all your ideas will make your business a success. Other times you'll feel everything you know is wrong. The proof is in the pudding and you get to choose the ingredients.

</comment><comment><USER11> Adii definitely makes a lot of good points here. Recently, I've been speaking indirectly to people that are in the industry my product relates to. While the discussions are exciting, I've noticed myself trying to creep more and more features into version 1. It's a bit of a distraction and requires a conscious effort on my behalf to prevent it (i.e. more work). That being said, I do feel there is some value in speaking with customers before v1. Knowing whether or not there's a demand for your product and learning what's really _wrong_ with what's available is a great thing. It's up to the entrepreneur, though, to make sure that those ideas don't cloud the focus of your current work, or make you feel as though they have to appear in v1. Take notes, not action (just yet).

</comment><comment><USER12> totally disagree. our site littlebiggy.org is in open alpha though not promoted. search has brought us a half a million visitors so far. we dont ask them what features they want so much as see how they use the site and respond to their criticism and questions.

had we not done this we would certainly be coding a myopic vision. user feedback has changed our functionality about 75% and much of what we do now is based on real engagement numbers.

btw this happened by accident. one of us left a dev sandbox open to crawling and people started contacting us about the site before we even realized it. from that moment forward everything has improved and a lot of wasted development time has been prevented.

<comment><USER13> That's not really Customer feedback. It's analysis and yes that is very valuable, but different than OPs point

</comment></comment><comment><USER14> tl;dr ask short targeted questions that are designed to test a specific hypothesis.

Working on a very young lean startup and as we've gotten off the ground we've struggled with these problems. We'd ask what they were looking for and we heard about big integrated solutions and lots of little (low value?) features. It didn't seem like this was leading us in a lean direction at all.

What we ended up finding much more valuable was to identify specific hypotheses about the problem we were trying to solve. And then set up a specific "experiment" to test our hypothesis.

An example would be helpful: our original idea was that we would make a system for collecting conference session evaluations -- replace the paper eval forms with a web/smartphone based version. We identified conference organizers as our market. Thus our first hypothesis to test was, conference organizers care about collecting session feedback.

We called and emailed a bunch of conference organizers with a really quick questionaire: do you collect feedback? how? what do you do with it? how much do you spend on it?

That's it. At the end of 10 responses, it was totally clear that we were barking up the wrong tree. Pivot.

</comment><comment><USER15> I agree with this, and it's the same approach my partner and I have adopted. It's hard enough to build and focus on a product with internal problems and suggestions, much less adding customer/tester feedback to the mix.

We have a vision, so we build it and get feedback along the way. Sure, sometimes people have great ideas or new ways to do things, but if you start taking feedback too soon, it becomes the customer's product and not your own.

</comment><comment><USER16> Avoid using that terrible tiny font for online articles.

</comment><comment><USER17> Feedback is not advice. This article is saying "don't ask your customers for advice before 1.0". I'd say, " _never_ ask your customers for advice". But get feedback - preferably from a small sample size that you can talk to in-depth about their experiences. But you're looking at what they're experiencing and trying to learn your own lessons. You are _not_ asking them what they _want_.

</comment><comment><USER18> Bzzzt. Nope, sorry, can't agree =)

The correct answer is "be comfortable and courteous receiving redundant criticisms on incomplete features."

</comment><comment><USER19> I believe that's what a Beta used to be before the 2.0's started tagging everything with it and making incremental changes to their work based on incessant user feedback. The problem today is that an entire plethora of applications target the many pieces required to solve your problem if not the core problem itself, so you either have to include a baseline of functionality expected in todays's app and risk being flushed away or you actually revolutionize the space from the ground up at the risk of total failure. It's a choice you have to make and with the speed of today's releases and the reactions of social media (see: Color) you need to strike a balance between vision and feedback instead of focusing on point releases, which are in themselves kind of pointless.

tl;dr: this article addresses software as it was developed ten years ago and includes a most horrid blog theme to boot.</comment>


US Government Sites Give Bad Security Advice - <AUTHOR> https://krebsonsecurity.com/2020/03/us-government-sites-give-bad-security-advice/ <comment><USER2> I was going to reply to guacamole4's comment, which is unfortunately [dead] now. I think it's useful to talk about.

> Author then claims that just about anybody can get .gov domain which is > untrue.

It didn't take much Googling to find Krebs stating that it's pretty easy: [https://krebsonsecurity.com/2019/11/its-way-too-easy-to- get-...](https://krebsonsecurity.com/2019/11/its-way-too-easy-to-get-a-gov- domain-name/)

Even without an article, it seems obvious to me that a criminal setting up a phishing site wouldn't be deterred by a bit more wire fraud to obtain a .gov.

<comment><USER3> After Brian Krebs' reporting, the GSA just announced a new process to get a .gov domain. [https://krebsonsecurity.com/2020/03/u-s-govt-makes-it- harder...](https://krebsonsecurity.com/2020/03/u-s-govt-makes-it-harder-to- get-gov-domains/)

<comment><USER2> > But I'm left to wonder: If I'm a bad guy who's willing to forge someone's > signature and letterhead in a fraudulent application for a .gov domain, why > wouldn't I also be willing to fake a notarization?

It's probably not enough.

I think just by the nature of .gov domains, it's going to be very difficult to properly secure them. Even if registration is airtight, an attacker can still use other vectors: \- XSS vuln on a legit .gov page to inject their own content \- Open redirect vuln to redirect a legit .gov link to their page \- Break a .gov server. I'm sure at least one of them is running a WordPress site with a vulnerable plugin \- Break into or social engineer into the DNS server

</comment></comment></comment><comment><USER4> What else is new? I can't find a source right now, but IIRC NIST doesn't even follow their own password guidelines. This seems like a relatively minor flub in comparison. If the verbiage was tweaked a bit to say something like "the https ensures that you're actually connected to the website whose name shows up in your address bar" I think there'd be nothing to complain about.

<comment><USER5> To be fair to them, how the hell do you possibly explain what that means to people who don't know or care how any of these things work? How do you explain TLS and DNS and HTTP and web servers and all this stuff in less than an hour in a way that makes any sense to someone that doesn't care about technology and just wants this stuff to work?

<comment><USER6> You're in a perfectly soundproof room with one other person.

Whatever you talk about with this person can't be heard by anyone outside the room.

This room can only help guarantee that no one outside can hear you, not that the person you're talking to is trustworthy.

If the other person is a thief and you tell them where your valuables are, they could be stolen.

If the other person is trustworthy, you can be sure no one else will hear what you tell them and your secrets are safe.

The soundproof room is HTTPS. The other person is a server.

You could tell someone something like this and provide a lay person with a basic understanding of many fundamental building blocks of the web rather quickly (DNS can be explained as a phone book for example).

</comment></comment></comment><comment><USER7> #1 is also very weak. "'.gov' means it's official".

Somehow who doesn't know what's going on will interpret that as "if this substring appears anywhere, it's safe".

So, the hijacker just needs to create a URL like "https: // united.stat.es/census2020.gov/yourcensus" and fool a loooot of people.

</comment><comment><USER8> I mean the us gov also continuously tries to legislate mandatory weak security.

</comment><comment><USER9> The note says:

1) .gov means the site is official

2) [https://](https://) means it's secure

Author takes #2 out of context provided by #1 and argues that [https://](https://) doesn't necessarily mean it's secure because it could be phishing. However the point is that it's secure if it's both .gov and [https://](https://)

Author then claims that just about anybody can get .gov domain which is untrue.

<comment><USER10> I agree. A simple plus sign, to signify both are necessary for the conclusion to be drawn, would fix the message.

However, as long as URLs read both right to left, and left to right, in the same string, its very hard to communicate to standard people what the "end" is [https://example.com./.gov](https://example.com./.gov) ends in .gov, and the percentage of people that dont know a - is not a delimiter but / is and . sometimes is is high.</comment></comment>


Position on 1-Year Certificates - <AUTHOR> https://www.digicert.com/position-on-1-year-certificates/ <comment><USER2> I think having shorter cert lifetimes is generally a good thing and with tools like Let's Encrypt its becoming easier and easier.

If anyone is aware of how Safari came up with the 398 day number I'd love to know.

<comment><USER2> A coworker we think has figured it out. Its 365 + leap year days + 31 day month.</comment></comment>


Make your own feed reader with NewsBlur's new API - <AUTHOR> http://blog.newsblur.com/post/4955915076/make-your-own-feed-reader-with-newsblurs-new-api

<comment><AUTHOR> HN, it's been six months since I launched NewsBlur (<http://news.ycombinator.com/item?id=1834305>) and I've been working nearly every single day in my free time to bring this API to light.

As some of you know, it's entirely open-source on GitHub (<http://github.com/samuelclay>) and a number of NewsBlur's users subscribe to NewsBlur's GitHub history, so there's this crazy meta quine-esque feel to coding in the open.

Building an API is hard. I didn't realize it'd be so many moving parts that don't care to align, but comb it over a few dozen times and it's finally there. This is the first API I've built myself, so the obvious things aren't so obvious. Like don't build endpoints that are named /reader/load_single_feed instead of the more RESTful /reader/feed/:id.

If I were to be perfectly RESTful, I'd have PUT and DELETE methods on the same endpoint URLs. But for now the API exists as a bunch of discrete endpoints that each have their own quirks. Smoothing them over is something that will take some experience and some real-world battle testing.

I'd like to think that this goes to show that anybody can build an API (and a service beneath it). I think the consistent message I've had to deal with every single day, even as hard as it got sometimes/always, was to not give up. It's a bit easier now to not give up, but those first few months, when everything broke and nothing worked, and the night would pass and I'd wake up to dead robots, were tough.

Lend me your thoughts. I'd love to hear feedback so I can make this API/service better and improve my own education in the process.

</comment><comment><USER2> NewsBlur (first time trying it) is such a polished experience with all the little bells and whistles of a seasoned Apple app that I am having a very hard time believing that you are a single developer and not 6, full time, seasoned UX designers and programmers all rolled into one.

For what it's worth, NewsBlur is _so_ polished, when I went to add a feed to my account I thought to myself: "Shit, I bet this guy will auto-complete the feed URL from well-known feeds" ... then when I popped up the dialog I thought "wow, that is a really big stretch for me to assume/hope for that... I'll cut him some slack if it doesn't.

Of course, it did and I had a little smirk on my face and mumbled "Damn, this guy is good".

No idea what you have planned for the future, but I imagine NewsBlur is one of many-to-be-aquired ventures you will create.

Nice work man, really nice work.

<comment><AUTHOR> Thanks for the feedback. I really appreciate it. Really, I run on props, and a comment like this is worth at least a month of energy.

As for being acquired, I feel like it's this myth that great projects get acquired or sold. But I haven't even heard a peep about potential interest. And NewsBlur has hundreds of premium users keeping the servers on at night! You'd be surprised, but I have yet to hear about any interest whatsoever. It's nice to have a profitable project, but if I were in it for the potential acquisition, I would've quit a looong time ago. It's just not worth it (or maybe it is... 10 million, 10 million, no whammy, STOP).

</comment></comment><comment><USER3> Awesome! I was an early premium user and seeing NewsBlur improve almost daily has been a real treat. Keep up the good work.

</comment><comment><USER4> This looks really cool. Does it have cross-origin resource sharing enabled? This would be useful for sites that would like to use it directly from javascript.

EDIT: I've just seen the login mechanism; I don't think CORS would be useful with this.

<comment><AUTHOR> Sure, you would need to login for most endpoints, but I have a number of additions that I'm planning: OAuth, HTTP Basic Auth, and JSONP when given a callback parameter.

I agree, it'd be useful to use some of this data from JavaScript, but only a couple endpoints are publicly accessible (statistics and feed info, really). Everything else depends on the user's subscriptions and intelligence classifiers.

</comment></comment><comment><USER5> As one of the premium Newsblur users, I love this. I also love bugging Samuel with bugs and suggestions almost daily, the best part is - he replies! :)

<comment><USER6> There's a premium product?! I didn't see it mentioned anywhere on the site.

<comment><AUTHOR> You only see the premium product when you first activate your feeds. Standard users only have 64 feeds, but when you first import your feeds, you're asked whether you want to go premium.

I try to stay out of your way as much as possible. Notice how there's no logo when you're reading your feeds.

Oh, and you should totally go premium. It would make my day. :-) It also helps keep the site running on its 6 servers.

</comment></comment></comment><comment><USER7> I would become a regular [premium] user if the application worked well with Arc90's Readability. I use Chrome w/ Readability Redux. Any suggestions as to how to use both Newsblur and Readability together would have me sold.

Great app nonetheless!

</comment><comment><USER8> Theres a typo for the link: The API is ready for you at <http://www.newbslur.com/api>.

<comment><AUTHOR> Sweet! Fixed. The typo was only in the visible link, but good catch. (I should probably just register newbslur since I type it so damn much.)</comment></comment>


Why is there a dearth of articles in 2014 and 2015 about webcam exploits? - <AUTHOR> https://icyflame.github.io/blog/100daysofwriting/webcams/security/privacy/online/2017/04/19/day-61/ <comment><AUTHOR> I searched for articles and I could find a large number of articles from December 2013, and even a research paper from then.

The next major event seems to have happened in April 2016-July 2016 when Comey said that he tapes his camera, Zuckerberg's photo with the taped camera and mic was posted on his Facebook account, and there was an all-time high of privacy and security related discussion.

What happened in the intervening 2 years?</comment>


Mac OS X Lion available on a USB stick in August - <AUTHOR> http://gigaom.com/apple/mac-os-x-lion-available-on-a-usb-stick-in-august/ <comment><USER2> I was not in a position to need to do this, but I've read here and there that with the beta/release candidate/whatever, at least, it was pretty easy to extract the image file from its app packaging and burn that to a disk or slap it onto a bootable USB drive.</comment>


Complaint Against the Administrator of the 401 (k) Plan and Group Health Plan - <AUTHOR> https://dl.dropboxusercontent.com/u/162863718/SMAComplaint/Complaint.html <comment><USER2> Interesting read.... Uhh any other info on this? heh.

<comment><AUTHOR> DOL EBSA spoke to the Administrator before speaking to me. I don't know what the Administrator said, but the person from EBSA that I eventually spoke to admitted that he did not actually read the complaint. He said that he would investigate some of my claims (though he was unable to articulate any of them). I was never able to get the results of his investigation (I don't think it was performed in the manner he claimed it would be). I followed up with a letter to the head of the EBSA and despite receiving a signed Return Receipt, I have never received a response to it.</comment></comment>


Russian Mac anyone? - <AUTHOR> http://russianmac.ru/ Well, not really... But the eeeMac (or MSI Wind Mac) look realy funny. Hey! They all feature a legal copy of Mac OS X! <comment><AUTHOR> Well, the eeeMac and MSI Wind Mac are sure a novelty... <http://russianmac.ru/?p=624> All of the bastards come with a licensed version of Mac OS X. I wonder if that is a response to all those who install Windows on MacBooks...</comment>


Nannou: Creative Coding Toolkit for Rust - <AUTHOR> https://nannou.cc/ <comment><USER2> Nannou was recently bumped to 0.9 - they had a nice blog post here, with some neat examples (some commercial) including laser projection:

[https://nannou.cc/posts/nannou_v0.9](https://nannou.cc/posts/nannou_v0.9)

Being a big Processing fan, and a bit of an artist too, this kind of creative framework is something I have been hoping was available way back when I started playing around with Rust in late 2012. Thanks goes to the Nannou team for all their hard work over the years in making this possible!

<comment><USER3> Thanks for the kind words bjz, it means a lot coming from yourself!

I know you're busy with language design these days (and I would never stop you, I think what you are doing is some of the most important work there is right now!), but if you ever get the itch for some creative coding it'd be an honour to see you give nannou a shot and get your thoughts on what's missing, could be improved, etc :)

</comment></comment><comment><USER4> An Instagram user I follow has a bunch of Nannou demos (unsure if this is also the project's author):

[https://www.instagram.com/mactuitui/](https://www.instagram.com/mactuitui/)

Nannou has a pretty long initial setup and build time (about 15 minutes on macOS for me) compared with Processing and similar, but it's worth exploring for the scope and goals it has: [https://guide.nannou.cc/why_nannou.html#goals](https://guide.nannou.cc/why_nannou.html#goals).

<comment><USER5> Thanks for the link! I'm not directly involved in the project (yet), but the team has been so nice to me over the last six months I've been using nannou daily that when they wanted to feature my dailies on the site, of course I said yes!

<comment><USER6> Some of your art makes me think you've deciphered the genetic algorithm of certain species. Very inspiring!

</comment></comment></comment><comment><USER7> This looks really cool! Is it a coincidence that this has the same name as the Aphex Twin song?

<comment><USER8> nah, it's named after the song (according to the docs - [https://guide.nannou.cc/why_nannou.html](https://guide.nannou.cc/why_nannou.html))

</comment></comment><comment><USER9> Learning rust while doing the raytracer challenge. this Looks amazing! does it work with wasm?

<comment><USER10> It has moved to Vulkan, so unlikely...

<comment><USER3> Hey kvark, I really appreciate all the work you're putting into the Rust graphics ecosystem!

Just fyi, we are closely watching both wgpu-rs and rendy and will continue to do so over the next couple of months. Vulkano has been a mission to use to say the least, maintainership is dwindling (most of the recent PRs are from us), and the Rust graphics landscape has changed quite a bit since we made the decision to use it almost a year ago. Both wgpu and rendy seem like strong contenders for the future of nannou's graphics, but we probably won't go down that road for a couple more nannou releases at least while we focus on some other areas.

We're particularly interested in rendy's render graph [1] approach to a higher-level, near-zero-cost API. Are there plans for something similar in wgpu?

Also, I realise that wgpu is web-first, but I'd be curious to get your thoughts on its potential for use in native applications for installations and projection mapping - e.g. will it be possible to spawn multiple swapchains for multiple windows? Or will it be purely focused on a single window web experience?

Anyway, we'll do another post soon about our thoughts on the future of graphics in nannou, just wanted to let you know you're on our minds :)

[1]: [https://github.com/amethyst/rendy#rendergraph](https://github.com/amethyst/rendy#rendergraph)

<comment><USER10> Wow, thanks for such a detail response!

Delaying with decision to adopt Rendy or wgpu-rs is reasonable: both are still maturing, and are in the early adopter phase.

> We're particularly interested in rendy's render graph [1] approach to a > higher-level, near-zero-cost API. Are there plans for something similar in > wgpu?

No, this would not ever be in wgpu (or feasible on top of WebGPU in general), since it's providing safety at lower level, and there is no way to get near- zero-cost there.

Saying that, I'm not sure what the bottlenecks of your use-case are. Do you plan on submitting a lot of different work on GPU, i.e. heavily use command recording on CPU (as opposed to relying on GPU instances), to the point of being sensitive to CPU performance? My expectation from a creative coding framework would be that zero-cost is not the foremost priority.

> will it be possible to spawn multiple swapchains for multiple windows? Or > will it be purely focused on a single window web experience?

Yes, I think this is already possible in wgpu-rs, although nobody tested multi-windows yet. In general, we put heavy focus on native usage.

Looking forward to your post!

</comment></comment></comment></comment><comment><USER11> Very cool, especially considering UI is still somewhat underserved in Rust.

</comment><comment><USER12> What a coincidence, I've been using Clojure with Quil recently and bumping up on the limits of what it can do easily, so I've been thinking about my options.

I was going to settle in tonight and take a look at using Common Lisp and OpenGL directly, but I'm interested in Cinder or openFrameworks but would rather play around in something other than C++.

I'll add nannou to my list but does anyone have any other recommendations?

</comment><comment><USER13> Speaking of creative coding, does Rust have an official GUI package yet?

<comment><USER14> To my knowledge there is no clear dominant package but things are improving quickly : [https://areweguiyet.com/](https://areweguiyet.com/)

</comment></comment><comment><USER15> Is it likely that Rust will have support for hot reloading? I love the language, but having a fast iteration cycle is essential for this type of work.

<comment><USER16> Depending on what you mean, it does: [https://github.com/phaazon/warmy](https://github.com/phaazon/warmy)

</comment></comment><comment><USER17> It would be nice to see some examples with code. The showcases section is empty.

<comment><USER18> The author talks about some of their projects, with videos, here: [https://www.reddit.com/r/rust/comments/byyu30/vulkan_lasers_...](https://www.reddit.com/r/rust/comments/byyu30/vulkan_lasers_and_more_in_the_biggest_update_yet/eqohiis)

<comment><USER17> Thanks!</comment></comment></comment>


Is Nokia really bringing back the 3310? - <AUTHOR> http://www.bbc.co.uk/newsbeat/article/38980782/is-nokia-bringing-back-the-3310-and-who-would-want-a-retro-phone <comment><AUTHOR> I remember when this first came out, I saved furiously to buy one which took ages on a student budget! And boy was I excited when I finally got one! Can't imagine it'd appeal to many other than the 'a phone should be a phone' market now though!

</comment><comment><USER2> You'd think Nokia would have fired that guy by now.

You know, the one making these incredibly poor market decisions.</comment>