Programming Clojure, Smalltalk Style - <AUTHOR> http://robert.kra.hn/projects/cloxp <comment><USER2> Actually it is more Xerox PARC style, not only Smalltalk[0].

From the post I am not sure if the author has checked Interlisp-D.

Or the Lisp Machines and commercial Lisps like Lisp Works and Franz Lisp.

Sometimes I wish younger generations would care to look more into what was happening at Xerox PARC and ETHZ, and less at what was happening at AT&T.

Great post.

[0] Interlisp-D, Mesa/Cedar provided similar experiences.

<comment><AUTHOR> Smalltalk was invented at ... Xerox PARC. The author works at CDG Labs where Dan Ingalls of Smalltalk fame is employed. I'm fairly certain the author is aware of the history around PARC Smalltalk environments and the PARC Lisp graphical environments that followed.

<comment><USER2> I guess I didn't express myself correctly.

I was trying to convey the message that while the author is correct to talk about Smalltalk, the experience was traversal to whole operating systems being researched there.

Every time I dig into Xerox PARC documents, I discover new things, specially how we are still catching up with those environments.

<comment><USER3> What Xerox PARC documents are you referring to? I've been looking for something along those lines.

<comment><USER2> These books contain all the relevant Smalltalk 80 ones,

[http://stephane.ducasse.free.fr/FreeBooks.html](http://stephane.ducasse.free.fr/FreeBooks.html)

On bitsavers search for Mesa, Cedar, Interlisp-D and Smalltalk.

[http://www.textfiles.com/bitsavers/pdf/xerox/](http://www.textfiles.com/bitsavers/pdf/xerox/)

Also [http://www.softwarepreservation.org/projects/LISP/interlisp](http://www.softwarepreservation.org/projects/LISP/interlisp)

ACM also has quite a few papers if you have access to it.

Additionally you get some tips by reading Niklaus Wirth books about Modula-2 and Oberon, as he refers how Mesa and Cedar influenced his languages.

<comment><AUTHOR> Wow these are great links thanks!

</comment></comment></comment></comment></comment></comment><comment><USER4> As somebody who is trying to learn Clojure I am really interested in this project. Contextual access to docs and syntax would definitely help speed along the process!

I am also really intrigued about the concept of contextual chat and collaborative coding. One of you hackers is going to finally build the Twitch of coding one day, and it shall be glorious. Perhaps cloxp will be the one to take us there?

</comment><comment><USER5> > As a result the system supports a workflow that is more like a conversation, > a back and forth between programmer and system.

Interesting to contrast this with my OCaml experience, which is more a REPL- punctuaded series of monologues: writing a longish piece of code in Vim, and then sacrificing goats to appease the compiler, before moving on to finding out the logic bugs.

</comment><comment><USER6> Clojure for the win yet again.

<comment><USER7> There's nothing - or very little - language specific here. The idea - as TFA admits - is old and already implemented a few times. Aside from (many) implementations in "esoteric" (Smalltalk, Self, Lisp...) languages, we even have things like LivelyKernel, which is implemented in JavaScript... and almost nobody heard about it.

<comment><USER6> Did you read the last two paragraphs?

1\. >"It is based on Clojure because Clojure comes with a set of attractive properties."

2\. >"Clojure also combines an exciting mindset around simplicity with enough pragmatism to make it a successful system for real-world projects."

3\. >"Additionally, Clojure's strong view on how state is handled, the distinction between identities and values and focus on immutability make it easier to deal with the complexities that come with "live programming"."

That sounds pretty language specific to me.

<comment><USER8> 1 and 2 are platitudes devoid of content. 3 is a bold claim but doesn't pan out in practice: live programming is creating to changes in code and state, making changes go away only eliminates the problem by eliminating the experience (see [1]).

[1] [http://research.microsoft.com/en- us/people/smcdirm/managedti...](http://research.microsoft.com/en- us/people/smcdirm/managedtime.aspx)

<comment><USER9> I think he means that _using clojure_ (to implement the IDE) is very language specific as opposed to saying "it is based on clojure" or "clojure is cool because X" (which everyone can).

<comment><USER8> I believe they are talking about the programming experience vs. the implementation. Here is the specific passage:

> Additionally, Clojure's strong view on how state is managed, the distinction > between identities and values and the focus on immutability all make it > easier to deal with the complexities that come with "live programming".

The first point makes sense; the second point doesn't. Immutability either avoids the problem of change by denying or pushes it up for someone else to handle. So say you have a dictionary: do you handle change directly by mutating the dictionary or do you create a new dictionary to be diffed later? The first way is much easier than the second.

The next sentence is true:

> Having a strong concept of what state is and how state transitions occur > makes programming tools simpler.

This is very true, but again detecting a state transition is much easier when you allow for mutation of state (otherwise, diffing must be used, and that's expensive).

But anyways, this isn't really live programming as envisioned by Hancock: there is a manual "re-evaluate this line code" command under the current program state; there is no repairing of the past; compare against the Elm live programming demo, which is fully live at the code level.

<comment><USER10> To be fair to Clojure, it has a much more nuanced approach to state management than simple encouraging immutability. It pushes that you should be immutable whenever possible, but if you must use state then you should use it in a controlled and understandable way either by atomic operations, transactional memory, or agent. Further, it provides implementations of all of these things.

So Clojure explicitly allows for state transition and provides controlled and standardized ways of handling it. One of the selling points of Clojure is that it speaks to practicality in implementation by providing alternatives, or in the extreme case, complete escape hatches to low level tools that avoid even it's state control mechanisms. It simply encourages first immutability, and second state control in a well defined way.

<comment><USER8> I agree with this; Clojure's design is incredibly pragmatic about state, including mutable state, like any good Lisp.

People just tend to misinterpret this, or they digest it as "immutability good for live programming" when that isn't true: immutability is great for programming with values, but please don't make an immutable world object and replace it when something changes! Unless you are using Javascript, I guess there is just no other way to deal with the DOM other than diffing.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> If he adds code bubbles (which he mentions) that would be _really_ cool.

</comment><comment><USER12> Cool, reminds me of Dr. Racket mixed with Smalltalk, but for Clojure.</comment>


After Two Decades of Programming, I Use Rails - <AUTHOR> http://www.toptal.com/ruby-on-rails/after-two-decades-of-programming-i-use-rails

<comment><USER2> I felt like I entered some time wrap, was this written in 2007/2008? Can't believe someone writing this in 2013 since so much of the arguments are from those days. That rails shops with more than 9 months of development are festering piles of magic code is not news. Let's take a step back and ask why would anyone write a new Rails app in 2013. When rails came out in 2003/4 (yes it is now a decade) it was really neat. However things have changed dramatically as far as client/server capabilities are concerned and it is wise to revisit assumptions. Key points

1\. Javascript is now anywhere from 20 to 50 times faster than it was in 2003.

2\. Javascript is supremely better than ruby in building UI and DOM manipulation. It is even faster in doing straight computations.

3\. Clients are now 10 times more powerful (approx. memory/cpu-core wise) and even mobile phones have more memory/capability than a desktop computer of 2003.

4\. Rails remains the slowest and least efficient server side language by a huge margin.

5\. Mobile/Tablets have their own UI/View concepts and work best with a server API that just serves json type data.

So why would you bottleneck your application through a rails server. Best to have your server be a provider of services (security, data store, integration with backend etc). Most computation and UI manipulation is probably better done in javascript. What is that rails provides that say PHP cannot provide in this new way of doing things. It feels like with, say, AngularJS + server API (not doing everything) we are much better served by having computation distributed in the right way.

<comment><USER3> > Rails remains the slowest and least efficient server side language by a huge > margin.

Rails is a framework, not a language, and its not clear whether this "slowest server side _< foo>_" is really directed at Rails (the framework), Ruby (the language), MRI (the main implementation of the language), or some combination of framework, language, and implementation.

<comment><USER2> Yes, I should have said framework instead of language. However, MRI also happens to be one of the slowest languages. What are proposing as a good combination that people are using?

<comment><USER4> There is also Rubinius, and JRuby. Not to mention a few versions of threaded servers for each. Rubinius + Puma shows huge potential, I am running very large Rails app on a DigitalOcean 512MB ram droplet using it, and not using more than 30% memory.

The problem with your comment is while Javascript has improved and while Rails is still relatively slow, both Rails, Ruby implementations, AND server speed in general has gotten faster AND cheaper.

Not to mention the absolute ease of setting up russian-doll caching throughout with (distributed) memcached, and potential further speedups for all the interpreters (and the upcoming Topaz) and I'd say you presented a very one sided response.

</comment></comment></comment></comment><comment><USER5> A very serious question:

Why the proliferation of server side environment like: Node.js, ASP.NET (C#), Java, ColdFusion, PHP, Ruby, etc.? I've found nothing so complicated about old languages (C++, etc.) that could not of had a web library added around them to do the exact same thing. Is SSL, cookies, and the HTTP protocol that complicated to warrant all of this?

Was it because of shared hosting (and thus running your own custom executable) that gave rise to all this? The products I'm wanting to make for the web can't use PHP, Ruby type environments. I'm looking at Node.js or a C++ version of the same.

We'll most likely output JSON and have JavaScript assemble the GUI on the client side thus making what these frameworks do nothing but the most basic of tasks.

<comment><USER6> Well -- first thing is lets decouple your premise. You imply that all the technology you listed was designed with server side in mind. It wasn't: C#, Ruby and Java are general purpose languages not targeted at the server explicitly.

Second, if you don't think C++ gets complex (and has entirely different working models based on who is writing it) -- I recommend you use it more. C++ is a damn complex, deep, feature packed language. C++ server side frameworks exist (and are the fastest thing around: [http://www.techempower.com/benchmarks/](http://www.techempower.com/benchmarks/)) but they take massive amounts of effort versus some of the newer languages.

PHP took off because of shared hosting, wordpress and pragmatism. People who were inexperienced could (1) get access to it, (2) deploy it and (3) get things done.

ASP.net survives (most would argue it didn't really take off) because if you live in the MS toolchain, it is a very nice experience.

<comment><USER7> I'm not sure about ASP.NET - projects I've worked with are utterly over- engineered with so many interfaces, services, factories, and service factories, that it's impossible to figure out where the code is that actually does anything, even in VS2012.

</comment></comment></comment><comment><USER8> "this pragmatism produces elegant solutions" I disagree. I think the pragmatism encourages one to "be clever" and just "get it done". Often this is not elegant.

</comment><comment><USER9> In my experience, most clients we worked with did not request Rails, it was foisted upon by developers who say the five minute blog video, tried to model the business problem, failed, left for shiny new gig, the client is left vulnerable to the many, many security issues, and a code base that brings tears to the eye of even a hardened developer.

The worst development gig out there? Walking into a Rails code base more than six months old. You are probably the third person to attempt taming the stink feet of magic magic code and thousands of useless unit tests and cucumber drivel that looks fab in a pretty graph but tests almost none of the core important business logic nor really helps anyone understand what was actually requested.

<comment><AUTHOR> Worse than a six month old PHP project?

<comment><USER6> IMHO, the pain of being handed code is related to its "magic". The more magic, clever, interesting contortions that are present, the less likely you are to get grips on it in any sensible time. Ruby & Rails give lots of tools to create insanely hard to unwind stacks, but I am not sure they are worse than Django & Python (custom loader [importer], decorators everywhere)...

The real bitter pill is that these systems are created with the best of intentions, to make them more maintainable, more DRY, more configurable, more portable... but they generally miss the mark and cause pain for all involved.

</comment></comment></comment><comment><USER10> It amazes me that so many people cite the blub essay while behaving exactly as the essay describes a blub programmer. Ruby is not near the top of the spectrum, you aren't even aware of the languages that are at the top of the spectrum.

<comment><USER6> For me... the part that broke my brain was when he cited Ruby / Rails as something that is low on accidental complexity.</comment></comment>


Lattice Path Enumeration [pdf] - <AUTHOR> http://www.mat.univie.ac.at/~kratt/artikel/encylatt.pdf <comment><USER2> I could have used this background when learning about lattice models for protein folding. It was interesting, but I was confused how you could easily count all possible tilings without enumerating them (answer: it's tricky).</comment>


Doom as a tool for system administration - <AUTHOR> http://www.cs.unm.edu/~dlchao/flake/doom/

<comment><USER3> I thought this would be about...

 _SNMP management is a damn fine tool for network computers, especially when it lets you reboot them remotely. I patch a game of Network Doom with sprites of the users' faces and get the kills piped to the SNMP reboot command...

I ring the users and tell them, to give them as much of a chance as you can get using the server copy of the game which only lets you pick up a handgun with one round of ammo. Still, a beancounter can get good at pistol shooting when two hours of spreadsheet work is at stake and you have to win a game in order to ungrey the SAVE button (another little patch).

By Friday, the results are in. Surprisingly enough, the NCs weren't a hit with the users and were replaced with PCs after only four days. Oh, and 327 kills..._

<http://bofh.ntk.net/Bastard_1998-1b.html>

</comment><comment><USER4> You guys do realize that this is from 1999, don't you? It was really funny back in the day but I though everybody knew this by now ;)

<comment><USER5> Well, I appreciate it. I was 9 years old and had no idea.

<comment><USER4> Which shows that we're not dying out. Yay!

</comment></comment></comment><comment><USER6> "after I took the screenshot of myself being attacked by csh, csh was shot by friendly fire from behind, possibly by tcsh or xv, and my session was abruptly terminated."

Definitely my favorite part. I think the data modeling within the game engine still needs some work...

</comment><comment><USER7> What struck me about the article was the attribution of the concept of cyberspace to Vernor Vinge instead of Gibson. After some wikipedia investigation, it's clear that my sci-fi history knowledge is lacking - <USER2> Names came out a full 3 years before Neuromancer.

However, Gibson is still credited with giving the name "cyberspace" to this artificial world (Vinge called it the "Other Plane"). I'm wholly disappointed with my sci-fi professor now for leaving out this bit.

</comment><comment><USER8> "This work was funded by the National Science Foundation through a BIO Research Training Group in Ecological Complexity (NSF 9553623)."

</comment><comment><USER9> Two favorite bits:

\- Important processes can be instantiated as more powerful monsters. They can then defend themselves against inexperienced sysadmins.

\- Certain processes are vital to the computer's operation and should not be killed. For example, after I took the screenshot of myself being attacked by csh, csh was shot by friendly fire from behind, possibly by tcsh or xv, and my session was abruptly terminated.

</comment><comment><USER10> The question is: which windows process is most likely to become "the cyberdemon"? --> <http://doom.wikia.com/wiki/Cyberdemon>

I'm going to go ahead and vote for "Outlook.exe"

</comment><comment><USER11> Are there ninja monsters who disguise themselves to look the same as svchost.exe? And mysterious otherworldly processes with names made up of ever changing random strings of letters and numbers who cannot be killed by force alone?

Only on windows I guess.

</comment><comment><USER12> Looks very cool. However, in the age of cloud computing, if you need to constantly look at "ps aux" on each server you run, you are doing it wrong.

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


Show HN: PayOnDelivery – Payment and SameDay Delivery platform for local markets - <AUTHOR> https://payondelivery.com/ <comment><USER2> Do I understand right that this is an agregator for local online marketplaces (facebook marketplace, letgo...)?

What's meant by one-time transaction fee "-5.25%"? Does it mean that you give some discount? To whom? To seller or to the buyer?

Are you limited to any regions (US/EU/...?)

I tried to log-in using my facebook account (as a buyer, then also as a seller), but the login process was stuck for more than a minute before I cancelled it.

I don't really get what's the added value of your service. Is it that you arrange the delivery for items that are meant to be picked-up locally?

If you want feedback from more people, you can try our give & get feedback platform, [https://usability.testing.exchange](https://usability.testing.exchange).</comment>


37signals Basecamp Mobile HTML5 app for WebKit browsers - <AUTHOR> http://37signals.com/svn/posts/2761-launch-basecamp-mobile

<comment><AUTHOR> Basecamp Mobile is written in CoffeeScript using our in-house Cinco mobile framework, which ties together Backbone.js, Zepto, the Eco templating language (<https://github.com/sstephenson/eco>), and Stitch (<https://github.com/sstephenson/stitch>).

<comment><USER2> Considering that the rest of 'em are already open source, any current plans to open source Cinco?

I'm presuming that the back-end for Basecamp Mobile is the current Basecamp Rails app -- I'm curious about why you decided to use Stitch to package your JS, instead of what Rails is using (probably Sprockets or Sprockets 2).

<comment><AUTHOR> We'll definitely be open-sourcing Cinco in the coming months.

There are a couple of reasons we went with the Stitch approach. For one, we found the CommonJS module system (as implemented by Node.js) to be an elegant way to declare dependencies and share state between closures.

Second, our test suite runs headlessly in Node.js. By using Node's require system, we're able to get useful information and correct filenames in backtraces during development.

</comment></comment></comment><comment><USER3> This is the way to go guys - HTML5 web apps will eventually kill native apps anyway. Might take a few years, but local decisions, like yours, show the dynamics behind that prediction.

<comment><USER4> Completely agree. In addition to saving on development costs by eliminating the need for specialized platform devs you also remove the app store Gods from the equation.

There's really only 2 reasons to have a native app: 1) to take advantage of hardware that you can't access otherwise and 2) screen real estate. The latter reason being a poor one to solely base the decision on.

<comment><USER5> Not to mention an easy way to charge for a service.

</comment></comment></comment><comment><USER2> This being one of the first large production CoffeeScript apps, did you run into any unexpected trouble with using a language other than JavaScript? (Naturally, I ask for selfish reasons...)

<comment><USER6> CoffeeScript has been a joy.

Because most of the code runs in the browser, we were able to use the WebKit debugger. I never had any trouble matching up the compiled JS with the original CS source.

</comment></comment><comment><USER7> I was very bullish on mobile HTML5 apps a couple of months but that has changed. As a user I really appreciate native apps on iOS and their overall consistent UI and efficient use of the limited screen real estate.

Basecamp feels totally different compared to other native apps on the iPhone: the back button looks weird, no fixed navigation bar and I'd expect to see the typical tab bars (all things you currently can't really imitate with HTML/CSS/JS).

It may not be a shit sandwich (as in <http://daringfireball.net/2007/06/wwdc_2007_keynote> ) but still it's clearly a trade-off driven by developmnt concerns. I totally understand that it's not really feasable to develop native apps for all those mobile platforms out there, but again it doesn't feel like a decision made from the user's perspective.

</comment><comment><USER8> What compromises did you have to make by going for an HTML5 app instead of native app? Notifications/Reminders?

<comment><AUTHOR> For Basecamp, probably the biggest compromise is that you can't upload files or photos from your browser. We're interested in exploring tools like PhoneGap (<http://phonegap.com/>) for smoothing over the missing functionality.

<comment><USER9> >you can't upload files or photos from your (mobile) browser

How come? Mobile browsers don't support it (for security reasons?) or it's slow/eats up precious bandwidth? Or am I misreading you completely.

<comment><USER10> Mobile browsers don't support it. I've never been clear on the reasons, except maybe that there's a tension with the carriers over airwave bandwidth. Honestly: there's a Javascript interface in mobile Safari to access the location sensors and, IIRC the accelerometer, but the camera is offlimits.

On the other hand, the HTML interface is a mime-multipart form and a file upload - it's only convention that says "upload images only" - and the mobile platforms are very particular about access to files on the device. iOS for sure won't allow one app to touch the files of another.

</comment></comment></comment></comment><comment><USER4> My favorite thing about this is Jason Fried's response to a troll in the comments.

Troll - "Disappointment"

Jason - "Good morning to you as well."

I've been studying his responses to customer feedback, both positive and negative, for a while now and have learned a lot. Just read his tweets for a lesson in great customer service.

<comment><USER11> I actually viewed this as kind of snarky.

I don't see why disappointment is an unacceptable response. I was kind of dissapointed to see that this is where they were going for mobile apps.

<comment><USER4> There was more to the negative comment. The very next sentence was this: _If it's not native on iOS, it's not worth using._ There was nothing constructive about his comment.

I also don't think customer service should be synonymous with ass kissing. I appreciate knowing there's a person with a personality responding to my inquiry instead of repeating canned phrases. You can be polite to a rude customer without giving a phony 'sorry' or 'thank you'.

</comment></comment></comment><comment><USER12> A question I haven't yet found a satisfactory answer to: should the mobile version of a webapp like Basecamp have mobile marketing pages or just a login form?

</comment><comment><USER13> Could someone explain why something like eco makes sense in this context instead of just using rails (ERB) templates. Presumably you have to query the rails backend at some point to get the data. Are the templates in coffeescript for cache-ability? Thanks!

<comment><USER6> All the eco templates are compiled and shipped along with the JS files. The server backend only sends JSON to the app. Its much smaller and faster to render, plus its cacheable on the client side. Its a huge win over RJS templates.

<comment><USER13> Thanks. Any downside?

<comment><USER6> Theres some duplication between the server side (Ruby) and client side (JS) models.

<comment><USER14> This is something I'd really like to see solved in client side frameworks like this.

It seems to me that you could do something similar to how ActiveRecord queries the database for a model's attributes - but instead expose a JSON service that returns a models attributes and validations. But perhaps JS doesn't have the dynamic / meta-programming capabilities to make this happen like Ruby does.

</comment></comment></comment></comment></comment><comment><USER15> Pretty glad there are already great native apps out there. Lowest-common denominator remains lowest-common denominator whether or not it's done for a principle.

<comment><USER16> For those who would prefer a native app, here's a list: <http://basecamphq.com/extras>

</comment></comment><comment><USER17> I thought something like this might be coming after seeing the Chalkboard app.

I personally think that apps in this style are better long-term than native apps for most business-y things.

</comment><comment><USER18> I'm so glad to see a heavy hitter like 37signals coming out in opposition to "app madness".

As I've commented here before, I see the current native app trend as nothing more than a replay of the browser wars of the early 2000's - folks developing with IE specific features etc.

The natural tendency for programmers is to do _less_ work. This native app bollocks is purely the result of commercial interests of device manufacturers: if you make it harder to develop cross platform stuff then developers must choose a platform. If developers must choose a plaform that means one platform will have all the coolest stuff, driving sales of the device.

I own and love my Nokia e72 and was really pissed off when 37signals released an iPhone app rather than creating a mobile web app.

The Nokia e72 browser probably won't cope with the HTML5ness of the Basecamp offering but at least there's hope! I will never use an iPhone because I need a qwerty keyboard (try typing find . -name "*.php" | xargs grep -il "function someFunction" on your iphone keyboard - or try editing a file in vim via SSH ... yeah, didn't think so).

At least with this trend maybe my next phone will have access to mobile Highrise goodness!

<comment><USER19> If you're going to use find | xargs, please use find -print0 | xargs -0 or I will put a newline in a filename so that you rm something you didn't want to.

Also acceptable: find . -name '*.php' -exec grep -il "function someFunction" {} \;

</comment></comment><comment><USER20> This is great. I've seen slight issues though. On my phone (iPhone 4) when I was clicking around the todo lists, they responded very slowly to my taps and I was able to highlight todo lists without actually going to them.

However, I love that you guys are doing this. I'm excited to see the cinco framework as well. I have been looking for a mobile platform, I've used Sencha a bit, but find it difficult to learn and bloated.

</comment><comment><USER21> I think the correct decision is to make a native shell that holds an HTML5 app for iPhone and Android. That does not require any additional developers to accomplish and you can track/save the state locally.

That way it can be downloaded from the app store as that's what people are used to anyways.</comment>


Bringing HSTS to www.google.com - <AUTHOR> https://security.googleblog.com/2016/07/bringing-hsts-to-wwwgooglecom.html <comment><USER2> Doesn't that mean that wifi captive portals using www.google.com won't be able to take over the connection and re-direct to the captive portal?

<comment><USER3> This was my immediate first thought too. A lot of subway stations got WiFi in NYC and for the one directly underneath my office I always had to load Google first to get the login portal to load. Any other websites I visit (including this one) just displayed a HSTS error instead.

<comment><USER4> [http://http.rip](http://http.rip) will always be http only; it's the domain I use for this purpose.

<comment><USER5> Very nice, I didn't know there was a dedicated site for "I need _just_ HTTP" purposes. Thanks for the tidbit!

</comment></comment></comment></comment><comment><USER6> Does this mean that "nosslsearch" is now no longer supported?

<comment><USER2> Nope. [http://nosslsearch.google.com/](http://nosslsearch.google.com/) -> 404

<comment><USER6> That's always how it worked. nosslsearch only responds if you access it as "www.google.com" not as "nosslsearch.google.com".]

(As of writing it still works if you do it on a new browser. However once you have HSTS info it will always attempt to do an HTTPS connection I suppose)

<comment><USER7> I believe nossl was intended as a concession for schools that believe in censorship. It makes it relatively easy to configure things so Google doesn't go over SSL so that your existing MITM boxes which censor continue to function as before.

If they continue to support this use case, it may be hard to do without introducing bugs - one exposure to a 'real' service which spits out an HSTS header (or the preload list), and the machine loses the ability to conduct Google searches.

I think they'll either have to use some nasty workarounds, or they'll need to use a different domain - which isn't necessarily something you want to do when you are trying to provide simple rules which allow users to identify phishing.

More likely they'll simply force sites that want to continue to MITM to load their own CA roots.

Although I don't think this is their motivation, it also has the neat side- effect of making Google's Chromebook & device management services more useful.

<comment> stable-point > If they continue to support this use case, it may be hard to do without > introducing bugs - one exposure to a 'real' service which spits out an HSTS > header (or the preload list), and the machine loses the ability to conduct > Google searches.

Those wishing to spy on their users with nossl could just disable HSTS in the browsers they provide.

<comment><USER8> Google has changed this almost a year ago

> Turn on SafeSearch VIP To force SafeSearch for your network, you'll need to > update your DNS configuration. Set the DNS entry for www.google.com (and any > other Google ccTLD country subdomains your users may use) to be a CNAME for > forcesafesearch.google.com.

>We will serve SafeSearch Search and Image Search results for requests that we receive on this VIP.

You can enforce safe search over https now [https://support.google.com/websearch/answer/186669?hl=en](https://support.google.com/websearch/answer/186669?hl=en)

<comment><USER9> However, this means that schools can't see what pupils search for, and that any network operator can force safe search.

<comment><USER10> Schools almost ubiquitously use SSL -decrypting dpi devices with the device root installed on endpoints, bypassing both HSTS and HPKP.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> Just curious, this looks like some already supported feature of nginx, only that it's supported through redirection. Is this a redirection too or a protocol change? How will that be reflected on the address bar?

<comment><USER12> No. If browser see HSTS header, then for specified time it will never even try to connect using http to this domain.

<comment><USER11> Uh, thanks, but 304 Moved Permanently also has a similar effect right?

<comment><USER12> No, 304 refer to specific URL, not whole domain.

</comment></comment></comment></comment><comment><USER13> HSTS will one day be remembered as the HTTPS version of SMS 2nd auth: A bad hack with good intentions. Sure, it can have some positive effect in the short term, but there are so many ways to subvert it that as its popularity grows, so will the attacks.

<comment><USER14> I'm interested in what these attacks are and what you think would be better. Especially with HSTS preloading (supported in Chrome, Firefox, IE, and Edge) I don't see any attacks really.

<comment><USER15> > Especially with HSTS preloading

HSTS preloading is just distorting the market towards the already large sites.

A smaller site now will get ads injected by your ISP, but their larger competitor doesn't.

Yet, you obviously can't add every single private blog to the preloading list.

I tried getting my personal blog added, it's just impossible.

So your solution is only good for the already huge websites.

What's with democratizing the internet, giving every single personal blog the same tools as every huge site?

<comment><USER16> _I tried getting my personal blog added, it's just impossible._

Why? [https://hstspreload.appspot.com/](https://hstspreload.appspot.com/) didn't work?

<comment><USER15> Last I tried was a few years ago when that didn't exist, nice that it does exist now.

I wonder what will happen once the preload lists are several billion pages long?

<comment><USER17> Hopefully by that time we've reached the point where we can deprecate HTTP without TLS and show appropriate warnings in browsers.</comment></comment></comment></comment></comment></comment>


Artificial Cornea Mimics Natural Counterpart - <AUTHOR> http://www.technologyreview.com/news/410170/artificial-cornea-mimics-natural-counterpart/

<comment><USER2> That is very cool.

Does anyone know why corneal disease is more prevalent in developing countries? Is it lack of doctors? Medicine?</comment>


Antares launch to resupply space station halted by wayward airplane - <AUTHOR> https://spaceflightnow.com/2017/11/11/antares-launch-to-resupply-space-station-halted-by-wayward-airplane/ <comment><USER2> Now launched: [https://spaceflightnow.com/2017/11/12/space-station-cargo- sh...](https://spaceflightnow.com/2017/11/12/space-station-cargo-shipment- blasts-off-aboard-antares-rocket/)

</comment><comment><USER3> I wouldn't want to be that pilot once the FAA identifies him. Violating a restricted area can result in federal prison for a year.

<comment><USER4> He will likely not go to prison since this is an administrative affair. However, he'll likely get his cert pulled for at least a year.

<comment><USER5> Is it possible to fine the plane that did it from public flight plans/records?

</comment></comment></comment><comment><USER6> Exciting that launches now feel commonplace. I don't know how launch frequency has increased over the course of the past few years but with Space X and Blue Origin all over the news, launch missions feel commonplace.

<comment><USER7> Blue Origin doesn't really launch yet. They launched a few (I think, they are famous for being much more secretive than SpaceX) test flights, but nothing to orbit yet.

This was a Orbital Sciences/ATK flight (two somewhat old-space companies[1] such recently merged).

[1] Orbital Sciences was founded in the early eighties, and ATK was old enough to be the contractor to build the shuttle SRBs.</comment></comment>


HTML5 game developemnt framework Lime JS - <AUTHOR> http://www.limejs.com

<comment><USER2> Thanks for the library! It's always great to see new game-dev solutions for JavaScript coders.

It would be interesting to embed the game inside a native iOS app and distribute it through the app store...

<http://ejohn.org/blog/iphone-javascript-apps/>

I'm assuming it'll take a tremendous performance hit vs. native apps, but not all games need 60fps.

</comment><comment><USER3> Sounds cool, alas on my android phone the games went outside my screen and zooming out was disabled. Sounds very promising though.

</comment><comment><USER4> Does the framweork have sound? The example they showed didn't have any sound.</comment>


Hospitals Furloughing Staff, Altering Physician Pay Due to Covid-19 - <AUTHOR> https://revcycleintelligence.com/news/hospitals-furloughing-staff-altering-physician-pay-due-to-covid-19 <comment><AUTHOR> It seems so backwards that we would be furloughing hospital workers right now. Hopefully those finding themselves without work can lend theirs skills in locations where we don't have enough workers.

<comment><USER2> Unknown to most people, the US medical system is nearly shutdown.

If you dig into nurses forums you will find nurses are being told that there is no work "low censused" across the US.

Only critical medical services are being delivered. All optional services have stopped. This included regular screenings.

Our local major regional hospital in Western Colorado which normally has a couple hundred patients in beds, last week had well under 30 beds full. This included the maternity ward. Only a couple of the beds are being used by COVID patients. The other local hospitals had even lower bed counts.

If your skills are needed for treating COVID you are told to wait (unpaid) for a call. If you are one of the majority of medical providers who are not focused on ICU or respiratory care you are told to stay home (unpaid) and study (unpaid) needed COVID skills.

The travel normal nursing system is likewise shutdown. While New York is asking for skilled nurses, it is not clear how a nurse in from another state could 1) secure a position, 2) arrange travel and housing

Source: my wife who is a hospital recovery room and public health nurse, friends who are ER doctors and Anesthesiologists

<comment><USER3> Meanwhile, ICU admissions have fallen off a cliff last week in NY, [https://twitter.com/RebeccaJarvis/status/1247546048291143681...](https://twitter.com/RebeccaJarvis/status/1247546048291143681/photo/2) after they started giving HCQ to the patients en masse, at the long last. So they gave up their share of ventilators and they now project that they will not exceed capacity.

<comment><USER4> The link you posted does not have any data to support your claim. As yet I have seen no data to support the effectiveness of HCQ for c19. I understand that testing is still underway and that assumption for or against is entirely premature.

<comment><USER3> Pray tell, what else could have caused ICU admissions to drop so precipitously?

<comment><USER5> It is interesting that people are avoiding emergency care, but some reasons to look into:

1) A lot of hospital visits are from "frequent flyers" \- lonely people, homeless people trying to get a free meal, etc. These frequent flyers try to go every day, consuming 1000x more resources than a normal person. (I've met some.) They may be afraid of catching corona virus this month.

2) Depending on the area of the US, you either get a lot of gunshot wounds (Chicago) or car accidents. With lockdown, there's less going on in the streets.

3) Also, uninsured people may be going to the hospital as a last resort in order to avoid getting corona virus. For example, those without insurance may just be waiting for the all clear to drop by again. (In the US, the fallback for no insurance is to go to the emergency ward.)

<comment><USER3> This is not "ER". This is ICU, AKA intubations nowadays. Cuomo had this chart in his presser.

<comment><USER5> You have a point, but most of the items I mentioned involve ICU (gunshots, car accidents, fake ambulance calls for lunch) which should be down during lockdown.

<comment><USER3> There are not a lot of car accidents right now.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> They will need all their staff in December and January, though. That's when I expect all the Corona Babies to be born.</comment>


Design Notes for Alto Operating System (1973) [pdf] - <AUTHOR> https://www.microsoft.com/en-us/research/wp-content/uploads/2016/11/38b-AltoOSNotes.pdf <comment><USER2> The author's later paper describing the Alto OS they built:

[http://bwlampson.site/38-AltoSoftware/WebPage.html](http://bwlampson.site/38-AltoSoftware/WebPage.html)

It says "The Alto system is programmed in a variety of languages: bcpl, Mesa, and Smalltalk. Each language has its own instruction set and its own operating system...

The distinctive features of the Alto OS are Its open design, which allows any part of the system to be replaced by client program ..."</comment>


Don't let your child use Vine says Santa Monica High School to Parents - <AUTHOR> http://pastebin.com/JrLGTkKK

<comment><USER2> I constantly reinforce two things with my high school son:

1\. How ludicrous zero tolerance policies are.

2\. How scrupulously he should avoid violating them.

I will never feel truly relaxed until he graduates and leaves the long arm of the school district.

</comment><comment><USER3> This reads more like a warning to inform parents about its existence. Nowhere does it say not to let their children use it, it merely says "If your child has access to this particular application, please consider having a conversation about watching, creating and potentially sharing videos." It seems like quite a reasonable message, really.</comment>


Ask HN: Is there a database dump of HN? - <AUTHOR> I'm interested in running some analysis on posts/comments, and I would prefer not to scrape the site with a bot.  Does HN offer a periodic database dump?  If not, can it be considered?  I'm sure I'm not the only one who would be interested in it. <comment><USER2> BigQuery has a copy you can run queries against. One of their provided, shared datasets.

<comment><AUTHOR> This seems to be the dataset you are referring to [https://console.cloud.google.com/marketplace/details/y-combi...](https://console.cloud.google.com/marketplace/details/y-combinator/hacker- news?pli=1)

Hasn't been updated in awhile but better than nothing.

<comment><USER3> It is fairly up to date. Last stories were added on 3/3/2020 and today is 3/31/2020.

Not sure how frequently it updates... maybe monthly?

See screenshot here.

[https://www.dropbox.com/s/6h7qk04s0b4mggj/Screenshot%202020-...](https://www.dropbox.com/s/6h7qk04s0b4mggj/Screenshot%202020-03-31%2014.09.14.png?dl=0)

<comment><AUTHOR> Oh cool, thanks. I mis-interpreted the "last updated" date on the BigQuery dataset page.

</comment></comment></comment></comment><comment><USER4> hn.algolia.com has an API for getting JSON records... [https://hn.algolia.com/api](https://hn.algolia.com/api)</comment>


Apple fined for price fixing - <AUTHOR> http://mobile.itnews.com.au/Article.aspx?CIID=368523&type=News <comment><USER2> First there's that and then there is the eBook price fixing, and who else knows what we haven't found out about how Apple conducts business.

I, for one, am thankful that Android rose to keep Apple in check, because a world where Apple would be a monopoly frightens me about as much, if not more, that when it was Microsoft pulling the same kind of dirty and illegal tricks.

<comment><USER3> Given Google's staggeringly broad, global and interconnected reach (Android, Gmail, search, advertising etc.), I'm not sure if they're exactly the alternative worth rooting for. And they've been found indulging in as many, if not more, monopolistic or questionable business practices as Apple.

<comment><USER4> I'm also worried about their increasing move towards taking Android at least partially back proprietary. The original idea seemed to be an open-source platform, which is a nice way of spurring innovation. But they've slowly been replacing components with proprietary Google versions, which is making the core open-source OS less and less maintained. My guess is that the goal is to make it more like a Darwin/OSX situation, where the core OS is open source but lacks all the interface elements and is not really usable as-is by competitors. What would motivate that? One guess is that they're more worried nowadays about Kindle-type competitors than they used to be, devices that build on Android but hook into an alternative (non-Google) cloud ecosystem.

Some examples: Messenger seems to be in the process of being phased out in favor of Google Hangouts; Gallery and Photos duplicate functionality to such an extent that I suspect one of them will not last; even the main _keyboard_ is no longer open source, as Google has more or less abandoned the default Android keyboard and is rolling all improvements into the default-on-Google- devices Google Keyboard app.

<comment><USER5> > What would motivate that?

The OEMs and carriers delaying updates. By moving as much code as possible out of the core OS and into apps that they can update via the Play Store, they managed to make an end run around the OEMs/carriers. Notice how no one is really complaining about not having KitKat - the majority of the important updates are available on all Android 4.x devices, since they're in the Play Store.

<comment><USER6> So what? why cant these componets be open source?

If Google really cared, they could split them out into a separte service and still require them for official Android licensing.

I think this notion that they have to be closed source is a very strange redherring that people have bought for some reason.

<comment><USER7> Its not that people 'bought' anything. Its just the general population doesn't care. They just want something that works.

</comment></comment></comment></comment></comment></comment><comment><USER8> Honest question. Can someone explain to me what's wrong with this sort of "price fixing"?

The contract is attached to the iPhone, and Apple doesn't want the contract sold for less than $X. If the carrier doesn't want to do that, they can choose not to sell the phone. What's the issue?

<comment><USER9> I agree - I was under the impression that you could have a clause in a contract with a retailer/distributor restricting the price they could charge for _your_ product - I thought it was generally only illegal if you're conspiring with competitors to change prices across the market.

<comment><USER10> Certainly not in the EU. If you sell it yourself you can charge what you like and there may be agency models where you pay distributors to deliver to retailers at agreed prices but I think in those cases you probably have to own the stock until sold. If you sell to a distributor they can sell a whatever price they like.

</comment></comment></comment><comment><USER11> In the living memory of many of us, Taiwan was essentially a dictatorship. Now its protection of free markets for its people exceeds that of the U.S., at least in some areas, where U.S. law tends to favor corporate interests.

<comment><USER12> A dictatorship doesn't necessitate evil or corruption.

<comment><USER13> >A dictatorship doesn't necessitate evil or corruption.

Still, a dictatorship implies central control, and there is quite a contrast between that and strong market-favoring.

Edit: missed a word that changes tone a bit

<comment><USER14> >a dictatorship implies central control, and there is quite a contrast between that and strong market-favoring

Not in Asia. Singapore is consistently ranked as one of the most economically free (pro-business and free market) countries in the world, yet they are essentially a one-party 'democracy.'

Hong Kong is another example of an entity consistently ranked as one of the most economically free, but less democratic.

</comment></comment></comment></comment><comment><USER15> This is starting to become sort of trend with Apple.

<comment><USER16> In what way ? Way too many people seemed to have rewritten the last 10 years of Apple's history.

They have done a ridiculous amount of dodgy, illegal and anti-user things before, during and after Job's reign. They aren't perfect nor should any sane person expect 100K+ people to be. Just like Google, Microsoft, IBM etc.

<comment><USER17> No one should expect perfection, but I think most would expect any company with the means to follow the laws of every country they operate in, because that's their obligation. If they can't follow the law, they shouldn't be given a <$1M wrist-slap, they should be _corrected._

What about the Taiwanese businesses that are disadvantaged by this type of practice? Surely that's worth far more than $1M.

<comment><USER18> What about the Taiwanese businesses that benefit from this type of practice, by having less competition when selling their cheaper phones? I'm sure Acer, Asus and HTC aren't complaining that iPads aren't cheaper.

<comment><USER17> This is about contract price-fixing, not price-fixing of apple products.

</comment></comment></comment></comment></comment><comment><USER19> Apple's usual strategy to "fix" prices is to not give retailers any room to work with. If they can't buy an iPad for much less than $499, they can't put it on much of a sale. Why sell it at all if the margins are so bad? Accessories and warranties!

This strategy doesn't work very well with iPhones, since there is a lot of excess carrier profit in the 24-month subsidies, above the $700 or so cost of the iPhone.

<comment><USER20> There's not as much profit as you'd think. And a lot less than lower priced phones from other manufacturers. Plus, the carriers have to assume a ton of risk by agreeing to buy millions of iPhones whether they sell or not. Verizon had an estimated shorfall of $12-14 billion dollars as of July of iPhones they'd have to buy even though they didn't have the sales to warrant it. Not sure how that would up.

<comment><USER21> That shortfall was predicted by one analyst and it never occurred:

[http://www.mondaynote.com/2013/12/15/shameless- carriers/](http://www.mondaynote.com/2013/12/15/shameless-carriers/)

[http://www.verizon.com/investor/secfiling.htm](http://www.verizon.com/investor/secfiling.htm)

<comment><USER20> Ah, thanks. Wasn't aware of that.

</comment></comment></comment></comment><comment><USER22> IANAL and have always wondered why this practice is allowed in the U.S.

<comment><USER23> you mean a hardware vendor like Apple not allowing mobile carriers to set any price for its own handsets? why exactly is this bad?

<comment><USER24> Because it drastically limits competition that would otherwise put a downwards pressure on the price of these devices.

<comment><USER25> Surely android phones put downward pressure on these devices?

<comment><USER26> The idea is that putting a lower price floor on iOS devices differentiates them as a premium product, so that lay people aren't inclined to think that an Android Phone with a lower price is "as good as" an iPhone.

</comment></comment></comment></comment></comment><comment><USER27> I wonder if they meant to fine them the number of the beast as a way of sending a strong message.

<comment><USER28> If they wanted to send a message like that they would have fined them $444 000.

</comment></comment><comment><USER29> Sweet, Apple will make that amount of money in ~146 seconds. That will certainly show them.

</comment><comment><USER30> This fine is surely smaller than the ill-gotten gains. If the court is ruling that Apple was behaving with nefarious intent, shouldn't there be meaningful punitive damages?

</comment><comment><USER31> Is this for good or bad in the Taiwanese market? I can't imagine carriers in the UK trying to lower prices or give a better deal without persuasion from outside.

When the first iPhones were introduced it had the first affordable data plan I'd ever seen in the UK. I think o2 we're asking around £50/month for some tiny data plan on my Nokia N95, on top of the contract cost(there was no data bundles). The iPhone was £35 month on contract, phone and unlimited data.

</comment><comment><USER32> $666k is a rounding error for Apple.</comment>


Show HN: Yii 2.0 Framework Terminal.com container - <AUTHOR> https://terminal.com/tiny/0oP2JhOeUQ

<comment><AUTHOR> This container has Yii 2 installed. Feel free to try it, comment or suggest changes.</comment>


What's wrong with convolutional nets? [video] - <AUTHOR> http://techtv.mit.edu/collections/bcs/videos/30698-what-s-wrong-with-convolutional-nets

<comment><USER2> Short, massively simplified, summary,

Vast improvement in unsupervised learning.

Walks through biases humans have in object recognition. Explains new structures to add on top of neural networks.

Basic backprop on MNIST with 30,000 labeled examples gives 1.7% error rate. Hinton's approach gets the same results with 25 examples.

<comment><USER3> With 25 examples on which the systems asks the labels (and unknown number of unlabeled examples).

... liked the progress on reverse computer graphics approach. A bit of personal perspective here, from the data that I saw (and labeled!), while working on hand gesture recognition project the reverse computer graphics felt like the only approach that could bring human level gesture recognition from 2d data. And I was really exited at some point when Nvidea had started a computer vision / gesture recognition group. It felt really right that a photographic-level computer graphics GPU company would try to do reverse computer graphics processor. Too bad it didn't go anywhere.

</comment></comment><comment><USER4> One of the few speakers I saw as an academic and said to myself "This guy is a time traveler. I need to really pay attention to what he's saying."

That was in 2001. A decade+ later and we're still trying to catch up.

<comment><USER5> This precisely describes the feeling I got when watching the video. He consistently provides explanations/examples that make complete sense in hindsight but are pretty hard to come up with in the first place. I feel like this video kinda deserves a "spoiler alert" of sorts because he just exposes many of the things and it ends up looking so obvious afterwards. Not obvious in a "yeah the brain certainly works like that" way, because we don't know that yet, but obvious in a "I really wouldn't be surprised if it worked like that" way.

</comment></comment><comment><USER6> Video buffers every few seconds for me, are there any mirrors?

Edit: found download link after getting some caffeine [http://techtv.mit.edu/videos/30698-what-s-wrong-with- convolu...](http://techtv.mit.edu/videos/30698-what-s-wrong-with- convolutional-nets/download.source)

Edit 2: Also, there is a class on Coursera where he shares much knowledge and intuition about neural networks. I personally took it and it was excellent. Unfortunately there are no repeating sessions, but even archived material is a goldmine. [https://class.coursera.org/neuralnets-2012-001](https://class.coursera.org/neuralnets-2012-001)

<comment><USER7> I just pointed youtube-dl at the original URL and it detected and downloaded the embedded .mp4 just fine.

</comment></comment><comment><USER8> If I'm understanding some of the criticism, it is basically that we don't think "that's how our brain does it" (when it comes to convnets, pooling, etc.). But this begs the question: do we _have_ to duplicate what goes on in the brain? For example: we really don't know how the brain does multiplication; and if I were to guess, I'd say it has nothing to do with binary arithmetic and shift registers. But yet we've been able to teach a computer how to do it, using an algorithm that has (in all probability) no relation to how our brains work. So maybe convnets, pooling and other hacks work, just not how the brain works?

</comment><comment><USER9> A lot of these sound like ideas that Jeff Hawkins has been pushing with his Cortical Learning Algorithm

<comment><USER10> It's interesting since Hinton's approach seems to be more inspired by the computational geometry aspects of vision (reverse computer graphics, invariant representations) and working backwards towards the neural superstructures.

Hawkins' seems to be inspired by the biology itself, working from the "common computational substrate" hypothesis up to the cortical units required.

They both seem to meet in the middle at the need to figure out invariant representations for the intermediate features presented to each level of the hierarchy.

I do wonder what an argument between those two would look like concerning the applicability of back-propagation, which I remember Hawkins' deriding as totally artificial compared to the feedback structure of the actual neocortex.

Anyone more up to date on the state of the argument regarding that?

<comment><USER11> Backpropagation is just calculating the gradient of a multilayer perceptron. You do not even have to calculate it, you can use autodiff for it: [http://users.cecs.anu.edu.au/~jdomke/courses/sml2010/07autod...](http://users.cecs.anu.edu.au/~jdomke/courses/sml2010/07autodiff_nnets.pdf) (pdf).

They both seem to neglect time (internal dynamics). I haven't seen either of them coming up with a model as that from Izhikevich with polychronization: [http://www.izhikevich.org/publications/spnet.htm](http://www.izhikevich.org/publications/spnet.htm). If we would be able to make one of such ideas computationally useful, things would become really interesting.

<comment><USER10> Interesting, thanks for the links!

I've done your typical ANN 101 training in the past so have a good mental model for back-propagation. Modelling the actual nonlinear dynamics of "realistic" neural networks seems like an obvious path of research but I know how daunting it is. It seems like every tiny bit we can push forward our tools for understanding complex non-linear systems should pay large dividends across so many different computational fields (fluid dynamics, QFT, economics, ..., everything?)

I'll have to read Izhikevich's paper, seems like a unique line of research.

<comment><USER11> Absolutely nice to check his work. He founded a startup, Brain Corporation ([http://www.braincorporation.com/](http://www.braincorporation.com/)) recently.

Coincidence detection where delays are playing a functional role is one of the things that I find interesting (as well as the fact that there are more polychronous groups than neurons). The other thing is the emergence of gamma waves. I would be surprised if these do also not have some functional role (although it might be just as well the humming of our biological processor). :-)

I wish I was brave enough to start experimenting with different neural networks. For now I am on the roll "Bayesianfying" everything I encounter. Even the Hough transform that Hinton is so fond of in this talk. :-)

</comment></comment></comment></comment></comment><comment><USER12> Does anyone have a link to the presentation itself (e.g. ppt/pdf)?</comment>


Ask HN: Which tools/services do you recommend when building a SaaS? - <AUTHOR> <comment><USER2> Besides the usual services like Stripe etc. which most will likely recommend, I would highly suggest you look at [http://fairpixels.pro](http://fairpixels.pro) these guys are the best I know of when it comes to helping companies design beautiful b2b saas UX/UI.

</comment><comment><USER3> Depends on what exactly you need. Ideally you should be focusing on building only the core of your product yourself and outsourcing the rest to other service providers. Ex: billing + invoicing to a reseller, hosting to an IaaS service etc.

If you are asking about specific development tools/libraries, again I suppose it would depend on what exactly you are building.

</comment><comment><USER4> I think you should use the tools/services whichever gets your job done the fastest. First get the MVP out their. Beauty comes later.</comment>


A Fertility Doctor Using His Own Sperm: Ethical and legal considerations - <AUTHOR> https://www.thehastingscenter.org/whats-wrong-with-a-fertility-doctor-using-his-own-sperm/ <comment><USER2> Wtf is everyone here claiming it's assault or a sex crime? The very beginning of the article clearly states it's legal in most states and unless these people had some stipulation as to who it came from - I see no reason why the doctor can't use his own sperm. Do you all think it would be the same transgression if a female doctor used her eggs?

How about the ethical quagmire of all the male med students in the initial years who gave their sperm under pressure or without understanding the consequences? Why is it OK to have people working under the doctor donate sperm but not the doctor himself?

Misandry these days...

</comment><comment><USER3> It's odd that the article, which briefly addressed a few ethical issues, did not address the ethical issues regarding the underlying cause of the problem; namely, women using sperm banks.

<comment><USER4> Is there an ethical problem with the idea of sperm banks?

<comment><USER5> Off the top of my head, I can think of a couple:

\- Anonymity vs non-anonymity: does a child have a right to know who their biological parent is? Is it ethical to donate, create offspring, and remain anonymous? Some family predispositions to certain health issues aren't fully understood (I didn't realize my family had a predisposition to dementia until just a couple years ago when my grandparents started nearing end of life), these genetic anomalies aren't always known at time of donation, and thus won't be handed over to the offspring. Another issue, some sperm banks send out cease and desists when the children attempt to track down the biological father. (Thanks 23andme!) Is it ethical for a sperm bank to threaten legal ramifications on people who attempt to contact their biological father?

\- Age restrictions: We don't currently fully understand the effect of male age on creating children. Some studies suggest that there is a higher rate of autism, but this is only just now coming to light. Many sperm banks don't have much on age restrictions.

\- Number of donor offspring: Is it ethical to allow numerous offspring from one sample? There are cases where a single male has fathered over 100 children, way way more than any normal male.

\- Are sperm banks a form of eugenics? Sperm banks have differing policies on the acceptance of "Acceptable" sperm; e.g. certain height, low obesity propensity, college background, etc. If a sperm bank offers the top 1% genetic material, and people can pay to have elite genetic children, is this ethical?

</comment></comment></comment><comment><USER6> Clear common law battery against the mother. It should be actionable malpractice where brought by children born of this malfeasance because of the incest risks, but most (all?) states frown upon liability for negligent childbirth.

<comment><USER7> So the children would be suing a parent for being born?

<comment><USER6> Fair question. It's unlikely to succeed (for one, wrongful birth causes of action are barred in a number of states, and the damages aren't apparent for a very long time) but there ought to be liability when one secretly fathers so many kids as to move the sibling-parentage foreseeability needle away from zero.

More likely to succeed are child support-kinds of actions and claims against the physician's estate by all of his unackd issue if he dies intestate or fails to call out and disclaim every one of them expressly in his will.

One thing is certain: This fact set has the makings of a really good bar exam essay question.

</comment></comment></comment><comment><USER8> Welcome to Brazil: [https://en.wikipedia.org/wiki/Roger_Abdelmassih](https://en.wikipedia.org/wiki/Roger_Abdelmassih)

</comment><comment><USER9> He's a modern day Genghis Khan. It doesn't pay to be a warlord anymore, but his genes will live on in ways ours could never hope for.

</comment><comment><USER10> It's impregnating a woman without her consent. It's a sex crime and should be 10+ years in jail.

<comment><USER11> How much consent is needed though? IIRC Cline said in most cases that the sperm was from a medical intern. Given that he was not a medical intern, this is a lie which arguably negates consent.

Other possibilities get more murky; given that frozen sperm was not yet a solved problem, it's clear that the donor would be nearby, so what if Cline had instead said that the sperm was "From someone who works in this office" that would be factually true, if misleading. What if he didn't claim any particular source for the sperm at all?</comment></comment>


Olive: A free non-linear video editor - <AUTHOR> https://github.com/olive-editor/olive <comment><USER2> for comparison, some discussion when it was announced(?) 5 months ago: [https://news.ycombinator.com/item?id=18838227](https://news.ycombinator.com/item?id=18838227)

</comment><comment><USER3> What does it make "professional"? I would expect zero crashes from that, as compared to any other "non-professional" open-source video editor I used so far.

</comment><comment><USER4> Just FYI: ~3 months ago I went through reviewing a lot of the Linux available NLE video editors, and in the end I picked: Installing Windows on a spare drive and running Davinci Resolve. It is really next level, free, and everything else I looked at paled in comparison. Also there is a ton of educational content for Resolve on Youtube, which most of the others couldn't even come close to. I spent in total probably 5 hours trying to get it to work under Linux with no luck.

My runner-up was Lightworks, not open source but worked great on Linux. But it's $25/month if you want to export any high res content (I'm working in 4K from a cheap action cam).

I really wanted Olive to work, but it's pretty basic. I did a simple video with it as a trial and it worked ok. If I just needed to take a few clips and cut them together with transitions and fade in/out, that'd be a great choice.

But I want to publish things to Youtube and people have really taken it to the next level there. So I'm often doing multicam cuts and stabilizing and adding titles and things. Davinci is nice because it can do the simple stuff, but you won't outgrow it.

Resolve 16 has a new editing mode that focuses on quickly cutting together video and it looks pretty nice. I haven't used it yet though.

Resolve 16 beta is still a little unstable. I just re-installed 15 last night to edit a school video for my son. Also, I was having performance problems until I switched my footage to ProRes format, H.264 didn't really work. Also there are settings to use quarter res and smart caching and "SQ" playback that help performance on my 7 year old box (with modern video card).

</comment><comment><USER5> And until it's ready, don't forget Blender makes a very powerful video editor.

<comment><USER4> Has anyone here used it for video editing? I had initially thought about using Blender because it's been around a long time and seems to be pretty popular and serious. But what I've heard about it was always in reference to 3D capabilities so it wasn't clear to me that it was the right choice if I was only doing video editing tasks.

I mean, I've seen Captain Disillusion's "Worlds Greatest Blenderer" presentation, and I love his work which seems to be largely done in Blender. But he does a ton of 3D stuff, and he's way, way better than I'll ever be. I'm pretty sure he works in the industry. If you haven't seen his stuff on Youtube, it's one of my and my kids favorite channels and he's been doing it for a decade.

</comment></comment><comment><USER6> I'm curious, why are these tools called "nonlinear"?

<comment><USER7> This is because it allows editors to move clips around irrespective of time order (non-linear time), in contrast with linear editing [1] where you build an edit by assembling the master in sequential order (ie, by recording from one reel/tape to another).

[1] [https://en.wikipedia.org/wiki/Linear_video_editing](https://en.wikipedia.org/wiki/Linear_video_editing)</comment></comment>


Raspberry Pi on Raspberry Pi - <AUTHOR> https://blog.mythic-beasts.com/2019/06/22/raspberry-pi-on-raspberry-pi/ <comment><USER2> Something that just dawned on me is how far we have come regarding the compute resources that are available to the average person living in the developed world. Consider the hardware that Larry Page and Sergey Brin used to start Google in 1998. According to this page ([https://blog.codinghorror.com/google- hardware-circa-1999/](https://blog.codinghorror.com/google-hardware- circa-1999/)), they had 10 processor cores running at speeds of 200-333MHz, 1.7GB RAM, and 366GB of distributed hard disk storage. This configuration probably cost them a minimum of $10,000 to build, probably more. Now consider the Raspberry Pi 4. If one spends $45 on the 2GB RAM variant and additional money for a 512 GB drive, then for roughly $100 he or she would have the same compute and storage resources that Larry Page and Sergey Brin had in 1998 that started one of the world's most successful Web companies. In fact, our smartphones can drive 1998-era Google if configured with enough storage.

From a software standpoint, imagine the possibilities of millions of people walking around with devices that are as powerful as the compute resources Google had in 1998. It's realizations such as this that make me excited

What I love about the Raspberry Pi is the possibilities it brings at affordable prices. For example, students learning about how distributed systems work can build a cluster of Raspberry Pis for just a few hundred dollars. They have access to the same open source software that major tech companies use for their infrastructure, like Linux and various distributed software projects such as Apache Spark.

In an age where sometimes I'm cynical about the direction of tech and our industry, it's realizations such as this and product announcements like this new Raspberry Pi that make me remember why I love computing.

<comment><USER3> On the other hand, look at how ridiculously powerful our computers are _and they 're still so slow_. We've met orders of magnitude more computing power with orders of magnitude slower software.

<comment><USER4> I was amused to read this morning that Microsoft's new Terminal client has "GPU accelerated text rendering engine". WT actual F??? You can't run a terminal window without a few Gig of video ram and a couple of teraflops of GPU horsepower??? _Boggle!_

[https://www.theregister.co.uk/2019/06/24/microsoft_round_up/](https://www.theregister.co.uk/2019/06/24/microsoft_round_up/)

<comment><USER5> If you're on, say, a 4K 10-bit display, there's quite a bit more pixel data to push than there used to be. You still don't _need_ a GPU just to draw text, but since you already have one, using it will provide better performance and likely consume less power.

<comment><USER6> > but since you already have one,

Since i already have one i might want to use it for _other_ things. The reason computers are slow is this sort of "since you already have that resource, might as well use it" thinking - which makes sense if only _one_ program does it, but if almost _all_ programs do it then it breaks down quickly.

<comment><USER7> The same could be said for the CPU, and this helps free up the CPU for other things. It's a trade-off.

But the underlying problem here is higher resolution screens than needed. Most people don't actually need a 4k display. Sometimes, they can't really see small print that easily anyway and what they need is UI's designed with large print in mind.

<comment><USER6> CPUs are more generic though and pretty much every single GPU accelerated text drawing operation i've seen allocates permanent GPU resources (textures mainly). It isn't _impossible_ to not do that, but if you only allocate the necessary resources for the GPU on an as-needed basis and then release them once you're done, you are introducing latency which invalidates any gains you may have. The alacritty terminal linked elsewhere in this post, for example, keeps a bunch of atlases around with hundreds of glyphs which are local to each instance of the program (thus using both CPU and GPU resources) and for macOS and Windows ignoring any system-wide glyph caching the APIs it uses may already have (caches that will be created - and thus resource allocated - anyway when it tries to rasterize those glyphs for its own use).

FWIW yeah, i agree that most people do not really need 4K displays but that is another matter.

<comment><USER5> > CPUs are more generic though

Which is exactly why you want to save the GPU for what it does best – drawing pixels.

> and pretty much every single GPU accelerated text drawing operation i've > seen allocates permanent GPU resources (textures mainly).

Makes sense as a concern, and it's not something I've looked into. (I don't use alacritty.) On the other hand, how much memory are we actually talking about? On my system (total screen resolution 2880x1800), a typical terminal glyph has a roughly 14x16 bounding box; let's bump that up to 20x20 to account for padding. Stored as 8-bit RGBA, that would take 1600 bytes. An atlas of "hundreds" of glyphs would then be expected to take up on the order of hundreds of KB... which seems pretty negligible? A larger font, multiple atlases, or more characters per atlas would require more memory, but I still don't see how you get to an amount worth worrying about. I could be missing something.

<comment><USER6> One important thing you are missing is that you are focusing on a single instance of a single program doing that. These caches are not shared among programs and unless you are only running a single program at a time in your OS, if every program does such resource abuse (not necessarily _this_ particular type of abuse, but in not caring about resources in general) then you get a slow computer.

Computers feel as slow as ever (which was the topic a few nodes above) despite being much faster in theory not because of a single program but because all (or well, the overwhelming majority) the programs in your computer abuse resources - even if a little. It is death from a thousand little abuses.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> _netboot on the Pi 4 is only going to be added in a future firmware update. Netboot is critical to the operation of our cloud, as it prevents customers from bricking the servers. Our dreams were shattered._

This is unfortunate, its something I use a lot. Guess I'll wait to get a Pi4.

<comment><AUTHOR> The big news is that from a hardware perspective netboot is possible. That has not always been the case.

<comment><USER9> But has been the case since the Raspberry Pi 3 Model B IIRC.

<comment><AUTHOR> Yeah, we just had to wait for firmware.

</comment></comment></comment></comment><comment><USER10> I get that they're using the Pi in a production environment for small-sized- discrete-hardware hosting, but given the nature of the Pi and it's community, the tone of this article is confusing to me.

The Pi is great for things like DIY HTPC's, kiosk displays, IoT controllers, education, etc... but using it how this service is using it seems wrong--or misused--for some reason. I feel like an offensive stance is being taken against the Pi 4 for not being client production ready, when it seems like the foundation's attitude is if you want to go full client production, use the compute module.

<comment><USER11> Isn't it a cellphone chip being misused for DIY HTPC's, kiosk displays, IoT controllers, education, etc... :)

More seriously, perf per watt is king in datacenters, no matter what the source.

<comment><USER12> If I remember correctly, it's originally a chip for set-top boxes.

<comment><USER13> The original purpose of the original ARM chip was to drive the Acorn Archimedes desktop computer. While they were aiming to design a power efficient device, the power consumption accidentally turned out to be far lower than intended, which has been a big reason for ARM's continued success in many uses.

<comment><USER13> The team's design goal was 1 watt, but the chip ended up needing only a tenth of a watt. In fact on the original testbed they forgot to wire up the power lines to the chip, but the processor still worked, appearing to be running on no power at all! It turned out that it needed so little power that it could run on just the leakage from the data lines.

[https://www.theregister.co.uk/Print/2012/05/03/unsung_heroes...](https://www.theregister.co.uk/Print/2012/05/03/unsung_heroes_of_tech_arm_creators_sophie_wilson_and_steve_furber/)

</comment></comment></comment></comment></comment><comment><USER14> Wonder how K8s would do on the 4GB RPi models... With a netboot controller, even better I'd suspect.

<comment><USER15> I've been running a K8s on the 3B+ for over a year and it works, just barely ([http://pidramble.com](http://pidramble.com)). The one major constraint, and almost always the cause of control plane outages, was the 1 GB of RAM on the master. Now that I can get a Pi with 4 GB I think it will be a lot more resilient!

Note that the other Pis did just fine running typical workloads, as long as I kept the overall deployment memory constraints in check.

<comment><USER14> That seems to be the general complaint... running K8s on less than 1GB ram seems to be unmanageable for the most part... with the new models, it might actually be a good idea to try a few clusters of these.

</comment></comment></comment><comment><USER16> The real question is:

Can I buy the chips? Can I get the technical documentation?

If I can't build my own RPi in volume, this is _STILL_ a problem.

<comment><USER11> I too wish you could get pi's in quantity.

For similar systems in quantity, a guy I know used toradex

<comment><USER17> I don't know about your local distributor, but RS Components will sell you as many as you like; they've currently got 47,400 3B+ boards in stock, no maximum order and a price break at full box quantities (150).</comment></comment></comment>


Yandex Overtakes Bing as World's Fourth Search Engine - <AUTHOR> http://blogs.wsj.com/tech-europe/2013/02/11/yandex-overtakes-bing-as-worlds-fourth-search-engine/

<comment><USER2> Is Yandex really a search engine? My website _never_ gets referrals from Yandex, but Yandex constantly indexes and re-indexes my site.

When I search for stuff on yandex.com that my website is really high in Google, I don't see my site, I get spammy/scammy links sort of to my site.

</comment><comment><AUTHOR> Essentially ...

"Now that is embarrassing. You would think with all of the money, might and power of Microsoft, they'd be higher in total search volume. So either Yandex is kicking some serious butt or Bing is slowing down."</comment>


The Misuse of Recursion - <AUTHOR> http://sam-koblenski.blogspot.com/2013/04/the-misuse-of-recursion.html

<comment><USER2> I was a little disappointed that he didn't point out that there is an O(1) formula for fibonacci numbers. [http://en.wikipedia.org/wiki/Fibonacci_number#Closed- form_ex...](http://en.wikipedia.org/wiki/Fibonacci_number#Closed- form_expression)

<comment><AUTHOR> That is a closed form expression, but it is not O(1) unless the processor can raise a number (an inexact floating point number, no less) to a power in constant time. The closed form expression is still O(n) because of multiplication, and the result isn't an exact number unless the constants are run out to enough precision for the value of n that is being computed.

<comment><USER2> There is a rounding formula that should make it possible to implement efficiently in inexact floating point arithmetic. (I think knuth gives a solution in TAOCP).

Also, depending on how you are accounting for the 'size of n', the iterative algorithm has time O(2^b) where b is the number of bits required to represent n and the closed form is O(b).

<comment><AUTHOR> There's a fascinating discussion of this on stackoverflow: [http://stackoverflow.com/questions/1525521/nth-fibonacci- num...](http://stackoverflow.com/questions/1525521/nth-fibonacci-number-in- sublinear-time)

If you want an exact value for a particular Fibonacci number, it will take at least O(n) time regardless of the algorithm used because a Fibonacci number 'n' has O(n) digits, and it will take O(n) time to clear and set the memory for that number. In any case, there is no O(1) algorithm. There is an O(ln n) algorithm for small 'n' for which the result will fit within the processor's native data types.

I had not thought that Fibonacci numbers increased quite that rapidly, but after thinking about it, it makes sense.</comment></comment></comment></comment>


The Everything Bubble Is Ready to Pop - <AUTHOR> http://www.mauldineconomics.com/editorial/infographic-the-everything-bubble-is-ready-to-pop <comment><USER2> What if it is just the USD losing value against assets? You know, inflation not reported correctly.

If "everything" is bubbling, then relatively speaking prices are the same.

<comment><USER3> This is exactly the first thing that occurred to me, but I'm far from an economist. It does seem that if literally everything was in a bubble, that would be equivalent to the dollar having less value. It would be wildly out of line with CPI inflation, and I'm not sure what that means. Perhaps consumer goods have just become very cheap.

Alternatively, maybe "everything bubble" means a very high amount of capital investment.

<comment><USER2> I don't think consumer goods are getting cheaper. The iPhone is getting more and more expensive (even not counting the iPhone X price bump).

But should consumer goods (food/small items) be small in developed economies? Things like Rent, Transport (Car/Travel), Health Care, etc... should weigh more.

Wait, these are all getting expensive or am I wrong?

<comment><USER4> > I don't think consumer goods are getting cheaper. The iPhone is getting more > and more expensive (even not counting the iPhone X price bump).

Oh please. What about food? Fuel/energy? Insurance? Clothing? Any single one of these budgets is bigger for probably all of us than our smartphone budget.

As for myself, all of the above budgets (except for fuel/energy maybe) have gotten slightly _cheaper_ in recent years. (I live in Germany.) And that includes smartphones; the average smartphone is lasting longer and getting cheaper unless you're looking at the flagships whose price is driven entirely by market segmentation.

<comment><USER2> Interesting observation given that I had fuel/energy get cheaper while the rest not. So it certainly depends on location.

But the point of measuring inflation is to have a specific thing/standard and match it with other years. It would not be fair to say phones got cheaper because you got your new Android-Samsung-Clone from China.

When you say clothing got cheaper, is it the same brand/item/time of the season. Your insurance got cheaper? Is it because you didn't have accidents and you got upgraded?

</comment></comment></comment></comment></comment><comment><USER5> There's a really interesting book called "Fed Up" written by Danielle DiMartino Booth, who worked inside the Fed for a number of years during the last popping of a bubble.

[https://smile.amazon.com/Fed-Up-Insiders-Federal- Reserve/dp/...](https://smile.amazon.com/Fed-Up-Insiders-Federal- Reserve/dp/0735211655?sa-no-redirect=1)

She's done a number of interviews on podcasts as well. This one was decent: [http://www.jasonstapleton.com/571-author-danielle- dimartino-...](http://www.jasonstapleton.com/571-author-danielle-dimartino- booth-and-her-book-fed-up/)

</comment><comment><USER6> How can there be an "index" bubble like at the bottom of the infographic. Who cares how the funds are invested? It's this exactly equivalent to saying there's a general stock market bubble, which he says earlier? Why does it matter if a large part of that money is being invested by index funds?

</comment><comment><USER7> You can't loan people huge sums of money with no interest and expect bubbles not to arise.

</comment><comment><USER8> This infographic was seen recently, previous HN conversation here: [https://news.ycombinator.com/item?id=15364537](https://news.ycombinator.com/item?id=15364537)

</comment><comment><USER9> The housing bubble part of the infographic made me laugh. Saying we're in another housing bubble because prices have risen dramatically since the bottom of the last crash is laughable. We may very well be, but those numbers are more indicative of a recovery not a bubble, imo. In a lot of markets the median prices still are below what they were at the peak of the bubble 10 years ago, not even factoring in inflation.

We're probably due for a correction but not related to real estate, though home prices would certainly be affected.

<comment><USER10> If housing prices were indeed inflated then there's little difference between a "recovery" and the bubble inflating again (assuming prices didn't crash to something well below reasonable value).

</comment></comment><comment><USER11> Two quotes from his newsletter:

> Passive investing is all the rage. Buy SPY, make regular contributions, > retire. That's today's wisdom, and it's completely wrong.

> Think like Warren Buffett for a second

I don't know what he's trying to sell, but I wouldn't take any financial advice from him.

<comment><USER12> > Think like Warren Buffett for a second

Buffet is actually a fan of S&P 500 index funds, such as SPY:

 _Buffett wins $1M decade-old bet that the S &P500 would outperform hedgefunds_

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

</comment></comment><comment><USER13> Are there any other sources corroborating this?

<comment><USER14> I think it's just a prediction. There's always people predicting a downturn when things are frothy in the stock market. Inevitably someone gets it right and looks like a genius when things crash.

<comment><USER13> Well, normal markets have a sawtooth growth pattern. It's only a matter of time till each of the discussed markets reaches bubble-proportions, then pops. History proves that with both the stock/real-estate markets. But I haven't heard anyone else predicting 5 simultaneous bubbles like this.</comment></comment></comment>


Show HN: Unlimited web analytics services for a flat monthly fee - <AUTHOR> https://hitmetrics.io <comment><AUTHOR> Grow your business with web analytics without the high costs associated with hiring a full-time analyst or working with unknown budgets and schedules of contract work.</comment>


Ask HN: Client won't pay, is he breaking the law in any way? - <AUTHOR>

A client was supposed to pay me between $10-15K for work already done. According to the contract, I was to have been paid couple weeks ago.
However, he's sent two checks that have credited to my account and then returned. This is even worse as its overdrawn my account for the funds I used up before the check was returned.
Finally, he claimed to have sent a wire that should have showed up but still hasn't. He's given me tracking numbers that are not the fed wire number.
My patience is waning and he's put my life in a wreck.
Is he merely breaking the contract or does anyone know if he could be breaking the law by telling me of all his attempts to pay me and blaming it on banking errors? Do I need a lawyer or do I need the cops? Or both?
Thank you. <comment><USER2> I had a similar situation but for less cash, I did't even get a lawyer involved, just threatened them with small claims court in an email, and they paid up.

Hope you get it sorted, unfortunately there will always be people like this.

Also, absolutely charge them interest on the invoice, as well as any fines you incurred by going overdrawn.

Good luck.

</comment><comment><USER3> Unfortunately, the only recourse is to have an attorney send a letter declaring a plan to file a lawsuit if payment is not made by a given date, which will cost around $300/hr for a few hours. The follow-on lawsuit will cost at least $3K to get started, and more likely $7-10K to close. It's important to note that choosing the lawyer option can cause the client to dig their heels in (they know how much it will cost you to run a lawsuit and might just let you burn the cash in an attempt to call your bluff). Freelance workers often require a retainer or upfront payment to reduce their risk of payment defaults.

<comment><AUTHOR> Thanks. This is why I have remained very civil so far. Another option is to directly call up the company I was doing the project for which had hired my client. They always liked me on a professional level though I never tried to cut out the party that hired me for obvious ethical reasons.

Someone told me he may be indulging in fire fraud of some kind so I am exploring that angle.

</comment></comment><comment><USER4> Does your contract have a clause for non or late payment?

I would begin a paper trail of non-payment. Certified letter notifying that payment is late, and assess late payment fees if not paid by a certain date.

</comment><comment><USER5> If I were in your situation, I'd be speaking with my lawyer to get answers to those questions. Best of luck in getting paid!

</comment><comment><USER6> Local client? Show up at his office. It's much harder to blow off people in person. Remain civil and cool, but be clear that you're not going to write this off.</comment>


Show HN - ShoeVox: Kinect-Like Voice Control for Your PC Multimedia - <AUTHOR> http://blog.rsbaskin.com/post/3717628154/shoevox-voice-control-for-your-pc

<comment><USER2> Rob and I built ShoeVox over the past few weekends after being intrigued by the possibilities of Kinect-style voice control for PC applications.

We're using the speech recognition engine built into the .NET framework (presumably based on technology from Microsoft's TellMe acquisition) to detect a fixed grammar. The set of programs and commands for each are configurable by a simple XML file.

We're also leveraging WMI to monitor OS process creation/deletion events, and only run the SRE when a known target program is running to save CPU resources.

When Microsoft releases the Kinect SDK, we'd like to take advantage of its microphone array to do better background noise filtering. We also want to expand support to include browser plugins, as so many people now use Hulu and Netflix as their primary means of media consumption; if you have ideas about how to automate browser plugin UIs, we'd love to hear from you.

I was pleasantly surprised by how easy and high-quality speech recognition was with .NET, and I'd encourage others to experiment with it. We have some other ideas for how to leverage speech in desktop applications, but suffice it to say there is a raft of opportunity in the space beyond traditional dictation software.

Feel free to ask any questions about the speech recognition, process monitoring, keyboard simulation, etc.

<comment><USER3> bookmarking to try this out when I get home tonight, XBMC support would be a welcome addition.

Does this have the ability to use the kinect mic already? Or will I need to plug in a regular mic?</comment></comment>