F# 4.1 and Visual F# Tools for Visual Studio 2017 - <AUTHOR> https://blogs.msdn.microsoft.com/dotnet/2017/03/07/announcing-f-4-1-and-the-visual-f-tools-for-visual-studio-2017/ <comment><USER2> Author of the post here. Happy to answer any questions you may have!

Edit: Just to reiterate, the releases described in the blog post have an immense amount of community sweat behind them. We're super happy about how engaged the F# community is and proud to have such a long section dedicated to attribution.

If you want to learn more about F# or get started, try any of the following:

* [http://fsharp.org/](http://fsharp.org/)

* [https://docs.microsoft.com/en-us/dotnet/articles/fsharp/tuto...](https://docs.microsoft.com/en-us/dotnet/articles/fsharp/tutorials/getting-started/getting-started-visual-studio)

* [https://docs.microsoft.com/en-us/dotnet/articles/fsharp/tuto...](https://docs.microsoft.com/en-us/dotnet/articles/fsharp/tutorials/getting-started/getting-started-vscode)

* [https://docs.microsoft.com/en-us/dotnet/articles/fsharp/tuto...](https://docs.microsoft.com/en-us/dotnet/articles/fsharp/tutorials/getting-started/getting-started-command-line)

* Visual Studio for Mac (comes with F#): [https://www.visualstudio.com/vs/visual-studio-mac/](https://www.visualstudio.com/vs/visual-studio-mac/)

<comment><USER3> Is F# a good alternative to C# for writing purely object-oriented code? For my current project I have a very low level spec/architecture, that says class Abc does Xyz, classes A1, A2, A3 implement a strategy pattern, etc. It's designed with C#, VB.NET or Java in mind, but the dev team would prefer F# or Scala.

One more question. I work at a place with a very restrictive firewall. F# 3 projects worked fine, but with F# 4 the build fails to download nuget packages. Is there a way to use the latest version without Internet connection? I can download anything from microsoft.com, as that site is whitelisted, but nuget.org is not.

<comment><USER4> I haven't used F# in a while, but it seemed pretty clean for OOP with a couple of caveats. You have to explicitly implement interfaces and do a lot of casts to use interface members, which is ugly compared to the rest of F#. It's also difficult (impossible?) to have circular references between types unless you cram it all into one file.

It's probably possible to convince me that the limitation on circular references is actually a feature, but implicit interfaces would be really nice to have.

If I ever dive back into to F#, I think I will treat it as "procedural first with a neat type system" and limit the use of both OO and functional features to where they markedly improve the code.

<comment><USER5> > If I ever dive back into to F#, I think I will treat it as "procedural first > with a neat type system" and limit the use of both OO and functional > features to where they markedly improve the code.

This _may_ be a good strategy; I would urge you though to try doing top-down design in F# using modules and interface (.fsi) files. E.g., let's design a calculator GUI app in F# using, say, Windows Forms. Sketch out the interface first:

        (* Calculator.fsi *)
        namespace CalculatorApp

        module Calculator =
          type number = Zero | One | Two | ... | Nine
          type op = Plus | Minus | ... | Sqrt

          (*
          Holds the app model. Note that it is mutable; the keypress operations
          return `unit`, i.e. they update the `t` value in place.
          *)
          type t

          val init : t
          val press_number : t -> number -> unit
          val press_op : t -> op -> unit
          val calculate : t -> double

          (*
          Draws the app and hooks up event handlers to the above operations.
          *)
          val render : unit -> System.Windows.Forms.Control

Then in the implementation file (Calculator.fs), fill in the blanks based on the types! Of course you'll need a separate file for the main entry point, but that's good practice anyway.

</comment></comment></comment></comment><comment><USER6> F# (and ML in general, despite having been around for a while) looks like a programming language of the future. It occupies just the right place between the two extremes - one being purely functional languages (Haskell, Scheme, etc.) and the other being taken by all sorts of imperative languages (C, PL/1, Java, etc.), which - from a certain standpoint - could all be viewed as derivatives of the assembly language, and which, therefore, should have been long abandoned in favor of languages worthy of the name 'language' as the medium of human thought.

(Unfortunately, the two modern languages - Go and Rust, despite showing so much promise, appear, from this perspective, to be following the wrong path.)

<comment><USER7> Rust is very much ML. It's the systems programming token salad that makes it look like C++, but if you squint you can see it looks a lot like ML. As does swift.

<comment><USER8> I honestly can't see that. Functional programming and ownership are concepts that just don't mix well. Just think about OCaml's Set module (which uses balanced trees with partial sharing of subtrees as the result of set operations, if you look at the implementation).

<comment><USER9> > Functional programming and ownership are concepts that just don't mix well.

Of course they do, ownership is part of substructural type systems, more precisely affine types.

<comment><USER8> The particular problem I was getting at was that the structural sharing required by purely functional data structures is not a natural or easy task when you're restricted by affine or linear types.

Several idiomatic functional programming techniques are similarly difficult to express with the additional invariants of affine types.

<comment><USER9> Yet there are quite a few programming languages considered functional with substructural type systems.

Being easy or hard is not what defines FP.

<comment><USER8> Well, that was in the context of the claim that "Rust is very much ML". We weren't talking about (say) BitC here.

I've got nearly two decades worth of ML code lying around (mostly OCaml, some SML and F#) and for most of it rewriting it in Rust would require significant redesign for the reasons I mentioned. This starts with even very simple things like List.rev.

<comment><USER9> > We weren't talking about (say) BitC here.

No, we are talking in the context of ATS, LinearML, Idris, Mercury, F* and a few others.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> Alpha .net core support :( I'm excited things are moving forward, but I wonder how much of the slowness around this is due to the coupling of F# releases with the release cadence of Visual Studio/Visual F# Tools.

Hopefully ionide will support dotnet core soon now, and we can get a fully cross-platform development experience with VSCode and .Net Core.

<comment><USER2> Sorry for the confusion, but F# isn't in alpha for .NET Core support. From the post:

 _Specifically, the following are in RC:_

\- _FSharp.Core as a .NET Standard NuGet package_

\- _The F# compiler running on .NET Core as a .NET Core console application_

\- _F# support in the .NET CLI and the .NET Core SDK_

 _However, the following are not supported at this time, but will be supported in a future Visual Studio 2017 update:_

\- _F# support for .NET Core Visual Studio tooling_

\- _F# Interactive (FSI) running on .NET Core as a .NET Core console application_

</comment></comment><comment><USER11> Sadly VS2017 doesn't support .NET Core F# projects. Come on Microsoft!

<comment><USER12> F# supports .NET Core projects. VS2017 however doesn't support the new MSBuild syntax which is used for new .NET Core projects. Fortunately this is the goal for the next VS2017 update and the F# community and the MS VF# team, are working hard to get this working.

Instead of complaining we, as a community, should be helping the VF# team and contributors with there efforts!

<comment><USER13> I've been enjoying this new push into cross-platform, open source stuff by Microsoft, whereby everything is always broken, incomplete and incompatible.

<comment><USER12> Are you talking about F# with .NET Core or .NET Core/Standard in general? If you talk about the latter, I agree with you, that this has been a shit show. However MS is aware of this and Scott Hanselman has complained several times about versioning and other stuff, during the ASP.Net standups, in regarding of (ASP).NET Core in general. I believe that MS is trying their best and since all the open source stuff is new for them as an organization, this an area they are exploring and hopefully learning from there mistakes.

</comment></comment></comment></comment><comment><USER14> Is there any news on when .NET Native's stupid AOT compiler (i.e. UWP store apps) will support F#? It is becoming scandalous now. We have a circa 800k LOC F# Xamarin codebase working on iOS and Android but cannot spin up the UWP variant for this reason.

</comment><comment><USER15> Is there a good, cross-platform UI framework for F#?

<comment><USER2> This may not be _quite_ the direct answer you expect, but yes there are multiple ways to create cross-platform UIs with F#:

1\. Xamarin[0]. It supports F# for everything aside from UWP targets.

2\. WinForms on Mono[1].

3\. FABLE[2] to compile your F# into JavaScript. It's a _very_ good tool and it produces really nice JavaScript as well. From there, you can run the code on the web, Electron, or React Native[3].

[0]: [https://developer.xamarin.com/guides/cross- platform/fsharp/f...](https://developer.xamarin.com/guides/cross- platform/fsharp/fsharp_support_overview/)

[1]: [http://www.mono-project.com/docs/gui/winforms/](http://www.mono- project.com/docs/gui/winforms/)

[2]: [http://fable.io/](http://fable.io/)

[3]: [https://github.com/fable-compiler/fable-react](https://github.com/fable- compiler/fable-react)

<comment><USER16> I am struggling to understand why xamarin supports F# but not VB...

<comment><USER17> I believe it has more to do with the founder being an F# enthusiast and less to do with marketshare or suitability.

</comment></comment></comment></comment><comment><USER18> Great to hear the move to Roslyn is complete! Last time I used F# I was suprised at the lack of IDE features compared to C#, so I look forward to trying out the improved experience.

<comment><USER12> VF# now uses the Roslyn Workspaces, however the migration to the new Roslyn ProjectSystem is just started ;)</comment></comment>


Will Parallel Code Ever Be Embraced? - <AUTHOR> http://www.drdobbs.com/parallel/will-parallel-code-ever-be-embraced/240003926

<comment><USER2> _But the shiny object that has my attention at present consists of low-voltage ARM-type chips running on tiny inexpensive systems that can be stacked together to do all kinds of interesting things for a fraction of the power my Intel Xeon uses_

This sentiment is repeated very often, but has someone actually done the math (in the case you do temporarily need a lot of processing power)? E.g., the following post estimates the power use of a Raspberry Pi around 2W:

[http://www.raspberrypi.org/phpBB3/viewtopic.php?f=2&t=60...](http://www.raspberrypi.org/phpBB3/viewtopic.php?f=2&t=6050)

A recent Xeon or Core i7 is _many_ times faster, and has the advantage of providing shared-memory parallelism (as opposed to a cluster of Pi's, where you have to distribute work over a 100MBit network).

Also, when he wants to save power, he shouldn't use a Xeon. Intel Core mobile CPUs, draw a relatively small amount of power as well. E.g. last time I measured my Mac Mini, it used 12W during normal use. And it's actually a usable desktop machine, in contrast to the Raspberry Pi.

<comment><USER3> For power usage, a model like the one used by Parallax's Propeller microcontroller might be interesting: Propeller has 8 cores. The entire thing can be clocked up an down like on a modern x86 chip. But it's also possible to put cores to sleep individually, which reduces power consumption even further.

I'm not sure how good an example Raspberry Pi is, simply because it includes features like a GPU. A computer probably really only needs one of most of that kind of stuff, so it would make more sense to look at the power requirements for a bare ARM chip than for a complete computer built around it.

\-- change of subject --

What I've been running into (including hard and repeatedly over the last few days) is that parallelizing workstation-end tasks without killing performance in the process is _hard_. Shared-memory parallelism in particular is painful, because with too many cooks in the kitchen they'll end up spend more time trying to not pour boiling water on each other than making food. For example, every time you hit a memory barrier all the cores that are working against that memory need to stop and consult the L3 cache or, worse yet, main memory. That introduces an enormous stall (Of course if you're in a situation where non-trivial parallelizing is worth the effort, any stall feels enormous.), so it needs to be avoided as much as possible. . . which tends to not be an easy thing to do if you're doing shared-memory parallelism. Because if it were trivial, then you'd probably have been able to get away with shared-nothing.

Now the "lots of tiny cores" approach gets more interesting when you can get away with a more shared-nothing approach like what the article suggests. But it comes at a big cost, which is that you're going to take a massive hit on the kind of performance you can get on tasks for which parallelism is infeasible, or for which you don't have any programmers who are good enough at parallelization to do it (effectively the same thing). In those situations, you're going to be stuck watching one lone core play "Little Engine that Could" while all the other cores are dozing off like the lazy bums they are.

Meanwhile it solves a problem that I'm not convinced really exists. Time- multiplexing relatively beefy CPUs is pretty much a solved problem. Less so if you need real-time, but for everyday use there's really not much need to segregate processes to different cores when pre-emptive multitasking has been around on consumer systems for decades.

</comment></comment><comment> iso-8859-1 I see this as two separate prophesies:

* One is the Intel MIC, which is due to arrive THIS YEAR ([http://blogs.intel.com/technology/2012/06/intel-xeon-phi-cop...](http://blogs.intel.com/technology/2012/06/intel-xeon-phi-coprocessors-accelerate-discovery-and-innovation/))

* One is a total revamp of Operating Systems, so that everything is virtualized.

The first is a hardly a prophesy, because it's so near to being reality, and the article was written on the day of the Intel announcement.

The second is maybe, what, 20 years into the future? I'm not even sure there's a need. Security problems are not technical anymore. They are caused by a breach of trust. Integration between all those different VMs will still be needed. Badware will use this interface too. People like integration. Separating everything into its own VM will hinder that, and customers will not like it.

</comment><comment><USER4> _Except for games and some build cycles, I'm almost never waiting because the CPU has maxed out._

That's just ... Weird. What would "maxing out" even mean for a CPU? Going "fast enough", somehow? Maybe because build cycles is exactly what I do a lot of my time in front of a computer, I really don't think CPU:s are ever going to be "fast enough". Even if just doing "ordinary computing", I often think e.g. browsers and office applications are rather slow.

<comment><USER5> What I would like to be able to do, instead of -O1, -O2 -O3 flags to a compiler is for the "optimization level" to be measured in seconds. So -O1 would run the optimizer for 1 second and give me the best optimized code it could come up with in that time. -O3600 would let the machine think about it for an hour, using any and all heuristics and empirical tests and then giving me what it had at the end. Pre-release, I might want to run the optimizer for a week.

<comment><USER6> > Pre-release, I might want to run the optimizer for a week.

That's a dangerous model, as certain classes of bugs would only come out in the super-optimized version, but that version would presumably not get the same amount of testing as the regular builds.

</comment></comment></comment><comment><USER7> Well put.

There will always be some applications (games, compilers, Photoshop, 3D rendering) that will benefit from fine-grained parallelism. For the rest, being able to run your web browser, DVD ripper, music streamer and IDE on four separate cores is good enough.</comment>


The Thirty Million Line Problem - <AUTHOR> https://www.youtube.com/watch?v=kZRE7HIO3vk <comment><USER2> A video, apparently with no transcript. More specifically, a video lasting over an hour and three-quarters. Even at double speed I'm not going to watch that, and I'm not sure who would.

Anyone care to watch the whole thing and provide some bullet points? I relax into long-form texts, but long-form video is something I just can't bring myself to watch.</comment>


A Paywall That Pays Off: Lynda.com's Quality Content Farm is Educational  - <AUTHOR> http://m.wired.com/epicenter/2011/06/lynda/

<comment><USER2> _1 million people have been willing to pay a $25 monthly access fee._

I'm guessing this doesn't mean there are _presently_ 1,000,000 people paying $25/mo a month unless they've had explosive growth in the last year. That'd be $300m revenue and their revenue was reported as $37m for 2009 in Inc: <http://www.inc.com/inc5000/profile/lyndacom></comment>


C+=: The World's First Feminist Programming language - <AUTHOR> https://gitorious.org/c-plus-equality/c-plus-equality/source/cefcfb4276889bd3833c539225a9cdfd3eb16d33: <comment><USER2> [http://imgur.com/r/POLITIC/eB9I7yD](http://imgur.com/r/POLITIC/eB9I7yD)

</comment><comment> jack-r-abbit This is a joke, right? I can't tell because it is not very funny. But the idea is so absurd that it has to be a joke. Right?

<comment><USER3> It is definitely a joke, just in poor taste.

</comment></comment><comment><USER3> Someone is really mad at women.</comment>


How to know you're in a mass hysteria bubble - <AUTHOR> http://blog.dilbert.com/post/164297628606/how-to-know-youre-in-a-mass-hysteria-bubble <comment><USER2> These signs are curiously applicable to fans of Agile, particularly Scrum.</comment>


Starting your first company - <AUTHOR> http://cdixon.posterous.com/starting-your-first-company <comment><USER2> _if you don't code, don't try to teach yourself and code for your startup. partner with someone who is great at it. programming is an art & science and takes years to get good at._

Completely agree. I dislike reading articles that insist if you have an idea you can just pick up programming, design or development and build it yourself. That may be true in the strict sense of having something simple to explain your idea, but it pales in comparison to the work that can be created by someone who has talent and years of experience. Also, its going to be throw away work. If your idea has is worthwhile and gains traction then you're going to need to have someone rebuild everything you've done anyway. Why waste that time? Partner with someone who can execute the product from day one.

<comment><USER3> I think it is worth coding the working mvp , even though you know that it is going to be re-done if you take off. This will help one to demonstrate his seriousness and something visual to show when he/she pitches to developer/co- founder instead of pitching a random idea.

<comment><USER4> Exactly.

Developers have their pick of non-technical co-founders. It's a lot harder to approach someone with just "an idea." What are you offering in return? How do you contribute to a startup in those initial months? Sure, I've read plenty of posts on what non-technical co-founders can do in a startup - lots! But, it pales in comparison to the bread and butter of a startup: building a product.

If you're looking to build the next Google or Wolfram Mathematica, find an expert or 2.

The guys at SeatGeek built their initial product - a crude prototype but decent enough to promote at TechCrunch. Now, they're funded and growing. They were not programmers, but they needed something and they didn't have the resources to find someone to build it. Coding is a bottleneck for a lot of non-technical folks. Do what you got to do to get through it, scotch tape and all.

</comment></comment></comment><comment><USER5> _hire a good startup law firm (i like gunderson) and get standardized incorporation, vesting etc docs. it's worth it. (but try to only pay $5K or so with promise to pay more later when you get funding etc)._

Should this really cost $5K+ or more to get _standardized_ docs? It should be possible to get high quality legal documentation necessary for starting your company for a fair amount less, but maybe I'm wrong. Do others here have experience on this?

<comment><USER6> Great question. That 5K will seem cheap when the lawyer you work with starts introducing you to angel investors. The valley is ALL about connections. Everybody here is a full time network-er. The job title, such as 'Lawyer', is just something that goes on a business card ;)

<comment><USER7> That is a very, very sad thing to say. I live in the valley as well, and I am not a full-time schmoozer. I suppose that makes me a chump in your book. Once a person's (or systems's) focus shifts to schmoozing instead of the original reason you became a lawyer, programmer, etc, it's probably too late to stop the decline.

Some things can only be done with many people. Connections help. But that's quite a different thing from "I am ALL about connections". Wouldn't it be better to be ALL about your customers, or your real passion?

<comment><USER6> Actually, it's a great thing! Since you hate schmoozing (I do too), this is good news - there are other people out there that will do some of it for you (or, more accurately, give you access to the fruits of years of schmoozing). Every investor/mentor/lawyer you add to your team means more network that you didn't have to schmooze to earn.

</comment></comment></comment></comment><comment><USER8> When did "startup" become synonymous with social internet site that will take years to make any money? I know I'm on HN; my point is that there are startups in all kinds of fucking fields for which this advice is absolutely useless.

That said, not enough CEOs/product people have an understanding of programming and what it means for business.

<comment><USER9> I totally agree. These suggestions seemed to work for this guy in his scenario. This maybe will apply to someone else, but these shouldn't be steps for you to start your own business. I'm part owner of a landscaping company and hardly any of these apply.

</comment></comment><comment><USER10> These are all good suggestions, but they are all _in addition to_ , not _at the expense of_ building a great product, which is a necessary, but not sufficient condition.

For example, last night I had a choice between a networking event and some critical work on my software. The work won, as it should.

I look forward to the time when I won't have to make so many tough decisions about how to spend my time. Until that time comes, work on the product comes first.

<comment><USER11> You had a choice and you picked coding rather than go out. Once, it's fine. The problem, with the many developer friends I have, is that very quickly they settle in a routine of _never_ going to events, because there is always one more line of code to write.

That's where you need discipline. As I wrote a year ago, if you never go to events, set your goal to two events a month. If you go to two per month, set your goal to once a week. That should be enough. You can read the long version at [http://blog.fairsoftware.net/2009/07/09/good-programmers- don...](http://blog.fairsoftware.net/2009/07/09/good-programmers-dont-need-no- marketing/), in the "Four Step Recovery Program" section.

</comment></comment><comment><USER12> He stress on Networking. I know networking is useful, but most of the time I find it a waste of time. You can simply find a problem, figure out a solution and build it with a partner. Then charge for it, either online (SaaS) or offline (uISV). Use Google Adwords to target your audience and keep at it if you are profitable.

No Blogging, Twittering, reading Tech Blogs or all that crap. Just focus on your product and give value to your customers.

<comment><USER13> There's some selection bias here: we're reading this guy's blog not because he's successful with startups, but because he's successful with startups _and_ concentrates on maintaining an online presence, networking, etc.

</comment></comment><comment><USER14> Any advice on health insurance / benefits when bootstrapping?

At what point should you start thinking about benefits plan for your team?

<comment><USER15> When you can afford it, or when you're having a hard time to hire people without it.

</comment></comment><comment><USER16> Whatever happened to offering a good or service that people are willing to pay for? Is this really what makes a good business? Absorbing information from "all tech blogs everyday" so that you can regurgitate it on your blog, on your twitter, and at networking meetings?

This blog post reads more like a list of instructions on how to be the prettiest girl at the startup scene dance. These ideas are fine if the people writing the blogs and mingling at networking meetings are your potential customers, but I think most of us would be better served by getting away from all of that to talk to the people outside of the echo chamber. You know, the ones with wallets that MBAs like this guy only come in contact with when they're poring over a spreadsheet.

</comment><comment><USER17> I agree that i takes awhile to become a good developer, but you need teach yourself front end stuff at least. That's unless you already have a bunch of developer friends willing/wanting to be apart & turn your idea in a reality.

There are so many posts here and experiences (my own) where someone is looking to create an idea but they do not have the friends or the ooomph to convince others to join him/her to build their idea or start-up. If you fall into such category go out and learn html, css & photoshop and hire a developer. It will take you longer but you'll gain a skill, have better control of your vision and most important your idea will become a reality.

</comment><comment><USER18> I question the the steady diet of TechCrunch, mashable, etc. Too some extent that is just startup masturbation. I wonder if better advice is to just not read those things for awhile and focus on your product and your potential customers.

</comment><comment><USER19> This might be a naive question, but is there any empirical evidence showing that blogging/tweeting actually helps your startup? Is this supposed to be for self-motivation or getting attention?

<comment><USER20> All my subscribers say that it 100% does, and also First, and Boobies.</comment></comment>


Ask HN: Critique my biz idea – local.menu the next Airbnb - <AUTHOR> Remember the days before Airbnb when their biz idea would have been laughed at? There are LAWS against renting out your apartment. In 2016 I think the world is ready for local.menu, the app that lets you rent out your kitchen to a restaurant for a night, your restaurant. i.e. you are allowed to cook for people in your neighborhood with no health permit / zoning laws issues.
It's very simple. A mom is cooking dinner for 4. She posts to local.menu what she is making and sets a 5 min time limit. She gets 3 hits in 5 mins of people close by that want an extra serving of what she is making. They come by her house/apt and get their food to go. The mom simply made 3 extra servings of what she was making for her family anyways. And the markup is crazy. She can sell her special curry for $30 a plate to hipsters that want good curry, local, and fast.
Go ahead. Tell me this will never work because it breaks some laws. <comment><USER2> Being a single person who does not cook often, this would be a fantastic idea to see come to fruition.

On the other hand, as a person who skews toward the overly-cautious, I would be concerned about the lack of sanitation inspections, servsafe certifications and other safeguards that commercial kitchens adhere to. Also, how could you be assured that Mom is not in a dire financial situation, re-heating her special curry to sell at a marked-up price - a special curry that went bad several days ago.

Law-, permit- and zoning-wise, I am not sure of what would need to be done. It is an interesting idea for sure, albeit one that would take some serious planning.

<comment><AUTHOR> i think giving out 5 star ratings just like uber would help u find the good places. People are people. We live in a big village. Let's all eat together :)

</comment></comment><comment><USER3> There are a bunch of these already, exactly as you described it.

<comment><AUTHOR> links please.

<comment><USER3> gobble.com, mytable.com, josephine.com...

gobble seems to have pivoted to delivering ingredients, which differs from their initial plan from 2011: [http://www.treehugger.com/green-food/gobble- helps-you-order-...](http://www.treehugger.com/green-food/gobble-helps-you- order-take-out-from-your-neighbors-kitchens.html)

<comment><AUTHOR> oh! you are totally right! haha, thanks. I'm gonna use one of these vs. build this :)

</comment></comment></comment></comment><comment><USER4> You seriously think health standards for restaurants is something that needs to be disrupted?

<comment><USER5> 1\. A lot of people make homemade food, so what's up with the health and hygiene standard there?

2\. If you think health and hygiene standard in restaurants are good, I don't know what else to say but many restaurants receive C or lower grade in NY. Some due to discrimination, some due to misjudgement, but many do reflect serious lack of proper maintenance and cleaning.

<comment><USER4> Home made food is explicitly that - for your own home. You are already responsible for the people you're feeding.

Once it becomes about making money without regulation, I guaran-fucking-tee you there will be people using it to run a "business" with zero fucks given about food safety.

Sure there are restaurants with a low rating. There are also the ones that have been shut down. That's the sort of place you need to be worried about

<comment><AUTHOR> but that's 0.001% of the people cooking. The rest are making nice food I wanna eat!

<comment><USER4> > but that's 0.001% of the people cooking

What are you basing that number on?

Once someone starts using the system to make money, a number of important dynamics change.

\- they need to start buying more products, with the intent of making a profit, so there is _even more_ incentive for them to buy "discount" items that are marked down due to being close to their use-by date. Risk goes up.

\- they need to store a lot more products. How many home kitchens do you know of that have different fridges to completely separate raw meat from cooked meat, dairy, etc?

\- they need to have a way to keep the prepared food ready to 'serve' once it's been prepared/cooked. How many home kitchens do you know that can keep prepared food easy/quick to serve and hygienic at the same time?

Your idea is no more about "sharing economy" than Uber is. They're both just saying "who needs accreditation, licences or insurance - any schmoe can do this".

</comment></comment></comment></comment></comment><comment><AUTHOR> also think about a big apartment building. What if 1 person was the "cook" for that village? Isn't that better, more social. human like, than each human alone in their own apt eating a tv dinner?

<comment><USER4> Why is the choice between everyone eating from a sole cook or everyone eating TV dinners?

I don't think I'll ever understand American culture.

<comment><AUTHOR> big american apartment building can be very lonely and isolating. No one talks to anyone. You goto work, u go home, u interact only with your tv. Bringing back the concept of a village where people gather around and eat together is a good thing.

<comment><USER4> > big american apartment building can be very lonely and isolating. No one > talks to anyone. You goto work, u go home, u interact only with your tv.

Do you see the irony of the situation - you're complaining about a lack of social interaction and community - and your solution is an app and the transfer of money.</comment></comment></comment></comment>


...bare right to sue cannot be the basis for standing under the Copyright Act - <AUTHOR> http://www.completemusicupdate.com/article/beastie-boys-gain-summary-judgement-on-tufamerica-case/

<comment><USER2> Title should be "Beastie Boys gain summary judgement on TufAmerica case".</comment>


Ask HN: How many RFSs have been released? - <AUTHOR>

I read the first two RFSs that pg released but haven't seen any more since then? Are there others? Is there a list somewhere? <comment><USER2> I find these lists of "RFSs" and the earlier list of ideas rather disappointing... I don't think that formulating a problem in such general terms is really useful and I don't think it works at all to create such a "framework" for an idea which someone just comes and fills in with the concrete details. It really reminds me of academic grant applications where there is some grand vision laid out for 5 years, in which only the details need to be worked out. However, the details are all that matter, without the "how to do it" I don't think such ideas add anything valuable.

The line "Ex-Googlers would be particularly well suited to this project" is again the kind of credential-based test that large organizations and the government would like. This all starts to sound much less than the startup- culture that PG talks about in his essays. In this context, using a bit more informal language than in grant proposals and job adverts is slowly becoming a bit gimmicky.

<comment><USER3> I agree with your point that credentialism is counter to the notion of what we've been told YC is about. Yet, pg has always said that they want to see indicators of past performance and success, and working at Google is a pretty darn good one (usually).

Edit: I am curious about pg's thoughts on the balance between relying on strong signals from applicants (e.g. being a serial entrepreneur, working at Google, getting a PhD) to avoid false negatives, versus taking a risk and accepting teams that may be more likely to fail (false positives).

Regarding the efficacy of the RFSs: they've done the market research for you. If the proposal can eliminate a few free variables in your analysis, then you've only got to focus on the ones that remain undetermined. Furthermore, we've found that having someone pose a well-asked question can be enough to get us answering that question in a new way, and driven to build what we envision.

<comment><USER4> > pg has always said that they want to see indicators of past performance and > success,

If you've been successful in the past then that's great but then you are already part of a very select group of people. Reminds me of the ads for employees: has to be between 18 and 25, have a degree and at lesat 5 years of work experience relevant to the field.

YC attracts young folks, willing to move (that means no current large responsibilities) and willing to neglect their social life for a period in order to take this chance.

People with a success in their back pockets are not going to intersect in large numbers with people willing to meet those conditions.

> and working at Google is a pretty darn good one (usually).

Why ?

That only says that you were good enough to get hired by google but it does not mean at all that you are 'start-up founder material', rather the opposite, it says that you are the kind of person that seeks large brand name companies as employers.

That's where the failed 'starter-uppers' go when they've had their shot and need to recover for a bit, not where you go before you decide that you want to run your own company.

That's the sort of thing that drives your whole being, pretty hard to mix that attitude with having a day job, that must mean that you are not very comfortable in your day job.

The list is a good one though, (I assume we're talking about this one: <http://ycombinator.com/ideas.html> ), even if some of them are quite ambitious for a YC funded startup, after all, the (initial) funds are quite limited, and to get to a working prototype for some of those ideas in such a short period is stretching things quite far.

<comment><USER3> Would you honestly consider working at Google to be ceteris paribus equal to working at merely a "typical" software company? There _is_ information there. Refer to what I said about false negatives versus false positives.

<comment><USER4> To reverse that, everything else being equal do you really think it matters if somebody has worked at google on some project vs someone working at say Yahoo, Microsoft, NASA or any one of a hundred other large operations writing software ?

I don't buy that. There are plenty of places where you can get excellent experience relevant to solving some of those problems, not all of them are 'google'. And not all of them are big company efforts either. (though the samples listed here are).

Google is a 'great' company, but they're definitely not the only game in town and I find it strange that having worked at google would be a 'pre' compared to having worked at other places.

It's not like every coder/analyst at google has personal access to the whole GFS system and can work with it to their hearts content. I figure plenty of the jobs there are like every other job in industry.

If you're part of the core search team that changes things, but having 'worked at google' is way too arbitrary a selection criterion.

<comment><USER3> So, you're saying that Google, as an employer, is a member of an equivalence class of other worthwhile employers. And, knowing the name and reputation of an employer is not enough, we also need to know what the person worked on while there. I think everyone agrees with that :)

</comment></comment></comment></comment></comment></comment><comment><USER5> The list is located here: <http://ycombinator.com/rfs.html>

There was also a list of startup ideas that YC likes posted earlier which comes with less description of the final product: <http://ycombinator.com/ideas.html>

<comment><USER6> I just checked the site. Doesn't Amazon already do what RFS 2 is suggesting?

<comment><USER7> They are, though in a pretty limited fashion, and chang eis at giant company speed.

It's also not their core competency, which has always been fulfillment, despite what they may wish.</comment></comment></comment>


IQ and death: why smarter people live longer - <AUTHOR> https://nesslabs.com/iq-death-smarter-people-live-longer <comment><USER2> I've heard it's impossible to get smarter. The key is to stay smart and not get stupider, which I've heard is profundly easy.</comment>


Show HN: Convert face photos into a morphing film with FaceFilm app - <AUTHOR> http://www.youtube.com/watch?v=Ghewtq_5Lig

<comment><AUTHOR> <https://itunes.apple.com/us/app/facefilm/id600610075?mt=8>

Self-made libait was used in this project for computer vision algorithms : a face detector and a facial feature locator

p.s. as far as I know, this is the first app to generate and playback face morphing video in real-time!

check my twitter <http://twitter.com/tabamilk> for more results.</comment>


WTFJS? - <AUTHOR> http://wtfjs.com/ <comment><USER2> NaN === NaN being false is extremely handy. If you are trying to track down a rogue NaN in some code, equating a variable against itself finds it immediately. This is also the same in most other languages (I use it all the time in C++).

<comment><USER3> Is there an advantage to doing that as opposed to using isNaN()?

<comment><USER4> IIRC, it's a speed hack in the IEEE floating point standard.

NaN can happen for a lot of different reasons. You might have divided by zero because your code is broken, or you might have divided by epsilon because your algorithm isn't stable on this problem. [1]

This test checks to make sure none of {f, g, x, y, intermediate_values} were ever NaN, wihtout having to test each one every step of the way.

        if (  f(x) == g(y)  )

Which is a big deal if it's the guard on an inner loop in some numerical code.

[1] I'm fuzzy on the details. Corrections solicited.

<comment><USER5> If it's just a debugging trick, though, then speed hacks seem less useful.

</comment></comment></comment></comment><comment><USER6> NaN === NaN is guaranteed to be false by IEEE 754. Hardly a wtf.

Actually most of these posts seem to be the author misunderstanding floating point numbers. Perhaps he should learn what he's doing before he blames the language.

<comment><USER7> This suggests that you don't actually know what the === operator is. To summarize:

== - 'values are equal' - in this case, are these two numbers equal? The IEEE spec would say no. I agree!

=== - 'both sides are exactly the same' - or, in more technical terms, are both the values and types of each argument exactly identical. In this case, the answer is yes, absolutely. === is not a numerical comparison and should not be.

<comment><USER6> === means value and type are equal. In this case, the types are equal, but the values are not. I'd argue that NaN === NaN being true would imply a broken implementation of IEEE 754, and the designers of JS seem to agree with me.

<comment><USER7> What benefit is created by having a hierarchy of comparison operators in which there is no actual way to compare two numbers for semantic (not numeric) equivalence?

If (NaN == NaN) == false, and (NaN === NaN) == false, how would you implement an isNaN() function? If your answer is 'depend on the VM', I find that a bit strange.

<comment><USER8> typeof(NaN) should still be 'number', which would identify it uniquely. The irony of the value "Not a Number" having type "Number" is not lost on me, however.

</comment></comment></comment></comment></comment><comment><USER9> A reasonable number of these "wtf"s are just more examples of people failing to understand floating point. _sigh_

<comment><USER7> The question is who failed to understand floating point: The authors of the JS specification, the authors of the JS runtime, or the people writing the javascript that demonstrates the 'wtf'? Is the answer "all three"?

<comment><USER10> The real WTF is, why does a person writing some Javascript code need to understand floating point? What high-performance calculations are you doing in you Javascript wouldn't be easier, more accurate, and not that much slower using fixed point math?

<comment><USER11> With fixed point or arbitrary-precision math, you either need to (a) set the level of precision explicitly, which is just as bad about forcing the user to understand the underlying model, or (b) have the language choose the level of precision heuristically, and have even more unpredictable performance and rounding characteristics.

There's no language that lets you do real-world work with numbers like sqrt(2) or PI without understanding precision and representation to some degree.

<comment><USER12> JavaScript's brilliant solution is to just not have integers. At all. That's better, somehow?

<comment><USER11> No, I think JavaScript's "floats everywhere" is worse than most languages. I prefer languages like Python/Ruby that have one arbitrary-precision integer type and one floating point type, or languages like Haskell or Lisp that have a rich selection of floating/fixed/abitrary/rational types with well-defined performance. But some (not all) of the WTFs here exist in all of those languages too. Eventually, programmers working with numbers really do need to learn how to use different numerical representations.

<comment><USER13> Could you please grace us with a code sample for all of these? I'm not intimately familiar with Haskell, Lisp or Ruby.

      >>> from decimal import *
      >>> Decimal('0.3') == Decimal('0.1') + Decimal('0.2')
      True
      >>> Decimal('NaN') == Decimal('NaN')
      False
      >>>

<comment><USER14> You only get that result in python by importing the decimal library. The standard behavior in python is (.1 + .2 == .3) == False

However, your code example makes the excellent point that python has such a library available, whereas Javascript does not. At least, not as easily as an import.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> Psht, floating point WTF's are for noobs. == is where the money is at. Straight from my V8 console:

        >>> x = new Boolean;
        false
        >>> b = (x || !x);
        false
        >>> Boolean(b == false) && Boolean(x == false) && Boolean(b) && Boolean(x)
        true

</comment><comment><USER16> Eh, msg me on twitter (same username) if you have better wtfs or want to contribute. The idea isn't to prove how awesome knowledgeable you are but rather to have a good laugh and MAYBE point out some of the less intuitive aspects of the language we all love to hate on.

<comment><USER17> Just pick up JavsaScript: The Good Parts by Douglas Crockford. He has a chapter called "The bad parts".

</comment></comment><comment><USER18> "(x=[].reverse)() === window // true"

Didn't understand this one at first, but I guess it is easy: first x becomes the reverse function of arrays, then it is called with this === window. So it amounts to window.reverse(). Just looked it up, and reverse() works in place, so window.reverse() === window - although it is potentially different from before.

<comment><USER15> No, it amonts to Array.prototype.reverse.call(window) - window doesn't have a reverse method AFAIK, so window.reverse() will raise a TypeError (since you can't call something "undefined").

<comment><USER18> are you sure? i thought in js functions are not really tied to "their" object, instead they receive an implicit this argument. wouldn't x belong to window here? that is, window doesn't have reverse, but now it has x

</comment></comment></comment><comment><USER19> In what language is 0.1 + 0.2 == 0.3? (I guess C# with decimal literals, but you'd have to specify that with a suffix)

<comment><USER20>
      Prelude> (0.1 + 0.2) == 0.3
      False
      Prelude Ratio> 1 % 10 + 2 % 10 == 3 % 10
      True

<comment><USER21> Or:

        ghci> 0.1 + 0.2 == (0.3 :: Ratio Int)
        True

Same type, less syntax.

</comment></comment></comment><comment><USER22> `typeof null` is 'object', not Object. (It's a string that contains the word object.)

<comment><USER23> If the programming can't handle a null object, check that the object is of the required type (by setting a key) or check that the object is not null. It's dumb to expect null to not be an object when EVERYTHING is an object in JS (except undefined, which is special). Furthermore, the programmer would be setting a value to null if they are checking for null (are there any other instances where null occurs without explicitly setting?).

</comment></comment><comment><USER24> >(function(){ if(false) var window; return window }()) === window

>JavaScript interpreter checks all variable declarations in scope before execution.

This is another way of saying that all variable declarations are scoped at the function level, not the individual block level. This is why generating closures in a loop is broken in javascript (Although in just about every other language as well, closures in a loop give surprising results at first - including, I think, arc?)

To get a new scope, you have to use the anonymous function trick:

        (function(){
           var x;//new scope
           ...
          })()

<comment><USER15> This is not a WTF if you just know where a language draws scope boundaries - for most languages, it isn't just along the {}'s.

<comment><USER24> It's a WTF in the sense that every other language with curly braces scope at the block level.

</comment></comment></comment><comment><USER25> This is awesome.

<shameless plug>

I feel compelled to mention my WTF JavaScript library, even though it is something completely different: [http://github.com/techiferous/wtf- js/blob/master/javascripts...](http://github.com/techiferous/wtf- js/blob/master/javascripts/wtf.js)

It's a library for dealing with World Time Format conversions: <http://worldtimeformat.com/>

</shameless plug>

</comment><comment><USER26> When you run reverse with a context of anything besides an array you end up getting back that context. This is why assigning [].reverse to x, then running x() returns window. It is an interesting quirk. Not sure if this is the js specified behavior though.

<comment><USER15> Yes, this is JS specified behavior. If there is no activation object (one referenced by an identifier before the `.'), the value of `this' is set to the global object.

</comment></comment><comment><USER27> Floating point is hard, let's go shopping.

</comment><comment><USER28> FYI,

Some guy registered WTFPHP.com on 2010/02/12

</comment><comment><USER23> A bit of Computer Science knowledge would go a long way in explaining these: e.g. "Foo" + + "Bar" === "FooNaN" (attempting to do unary + on "Bar"). Tons of other examples as documented here, but some of these are a "bit" strange yes ;).

</comment><comment><USER21> I am no fan of Javascript, but most of these WTFs make sense to me. The 111111111100 one is unexpected, although there is probably a good explanation. (Like "alert takes a string, you passed a number. nasal demons.")

<comment><USER2> Wouldn't that have more to do with the fact that javascript uses floats for everything? It's probably exceeding precision at a guess.

<comment><USER29> Is it? I thought Javascript has integer type.

Say for example Lua (by default) is configured to use only double. It can be configured to use single-float, or even integer - but only one numeric type.

<comment><USER8> Standard JavaScript uses doubles everywhere. They get casted to 32-bit signed integers for bitwise operations, the results are casted back. It's a little odd, but consistent at least.

<comment><USER15> A little odd and a lot slow, if you do them a lot (js-protobuf, I'm looking at you).

<comment><USER21> Execution tracing should eliminate the cast if it is not necessary.

</comment></comment></comment></comment></comment></comment><comment><USER30> WTFHN? Why is this voted up? Just because you don't immediately understand something doesn't make it a WTF.

</comment><comment><USER31> isNaN(null) == false; is the only wtf I can never remember to avoid, because I can't rationalize it no matter how hard I try.

Edit: I get it now. null coverts to 0

<comment><USER32> it's because of type conversion - null has the same value as 0 (as in `(+ null)`), so it is a number

<comment><USER31> Yea, what a weird mental block, not realizing null is equivalent to 0, even in math statements. I guess it's because null is not the same as 0 when converted to a String.

</comment></comment></comment><comment><USER33> Eh, no biggie, a few pages of gotchas. If we were talking about PHP, I could write a few volumes.</comment>


JavaScript has a Unicode problem (2013) - <AUTHOR> http://mathiasbynens.be/notes/javascript-unicode

<comment><USER2> One of the major difficulties with Unicode handling is not just that there are poor implementations out there with legacy baggage, but a lot of poor advice as well (or well-meaning advice that _seems_ correct, but misses some corner case or some language). For example, this article wants to count "graphemes", and the author goes through three versions of an algorithm to account for surrogate pairs and various combining marks. All seems well in the test cases the author shows, but combining marks are only one class of codepoints that can join to form a grapheme, and the algorithm will fail for other grapheme clusters such as 'நி' (Tamil letter NA + Tamil Vowel Sign I), or Hangul made of conjoining Jamo (such as '깍': 'ᄁ' \+ 'ᅡ' \+ 'ᆨ'), or other control characters.

Luckily, the Unicode Technical Committee has figured this out for you, and UAX#29 provides an algorithm for determining grapheme cluster boundaries [1]. Yes, it's long and technical, it has many cases (and exceptions) to handle, and it can't be expressed compactly in two lines of JavaScript; but it will give you a well-defined and understood answer for all scripts in Unicode.

[1] [http://www.unicode.org/reports/tr29/#Grapheme_Cluster_Bounda...](http://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries)

<comment><USER3> One thing I never understand is why it is so important to count graphemes.

I read dozens (hundreds?) of Unicode-related blogpost for many different languages, with long debates and discussions about the hurdles of counting graphemes, but they always forget to explain why one should need it; it's just assumed that it's important or interesting. This specific post just says: "Let's say you want to count the number of symbols in a given string, for example. How would you go about it?" and then go into a multi-page explanation, which is even incomplete (as you correctly noticed).

I can't remember many cases in which it's been useful to count graphemes, in my programming activity. I usually need to either:

1) count the number of bytes of the Unicode encoding I'm using / going to use, for the purpose of low-level stuff like buffers/sockets/memory/etc. 2) ask a graphic library to tell me how big the string will be on the screen, in pixels (with the given fonts, layout, hints, and whatnot).

Counting graphemes only sounds useful for things like command-line terminal; e.g.: if I were to make a command-line user interface (ala getopt()) which automatically wordwraps text in the usage screen at the 80-th column, I would need to count graphemes, in the unlikely case I had to support Tamil or Korean for such a specialistic case.

tl;dr: counting grapheme is a very complicated problem you probably don't need to ever solve.

<comment><USER2> Counting graphemes may be over-used, but needing to know their boundaries is important (and leads naturally to counting). For example, when you hit "delete" in a text editor, you'll probably want it to delete whole graphemes (and similarly for text selection); if you're doing text truncation, you may measure it by pixels, but you'll want to chop off the excess bytes at a grapheme boundary.

 _in the unlikely case I had to support Tamil or Korean for such a specialistic case._

Why is it "unlikely" that you would want your software to support users of other languages?

<comment><USER4> In the case of a delete action in a text editor, are you sure that deleting the whole grapheme is actually what the Tamil or Korean user wants?

You mentioned the following examples in your grandparent post:

\- 'நி' (Tamil letter NA + Tamil Vowel Sign I)

\- Hangul made of conjoining Jamo (such as '깍': 'ᄁ' \+ 'ᅡ' \+ 'ᆨ')

I don't speak either language, but it doesn't seem unreasonable to me that pressing Delete would delete just the vowel sign in Tamil, or just the last component within the Hangul character. In fact, that might be just what the user wants?

<comment><USER5> > I don't speak either language, but it doesn't seem unreasonable to me that > pressing Delete would delete just the vowel sign in Tamil, or just the last > component within the Hangul character. In fact, that might be just what the > user wants?

My Korean is pretty poor, but I think that's exactly what one wants. If you mistype a letter, you want to retype that letter, not the whole syllable. However, this should work uniformly: it shouldn't matter if the syllable is represented as a single codepoint or made up of comjoining jamo.

<comment><USER6> If the Hangul and Tamil constructs are anything like ligatures (e.g. _fi_ in the Latin alphabet), I would imagine that's the case most of the time. Plus lots of special rules for which glyphs to treat as single symbols and which to decompose (e.g. _&_ is technically a ligature but almost never decomposed).

</comment></comment></comment></comment></comment></comment><comment><USER7> Discussions of unicode often centre around the issue of counting symbols/graphemes/bytes/etc. and I often wonder what the use case is for counting anything other than either the number of bytes (for storage) or the size in device units of the output text from a rendering engine (for display) is. All the options between seem like pure exercise.

The reality seems to be that the 'size' of text is entirely dependent on context and even forward thinking articles on the subject seem to get hung up on counting things that don't matter.

<comment><USER8> Well, that depends. If you want to implement a simple `truncate`[0][1] function, then you need to count graphemes

[0] [http://api.rubyonrails.org/classes/ActionView/Helpers/TextHe...](http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method- i-truncate) [1] [https://github.com/epeli/underscore.string](https://github.com/epeli/underscore.string)

<comment><USER9> If you're truncating by character (or WHATEVER) counts, you are guaranteed to be doing it wrong - maybe not in your native language, but in somebody's.

Heck, even in one graphemically-straightforward language you can get silliness: [http://www.images.generallyawesome2.com/photos/funny/photos/...](http://www.images.generallyawesome2.com/photos/funny/photos/testimonial- fail.png)

<comment><USER10> But truncation is very often needed when you have more text than space. What's the alternative?

<comment><USER11> If it's storage space, you truncate by bytes, rounding down to the nearest complete grapheme- no need to count graphemes. If it's display space, truncate by pixels, in which case you need "size in device units of the output text from a rendering engine". Again, no need to count graphemes.

<comment><USER12> Counting graphemes and detecting "the nearest complete grapheme" are basically the same problem.

The only reason counting graphemes is hard is because detecting grapheme boundaries is hard.

</comment></comment></comment></comment></comment></comment><comment><USER13> These are less JavaScript problems than utf-16 problems. The whole one character is not a code point problem. It's common to Java, .net, basically all of windows, and anything else that uses utf-16 strings. The solution is easy. If you need a one to one mapping of code points to characters convert to utf32 first. Utf8 has the same problems, the only difference is people know characters and code points don't match up. Whereas with utf16 there's a bunch of people who are either new or should never have been programmers to begin with that are clueless about it. Sadly this number is so large that just about any program that uses utf-16 strings is broken for inputs where code points != characters. This is partly the fault of the languages and libraries which give you functions like substring, reverse, etc on utf-16 strings, where they basically have no consistent meaning. It should have been a storage format not a manipulation format.

<comment><USER14> _" >These are less JavaScript problems than utf-16 problems"_

The issues related to combining marks are not UTF-16 problems and are not solved by converting to codepoints.

Also, Java as well as many other UTF-16 based languages have much better unicode support than JavaScript (like access to codepoints and unicode character classes in regular expressions).

As always, if something can be done in a sloppy broken way JavaScript will take advantage of it to the fullest.

<comment><USER13> They're typically solved by normalization, something JavaScript currently does not do well.

</comment></comment></comment><comment><USER15> There's a fantastic, in-depth article on Unicode and NSString (the default string class in Objective-C) that was published a couple days ago, which covered a lot of the same material but from an Objective-C standpoint instead.

[http://www.objc.io/issue-9/unicode.html](http://www.objc.io/issue-9/unicode.html)

</comment><comment><USER16> About Unicode in JS and other languages it is still worth to read "Unicode Support Shootout: The Good, the Bad, the Mostly Ugly" by Tom Christiansen [1].

[1] e. g. [http://dheeb.files.wordpress.com/2011/07/gbu.pdf](http://dheeb.files.wordpress.com/2011/07/gbu.pdf)

</comment><comment><USER17> I was alternating between 4 browsers while reading this. There was zero consistency.

Fun times ahead...

</comment><comment><USER9> One other thing to watch out for - if you're using the sort of regexes the author suggests, be VERY careful about any minificiation / uglification steps. I recently had to chase down an issue where uglify was replacing Unicode escapes with literal characters, causing strange "Invalid regular expression: Range out of order in character class" errors on load.

</comment><comment><USER18> Hmm, Lucida Console on Windows does not seem to work well with combining glyphs.

</comment><comment><USER19> Really precise and in-depth article, props.</comment>


In the Shopping Cart of a Food Stamp Household: Lots of Soda - <AUTHOR> https://www.nytimes.com/2017/01/13/well/eat/food-stamp-snap-soda.html <comment><USER2> [https://news.ycombinator.com/item?id=13397372](https://news.ycombinator.com/item?id=13397372)

25+ comments</comment>


Has Anyone Been Contacted to Outfit Their Tesla Model 3 Yet? - <AUTHOR> Anxiously awaiting along with several hundred thousand others, please post to HN if you have been or are contacted to select your options. <comment><USER2> That's the quintessential first world problem

</comment><comment><USER3> Last I heard, first config opportunity goes to SpaceX and Tesla employees, by end of 2nd quarter. Expect config to be open to public 3rd quarter

</comment><comment><USER4> No, that's not started yet.</comment>


Hardware Hacking: Tim O'Reily on Hardware Innovation - <AUTHOR> http://www.slideshare.net/timoreilly/hardware-innovation-pdf-with-notes

<comment><AUTHOR> I like the "create more value than you capture" - I wonder how many companies genuinely think like that though. Wonder if Apple genuinely thinks about it like that.</comment>


Court: Photographer has no recourse against university copyright infringement - <AUTHOR> https://www.houstonchronicle.com/business/article/Texas-court-says-photographer-has-no-recourse-13973674.php <comment><USER2> So does this mean that Texas schools, prisons, universities, hospitals etc can freely copy and use commercial software, films, books and other similar works?

It seems like under this precedent the University of Houston could just create their own copies of whatever textbooks they want for their students, potentially even selling those copies.

<comment><USER3> I guess that any out of state company would be able to sue Texas in federal court, where Texas' weird laws do not apply, and they cannot invoke sovereign immunity. But if the company is incorporated in Texas and only does business in the state, I guess the answer is yes?

Not a lawyer or anything, but this is my reading. Since no interstate commerce is happening here, the photographer cannot sue in federal court.

Edit: I think what I wrote above is wrong, having read a link in one of the other comments. All the same, my guess is that states are not going to be skipping payment on Windows licenses and taking on Microsoft in the courts. But they may be able to continue picking on little guys who have no power, as it has ever been.

<comment><USER4> > I guess that any out of state company would be able to sue Texas in federal > court, where Texas' weird laws do not apply, and they cannot invoke > sovereign immunity.

"The Judicial power of the United States shall not be construed to extend to any suit in law or equity, commenced or prosecuted against one of the United States by Citizens of another State, or by Citizens or Subjects of any Foreign State." —US Constitution, Amendment XI

<comment><USER5> The supreme court has, however, held that federal courts can enjoin states from violating federal law, and copyright infringement is a federal offense under Title 17 of the US Legal Code.

<comment><USER6> It's all much more mundane and technical than this.

The reason that this suit originated in Texas state court is because their legal argument was based on Takings jurisprudence. It's complicated, but IIRC SCOTUS has effectively required that Takings claims against states originate in state court. They do this by way of the so-called ripeness doctrine. A federal court will invariably reject a Takings claim unless you can show that you pursued and failed to achieve a remedy through state administrative and legal processes, and as a practical matter this means pursuing a claim up to the state's supreme court.

Ripeness is not directly based on statute or the constitution. If we're being cynical, it's based on SCOTUS disliking Takings cases, particularly so-called regulatory takings (which arguably describes this case), because they involve difficult, highly contextual line drawing that don't lend themselves to clear- cut legal doctrines. So they basically punt. If we're being kind, they do this because forcing claimants to exhaust all state-based remedies provides a ton of factual evidence and legal arguments that benefits adjudicating such cases at the federal level.

If the claimant here made a simple copyright infringement claim they would have been able to go directly to federal court, and in fact it's rare not to do this. Actually, I think federal courts have exclusive jurisdiction over copyright infringement claims; the scope of 1976 Copyright Act leaves very little room, if any, for copyrights under state law. Except for pre-1976 productions anything copyright-related is basically controlled by federal copyright and therefore you're _required_ to go to federal court.

Again, they had a novel legal argument, perhaps in an attempt to subvert federal jurisdiction, and more specifically to get around whatever Fair Use defenses the university could have made. That's just conjecture, though. I haven't read the case.

EDIT: You're not required to go to federal court for copyright claims simply because the claim is a federal issue. It's because federal statute explicitly gives federal courts exclusive jurisdiction over federal copyright claims.

<comment><USER6> After reading more recent caselaw I think, in practical terms, the reason they attempted a Takings claim is because they wanted monetary damages, whereas because of the peculiar contours of sovereign immunity jurisprudence the remedy for an infringement claim would have at best been an injunction. And apparently more recent sovereign immunity caselaw has cast doubt in some circles on the ability to even get an injunction. I'd personally be surprised it that notion was ratified by SCOTUS, but clearly I haven't been keeping up so my opinion isn't worth much.

EDIT: Just this month SCOTUS agreed to take up the specific issue of sovereign immunity vs copyright: [https://www.scotusblog.com/case-files/cases/allen-v- cooper/](https://www.scotusblog.com/case-files/cases/allen-v-cooper/)

</comment></comment></comment></comment></comment></comment><comment><USER7> > Olive tried the approach after the University of Houston rejected his claim > that the public university should pay for a photo it used without permission > in web and print publications, contending the university has sovereign > immunity, a well-established legal principle that protects a state from > getting sued.

Terrifying. So the University of Houston claims they can just steal whatever they want?

<comment><USER8> It's sovereign immunity. Any state agency can do whatever it wants and claim immunity unless the Feds get involved. The Feds can do whatever they want full stop.

The only constraint is that the state can allow itself to be sued, and therefore you have some recourse that way.

<comment><USER9> And whatever constraints the courts interpret the constitutions as imposing on the state.

<comment><USER8> Kinda of.

The courts are generated, and therefore subject to, the executive. It's easy to see how an executive could stack a court (a la Roosevelt). Or simply denying the courts the ability to enforce their rulings and doing whatever (Jackson).

</comment></comment></comment></comment><comment><USER10> A similar case is pending in the Supreme Court: [https://blog.ericgoldman.org/archives/2019/06/statute-of- que...](https://blog.ericgoldman.org/archives/2019/06/statute-of-queen-annes- revenge-supreme-court-grants-certiorari-in-allen-v-cooper.htm)

They directly sued for copyright infringement rather than trying to use eminent domain.

</comment><comment><USER11> It's very bizarre to see this seemingly very pro-public-domain/anti- copyright/anti-IP decision given the reputation that Texas has for patent trolls.

<comment><USER12> It's not pro public domain though, it's basically just saying that copyright doesn't apply to the government.

<comment><USER13> Not really, because thedefendent didn't claim copyright infringement (which the Texas courts couldn't rule on anyway, they would have had to go to federal court).

</comment></comment></comment><comment><USER14> _> Olive tried the [unlawful "taking"] approach after the University of Houston rejected his claim that the public university should pay for a photo it used without permission in web and print publications, contending the university has sovereign immunity, a well-established legal principle that protects a state from getting sued._

</comment><comment><USER15> ...does this mean the US government doesn't have to respect copyright? Seems unusual...

<comment><USER16> This was in state court. Federal laws may be different.

<comment><USER8> Constitutionally, they aren't. But congress passed laws waiving S.I. in some cases.

Of course, laws can be repealed.

</comment></comment></comment><comment><USER17> I was under the impression that sovereign immunity only applied to suing of state actors (ie employees / officials, etc) but I guess it can be applied writ-large to entire institutions as well based on the copyright infringement ruling?

Sounds like a job for the state legislature to handle - writing out an exception to immunity for infringement. Otherwise why would anyone bother attempting to do licensed work in Texas at all?

<comment><USER18> The immunity from copyright and patent claims is critical to universty researches. Without it basic research would get mired in patent and copyright claims.

Many would be eventually ruled as fair use but that requires a judge to make a judgement as to the fair use factors. SI just requires the judge to see that it is the uni of Texas.

The uni doesnt care about the photographers licence fee. It cares about not getting by a phama company because a researcher happened to use a chemical that was under patent.

<comment><USER19> Plenty of research gets done by corporations, private universities, and research institutes with needing immunity from copyright and patent claims. If public universities want immunity from copyright and patent claims then the resulting research should not be able to be copyrighted or patented.

</comment></comment></comment><comment><USER20> I'm kind of curious about whether he'd have options to pursue this under the DMCA. Are there legal grounds for the University to ignore takedown notices? I'm seeing things that say the university has immunity against being sued for infringement (not sure quite why, state vs federal jurisdiction), but that's a different thing.

</comment><comment><USER21> So could universities embed an entire textbook in their course descriptions?

Could they post full feature films on their websites?

</comment><comment><USER22> Another clever move by Texas secessionists in their strategy to make the state too unpalatable to deal with or in.

<comment><USER23> Please don't use HN for regional battle.

<comment><USER22> You've assumed malice where none was intended. Downvotes before self- redacting, nevertheless.

<comment><USER23> No malice assumed! just reacting to how the comment appears on the surface, because that's how most readers are going to perceive it. If your intent was otherwise, you need to make that explicit. Intent doesn't translate by default on the internet, unfortunately.

</comment></comment></comment></comment><comment><USER24> This makes no sense. Imagine that SpaceX took a photograph on the moon, and then a university freely used the image in its marketing materials. Would that make sense? Would it make any more sense if the university had a space program? No.

<comment><USER25> SpaceX isn't the greatest example here. They commonly release their photos into the public domain with a Creative Commons waiving all copyright and related or neighboring rights to their work. Though the point still stands with photographers and photo releases in general.

<comment><USER24> Agreed. As you realized, though, the point is that copyrighted work should not be used without compensating the creator.

<comment><USER26> A lot of problems around copyright is a self-inflicted mess caused by (IMO) wrong abstractions, not reflecting the nature of the works and the media. For instance, photography has an issue of _copyrights on buildings_ , which is prima facie a ridiculous concept, but it is recognized to some extent around the world, including in the US.

</comment></comment></comment></comment><comment><USER27> Reading the article solves one mystery, but brings up another.

The photographer for some reason did not pursue this as a copyright infringement claim. Instead he argued that it was an eminent domain case where the state had seized his private property and was, according to Texas state law, required to compensate him for the seized property.

It would be sufficient at this point for the state to rule that copyright infringement is not the same as eminent domain seizures, rule against him, and order him to pay the defendant's costs for filing a frivolous case.

Instead they oddly ruled instead that the school has sovereign immunity from lawsuits, and ordered him to pay their costs.

It is strange if the state can not be held accountable in court for eminent domain seizures despite the state law to the contrary.

It is strange that they ruled that way rather than ruling that copyright infringement is not a domain seizure.

It is strange that the plaintiff filed this case this way.

<comment><USER28> Sovereign immunity is the legal doctrine that the government can't be sued for anything unless it specifically allows you to do so. In this case, Texas state law does not have a provision that allows it to be sued for copyright infringement. So, the photographer could not file a claim for copyright infringement, either in state or federal court. That's why he tried the novel approach of suing them under the "takings" clause of the US Constitution. The Bill of Rights is a specific case where the government has allowed itself to be sued for violating those provisions. Under Supreme Court precedent, most provisions of the Bill of Rights apply to the states as well as to the federal government.

<comment><USER6> Sovereign immunity doesn't preclude suing a public university; it doesn't preclude it as a general matter, and definitely doesn't preclude it wrt copyright. One way to look at it is that a university is akin to a municipality--it exercises state powers but it's not the state, per se.

There are many well known copyright claims against public universities. The one that immediately came to mind (I forgot the case citation) would have supported his infringement claim, though it involved xerox'ing of academic textbooks so not quite on point.

See my post elsethread for the most likely reason they went to state court.

<comment><USER28> Very interesting. So how do you distinguish between the state and a branch or arm or subsidiary of a state? A department (say, the Department of Motor Vehicles) is clearly the state. What if a public university is operated just like a department? If it's taxpayer-funded, professors are public employees, and management is appointed by the governor?

I could see how it would not be the state if it were separately incorporated, funded, and governed, just like a municipality.

So what's the rule that distinguishes entities that have sovereign immunity from those that don't?

<comment><USER29> The necessity of the taking for the purpose of operation. Same rule that limits federal government agencies from taking anything they want. A constitutional grant.

Use of this specific photograph is not required by any means that could be seriously construed.</comment></comment></comment></comment></comment>


Ask HN: Is it worth being in TechCrunch "Startup Alley"? - <AUTHOR> edit: Judging from the lack of definitively positive about Startup Alley, maybe TechCrunch needs to make it more valuable somehow to participants? <comment><USER2> I participated in the Startup Alley 3 times and in Battlefield once. Here is my take:

\- Battlefield gives you great exposure to investors and gives you some "validation" in their eyes. It is mostly true for noname VCs. If you network well, you will get some good connections out of it. That being said, it will not make your company. Even if it might seem so for a bit.

\- Startup Alley is a complete waste of time, unless you sell to other startups. If you are starting something like Twilio, you will get plenty of early adopters in a few days. Otherwise, there is no real exposure, no traffic, no VCs, and almost no business partners. TechCrunch loves to hype it up because they are making $1.7K on each booth. If you are not sure why you want to participate, don't. Stay at the office and double down on your product and customers. YOu are better off spending your money on youtube influencers or what have you.

<comment><USER3> > because they are making $1.7K on each booth.

Really? How many booths are they selling? That's a pretty small ticket price all things considered.

<comment><USER4> The startups technically pay to be part of the entertainment program

The value is in corporates buying tickets

</comment></comment></comment><comment><USER5> Hey it's John Biggs kind of sort of from TechCrunch. I think what you've seen here is a good assessment of why you want to go. It's great for connections - I try to walk the Alley daily to see what cool stuff is there - and I've met people who have signed deals in the side rooms. That said you make out of it what you put in and it all depends on your product or company.

Want to know what I think it's good for? It puts you in the show, so to speak. I've been over a hundred startup events and I think TC's is the best primarily because of the people you meet and the ability to interact with other startups. It helps you place yourself in the firmament of startups and figure out where to go next.

I'm a founder and I wouldn't want to launch anywhere else. I'm biased to a fault but that's the truth.

<comment><AUTHOR> I wonder if techcrunch could do more somehow to connect Startup Alley participants to its online traffic flow. No idea how, just germ of an idea.

</comment></comment><comment><USER6> Earlier this year, we were in the Alley and also participated in Battlefield. I would say it's worth it because it gives exposure to your start up.

However, techcrunch is not all it is said to be. It is much of a self congratulatory Enterprise. A lot of people that came to our booth were other start ups trying to find new customers. The amount of web traffic we received was dismal, compared to that famous cloudflare article.

In the end any advertising is better then no advertising. plus it helps you come up with a one liner that describe what your startup is and does.

If you want to read the whole experience: [https://idiallo.com/blog/renly- techrunch-disrupt-ny-2017](https://idiallo.com/blog/renly-techrunch-disrupt- ny-2017)

<comment><AUTHOR> I read your blog post nice read. With respect I suggest your product is too narrow.... space in salons is a very small target user base. I'm not surprised you didn't get much traffic or sign ups from SU Battlefield.... probably no one watching owns a salon or is a beautician.

Humble suggestion is to pivot to a new or revised idea.

How is your traction right now?

<comment><USER6> Thanks for reading. Actually since then there has been greater traction. The low traffic however wasn't just us. Live video showed a very low number of viewers (never more then 100).

Also we are adding verticals as the we see the demand increase. We started with fitness, dental, office and now we are seeing more and more people asking for generic spaces. So this is our next goal, renting any sort of space possible.

</comment></comment></comment><comment><USER7> Context: I have been to Techcrunch Disrupt a few times (free both times) and have friends whose companies were in startup alley.

The answer to this is relative to the time and cost inputs. If you are a small company and bootstrapping, then no, it's unlikely to be worth it. Better to skip the table and just hustle to meet press/investors/other startups, since $2k can go a long way elsewhere.

My advice is to go to the hackathon the weekend before and build "something" with your cofounder (presuming you have one). This should* get you two free tickets to the conference.

Someone else here mentioned that if you sell to startups it might be worth it - I'd probably agree with that as an exception if you aren't already based in the Bay Area.

* You would have to confirm that Techcrunch are still offering this. They're usually pretty quiet about it (for obvious reasons) but I've used this method both times I went (for free).

<comment><USER8> I also got in twice through the Hackathon. You have to end at the top 10 to get free tickets to the event.

</comment></comment><comment><USER9> It was marginally worth it for my company, albeit it was free and it was..seven years ago now.

I met at least two very important people while there, one of which ended up investing into our seed round and the other who ended up introducing us to the lead of said round.

My general advice is that the Alley is pretty much what it sounds like, and the attendant quality of other companies there with you will be low. It's on you to get out there and network; just standing by your kiosk will do absolutely nothing for you.

<comment><USER2> What startup was it?

</comment></comment><comment><USER10> If you think about it like a high ticket networking event or a business conference then it can be.

If you show up and expect to get rich and famous by standing next to a table, then you'll be disappointed.

<comment><USER11> Dunno about that. If you work each day in any random coffee shop in SV -- well, maybe not random, but one of the popular ones -- you'll run into people working on some exciting tech. I don't think most of the country is like that.

<comment><USER12> > "...exciting tech"

That's debatable. Here are some of the Startup Alley companies:

\- Stemless Co (buying weed)

\- Mycroft AI (another freaking voice assistant...with AI)

\- Topology Eyewear (custom glasses using 3D face models)

\- Reely (Sports hightlights...with AI)

\- WeTravel (disrupting the dead travel planner industry)

\- Teuko (lunchboxes and tech?)

\- Switchit (uh...business cards)

\- GamerLink (Facebook, but for gamers)

[https://techcrunch.com/event-info/disrupt-sf-2017/startup- al...](https://techcrunch.com/event-info/disrupt-sf-2017/startup-alley/)

<comment><USER13> It's like something out of Silicon Valley.

> If you pack lunch boxes, Teuko was made for you. We connect lunchbox makers > and enhance their lunch packing experience. Teuko is the online community > for lunchbox makers. Join us.

It contains 0 lunchbox content before signing in.

</comment></comment></comment></comment><comment><USER14> Not unless your product or service is specifically for other early stage startups. I brought a booth one time an it was a complete waste of money.

</comment><comment><USER15> My company participated in the Battlefield and had a space in the Alley. You do get extra attention if you also participated in Battlefield but the Startup Alley by itself is not worth it. It's complicated and exhausting to stand there for the length of the event and it's definitely the most inefficient way to get tractiton.

</comment><comment><USER16> Me and my co-founder refined our pitching skills somewhat. Overall I wouldn't say it's worth it.

</comment><comment><USER17> It depends. It worked for Pied Piper.</comment>


Corporate Background Music Is Taking over Every Part of Our Lives - <AUTHOR> https://www.topic.com/how-ambient-chill-became-the-new-silence <comment><USER2> In the Kundun movie, when the Chinese set up speakers blaring music in Tibet, the Dalai Lama says "They have taken away our silence."

That's what the ambient music in semi-public spaces we have to go to out of necessity, such as airports, shopping centers, or taxis, reminded me of.</comment>