Ask HN: How to become good at naming things in code? - <AUTHOR> I find myself so often staring at my screen, thinking of a name or names for various things, variables, files, functions etc.
I also am constantly changing names.
This seems to be a huge amount of time wasted, is there a way to become "good" at naming things in software? <comment><USER2> To be honest: experience.

You are already doing it right: You actually think about naming.

What helps me is to name variables very simple and clearly wrong, code a little bit to see where it brings me and then it becomes much easier and much clearer to name them right.

</comment><comment><USER3> One thing that might help you is just to make a quick decision first. It might be a 'wrong' name but if, like you say, you end up changing them anyway you have just saved time.

</comment><comment><USER4> 1) Look at the language style guide. To see the best practices if relevant; or how naming variables in said guide. 2) Name based on a variation of hungarian notation based on data. bCat for boolean for if cat or not; x for item of list; xs for a list of items. Here are more examples [https://en.wikipedia.org/wiki/Hungarian_notation#Examples](https://en.wikipedia.org/wiki/Hungarian_notation#Examples) (PS i know hungarian notation has fallen out of favor; modify for the language you are using; and keep it simple) 3) This blog post from Joel Spolsky might be useful [https://www.joelonsoftware.com/2005/05/11/making-wrong- code-...](https://www.joelonsoftware.com/2005/05/11/making-wrong-code-look- wrong/)

</comment><comment><USER5> When I get stuck, sometimes I ask a co-worker. See, I don't just need a name that communicates to _me_ ; I need a name that communicates to _them_.

By the way, this implies that, if there are group conventions, _use them_.

</comment><comment><USER6> I always name things according to what I'm doing.

$dbname might be for the name in the database. $dbpass for password. $dbipddr logging of ip address. $dbdark might be a setting for light or dark theme.

In the databasae, it's just named as Name, Pass, IPAddr, DarkTheme or whatever. I've very rarely ever had to change names. But before I even start a project, I outline not only what the project is going to do, but how the database will look and function as well.

<comment><USER7> (I hope you actually don't store passwords in clear text in your database :) )

<comment><USER6> Security and privacy is something I strive to have... I would want the same for anyone who uses anything I create.

</comment></comment></comment><comment><USER8> If the name isn't obvious from it's function in the domain, there is something wrong with the architecture you're using

<comment><AUTHOR> Could you elaborate a little on this please, maybe with an example?

<comment><USER7> I do agree with this. For example, if you can't easily name a function, then it is likely it does too many things and should be split or something.

</comment></comment></comment><comment><USER9> > This seems to be a huge amount of time wasted

Yes, that's how learning works. You're doing it right :)

</comment><comment><USER10> Try to make the beginning part of the name unique. If you follow the Hungarian notation, put that at the end of the name not the beginning. Bad example strname, straddress, strphone. Better: namestr, addressstr, phonestr.

<comment><USER11> Arguably both of those are terrible. It's just fluff for no real benefit. Why do you not know what data type those things are?

What's wrong with 'address' or 'phone_number' or something to that effect?

<comment><USER10> key phrase was 'IF'. I typically do not apply type info, as I care about its logical purpose when debugging. Most modern IDE will tell you the type when you hover over them.

</comment></comment></comment><comment><USER12> Two useful google searches:

\- class responsibility collaborator

\- John Osterhout a Philosophy of Software Design

</comment><comment><USER13> Try having a naming system, I usually name things based on what they do and typically follow the same ordering format across the board so everything builds on each other and matches up.

I'll also add some Star Wars and other movie/pop culture references to keep things interesting. And hopefully bring a smile to someone editing the code in the future.

Kamino is one of my favorites for anything cloning or duplicating related for example.

You do need to be decisive and quick so it doesn't hold you up, with a system you will be, and realize that sometimes a name just isn't that critical.

Avoid being cryptic though, think about what name would make sense to someone looking at your project for the first time.

<comment><USER11> Ah so there _are_ people out there like this, who think random pop culture references will 'bring a smile' to someone editing the code.

Please don't. 'Avoid being cryptic' \- but please, throw in a reference no-one might get or something unrelated to the purpose of a variable. Give me a break.</comment></comment>


How to develop analytical thinking intelligence for any complex problem given - <AUTHOR> https://medium.com/@adorable_redwood_squirrel_374/how-to-think-analytical-intelligence-quadrant-756058f0c4a9 <comment><AUTHOR> For quarter a century I was searching for ways to solve any complex problem given. So several years ago I've stated a ready program for anybody, who wants to become analyst, to do it. Several persons I've taught, has boosted up their abilities, and has got side-effects too.

So that is the link to somelike program thesises, in several words: risk + brute force speed + intelligence quadrant

I've used Norbert Wiener intelligence like a machine metaphor, and that led me to several ideas about what elements are needed to solve more complex problems, with greater efficiency due to customer needs.

So I've created english language channel in telegram (@aintxt, t.me/aintxt) about how, what and what for one should develop his intelligence capabilities. Most important part was about pit-falls... So I'm complaining about that much in my main, rus language channel.

Most interesting thing is that some of my co-developers, has gone far from me in developing their N-Back level. So my approach is not limited by my capabilities, one can freely go further in this - only thing is that I can't pretend about other pitfalls on that way. But the road is open.

Other point is that I've asked everybody, who has found pitfalls: what would you say to yourself in past, to start or to leave the trainings? Answer was: definitely start. That's sound optimistic, as for me.</comment>


Nobel prize in chemistry awarded to Robert Lefkowitz and Brian Kobilka - <AUTHOR> http://www.nobelprize.org/nobel_prizes/chemistry/laureates/2012/press.html

<comment><USER2> Another year where the chemistry prize goes to biology...</comment>


Ginzametrics Open Sources Odin, A Cookie-Based Single Sign On for Apache - <AUTHOR> http://www.ginzametrics.com/blog/announcing-odin-authenticator <comment><USER2> I think this has the HMAC timing flaw. This is a hard flaw to exploit, and a very common one that many people could spot, so:

        die "Invalid signature\n"
            if ( $hmac ne hmac_for($secret, $user, $roles, $ts, $ua) );

The "ne" operator in Perl will terminate at the first non-matching byte. You need an HMAC compare to touch every byte. The idiom is, XOR each successive byte, then reject the hash if the accumulated sums aren't 0.

Also, I'm not wild about a structured cookie with "-" as the separator that contains any user-controlled data. The user-agent is last in the cookie, which is good, but you worry about usernames with the "-" character. "Canonicalization" is the process of ensuring that every piece of data that hits the hash is in a character set that can reliably be extracted from the cookie. For data that is in any way under user control, if you're going to use "-" as a separator, I'd hex-encode the strings.

<comment><USER3> Also, using sha1_hex(secret+...) and calling it HMAC is a slippery slope (see [http://netifera.com/research/flickr_api_signature_forgery.pd...](http://netifera.com/research/flickr_api_signature_forgery.pdf)). Although it's seemingly not exploitable due to the structure of the data, look into using a proper HMAC (RFC 2104) to prevent length-extension attacks.

<comment><USER2> Whoah. That is a good catch. I admit, I skimmed this, saw "hmac_for", thought "I'm not a Perl programmer", and assumed it was HMAC.

Guys, fix this ASAP. SHA1(secret || data) (secret-prefix MAC) is totally insecure. (In practice, every valid forgery to this MAC is going to look like x-y-z-useragent-GIBBERISH-evil-content, but you don't want to be relying on that for your security).

Embarrassing (for me).

<comment><AUTHOR> Thank you! This will be closed up by end of this week. As I wrote in the article and in the presentation, one of main points of open sourcing it is to have people smarter than myself look at the crypto and protocols to find any issues like this. It should be fairly easy to close up.

</comment></comment></comment></comment><comment><USER4> Seems like exactly what I'd like to eventually use myself - we have a similar backend tooling setup, and I would love to have employees not bother with complicated ACL stuff on our end.

Allowing everyone to just authenticate via Google Apps is a sweet idea. Anyone know of any resources to implement something similar with Nginx? #lazyweb

</comment><comment><USER5> The Google Apps integration with backend tools makes this a huge time saver for us. Thanks Maciej!

</comment><comment><USER6> This is really cool. I wanted something like this a while back, and began looking into implementing it for nginx. But one of the services used websockets, so I ended up building a node.js app that combined everyauth (oauth for about 50 different web services) with node-http-proxy. We released it as Doorman:

<https://github.com/movableink/doorman>

The one problem that I've had with it is many oauth providers only allow you to specify one allowed redirect URL per app. So it makes it difficult to run a single doorman instance for multiple services.

</comment><comment><USER7> Could anyone tell me if this would work on Windows? (I typically dev on something like xampp) but I would love to get this working as authing across several apps is very hard problem and creates horrible UX. It would be awesome to see something similar to hybrid auth integrated (<http://hybridauth.sourceforge.net/>) where we could choose auth providers.

Awesome project looking forward to seeing it progress.

<comment><AUTHOR> Thanks!

I don't use Windows, so I can't promise anything, but there's nothing there that may prevent it from working on Windows. It's pure Perl, so the code itself is portable. If you have any particular problem, feel free to email me (address should be in the repo); and if you have success running Odin on Windows, I'd be very interested in hearing that too.

Re hybridauth: using different identity providers is somewhere between "it's possible" and "it would be nice to have" priority, unless we actually need it. The idea is to have the SSO for the _internal_ services, and hybridauth seems to be focused on end user and social authentication. Also, Hybridauth itself is PHP; while in principle it should be possible to implement the authorizer app in any language, I'd prefer to keep it in Perl until there's a really, really good reason to switch.

If I work on option on different identity providers, it will still be rather focused on internal services use case than end-user social authentication use case. However, I'd be happy to see and review a pull request implementing social auth if any of Odin's users needs that.

</comment></comment><comment><USER8> It's kinda like <http://www.openfusion.com.au/labs/mod_auth_tkt/> but with more google sauce.

<comment><USER2> For whatever it's worth, this also uses an unsafe compare (it's also not using HMAC, but it's double-hashing and seems to be more careful about canonicalization).

</comment></comment><comment><USER9> It's amazing that somebody didn't do this ten years ago.

</comment><comment><USER10> Did you consider SSL client auth? I'm not sure you will get all the properties you want out of it (ease of logging out, especially); but having used it a bit now, it is a really pretty nice way to do SSO. Plus, it forces you to keep your internal services on HTTPS which is just a good idea anyway (-:

<comment><AUTHOR> I don't like this idea as a main authentication system for a couple reasons, besides the logout problem. First, it requires team members to register every single browser they'll be using to access the panels – which may also mean being locked out during emergency due to not having a blessed browser nearby.

As I understand the scheme, distributing and deleting/changing clients' public keys to the web servers is basically the same challenge as syncing htpasswd across servers and trying to let users change their passwords. Syncing itself is not an issue, but making it possible (and EASY - any security that gets in the way of getting the job done will be circumvented by users themselves) to add / update / invalidate user's certs by users themselves is not trivial.

It also adds to the proliferation of credentials: Yet Another Key (or even Set of Keys) is just as bad as Yet Another Login And Password.

This is a good idea for a multi-factor authentication, though: require either token / SMS OTP / other out-of-band verification, or a blessed client certificate – basically, pre-authorize certain browsers. This might fly!

</comment></comment><comment><USER11> You can use SAML for this too, it's a bit more Enterprise-y (read: stupidly complicated) but there are IdPs for php, python and java and SPs for Django and Apache (mod_mellon).

<comment><AUTHOR> Yup, enterprise-y is what I've been trying to avoid here. A lot of overhead for users that I can count on my fingers without using binary. Also, much of the big SSO systems seem to require the application to be aware of it, which is a showstopper to me: I want to protect with SSO ANY webapp ANYONE has written, even the simplest ones, without having to bother with trying to make it aware of the system. That's the whole point of setting REMOTE_USER: either the app doesn't care about identity (think status panel without any actions), or most likely it is already able to hand off authentication to the frontend http server.

<comment><USER11> Yeah if you're in the handful of users area it's way overkill. Mod_mellon doesn't _quite_ handle REMOTE_USER but it does set a request variable (MELLON_USER IIRC) so if you have any control over the source at all you can just bodge that in pretty easily (the django bits to grok that are ~4 lines). Also ties you to apache but on the other hand lets you chain authentication to google apps which is gold if you've got a preexisting authentication system.</comment></comment></comment>


How does forensic handwriting identification work? - <AUTHOR> http://www.slate.com/id/2214721/entry/2206267/

<comment><USER2> This should be read in the light of the National Academy of Sciences' report on forensic science which condemned it as unscientific.

[http://www.latimes.com/news/local/la-na-crime- science19-2009...](http://www.latimes.com/news/local/la-na-crime- science19-2009feb19,0,954369.story)

"With the notable exception of DNA evidence, the report says that many forensic methods have never been shown to consistently and reliably connect crime scene evidence to specific people or sources.

"The simple reality is that the interpretation of forensic evidence is not always based on scientific studies to determine its validity," the report says"

From my own experience, I can tell you that all American hand-writing looks the same. Elsewhere we were taught to write neat cursive penmanship, while Americans prefer big, clear handwriting.

<comment><USER3> And even DNA evidence is not infallible. Recently there was a series of crimes all over Germany where DNA evidence pointed to a single woman involved in all of them.

It turned out she was just an employee at the plant where the q-tips were made. The q-tips get sterilized before being used, but this process only destroys proteins, most DNA survives.

<comment><USER4> Sounds like the evidence was fine; it was the interpretation of that evidence that needed adjustment.

<comment><USER3> I take the moral as the need for controls in experiments i.e. always analyse a 'clean' q-tip in each batch.

</comment></comment></comment></comment><comment><USER5> I borrowed a "handwriting analysis for dummies" book from a friend, on a whim after skimming through it. It was just after reading a couple of Feynmann books, which is why I can so eloquently classify handwriting analysis as a "cargo cult science."

It's a lot about "energy" and "flow" and other subjective nonsense. It's along the lines of reading body language... which I would call more of a skill, or talent, rather than a science.

<comment><USER6> I too could've sworn that handwriting analysis was some wishy-washy pseudo- science. I remember watching a TV program on the subject here in Switzerland; they had the head of the Swiss psychology assocation on, with him basically stating that it's a feel-good construct for PHBs wanting to sound important (this was in the context of whether you should apply for a job with a hand- written letter, or a typed letter; it was the early 90s...) :)</comment></comment>


A novel computer architecture inspired by the working of the human brain - <AUTHOR> http://apt.cs.manchester.ac.uk/projects/SpiNNaker/ <comment><USER2> Here's a timelapse video of the wiring of the 103,680 core SpiNNaker 105 Machine: [https://www.youtube.com/watch?v=mcBB2o7Bmwc](https://www.youtube.com/watch?v=mcBB2o7Bmwc)

</comment><comment><USER3> The von Neumann architecture was also inspired by the working of the human brain and that is why the specific terminology was used (e.g. memory.) Apparently the perception of brain operation has changed since, as it was much more mechanistic back then (i.e. processor.) I wonder how this compares to the IBM's cognitive computing chips.

<comment><USER4> While I don't doubt the work is a "massively parallel computing platform", like the IBM chips, but it's similarity or structure is at best only tangentially reminiscent of the brain.

The little we do know about the brain, or any other part of our systems, it functions in far more complex ways than "massively parallel" describes. In a very sketchy way, brains work as distributed circuits of distributed circuits built on sets of massively parallel units whose subunits are variably interacting and in parallel with other similarly, but not identically constructed massively parallel units.

I don't know what I said is true, but comparing human-invented devices to even a "simple" brain is much more marketing buzzword than anything like reality.

<comment><USER5> I guess the system is programmable. The point is it distributes memory accesses and computations, which should allow things which usually run slow to run in real-time.

I'm still waiting for an architecture like a _distributed programmable memory_ rather than a distributed programmable computer. I think that's what we're aiming for, really. AI doesn't consume CPU it consumes memory cycles.

<comment><USER6> It would be really interesting to see what could be done by coupling memory and some SIMD capability very closely. Would probably be some crazy expensive memory, but it could be memory that offloads a lot out of the CPU.

</comment></comment></comment></comment><comment><USER7> Anyone else get "Your connection is not private", when trying to download the emulator?

under 'for developers' on [http://apt.cs.manchester.ac.uk/projects/SpiNNaker/](http://apt.cs.manchester.ac.uk/projects/SpiNNaker/)

<comment><USER8> I am. Looks like a bad cert ([https://spinnaker.cs.man.ac.uk/tiki- index.php?page=emulator](https://spinnaker.cs.man.ac.uk/tiki- index.php?page=emulator))</comment></comment>


Can you tell what we do? - <AUTHOR> https://www.testmymarketing.com/ Hey everyone, I'm in the middle of redesigning my start ups landing page to better illustrate what we do.
Being involved in it makes it difficult for me to determine how clear our message is.
So, a sentence or two on what you think we do would be a huge help.
Thanks, Guys Here's the page www.testmymarketing.com/ <comment><AUTHOR> Hey everyone, I'm in the middle of redesigning my start ups landing page to better illustrate what we do. Being involved in it makes it difficult for me to determine how clear our message is. So, a sentence or two on what you think we do would be a huge help. Thanks, Guys Here's the page <https://www.testmymarketing.com/></comment>


Top athletes and singers have coaches. Should you? (2011) - <AUTHOR> http://www.newyorker.com/magazine/2011/10/03/personal-best?printable=true&currentPage=all

<comment><USER2> I already have. It's called code review.

<comment><USER3> one problem is that working for the same company can color the code review- the incentives may be skewed away from the truth. a third party (coach) while not immune from biasing influences, will at the very least have different biases.</comment></comment>


I need proof that zero to 1 is equal to 1 to 2 - <AUTHOR> http://math.stackexchange.com/questions/47714/i-need-mathematical-proof-that-the-distance-from-zero-to-1-is-the-equal-to-the-di

<comment><USER2> 1) Define the complex number 0 (base 10) : <http://us.metamath.org/mpegif/df-0.html>

2) Define the complex number 1 (base 10) : <http://us.metamath.org/mpegif/df-1.html> (Note that the numbers 0 and 1 are constants defined as primitives of the complex number axiom system vs. the definition of the number 2 below)

3) 1 and 0 are distinct : <http://us.metamath.org/mpegif/ax1ne0.html> Axiom 14 of 25 for real and complex numbers (cf. <http://us.metamath.org/mpegif/mmcomplex.html> ), derived from ZF set theory (cf. <http://us.metamath.org/mpegif/mmset.html#axioms> ).

4) Define the unit interval with the Euclidean topology : <http://us.metamath.org/mpegif/df-ii.html>

5) 0 is an identity element for addition : <http://us.metamath.org/mpegif/ax0id.html> Axiom 15 of 25 for real and complex numbers (i.e. 0 + 1 = 1)

6) Define the number 2 as 2 = 1 + 1 : <http://us.metamath.org/mpegif/df-2.html>

QED

</comment><comment><USER3> Grossly misleading headline.

The real title of the question is: "I need mathematical proof that the distance from zero to 1 is the equal to the distance from 1 to 2"

<comment><AUTHOR> 80 character limit makes it difficult to fit all that in.

<comment><USER4> "I need a proof that the distances between '0 and 1' and '1 and 2' are equal"

</comment></comment></comment><comment><USER5> Why in the world would you continue discourse with a troll?

<comment><USER6> "Troll" is the most abused word in internet forums.</comment></comment>


Auto-vectorization for the masses (2011) - <AUTHOR> https://leiradel.github.io/2011/05/05/Auto-Vectorization-1.html <comment><USER2> If you're in C++ land, constexpr can be a godsend for auto vectorization.

Traditionally, you have a SoA of all your data. So if you have an array of triangles (not meshes) you might have three structs p1, p2, p3, each with three arrays of x,y,z. Then you write a fortan-esque loop over your triangles. Usually the vectorizer will vectoriser that, but fortan-esque code is obnoxious to write IMHO.

Instead, you have the same thing, but with constexpr operator[] methods. The inner structs return a constexpr constructed vec3, the outer struct returns a constexpr constructed triangle, and then you plug that into a constexpr processing function/method. GCC and Clang will vectorize this. And you can reuse normal linear algebra functions like dot cross etc (so long as they're constexpr) and it doesn't look like Fortran.

Matt Godbolt missed this during his path tracing three ways presentation. His data oriented design pathtracer stored an array of vec3s, which can't be auto vectorized. (and isn't data oriented design) I keep meaning to try to submit a PR to his repo, but the project has some weird dependencies and I can't get it to compile.

MSVC won't autovectorize either of the above. Not sure if it doesn't have a vectorizer or if it's just insufficiently powerful. Or if I'm just using the wrong compiler flags.

<comment><USER3> Do you have a code example of the constexpr operator[] you mention? I am having a hard time following it.

MSVC has an auto-vectorizer, with /Qvec-report:2 it will give you information on why it doesn't auto-vectorize a specific loop.

It's well documented, though I'm not particularly fond of it. Here is an example where the auto-vectorizer works: [https://godbolt.org/z/crTLUY](https://godbolt.org/z/crTLUY)

Here is the documentation: [https://docs.microsoft.com/en- us/cpp/parallel/auto-paralleli...](https://docs.microsoft.com/en- us/cpp/parallel/auto-parallelization-and-auto-vectorization?view=vs-2019)

</comment></comment><comment><USER4> I only barely skimmed the post and the follow-on posts so this is less about that and more about autovectorizers.

Autovectorization is the wrong approach for data-parallelization. You don't want to rely on a brittle unpredictable code transformation for performance in this case. You want to bake it into the programming model.

ispc uses this approach and it results in performance predictability to a large degree. You can imagine other approaches as well, like explicitly data- parallel loops, or a declarative approach.

Most of these (and the GPU data-parallel models) rely to a very large extent on the programmer to manage data dependencies to ensure correctness.

<comment><USER5> > You don't want to rely on a brittle unpredictable code transformation for > performance in this case.

That's somewhat true, but much of the unpredictability could be removed if compilers provided annotations saying "I expect this loop to be vectorized" where the compiler would be forced to report an error if it didn't manage to do it.

<comment><USER6> Such annotations exist in all major C/C++/Fortran compilers, although not all will error if it goes poorly. Although most of the ones with an HPC focus have some output where they will tell you how they optimized your loop for you.

<comment><USER7> > although not all will error if it goes poorly

So... these annotations don't actually exist? ;)

The whole point of such a feature is that the compiler will fail if it can't do what you want.

<comment><USER4> And then what do you do when you upgrade compilers and the build starts failing?

This isn't a hypothetical, it happens in real life. Your only option at that point is roll back compilers and hope someone cares about the regression enough to fix it.

The point is the better model is to build the semantics into the language rather than relying on the whims of implementation.

Of course the semantic guarantees will likely be somewhat weak because of differences in ISAs, memory hierarchies, etc.

<comment><USER8> As fallback, I have unit-tests with a check on both correctness and the instruction count (and # of memory allocations in hot loops). Whereas the cpu cycle-count varies between runs, the instruction count does not.

Linux has good support for performance counters, Windows requires a bit of work.

So in this case, the compiler update would show a regression in the test suite, which needs to be addressed as part of the compiler upgrade.

Of course, having this in the compiler would remove the need for unit tests.

</comment></comment></comment></comment></comment></comment><comment><USER9> This has been done by Intel: [https://ispc.github.io](https://ispc.github.io)

<comment><USER7> More about ispc, from Matt Pharr: [https://pharr.org/matt/blog/2018/04/30/ispc- all.html](https://pharr.org/matt/blog/2018/04/30/ispc-all.html) \- includes some discussion of Intel's corporate culture. Interesting throughout.

<comment><USER10> Great quote here:

 _" The problem with an auto-vectorizer is that as long as vectorization can fail (and it will), then if you're a programmer who actually cares about what code the compiler generates for your program, you must come to deeply understand the auto-vectorizer. Then, when it fails to vectorize code you want to be vectorized, you can either poke it in the right ways or change your program in the right ways so that it works for you again. This is a horrible way to program; it's all alchemy and guesswork and you need to become deeply specialized about the nuances of a single compiler's implementation—something you wouldn't otherwise need to care about one bit."_

The thing about this kind of thing is that it's nightmare to do but the people who can do it wind-up seeming like wizards and alchemists and so they won't necessarily say "this is a nightmare, never do this".

</comment></comment></comment><comment><USER5> So... skimming this post and its successors, I didn't see any actual examples of generated vector code, especially not examples that GCC can't do although they are supposedly "easy". And no benchmarks. Did I miss anything or did this project really die before it got to vectorization (or anything more interesting than constant folding)?

</comment><comment><USER11> Very interesting and useful to see.

And in an entirely approach for vectorization for the masses: I do wish that it was easier to access vectorization through BLAS, a library that is well supported across nearly all languages, gets massively optimized, but is hard to install correctly.

<comment><USER12> Good news is that the Gonum team has been working on an optimized pure Go version of BLAS. It's at parity with netlib blas for some of the important functions (GEMV, GEMV, etc).

Why is this good news? Go is a very easy to use language, and it favours using compile targets, leading it to be available across different platforms. To install, one simply does `go get gonum.org/v1/gonum`

<comment><USER13> Netlib BLAS is a very low bar [1], and not at all how one should go about writing a performance portable BLAS. BLIS ([https://github.com/flame/blis/](https://github.com/flame/blis/)) is a much better approach, and underlies vendor implementations on AMD ([https://developer.amd.com/amd-aocl/blas- library/](https://developer.amd.com/amd-aocl/blas-library/)) and many embedded systems.

[1] GEMV is entirely limited by memory bandwidth, thus quite uninteresting from a vectorization standpoint. Maybe you meant GEMM?

</comment></comment></comment><comment><USER14> Does anyone know if JVM, golang or .NET have autovectorization?

<comment><USER15> JIT compilers are in general not great at auto-vec because it is an expensive optimization, they do not have as much time as eg C++ ahead-of-time compilers, so the JVM and the CLR only handle very simple cases. .NET has an explicit API to guarantee vectorization, Java does not, but there is a JEP: [https://openjdk.java.net/jeps/338](https://openjdk.java.net/jeps/338)

I don't know about Golang, but given the compiler speed it probably can't afford the more advanced techniques.</comment></comment>


An expanded comment on Clojure web development - <AUTHOR> https://hackworth.be/2014/02/05/an-expanded-comment/

<comment><USER2> On a related question, what are the good blogs or communities to follow for Clojure web development? I just recently (like within the past two weeks) started using Clojure to rewrite some back end code that was getting pretty gross in Ruby. I'm building a rest api using compujure, and it's been very pleasant, but I know I'm going to need more tools and more help soon.

<comment><USER3> I'd say following the clojure mailing list is the best way to stay current. Most clojure-related blog posts/resources/new libraries get posted there, and the discussion quality is high.

[https://groups.google.com/forum/#!forum/clojure](https://groups.google.com/forum/#!forum/clojure)

</comment></comment><comment><USER4> I think it's definitely worth starting with just compojure, or even just ring. I don't know of any other language/library where writing request/response handlers is so approachable ( notwithstanding any commentary on the lisp syntax or functional style); even Flask and Sinatra require a routing layer.

<comment><USER5> ah, i dunno, compare

      (defroutes app
      	(GET "/" [] "
Hello World
"))

and

      @app.route('/hello')
      def hello():
          return "hey"

seems about equivalent.

EDIT: except for the inherent awesomeness of s-expressions (>__> ?)

<comment><USER6> It's worth pointing out that in the first case what you get is a pure function that you can test without any mocking whatsoever.

Sinatra's lovely, though.

<comment><USER5> heh, i wouldn't know anything about ruby. that was flask, of course.

the promise of clojure to me (aside from liking lisp) is similar to that of node: only having to maintain one codebase for both client and server sides.

also, really should say thanks to the author of the original article. returned here today when i realized that korma doesn't create tables and i'll need .... lobos, apparently, which was not mentioned in any of my searches for such a library. why didn't this submission get more upvotes?

</comment></comment></comment></comment><comment><USER7> For what it's worth, I've been working on a RESTful API service in clojure, and I've been using Liberator, and been loving it.

The one thing I've really loved about the clojure community is the willingness to take a step back from the problem at hand and the attempt to understand what kind of architecture could address that problem, as opposed to just porting an existing idea/architecture to clojure.

<comment><USER6> And for the most part, there's a serious commitment to composability. e.g. You can add liberator to your luminus project seamlessly without re-engineering.

</comment></comment><comment><USER8> I'm interested in a toolchain for cutting down on the editor-edit/server- restart/browser-refresh cycles. Is there any development in the direction of meteor that can help me make development a live experience?

<comment><USER9> There are two approaches you can take.

The ring/ring-devel library includes middleware that reloads modified files (ring.middleware.reload), and this is included by default with the Lein-Ring plugin.

The second approach is to run the server from within the REPL, and to have functions to reload modified files and restart the server. There are libraries like Component and Jig that provide a framework for this style of development.

The trend seems to be toward the second, though it requires a little more work than the first option.

<comment><USER10> The first option is really easy to get started with. It can get a little clunky though when you suddenly need a repl, because now you need a new window (be it terminal or emacs).

</comment></comment></comment><comment><USER11> I am just using what the "Web Development with Clojure" book by Dmitri Sotnikov is telling me to use since i am a beginner in Clojure web development. also learning Reagent for the client stuff :).

</comment><comment><USER12> I've moved to [http://pedestal.io](http://pedestal.io) for Closure Web.

</comment><comment><USER13> hoplon is cool, too</comment>


I unconsiously typed that description of a man, Google found him - <AUTHOR> http://www.google.com/?hl=en#hl=en&output=search&q=the+guy+who+made+a+killing+from+the+financial+crisis Hi HNers,
I was thinking about an old article I've read on the financial crisis, and I started to type "the guy who made a killing from the financial crisis" and google find the exact person I was looking for. Not someone approcaching, needless to say bing wasn't even close. Enjoy! <comment><USER2> I doubt that you were unconscious. Are you sure you know what that means? Also, it's spelled "unconscious".

<comment><AUTHOR> You are right that was not the correct term. I meant without even really trying to type. I was just thinking hard about how to remind his name, and my fingers happened to be on the keyboard. So it was a little surprise when I saw his name right in front of my eyes,, on the screen. I started to ask myself did I do. Can't wait for brain implants, seriously !

</comment></comment><comment><USER3> Yeah, Google is pretty good at that. I also use descriptions of movies in google to find the name of the movie, and it works pretty well.</comment>


Ask HN: Are there any startups looking for an overseas data entry team? - <AUTHOR> I have an office with as many as 35 data entry specialists with computers and desks who are ready and motivated to work for your company.
I assembled this team at a previous company that I was with in order to handle a large amount of specialized data entry that we couldn't automate.
I have recently found that sadly, all of their jobs have finally been automated away and so the entire team is up for grabs if anyone has a need to grow fast in the this regard.
The office is in Peru (central time zone), they are spanish and English speaking. Salaries start around $2 an hour for them. They are smart and trainable.
So if you have any need yourself or any contacts that might be interested, there are 35 families that would be very grateful for the chance to earn your business. <comment><USER2> Maybe. How does one contact you?

<comment><AUTHOR> Feel free to email me at derek (-at-) stonebrookdesigns.com</comment></comment>


NPM secures funding until 2020 - <AUTHOR> https://www.businessinsider.com/npm-ceo-bryan-bogensberger-funding-2019-6 <comment><USER2> This is catastrophic

A company sending a "reassuring" message about how they _now_ won't run out of funding — for the next SIX MONTHS — because they "funding secured" is just another way of saying "this company is almost inevitably going under"

</comment><comment><AUTHOR> The CEO of NPM, a startup that provides a crucial service for 11 million developers, told employees that it's secured a deal that removes 'the threat of running out of money' until early 2020

On June 7, NPM CEO Bryan Bogensberger told employees in an internal Slack message that the company had reached a deal with its board of directors to provide enough funding to take it through at least the first quarter of 2020. He also implied that NPM had faced the possibility of running out of money, saying: "This is absolutely the best of both worlds because we can run a proper raise process without the threat of running out of money and with the full support of the board." NPM is a small company with about 50 employees, but nonetheless provides a crucial JavaScript programming tool to some 11 million developers. This look into NPM's financial situation comes about a month after 17 employees wrote an internal letter demanding better working conditions and criticizing management's lack of financial transparency, in the wake of a controversial layoff at the company. Click here for more BI Prime stories.

NPM, a company that provides an important JavaScript tool to 11 million developers, has secured a commitment from its board of directors for enough funding to take it through the first quarter of 2020, CEO Bryan Bogensberger announced to employees.

Bogensberger told employees in an internal Slack message on June 7 that the company has until the end of July to take the offer. In the interim, he said, NPM leadership is being encouraged by the board to continue the fundraising process with outside investors. He also implied that NPM had faced risks of running out of money.

"This is absolutely the best of both worlds because we can run a proper raise process without the threat of running out of money and with the full support of the board," Bogensberger wrote to employees.

<comment><USER3> > NPM is a small company with about 50 employees

Doesn't this seem like a lot of people for a tool like NPM?

<comment><USER4> The organization is not exactly efficient and has had a lot of drama: [https://www.theregister.co.uk/2019/06/04/npm_cj_silverio_jav...](https://www.theregister.co.uk/2019/06/04/npm_cj_silverio_javascript/)

It really doesn't matter too much though. As you mentioned, what they do is not that difficult and there are good alternatives (exp yarn).

</comment></comment></comment><comment><USER5> People are trying to solve this with a new, community-driven registry. Here is more information: [https://www.youtube.com/watch?v=MO8hZlgK5zc](https://www.youtube.com/watch?v=MO8hZlgK5zc)</comment>


Microsoft to buy semantic search engine Powerset for $100M plus - <AUTHOR> http://venturebeat.com/2008/06/26/microsoft-to-buy-semantic-search-engine-powerset-for-100m-plus/ <comment><USER2> A very low price if they really believed all the hot air they were pumping out. It's an implicit admission by Powerset's management and board that they didn't genuinely believe they were about to do something extraordinary.

It was already pretty obvious that Microsoft is so braindead these days that they'll spend hundreds of millions for the mere appearance of being able to compete with Google in internet technology. I suppose if their stock stays up an extra $100 million it sort of pays for itself.

<comment><USER3> "A very low price if they really believed all the hot air they were pumping out"

If Powerset sells for $100M, then they clearly don't believe their own hot air. I'd be very nervous if someone accepted an offer for much less than they claimed to be worth.

<comment><USER4> In my opinion they were simply running out of money and have no business model whatsoever.

100 Million is still a lot of money for something that only searches wikipedia.

With 100 million $ you could hire some of the brigthest engineers around the world and build this in less in a year.

</comment></comment></comment><comment><USER5> _PG: "sell"_

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

congrats @KirinDave : <http://news.ycombinator.com/user?id=KirinDave>

</comment><comment><USER6> 46 days ago, I posted this: <http://news.ycombinator.com/item?id=186752>

</comment><comment><USER7> At first I thought Powerset was nothing since it only searched Wikipedia and the normal wikipedia search works fine.

However if you really use it the right way, asking questions of the type "which tennisplayer beat andre agassi" which is an example I saw somewhere then you see the power.

I am hardly an expert but I guess the problem is that the monetizeable part of search is the easiest search, keyword search. And beating Google there, well good luck...

And the search that Powerset does so well isn't as easy to monetarize.

So as someone said, the best way for them to make money might be through licensing.

I guess there wont be one form of search to rule them all(nor have there ever been) but many different ways of search coexisting and cooperating.

One thing I wonder is, is the scalability a money-issue, ie can they buy truckloads of servers and index the whole web with their technique or could their algorhitms simply be too complex to scale, ie NP-complete( <http://en.wikipedia.org/wiki/Computational_complexity> , <http://en.wikipedia.org/wiki/NP-complete> )?

<comment><USER8> [http://www.powerset.com/explore/go/which-tennisplayer- beat-a...](http://www.powerset.com/explore/go/which-tennisplayer-beat-andre- agassi)

"Sorry, there were no results for your query: which tennisplayer beat andre agassi"

<comment><USER7> try tennis player: [http://www.powerset.com/explore/go/which-tennis-player- beat-...](http://www.powerset.com/explore/go/which-tennis-player-beat-andre- agassi)

that is pretty awful and funny though. it can do all that but not see that tennis player and tennisplayer is the same thing :)

</comment></comment></comment><comment><USER9> I haven't seen any convincing use case for Powerset over Google. Is the acquisition just a talent grab by Microsoft? $100MM sounds too high for that.

</comment><comment><USER10> Think about it this way:

Powerset only indexed wikipedia. Why? Probably b/c scaling is somewhat hard. Microsoft can help with that, and if there are any short-term gains to using some of Powerset's technology on msn search, all the better.

Also, as the article points out, $100M is a bargain.

<comment><USER3> Either that or it was a useful way to limit the search space to make an easier problem.

<comment><USER11> Want some real info?

You're partially right, but only in a very broad sense. One of the really ugly problems with web search is identifying real content from meaningless crap, and wikipedia rather nicely gets rid of nearly all the extraneous stuff, or boxes it in.

The actual semantics stuff is pretty robust, but like any piece of software can be tuned to get incrementally better results on any corpus.

Really, one of the major reasons we started with Wikipedia is that we wanted to build out the core search infrastructure and website infrastructure. These are non-trivial things to do while also setting up a search interface thats suitable for public consumption. I'm sure you can find a longtime powerlabs user to tell you how far we went in the interface and speed department.

</comment></comment></comment><comment><USER12> Oh boy, I can now search through Wikipedia to my heart's content at Live.com

<comment><USER13> Well, the mere fact that you know what Live.com is will make Microsoft happy.

Frankly, Microsoft has done a bad job with branding, and I still think most people don't even know that Live is Micrsoft's search engine. What happened to MSN being the brand?

<comment><USER12> I still don't quite get how Live is related to search either. Is it live? Or is it cause it lives to search? I don't get it.

<comment><USER14> Ask me about the time I interviewed with a live.com team, and asked that very question. They Were Not Amused (tm).

<comment><USER15> So, um, I'd love to know the answer to that question. Did they tell you? Or is it a trade secret?

<comment><USER16> In between being called "MSN" and "Live", it was "Windows Live". The idea was that MSN was a brand more oriented toward being an ISP or a portal (back when it looked like the internet companies to beat were AOL and Yahoo), and this re-branding would distance themselves from being either of those, and also help them leverage the Windows brand.

I don't know why they dropped the "Windows" part from the name though.

<comment><USER17> Probably because most people hate windows and consider it buggy and not very good?

Live seems more of a name for streaming video or something though rather than search.

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> Is it worth it? Powerset has not displayed any really good improvement and many of the queries return irrelevant results currently. Maybe in the future it might be much better.

But at this point, is it worth 100 mil?

<comment><USER17> of course not IMHO, but MS are desperate, and can't create things on their own any more.

</comment></comment><comment><USER19> I totally believe and agree in taking the money, but if Powerset is really bought by Google, they've just become irrelevant and are definitely not the "next big thing" in search. If the founders get a happy ending with the cash though, it's still an excellent deal.. so congratulations!

<comment><USER20> I don't think Google would be interested...they (Powerset) don't seems to have anything substantial yet.

It seems to me that MSFT is somewhat afraid that they already lost the race with Google in the area of general search. Even if they pour lot of $$$ into development, they don't have the experience and search data Google acquired during the years of their algorithms battling with search engine spammers.

At this point, it is practically impossible to catch up, so MSFT seems to try alternative approaches - the problem is that that is not any easier, and nobody showed anything substantial yet.

</comment></comment><comment><USER21> I wonder what connection, if any, this has with their acquisition of FAST Search & Transfer. FAST has always been relatively weak on the semantic side, but the technology stack is completely different from what I imagine Powerset is running (they're java & python).

<comment><USER22> Maybe Microsoft can use Powerset's search technology to increase the value of FAST Search to third parties? They could also improve Sharepoint's search a lot. It seems like it should be easier to tweak the Powerset algorithms for searching company documents than searching the Web.

</comment></comment><comment><USER23> Don't worry Live search will still be awful. Congrats to the Powerset team though.

<comment><USER24> Congrats for what?

Getting bought before they could completely implode on themselves?

<comment><USER25> What's with the sarcasm? At least they shot at something not pathetically trivial, like sending "up to" 400 bytes of text to random people. Or selling a few percent of message board technology to the same restless company ran by an idiot for $250M.

</comment></comment></comment><comment><USER26> I can't believe that PR startup actually got bought. MS Office is in the process of crashing down, their OS is a zombie, and they leave a negative impression in the minds of many smart developers. MSFT is worthless.

<comment><USER27> If by worthless you mean making $14 billion last year than you are right.

[http://finance.google.com/finance?client=ob&q=NASDAQ:MSF...](http://finance.google.com/finance?client=ob&q=NASDAQ:MSFT)

<comment><USER26> You should buy stock in a company you think will grow. The two main components of MS are set to shrink drastically.

Stock in a dinosaur is worthless.

<comment><USER28> It's worth about $27 a share, by definition.

</comment></comment></comment></comment><comment><USER29> This deal means Powerset's investors had given up on them. The valuation after their last round was 42.5m. No VC will accept a return of a mere 2x if there's an alternative.

<comment><USER4> They were running out of money :-)

</comment></comment><comment><USER30> Those very vocal Ruby people who are the de facto face of Powerset developers (KirinDave et al.) will apparently be Microsofties now.

Run, guys! Run for the Bay Area/Valley!

<comment><USER31> Ruby with MSFT makes sense just as Python with Google makes sense. ;)

</comment></comment><comment><USER32> Microsoft doesn't have much of a choice if they ever want to challenge Google - they have to buy whatever they're offered in this space.

</comment><comment><USER33> Is Powerset anything more than a proof of concept? Not one of the results for my search "which team has the most NBA championship wins?" had anything about the Boston celtics. MSFT has major challenges ahead to successfully apply Powerset over the entire www.

On the plus side, this could one day answer the question "What's Live really better than Google at?"

<comment><USER34> Not sure why you said none of the results for your search had anything about the Celtics. The third result's snippet basically answers the query - "The Boston Celtics have won the most championships, with 16 NBA Finals wins"

screenshot [http://img.skitch.com/20080627-xwau72gij1yse6t6fy1rp3us3j.pn...](http://img.skitch.com/20080627-xwau72gij1yse6t6fy1rp3us3j.png)

<comment><USER33> You're right.. think i just scanned the page titles. and someone needs to update that article with '17' finals wins.

</comment></comment></comment><comment><USER35> I wonder what Microsoft were looking to gain from this.

</comment><comment><USER36> I could think of better was to spend a $100M

</comment><comment><USER37> Google is terrified, no doubt.

<comment><AUTHOR> Don't think so. They're still king of ads. Remember?</comment></comment>


Why the Nokia N9 will fail - <AUTHOR> http://www.techarraz.com/mobile/nokia-n9-meego-iphone-copy/

<comment><USER2> _The CPU and the GPU are the juice machines sitting inside pretty much every cellphone that matters nowadays and the Nokia N9 is a disappointment in both._

Parse error. Juice machines? Is this idiomatic in some other language, and directly translated? Granted, I'm not a native speaker of English, so perhaps the failure is all mine.

Also, I'm not sure which audience the site is for, the price reference of "30,000" without unit was also a bit opaque.

<comment><USER3> FWIW, he did say "price in India", so I'm pretty sure it's in INR.

</comment></comment><comment><USER4> While it might fail, it shows that Nokia is still able to release a phone with some kind of "wow" factor while everyone tends to describe them as "dead", "MS-owned" etc.

Let's hope that the software is as fast and as bug free as in the demo video!

</comment><comment><AUTHOR> Archaic hardware + archaic software with dead community = big fail. Design alone does not sell as good as it used to a few years ago.

<comment><USER5> Archaic? The N9 is the first shipping product form Nokia with Meego a newer OS running on a qHD display with a 1ghz processor. It would do you good to read the actual article.

It may just fail because the market is already saturated with mobile platforms.

<comment><AUTHOR> Is Meego a newer OS?

<comment><USER5> Yes. Initial release 26 May 2010.

<http://en.wikipedia.org/wiki/MeeGo></comment></comment></comment></comment>


Why you should hire a tech co-op - <AUTHOR> https://outlandish.com/blog/why-you-should-choose-a-tech-co-op-for-your-next-project/ <comment><USER2> I can't figure out why Co-ops (particularly education institute backed) haven't really taken off in the US.

For example my alma mater Georgia Tech used to offer a Co-op program but I believe they discontinued it.

Northeastern here in Boston from what I have heard from others had serious problems with adoption of the Co-op program (I have to find the citation where I also read this).

Of course this was a few years back so maybe Co-ops are in now?

<comment><USER3> _> I can't figure out why Co-ops (particularly education institute backed) haven't really taken off in the US._

I'm not familiar with what "education institute backed" means. Does that mean GTech provided initial seed capital to the co-op for free? If so, how much money was it?

To the general question of why co-ops are not prominent, it's because the _workers_ don't have significant money. By definition, the co-op is owned by the workers and therefore, the workers need to fund the business. That limit on investment is why co-ops are often smaller businesses like consultants sharing an office & a laser printer or farmers-&-market collective. I also made a previous comment about it: [https://news.ycombinator.com/item?id=11165966](https://news.ycombinator.com/item?id=11165966)

<comment><USER2> I had a complete brain fart and thought they were talking about education co- op which is more like an internship (sadly I skimmed the article... poorly).

I am surprised I wasn't downvoted (I deserve it) to oblivion for such a mistake.

</comment></comment></comment><comment><USER4> This seems like it's just a pitch for this company - what's the actual value of the article?

<comment><USER5> The value of the article is the advertising - I could tell just from the title that it was almost certainly written by someone employed by a "tech co-op". I've never seen an article like this introducing a concept and why it's so great without it being written by someone financially motivated to do so.

</comment></comment><comment><USER6> The concept sounds interesting. Are there any successful tech-coops in the San Francisco bay area that people are aware of?

<comment><AUTHOR> I don't know of any off the top of my head, but I do know that substack, James Halliday, who is behind Browserify has launched a tech coop [https://bits.coop/](https://bits.coop/)

</comment></comment><comment><USER7> I hired from a tech-coop and the person didn't do any work.

<comment><USER8> Yeah, because the status quo is to 'do the work you are hired to do', and they disrupted it.

</comment></comment><comment><USER9> > we reinvest our own profit into new projects that we believe are going to > bring about real social change.

So what? Why is there an implicit assumption that if someone is trying to bring about "change", that it must be good?

<comment><USER10> I believe the "good" is implicit mate.

<comment><USER9> Pardon if I don't give someone credit for asserting they support "social change" without specifying what they're changing. It could mean anything from "ban mosques in London" to "free condoms with every middle-school lunch".

<comment><AUTHOR> What social change we want to cause is: a) decided democratically by those who have done the work. b) subject to a rigorous "theory of change" (of the kind used by charities and the third sector) to decide on potential impacts and side effects of any change caused and to measure how much change has been caused.

So we don't just do change for changes sake but try and cause positive social change. We talk about this internally a lot and have robust consent based decision making processes to be "checks and balances" on these matters.

<comment><USER9> _a rigorous "theory of change" (of the kind used by charities and the third sector) to decide on potential impacts and side effects_

I see. Sounds like "very rigorous maritime engineering standards".

</comment></comment></comment></comment></comment><comment><AUTHOR> I work here. AMA.

<comment><USER11> Not really a question, just wanted to pat you on the back for the exceptional work on the NHS and school cuts sites. They were both highly effective (anecdotally I believe they played a not insignificant part in the general election) and really, really well done.

<comment><AUTHOR> Thanks a lot, extremely kind! We are very very pleased to have made a difference. :)</comment></comment></comment>


Lookcraft Is For The Stylish Gentleman Who's Too Lazy To Shop - <AUTHOR> http://techcrunch.com/2012/10/23/lookcraft/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Techcrunch+%28TechCrunch%29

<comment><USER2> Another paid post from TC about a copy cat company.</comment>


Stopping Covid-19 false information from spreading on social media is difficult - <AUTHOR> https://www.iafrikan.com/2020/05/13/fake-news-coronavirus-false-information-social-media-twitter-facebook/ <comment><USER2> By 2050—earlier, probably—all real knowledge of Oldspeak will have disappeared. The whole literature of the past will have been destroyed. Chaucer, Shakespeare, Milton, Byron—they'll exist only in Newspeak versions, not merely changed into something different, but actually contradictory of what they used to be. Even the literature of The Party will change. Even the slogans will change. How could you have a slogan like Freedom is Slavery when the concept of freedom has been abolished? The whole climate of thought will be different. In fact, there will be no thought, as we understand it now. Orthodoxy means not thinking—not needing to think. Orthodoxy is unconsciousness.</comment>


How Tortoiseshell Cats Show the Limits of Cloning - <AUTHOR> http://io9.com/5890039/how-tortoiseshell-cats-show-the-limits-of-cloning

<comment><USER4> So, in summary, we can't clone tortoiseshell cats because we can't clone their _patterns_?

In that case we can't clone anything - identical twins don't have identical fingerprints.

This also ignores the problem of "active" chromosomes (even though it relies on it). Well sure, you'll get one that's active, and that can't be used directly to clone a tortoiseshell cat into another tortoiseshell cat - <USER2> that will only be true until we can reactivate the inactive one.

A cursory glance through Wikipedia suggests X-inactivation isn't a well- understood area of genetics, so I propose it's not an _actual_ limit, but that it lies beyond our current "limit of understanding". Calling it impossible is pure conjecture, but probably makes for a more link-baity article.

<comment><USER5> > Calling it impossible is pure conjecture, but probably makes for a more > link-baity article.

It's probably right though, and would be received with an incredulous "well duh" by most (if not all) biologists: we've known for quite some time that there's a certain amount of plasticity in development.

</comment></comment><comment><USER6> "Even if someone were to nab a cell from a developing embryo before the X-linked inactivation happened, the new cloned kitten would also randomly inactivate its X chromosomes, leaving two cloned siblings that don't have the exact same color pattern."

The different colour patterns part is true for any cloned cat's markings, not just clones of a tortoiseshell.

The cloned cat "Cc" who hit the news a decade ago was a tabby-and-white clone of a calico cat; calico patterns also result from having the black coat gene on one X chromosome and the ginger coat gene on the other, which is why calico and tortoiseshell cats are almost all female, and why ginger cats are three times more likely to be male than female. Trisomy does occur in cats but very rarely.

</comment><comment><USER7> So randomness is an inherent guaranteed feature of life itself. Imagine if this applied universally to skin color too. What would our prejudices be then? Cue 1960s _Star Trek_ episode where one guy is white on left side while the other is white on his right side...

<comment><USER8> I've always thought it would be teh awesome to be a calico human, if for no other reason than I could snort derisively at human racism.

</comment></comment><comment><USER9> I can't help but be reminded of the various copy protection schemes they used with CD/DVD disks, such as SafeDisc. It feels like this is "nature's copy protection scheme", if you forgive the cliché.

<comment><USER10> Somehow, this is a terribly amusing comparison.

</comment></comment><comment><USER11> We're still working with the primitives, the biological equivalent of machine code. Even when we get to genes we're talking about pre-defined functions which call external libraries (the epigenetic and environmental factors) that we are limited to splicing around.

The quantum shift will come when we are able to abstract the genetic and epigenetic functions. The metaphor has yet to shift.

</comment><comment><USER12> I think the io9 author is striving here to emphasize a favored, romantic conclusion: "No matter how advanced the technology, there is no way to clone a certain kind of animal. Life is sometimes determined to be unique, in spite of our best efforts to make it predictable."

I expect it's equally likely a way to reset the X-linked-inactivation within a single cell will be discovered, so while the coloring of the clone won't be a perfect copy, it will be a product of roughly the same random process as the template cat. (Perhaps the reset would even be possible in adult cells: give your cat a pill to rescramble its colors over the course of a shedding cycle, or force it one way or the other.)

Of course there are all sorts of other confounding influences, such as horizontal gene transfer and chimerism, both of which will probably turn out to be more important than usually assumed. But given a few hundred years, the error in 'cloning' an organism can likely be made almost imperceptibly small.

<comment><USER13> > I expect it's equally likely a way to reset the X-linked-inactivation within > a single cell will be discovered, so while the coloring of the clone won't > be a perfect copy, it will be a product of roughly the same random process > as the template cat.

That's not the point of cloning, though. Scientists expect an exact replica - without that, what's the point? I can find you another tortoise shell cat that looks _almost_ exactly the same in the real world, sans an expensive procedure. What you'd want is an exact copy of your beloved cat. I think what the article hinting at, but not saying, is that if something as simple as a hair pattern can't be copied then other more complicated systems, for example the brain, certainly have similar inconsistencies that arise during the cloning process.

<comment><USER4> Scientists don't value duplication unless it's also visually identical? This is a new bit of information to me. The people this likely matters the most to are people trying to clone their pets.

As for non-copyable attributes, we've known that for a long time - <USER3> fingerprints, for instance. This discovery hasn't caused all funding for cloning to be withdrawn, so I doubt it matters as much as you seem to be implying.

</comment></comment></comment><comment><USER14> Torties are great, loyal cats--they can have a bit of an attitude though. :) Here's my little tortie girl: <http://i.imgur.com/ilSqNl.jpg>

<comment><USER13> Beautiful cat. I have a dilute calico female that is very sweet, but only to me and my wife. I think this might be more indicative of female cats in general. I find more than 1 female in a home is typically a problem, whereas multiple (neutered) males tend to get along better.

If I remember correctly, with the exception of genetic anomalies, calicos/tortoise shells are always female and orange tabbies always being male. The other interesting thing I read was that the more white on a calico, the larger the individual color 'splotches'. A calico with no white will have the black and red mixed all over (like your cat).</comment></comment>


React DnD - <AUTHOR> https://gaearon.github.io/react-dnd/ <comment><USER2> I thought it was Dungeons and Dragons implemented in React :/</comment>


"App Developer" bamboozles Redditors as a millionaire using verified profiles - <AUTHOR> https://np.reddit.com/r/UnethicalLifeProTips/comments/7xcoun/ulpt_you_can_win_any_argument_against_digitally/du7xhii/ <comment><USER2> Honestly, it's even more complicated; it's hard to tell if this person is lying or not. It seems like most likely, he's trolling and making people think his life was a lie. Pretty hilarious either way. [https://www.reddit.com/r/UnethicalLifeProTips/comments/7xcou...](https://www.reddit.com/r/UnethicalLifeProTips/comments/7xcoun/ulpt_you_can_win_any_argument_against_digitally/du8hdna/)

<comment><USER3> I trust him even less because I cannot tell when he is telling the truth. This is great.

<comment><USER2> If anything, it bums me out how mad some people are getting over it. It's pretty harmless and hilarious in my opinion. I admit, it's hard to trust him after this stunt, but logically it's kind of clear he's rich and has nothing to lose by having a go.

<comment><USER3> Why are you bummed that people are mad about being lied to? It seems like a reasonable human reaction.

<comment><USER2> Basically, because I do feel like it is a mostly-harmless lie that is quite funny. I get that it is eroding people's sense of trust, but I'm guessing his intent was not to mess with his own following but to mess with the general reddit community. The fact that this went viral seems to have pulled in some of his fans, but I doubt it was intentional.

<comment> ctrl-j > mostly-harmless lie that is quite funny.

People feel shitty when they are lied to and laughed at.

It's a shitty thing to do. If you enjoy it, that's fine. It's still a dick move.

</comment></comment></comment></comment></comment></comment><comment><USER4> Wow, I remember reading the App Developer AMA and assuming it was fact without checking any references myself. Beyond filter bubbles and fake news, this really shows how susceptible we are to our own bias.

<comment><USER5> Online, I could be completely cynical about everything, not believe anyone without 10 layers of solid citations, and so on. And to do that I'd have to spend 48 hours per day online checking facts and sources, or never venture onto the internet.

On the other end, I could just believe everyone at face value, and get bamboozled and misled frequently.

Instead, each person has to strike a balance. Have a balance of trust, and recognize when you're putting forth faith in someone. Be ready to transition from trust to cynicism. For things that don't matter (like "believing someone is a millionaire"), don't worry about it - unless and until that "millionaire" tries to offer you personally something too good to be true.

<comment><USER6> Exactly. I have nothing invested in the story some random guy on Reddit is telling. Why not take it at face value? If I'm going to go tell a bunch of friends about it or take some action myself based on it, then sure, I'm going to want to apply a little skepticism to save myself from making a mistake or looking foolish.

</comment></comment></comment><comment><USER7> What he says about escalating fame and using less reliable sources as social proof to get covered by more reliable sources does seem to play out in the world.

There are all sorts of "awards" ceremonies for things like best employer, best company in IT, etc. but frequently to get into such awards you have to pay money (surprise surprise) and the entrants get to nominate themselves. Then when they win, they take the story to the local and trade press, and on and on it goes.

</comment><comment><USER8> Can I get a brief summary from a fellow HNer, not too versed with reddit and reading all the many reddit comments have confused me more than just simply reading that man's confession.

<comment><USER9> It's not entirely clear, but I gather one of the following occurred: either 1) The person convinced Reddit they are a wealthy app developer, by using fake sources, or 2) The person is actually a wealthy app developer, and is trolling Reddit by telling them he was faking it.

<comment><USER10> I don't know but #2 is equally as likely as #1. I just went through his FB profile[1] and some reddit comments[2] and this is just too much shit for it not to be real. I guess if this is a fake then it has to be one of the best fakes i've read online in the last 10 years.

[1] [https://www.facebook.com/allenapp](https://www.facebook.com/allenapp)

[2] [https://reddit.com/r/WTF/comments/67zv7a/my_dad_does_tile_fo...](https://reddit.com/r/WTF/comments/67zv7a/my_dad_does_tile_for_a_living_this_is_one_of_the/dgv60tg)

[2.1] [https://www.reddit.com/r/IAmA/comments/68pck7/im_that_multim...](https://www.reddit.com/r/IAmA/comments/68pck7/im_that_multimillionaire_app_developer_who/)

<comment><USER11> There's a YouTube channel with 60k subs and dozens of supercar videos, those would be pretty hard to fake

</comment></comment></comment></comment><comment><USER12> The double irony is that lots of media outlets will pick this up and interview him and eventually he'll become the authority on how to "fake it till you make it."

</comment><comment><USER13> Bamboozling redditors is a really low bar to set as a life goal

</comment><comment><USER14> What a POS. I've known him online for years.</comment>


Templating in Go - <AUTHOR> http://austingwalters.com/templating-in-go/

<comment><USER2> Doesn't mention imho the best feature of Go html templating, from the docs ([http://golang.org/pkg/html/template/](http://golang.org/pkg/html/template/)):

 _This package understands HTML, CSS, JavaScript, and URIs. It adds sanitizing functions to each simple action pipeline, so given the excerpt

      {{.}}

At parse time each {{.}} is overwritten to add escaping functions as necessary. In this case it becomes

      {{. | html}}

._

</comment><comment><USER3> Rob Pike did a really good talk entitled 'Lexical Scanning In Go'[0], which covers how the lexing for text/template works. It's far more interesting than it sounds, and even if you don't know much about lexing/parsing it's easy to follow.

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

</comment><comment><USER4> This hardly even talks about the templating package in Go, which is really good. They have found a nice balance between ease of use and functionality.

It reads a lot like mustache, but has the power of a language that allows you to mix markup and code. Its worth checking out in more detail.

<comment><USER5> Can you recommend a good document explaining all the features? The main package doc on golang.org seems to not really go into stuff like conditionals, loops, etc. which I gather are possible.

<comment><USER6> That is documented in text/template.

<comment><USER5> Wow. I feel like an idiot for not finding that. Thank you!

</comment></comment></comment></comment><comment><USER7> The main thing I hate about Go's template package is that it makes it difficult to define base templates without adding the base file to your ParseFiles arguments. I want to be able to say that a template extends another from within that template, not the code.

<comment><USER8> Go doesn't offer a clear simple way to do this[1] in their builtin template library. But it turns out, it really is possible to do it, as described in this thread on Stack Exchange[2]. I bookmarked that so that I can boil it down into some simple-to-reuse code if I ever bite the bullet and start using Go for the presentation layer on a major website. What they're doing there is a cool technique, but it's not simple to use out of the box.

1\. [https://sites.google.com/site/usfcomputerscience/django- temp...](https://sites.google.com/site/usfcomputerscience/django-templates)

2\. [http://stackoverflow.com/questions/11467731/is-it- possible-t...](http://stackoverflow.com/questions/11467731/is-it-possible-to- have-nested-templates-in-go-using-the-standard-library-googl)

</comment></comment><comment><USER9> Having implemented significant projects in each, I greatly prefer the soy template language. [http://godoc.org/github.com/robfig/soy](http://godoc.org/github.com/robfig/soy)

(plug for own library)

</comment><comment><USER10> Templating was actually the one thing that made me give up the last time I tried to get started with Go...

<comment><USER11> For those who use Go for web, it's a good chance to not use templating at all, and try html + js-ajax + json (from Go backend).

</comment></comment><comment><USER12> One subtle feature of Go's templating that I really appreciate is that it's possible (and easy!) to change the template delimiters[0].

This is really useful when dealing with systems like Angular.js, which also use "{{foo}}" as delimiters for injecting directives.

[0] [https://github.com/ChimeraCoder/go-angular- jetpack/blob/mast...](https://github.com/ChimeraCoder/go-angular- jetpack/blob/master/handlers.go#L63)</comment>


Android 3.0 Platform Highlights - <AUTHOR> http://developer.android.com/sdk/android-3.0-highlights.html

<comment><USER2> Bluetooth keyboard support! About time!</comment>


Nim: –Gc:Arc - <AUTHOR> https://forum.nim-lang.org/t/5734 <comment><USER2> This is super cool ... are there any more detailed docs on it? It sounds like it's borrowing a bit from Rust's ownership model?</comment>


SwiftCloud: Fault-Tolerant Geo-Replication Integrated to the Client Machine - <AUTHOR> http://highscalability.com/blog/2014/5/15/paper-swiftcloud-fault-tolerant-geo-replication-integrated-a.html

<comment><USER2> Facebook has something approaching this, using sleazy DNS and routing tricks to approach optimal cache locality. AFAIK, they have not yet achieved master- master "write anywhere" replication: all writes phone home to the master cluster. In practice for their use-case this is less of a big deal than it may appear.

</comment><comment><USER3> The link to the actual paper in the post 404s - found this version that works for now:

[http://hal.inria.fr/docs/00/87/02/25/PDF/RR-8347.pdf](http://hal.inria.fr/docs/00/87/02/25/PDF/RR-8347.pdf)</comment>


Venture Capitalists, who are these freaks? - <AUTHOR> http://www.music-piracy.com/?p=220 <comment><USER2> "Venture Capitalists, who are these freaks?"

Answer: These are the freaks who took a nascent computer industry once dominated by a few mega-companies and, beginning some 40 years ago, made possible something that we today know as a "startup" by which young and otherwise untested whippersnappers might avail themselves of their capital in order to build vast new enterprises that have managed to transform all of world commerce and who, with their capital, built such a tremendous infrastructure in what we know today as the internet that young and untested whippersnappers can presume to launch new ventures under the illusion that no capital of any kind is required or, if it is, it can be so minimal as to come solely from a few friends or family members. These freaks are really nobodies in the grander scheme now that we have moved into an era where risk capital is no longer required to launch and build startups and where every young and untested whippersnapper will be more than willing to put up that $100K or $200K of his own money to take that whirl with some new and untested concept to see if it will fly. And if that young and untested whippersnapper should lose his money in taking that whirl, it is really no loss because only soulless people care when they lose money while those who are above mere money are too busy having fun.

I'm sorry - I would hardly classify myself as a sycophant for venture capitalists or other investors (my specialty is representing founders and their early-stage companies) but this piece is really beyond the pale. Freaks? Soulless? This really is pure garbage, whatever good points are otherwise hidden within the broad ideas that founders can and do benefit from managing their talents and resources wisely so as to lessen or avoid dilutive hits from taking in investment money unwisely. Whatever might be good here is, for me, lost among what I see as a mean-spiritedness in the presentation.

<comment><USER3> > I see as a mean-spiritedness

Let me offer an outside perspective. I see VCs in a role similar to horse breeders - they pick a few foals, groom them, and are quite dispassionate about pushing ahead the winners and disposing of the others.

Can't quite blame the young bucks for some kicking and biting when a strange- smelling outsider approaches them with a rope and saddle.

(shouldn't have watched all those westerns ...)

</comment></comment><comment><USER4> I assume good ones know the culture well enough to avoid doing so, but there _are_ people who show up to hackathons with pretty thinly diguised interest in scoping out investments. It can be weird when people are purely talking tech and side-projects and whatnot, and one guy is sort of hovering around conversations out of business interest. Though, to be fair, it's quite possible the most obvious ones are would-be VCs and angels rather than actual ones.

edit: comic <http://www.flickr.com/photos/progrium/2126533900/>

<comment><USER5> eh, I guess I don't really mind them hanging out, I mean, I'm not interested in what they have, but others are. My problem is that they seem to have the attitude that everyone wants to talk to them.

Having angels at hackathons is fine, maybe even good. The problem is when angels become (or act as if they are) the centre of hackathons.

I remember not so long ago I was at a kinda business oriented hackathon and I couldn't get this angel to leave me alone. I mean, okay, I talked at first, but after realising that he was only interested in something that would sound good on CNN (which is to say, he wasn't interested in anything realistic, or at least nothing realistic that I was capable of doing) I lost interest.

It was like trying to talk to someone who was stoned. He said things that sounded deep, like they were 'big ideas' but if you pinned him down and dug into the details, there was no actual content.

The guy wouldn't leave me alone, even though I was being fairly direct about "not interested, working" both verbally and non-verbally. It didn't help that my partner liked talking to the guy, I assume because of the money.

Really, if the guy wanted to sit behind me and watch, that'd have been fine. It was the talking to me, /after/ I made it clear I wasn't interested in talking to him that bothered me.

<comment><USER6> > It was the talking to me, /after/ I made it clear I wasn't interested in > talking to him that bothered me.

You should have charged him. Or insisted on a term sheet before you started talking.

</comment></comment></comment><comment><USER7> As time goes by, we need angel investments for fewer and fewer startups. The cost more often is within the reach of founders own (or parent's and friend's) pockets. People like me need business savvy advisers more than money. Investors who bring only money to the table get less useful every year.

<comment><USER8> Only for web startups I would say. Things are very different in hard, enterprise software business.

<comment><USER9> Still for most startups - though outside the realm of this board - cleantech, life sciences, and enterprise hardware startups still require major VC and PE backing over their life cycle.

For example - Better Place - a provider of Electric Car Service Stations just raised a $350 MM Series B with HSBC as the lead investor. HSBC doesn't bring management expertise - but they did bring $150 MM of investor dollars.

</comment></comment></comment><comment><USER10> I wonder if this is like that thing where you insult people to get them to talk to you.

</comment><comment><USER11> Can also be read as: "VCs and angels, please notice me!"

Also: "I was there!"</comment>


Microsoft Announces OS/2 2.0 Software Development Kit [1989] - <AUTHOR> http://www.os2museum.com/wp/wp-content/uploads/2012/03/1989-12-29-m3974.html

<comment><AUTHOR> Also see: <http://news.ycombinator.com/item?id=3907879></comment>


Ask HN: Why do engineers as a group allow opaque offer letters? - <AUTHOR> As a group, why do engineers allow opaque offer letters? What I mean by this, is that the standard practice for offer letters is to include the number of options being offered, without the number of fully-diluted shares also being given. FDS is a critical number. Employers are often even misleading in that instead of FDS, they use a smaller denominator to calculate your percentage: outstanding number of shares.<p>As a group, why do engineers allow this? Unfortunately, I believe it to be the lack of sophistication on the part of engineers. Investors wouldn't invest without some sort of documentation on FDS. Engineers will invest precious time and energy. Investors may or may not do the same, but they have the benefit that engineers do not: diversification. <comment><AUTHOR> Also, many offer letters request you sign 1 or more documents citing that you are signing on to at-will employment, etc., etc.

Often times these offer letters also cite a stock option plan that you are not yet given - that you will receive at some point in the future (probably within a month or so) that includes the actual terms of your options.

</comment><comment><USER2> In all seriousness, how would you go about calculating FDS?

I assume the way to handle that would to have a constant set-aside of the company stock that is used for employees that is _never_ diluted, but I'm not sure that that is the case.

<comment><AUTHOR> The number of fully-diluted shares is not a constant over the lifetime of a company. It can be increased or decreased at the will of the board of a company. Knowing this number does not mean that more shares will not be issued.

Typically, companies will give you the number of shares outstanding, which is misleading and does not include any unexercised options. Fully-diluted shares is the best number to use when calculating outcomes, as it assumes that all existing convertible notes, preferred stock, and options will be converted into shares at some point in the future.

</comment></comment><comment><USER3> To many people in this industry, "as a group" sounds an awful lot like "collective action" which is anathema.

<comment><AUTHOR> Engineers like to define best practices all the time. Often times this is informally, sometimes it's through organized groups like IEEE.

<comment><USER2> For what it's worth, most startup technology is not overly burdened or fettered with best practices. :)</comment></comment></comment>


Prejudice, not principle, often behind 'free-speech defence' of racism - <AUTHOR> https://www.thememo.com/2017/05/05/free-speech-defence-online-racism-racist-trolling-twitter-reddit/ <comment><USER2> Literally "Your defence of racist free speech is invalid because you're racist!"

Coming soon: "Your defence of public healthcare is invalid because you're poor!"

<comment><AUTHOR> Literally not what it says - the article is pretty nuanced actually.

</comment></comment><comment><USER3> Not at all surprised by this. Totally agree.</comment>


How we made the OneSoil map with AI detected fields and crops - <AUTHOR> https://blog.onesoil.ai/en/onesoil-map <comment><USER2> Checking this out in a few areas near me: 1\. Many golf courses are identified as maize or wheat fields. 2\. Nature preservation areas are generally identified as grass or maize. This "AI-based approach" seems to be off by at least an order of magnitude. A great idea but it certainly needs serious refinement before use by any government or company.

<comment><USER3> I think they probably need more regional adjustments for the probability calcs I assume underpin their output. The UK Department for Environment, Agriculture and Rural Affairs, for example, has good open data statistics on crop growth, and stats are likely to be reasonably accurate since data is reported for subsidy purposes, and farmers are well aware agricultural fraud monitoring takes place.

OneSoil suggests 325k hectares of UK land dedicated to potato growing in 2017, over twice as much as the 145k reported by DEFRA; 378k ha of maize cultivation vs 195k according to DEFRA.

Other figures from OpenSoil such as barley and wheat are much closer to the reported figure and so may be fairly accurately categorised by its ML process, and some figures are going to be hard to fairly compare due to different categories or multiple crops per year)

At the same, having had a former colleague work on using Sentinel-2 data to classify land use, I'm well aware it's not an easy problem to solve.

<comment><USER4> Thanks! This analysis is really helpful to sense check the accuracy of these kinds of ML predictions based on satellite data.

Out of interest, could you share any further insights around the challenges using the Sentinel-2 data set?

<comment><USER3> Happy to share my thoughts on open data sources and validation steps in more detail by email if you like if you're working on this or something similar.

Not sure my observations on the Sentinel-2 data specifically are going to tell you anything you don't already know though - my original comment basically meant that identifying heterogenous and changing land use against heterogenous and changing surrounds on a regional scale is particularly hard when your spatial resolution is low enough for land areas being categorised to often only be a handful of pixels, and harder still when potential calibration metadata is older than the earliest images. We (my colleagues rather than me) solved our problem by incorporating other lower res and even radar datasets at the initial identification step and then having a manual verification stage using high res optical to evaluate the model output, but we were only identifying a few very specific rare types of land use. And again you're probably aware a model that's well fitted to one region might well needs recalibrating when used on regions with different topography and climate and typical land use patterns.

</comment></comment></comment></comment><comment><USER5> Interesting project. It really should be compared against some databases of what crops are actually being grown to get a better sense of what one might take away from it. Just spot checking local cases around the Bay area seem to be about 40 - 50% accurate. But there are also issues where crops are rotated so I can imagine one issue would be getting crop images from different seasons could throw it off as well.

That it presents numbers as if it were 100% accurate, is an issue for me.

<comment><USER6> Thank you! We compared the results of our algorithm to the datasets we were able to get and the accuracy of crop classification, or F1 score, is 0.91. This is stated in the "How it works" section of the map: [https://map.onesoil.ai/2018?about](https://map.onesoil.ai/2018?about). Hope this answer is helpful :)

</comment></comment><comment><USER7> I have a large team that has been working on computer vision driven solutions for 6 years now. Getting something like this working is easy* now (just 6 years ago, not so much). But getting it to have any reasonable accuracy rate is beyond hard.

*easy is probably too strong a word. It is straight forward.

<comment><USER8> How did you manage to increase the accuracy rate? What is it now?

</comment></comment><comment><USER9> It's a beautiful map but wildly inaccurate as others have pointed out. I compared some of the results against plots of land that I'm familiar with and found it to be off by orders of magnitude in all cases even for areas that are known for certain cash crops (e.g, Assuming every vineyard in Napa Valley is Alfalfa instead of grapes). Meanwhile, my family's small vineyard in the central valley is categorized as as soybeans and the orchard next door (one of the only crops that's clearly identifiable via satellite) is identified as wheat.

</comment><comment><USER6> Hi everyone,

I am from the OneSoil team. Thanks for your comments! We appreciate your feedback a lot. Currently, we're working over the algorithm improvements and it would be great if you can share the exact coordinates where the crop is detected incorrectly. This will help us a lot.

We're also interested in cooperation with those specialists who can provide ground truth data about the field borders and crops growing on them. So. if you know someone, please share this info with us (our email is email@example.com)

</comment><comment><USER10> It's identifying 9.4 ha of grapes in my neighborhood in what I know is a public park. Also identifying alfalfa in areas that are simply unforested California open space.

</comment><comment><USER11> Around LA the map is off by a lot. "Nuts" in the National forest wilderness, "wheat" in residential neighborhood. But I think it shouldn't be too hard to fine tune this with some level of manual labor. I bet a lot of the models need regional customization. You can't compare dry areas in the West of the US with ares like Austria.

</comment><comment><USER12> Given the prevalence of "grass" in national forests, I suspect it is the kind that has only been legalized at a state level. If the folks growing the "grass" find out they can be detected, especially before their "crop" is ready for harvest, they might be unhappy about it.

</comment><comment><USER13> Good work!

Works surprisingly well for "rural" Southern Germany, Black Forest area where I grew up. It's hilly, so most of the area is forest or grass - but the few fields I know are recognized and mostly with the correct crops as well.

<comment><USER6> Glad it's working correctly! :)

</comment></comment><comment><USER14> It looks like the classifier has a lot of trouble with water bodies. Looking around through the Puget Sound area (near Seattle) there's a whole lot of fields that would be underwater.

<comment><USER6> Thanks for checking it out! We indeed had a problem that water bodies were recognized as some specific crops and we're working on fixing it in the new version of the algorithm :) If you spot any more locations, please send them to email@example.com, we really appreciate the help!

</comment></comment><comment><USER15> Weedmaps at level 10000</comment>


.CO TLD open for global commercial use - <AUTHOR> http://www.europeregistry.com/domains/domains-co.htm

<comment><USER2> Kind of misleading, it is open to individuals who want to pay a premium to register and exorbitant fees. It is not open for general registry at the advertised 29 euros.</comment>