Please Don't Kill Feedburner - <AUTHOR> http://pleasedontkillfeedburner.com/

<comment><USER2> I remember reading something regarding feeds and Google. Basically in terms of numbers, they just don't feel that anyone users it. Hence why it's unavailable on Chrome. It's a shame. Feeds can be really useful. Though I'll admit they're a niche market.

<comment><USER3> I'll continue to publish and consume feeds, regardless of what Google thinks. Lets not let them set the de-facto standards for the web.

<comment><USER2> I'm with you 100%. For an incredibly long time I've wanted to see Firefox assimilate the Brief extension. I especially hope they do so with all the furore surrounding Twitter.

</comment></comment></comment><comment><USER4> Seems ripe for another company to come in and pick up where Feedburner left off.

<comment><USER5> Business model?

<comment><USER6> How about $9.49 / month

<comment><USER5> $120 a year for rss feed traffic figures? I say go volume and increase price post-growth. $12/year.

</comment></comment></comment></comment><comment><USER7> The implications this holds for the "open web" aren't pleasant, but I'm also scared about the idea that killing Feedburner would be the prelude to killing off my beloved Reader.

If Google really isn't getting anything out of maintaining feed infrastructure, someone must see Reader as dead weight at this point.

<comment><USER8> Sadly, I think Google's problem with Reader (and Bookmarks, etc) is that they don't require a g+ account and aren't "social" enough.

</comment></comment><comment><USER9> One of the feeds I to which I subscribe, preemptively moved off of Feeedburner a couple days ago.

[http://badassjs.com/post/32738175366/moving-off- feedburner-p...](http://badassjs.com/post/32738175366/moving-off-feedburner- please-update-your-rss-reader)

The primary reason the author was using it was for the subscriber count. He created a quick script to wrap his feed to give him counts.

<https://gist.github.com/3816875>

</comment><comment><USER10> Whilst I did use Feedburner, I jumped ship as soon as I heard they were shutting off the API. The only thing that I used Feedburner was for the subscriber count, but I've now switched the URLs around on my blog and added a little IP based tracker that more or less gives me the count.

I don't know if I just didn't 'get' Feedburner, but the only appeal for me was the subscriber count, was there any other key features that your own RSS feed cant be modified to do?

<comment><USER11> See other comments regarding email delivery.

</comment></comment><comment><USER12> Are there any competitors in this market left? What are the key functionalities people are looking for/going to miss from feedburner? Would people PAY for these tools?

<comment><USER13> Bloggers are typically interested in:

\- Knowing how many RSS subscribers they have.

\- An easy way to offer email subscriptions (off by default with FeedBurner, but available on the Publish tab).

\- Offloading RSS traffic to another server.

\- Having a "portable" feed address. (If they change their domain or URL structure, they won't lose subscribers because they can just adjust the source feed in the feed service without affecting the public feed URL.)

MailChimp, Aweber, and the rest have replaced FeedBurner for email subscriptions for many because they offer more control over the HTML template, help build lists for other marketing efforts, and are generally better set up to guarantee delivery of email and report on opens and clickthrough rates.

That leaves feed count, traffic distribution, and portable feed addresses (plus whatever else you can come up with). I think there's potential for another service to cover these things because there are so few alternatives to FeedBurner. I'm not convinced that people would pay for it, though, but a free tier might encourage a few to give it a shot.

<comment><USER12> thanks for the thorough response. I wonder how profitable it would be if you charged say $5/year. guess its impossible to determine, because gizmodo or gadgt could sign up and destroy your average cost per user.

<comment><USER13> Tiered pricing is probably the only sane way to go for exactly the reason you suggest: big sites will use more resources.

FeedBlitz, perhaps the only real 'competitor' to FeedBurner at the moment, uses a tiered pricing model linked to the number of email subscribers you have. RSS subscribers are free. So that's one option. There will be others.

<http://www.feedblitz.com/pricing/>

</comment></comment></comment></comment><comment><USER14> I admittedly don't use Feedburner daily but I completely understand why keeping Feedburner is a good move. It's holding up the open RSS standard and a lot of people rely on it as a service. If Google doesn't want it, they should either sell it. Which admittedly they'll never do or open source it.

<comment><USER15> While laudable, would open sourcing it be of much use? The really useful part is the service, not so much the code.

</comment></comment><comment><USER16> Why exactly do people like FeedBurner so much? What is it for that having an RSS feed on your blog doesn't do?

<comment><USER17> The only value I see (and why I use it), is so that I can track how many RSS readers I have.

Also interesting - RSS (for me anyways) converts really poorly. On 100,000 pageviews, I only pick up about 100 or so RSS subscribers.

<comment><USER2> RSS is only really useful as a conversation rate in communities. Take HN for example, it keeps you abreast of recent stories without having to open the page. In news sites, it's even more useful to scan the news. The conversation comes when users opt to partake in discussion.

That said, some sites do it badly, my personal experience of ARS Technica for example. I'll often see an interesting article I want to read, but then see something like "Read the other 52 paragraphs" and decide to come back later at which I never do. There's an art to creating feeds, almost like sales-people that excel at converting window shoppers into actual shoppers due to how they design their shop windows.

</comment></comment></comment><comment><USER5> I just checked <http://skimfeed.com> and around 30% of the feeds are coming in through feedburner.

A few big names: Techcrunch, GigaOM, Cnet, Make, High Scalability, Ted, Tutsplus, Cracked, Metafilter, Discovery, Destructoid.

</comment><comment><USER18> Ha ha ha. I remember a few years ago when everyone was in love in Feedburner, blissfully ignoring the fact that they were choosing to give their users a RSS (or Atom) URL which wasn't in their own domain name space which they control.

<comment><USER19> You can give users a proper RSS/ATOM URL in your domain space and still use Feedburner -- redirect "mysite.com/feed" to your Feedburner URL. People started doing this years ago as a hedge against this exact situation, so that if Feedburner went down, your users' RSS clients will still point to an address under your control. For a while it was even an unofficial Feedburner recommendation. They had a blog post about it and everything. :)

<comment><USER20> Remember to do a temporary redirect, not a permanent one, as many clients are caching the destination.

</comment></comment></comment><comment><USER21> Yes, kill it.

If there is a market, somebody else will rise from the ashes.

<comment><USER22> What about all the existing subscriptions that will no longer work? That would be a nightmare for any blogger/podcaster.

</comment></comment><comment><USER9> I can see why people think RSS is dead, however with services like ifttt RSS has become so much more useful.

Here are some of my more useful recipes involving RSS.

* The obvious. Getting the latest and greatest post from a small selection of high quality sites delivered to my email. (this amounts to about 4 emails a week)

* Github commits rss feed get texted to me.

* Github wiki page edits RSS feed are emailed to me.

I know I'm speaking to the choir but standard structured data is vastly useful.

</comment><comment><USER23> My understanding is that the main reason Google bought FeedBurner was a signal to pagerank. More subscribers = more influence.

</comment><comment><USER24> Wow, they tried to jack everything about The Oatmeal's style, but did a poor job of it.

Love feedburner, but you have to wonder why they couldn't be themselves.

<comment><USER25> I don't believe this actually came from Feedburner -- this is from a blogger who uses it.

</comment></comment><comment><USER26> I don't even remember what it is that feedburner does; perhaps you should have (re)sold me on the concept so as to get new blood involved.

</comment><comment><USER27> What is the purpose of using feedburner? -> Statistics? or the possibility that users can subscribe by email to your updates?

<comment><USER20> Both.

</comment></comment><comment><USER28> Or you could get a feedblitz account and actually use a product that will support it's users.

</comment><comment><USER29> I was onboard until I saw the Comic Sans font, that's where they lost me.

<comment><USER10> I love the fact not only is it comic sans, but it's an entire image block, as if Comic Sans wouldn't render properly on everyone's machine, they created an image to make sure everyone enjoys the same Comic Sans experience.</comment></comment>


Apple II connecting via acoustic coupler modem and rotary phone (2015) [video] - <AUTHOR> https://www.youtube.com/watch?v=TAg0cQJ8Aag <comment><USER2> A coincidence to see something posted on the Apple II. I had serial number 71, and I wrote the shitty little free Chess program that for a while Apple distributed on their Apple II demo tape.

I was thinking last night how far Apple specifically, and technology in general have progressed since the late 1970s because I was reading docs and articles about my Apple Watch and experimenting with everything that I could do just on my Apple Watch: it runs a surprising large number of cool iOS apps (Night Sky being one of my favorites), can directly access the App Store, can locally store and play audio books, podcasts, music, etc.

The Apple II was amazing and I really loved it, even though I stretched my use too wide for the hardware (I developed a commercial Go playing program in UCSD Pascal, and had FORTRAN on it also).

It makes me happy to see people still hacking with old Apple IIs.

<comment><USER3> I was about to get myself an Apple II but I couldn't decide which model and in the end I got myself a C128D which I am restoring at the moment. The Apple II is still on my wishlist.

<comment><USER4> Have you ever used 128 mode? What software other than GEOS if any at all?

Btw C128D BOM cost Commodore as much as Amiga 500, and they barely made any money on them.

</comment></comment></comment><comment><USER5> Fun trivia about rotary phones: it takes longer to dial higher digits (0 taking the longest), so major cities (more people, more calls) got lower area codes like 212 (Manhattan) vs 307 (Cheyenne, Wyoming).

The general idea is like Huffman coding.

<comment><USER6> Personal trivia... I once lived in area code 909, which was the worst of the rotary-dial era.

<comment><USER7> 909 was not established though until well after the rotary-dial era was over, I had a rotary phone in the 90's and was calling 909 numbers, but I was a distinct minority.

</comment></comment></comment><comment><USER8> I miss modems. I miss the noise, I miss the magic, and I miss the community.

</comment><comment><USER9> Acoustics is such a high dimensional medium yet one humans can readily manipulate... This reminds me of [1] (2016), where they optimize a 3D series of conduits so that they produce the desired output signal (given object shape and output audio frequency).

I wonder if one can arrange such conduits (6-way connected pipes and chambers) to replicate a feed forward neural network. If it can be done with light...

These pipes could be interesting to work with, maybe in order to build DAGs. Plenty of software take DAGs as an executable input! Can someone put me in contact with the people at [dynamicland]?

[1] [https://www.youtube.com/watch?v=7JbN9vXxGYE](https://www.youtube.com/watch?v=7JbN9vXxGYE)

[dynamicland] [https://www.dynamic-land.com/](https://www.dynamic-land.com/)

<comment><USER10> > I wonder if one can arrange such conduits (6-way connected pipes and > chambers) to replicate a feed forward neural network. If it can be done with > light...

It actually _can 't_ be done with light, not without active switching components or very high intensities. (The "optical neural network" papers published so far are fully _linear_ networks, lacking the nonlinear activation functions between layers that are critical for deep neural networks to have any more power than a single matrix multiply).

However, I think nonlinear _acoustic_ properties are actually more accessible than nonlinear optical properties, and so an acoustic neural network may be more plausible.

</comment></comment><comment><USER11> I had four Apple IIs (IIgs, rest IIes) and I had a network going and everything. Sold them all in 2003 because of no job for over a year. Sold them all for $250. I could get $3000 today if I still had them, but I wouldn't sell them.

</comment><comment><USER12> The whole plot of Hackers (1995) would not be possible without pay phones and acoustic coupler modems!

<comment><USER13> Heck, a whole chunk of my career wouldn't have been possible without pay phones and acoustic coupler modems!

</comment></comment><comment><USER14> I purchased an AppleIIe recently with a serial card and connected it up to my linux box as a dumb terminal. I was able to do load the Google home page and do a search and navigate to results via the keyboard.

I remember quite clearly in my childhood having an Apple IIe with a 2400 baud modem; I couldn't use BBSes that ran faster than 300 bau, because the built-in terminal was "too slow". I ended up getting Proterm and later talking to the author, who said he used interrupts and a buffer (I had no idea what that meant, and managed to fry my Apple later trying to invoke an NMI). ALl valuable lessons!

</comment><comment><USER15> This is awesome. When he put the phone on the modem it was a revelation.

</comment><comment><USER16> (2015)

</comment><comment> dang-it I remember seeing and acoustic coupler used for the first time in, I believe, Mission Impossible. Ethan Hunt takes out an adhesive pad and sticks it to a payphone and "dials in" to a mainframe or something.

Seemed incredible at the time!</comment>


Test flight of RRL Rocket Racer with Armadillo Aerospace - <AUTHOR> http://www.youtube.com/watch?v=r8ouSwCn8so <comment><AUTHOR> For anybody who doesn't know, Armadillo Aerospace is the brainchild of John Carmack (Doom, Quake) and they're one of the few startups who have a serious shot at achieving privately funded spaceflight.

Here is John's explanation for the flight:

[http://armadilloaerospace.com/n.x/Armadillo/Home/News?news_i...](http://armadilloaerospace.com/n.x/Armadillo/Home/News?news_id=361#video)</comment>


Vote up if you would like news.Ycomb add a feature where users can save their favorite stories - <AUTHOR>

<comment><USER2> I'm pretty happy for just using delicious for that. It's always nicer when sites interact well with existing sites instead of bolting on a half assed version of the same functionality. Not to say that Paul's in the business of half assing things, but rather that it's slightly orthogonal to the main value of news.yc and already exists (done well).

<comment><USER3> Arguably search is an orthogonal constraint too, but crawlers inevitably are a few days behind the curve.

Yesterday, for example, I spent an hour tracking down this comment. Eventually I had to triangulate based on the users I remembered in the thread. <http://news.ycombinator.com/comments?id=13037>

The search engine at bigheadlabs seems to have stopped crawling as well.. <http://news.ycombinator.com/comments?id=4780>

Just another use case to think about. You can't sustain good conversation without giving people the tools to read smart.

<comment><USER4> I noticed the indexer broke sometime last week, but I had been too busy to debug the issue. I'll try to take a look at it sometime tonight.

<comment><USER3> Thanks!

</comment></comment></comment></comment><comment><USER5> The way to do this is to go to the feature request thread and put in your point. People will vote it up there if they like it. This keeps the rest of YC news clear of feature requests and focuses more on start up stuff.

<http://news.ycombinator.com/comments?id=363>

<comment><USER6> I think the features request thread is overwhelming at this point. There's just too much there for new information to rise to the top.

</comment></comment><comment><USER3> Or let me search through your stories. Why _is_ YC displaying only the tip of the iceberg?

<comment><USER7> I want to Search too. I think its important. Even its just google coop.

<comment><USER8> time might be the constraint ~ <http://news.ycombinator.com/comments?id=4780>

</comment></comment></comment><comment><USER9> This is a useful feature, but as I understand YC already supports it.

Assuming you only upvote the stories that you actually are interested in, you should have an easy record of all of them by going to your user page.

</comment><comment><USER10> Vote up if you would like people to stop misusing karma voting for polls.

<comment><USER5> I read what you wrote and my finger was sweeping down to click your up arrow. Then time slowed and the realization of what you're doing hit.

Why do you torture me like this? It's not humane.

<comment><USER10> All part of the service, Sir.

</comment></comment></comment><comment><USER11> If you use an aggregator that preserves the history of the feed, then you have access to all the past articles. A bit of a hack though and it will be nice when it's actually part of the site.

</comment><comment><USER12> paul, could you add some words from the story's title to the title tag for the page? So that when we bookmark, it's not always the same "YC Startup News"...

</comment><comment><USER13> Instead, why not let people see what they (or everyone else) has voted up? If I'm looking for something I've saved, I probably voted it up...

</comment><comment><USER14> What is wrong with just voting up stories you like? Isn't that the entire point of voting?

<comment><USER15> Because, when you want to actually use that "color-picking thingy" you saw here 5 months ago, you have no idea how to find it.

</comment></comment><comment><USER16> "Add to del.icio.us" link would do it for me.

<comment><USER17> Have a personal Bookmarklet to do that so every page isn't cluttered with such links. Digg this, Reddit that, etc. Bah, humbug.

</comment></comment><comment><USER18> I did not realize Yc was a democracy.

</comment><comment><USER14> Sorry...double post.

</comment><comment><USER19> <downvote/></comment>


Simpler UI Logic With Finite State Machines - <AUTHOR> https://terodox.tech/ui-state-machines/ <comment><USER2> I like the idea of using FSMs for UI logic a lot but this article barely even scratched the surface on the topic. Their "state machine" is basically just a switch statement with some useless boilerplate around it. If anyone's interested in the topic I'd recommend looking at the statecharts from overmind ([https://overmindjs.org/guides/intermediate/06_statecharts?vi...](https://overmindjs.org/guides/intermediate/06_statecharts?view=react&typescript=false)) and xstate which I believe was their inspiration ([https://xstate.js.org/](https://xstate.js.org/)).

<comment><USER3> I agree, I also think FSMs + 3D vector graphics (bezier surfaces etc) with 3rd dimension for time, can replace a lot of javascript code, and any remaining requirement for turing complete languages should be explicitly apps, instead of websites, so the web can start clean up the javascript hogging and tracking mess...

</comment></comment><comment><USER4> I find "state" to be quite an overloaded term, especially in React land, so I use "stage" instead for the various state machines in our applications. It's caught on in our org and I've heard no complaints.

State machines are great but they get quite complicated when you have two machines interacting at some point. I find this happens quite a bit for complicated UIs, like a data grid with filter and search controls, in-row controls, a preview pane on the side, etc. Things that can be reasonably simple become overly complicated as you try to cram everything into a state machines model.

It's hard to give concrete examples... but it happens often. I even find myself doing it.

Rust enums (sum types) are really good for doing FSMs, as they:

\- Allow you to add fields to each state, which makes it easier to understand what each state is for at a glance.

\- Prevent you from accessing fields for a different state at the wrong time.

\- Make it easy to do nested states, without that nestedness existing for states that don't need it.

\- Provide exhaustiveness warnings for if you're not handling a case.

I do wish more languages had sum types.

<comment><USER5> The number of possible states exploding is indeed a problem with frameworks like React.

One mental model that helps reduce this load, that you alluded to, is avoiding product types where possible in favor of sum types.

Eg. Imaging you have a type describing React props for some component: {a?: number} and {a: number} | {} seem very similar on the surface — they both describe an object with a single field that may or may not be defined. In both cases you have 2 possible states.

But as soon as you add another field, the number of states can grow quickly unless you're thoughtful: {a?: number, b?: string} has 4 states, while the model you might have been trying to describe — {a: number} | {b: string} — still has just two.

The less states you have, the easier it is to reason about and automatically verify your model. But in practice, people often accidentally introduce product type where they meant to use sums. I see this with Flow and TypeScript-typed React code all the time.

<comment><USER6> "{a?: number, b?: string} has 4 states, while the model you might have been trying to describe — {a: number} | {b: string} — still has just two."

The problem I've run into with the second approach as the number of states expand is 1 - you end up with tons of boilerplate to discriminate between types, and 2 - it becomes hard to treat objects polymorphically.

I sometimes end up doing {a: number, b?: undefined} | {b: string, a?: undefined} so that I can write `if (obj.a) doSomething()`, but it obviously gets unwieldy with a lot of properties and states. Imo it would be nice if TS did this automatically so that I could check for the existence of any property that _might_ be defined on an object.

<comment><USER7> Right, TS wants you to go full-on tagged union.

        {type: 'a', a: number} | {type: 'b', b: string}

When you do this you consume it with a switch(x.type) statement, not an if() statement, so that you can write `default: assertImpossible(x.type)` for some function `assertImpossible(y: never): never` that throws an exception of your choice.

This gives clear fail-at-runtime semantics if JS hands you some crap your types weren't anticipating, but also fail-at-compile-time semantics if your pattern match is no longer exhaustive (i.e. you added a new case, now TypeScript tells you everything you need to change).

In general it's really nice to view any data structure as isomorphic to the control structure that consumes it. "lists" are consumed by for..of loops, "dicts" are consumed by for..of Object.keys() loops, sum types are consumed by switches, objects are consumed by property accesses, etc.

<comment><USER5> If your code is fully typed, you don't need the default, since you know at compile time that you've handled your cases (Playground link: [0]):

        type Props =
          | { type: 'a', a: number }
          | { type: 'b', b: string }

        function f(props: Props): number {
          switch (props.type) {
            case 'a': return 1
            case 'b': return 2
          }
        }

Unfortunately you're right that this breaks when using `if` instead of `switch` (unless you have a default return at the end of your function, or replace one of your `if`s with an `else`; Playground link: [1]):

        type Props =
          | { type: 'a', a: number }
          | { type: 'b', b: string }

        // Error TS2366: Function lacks ending return statement and return
        // type does not include 'undefined'.
        function f(props: Props): number {
          if (props.type === 'a') {
            return 3
          }
          if (props.type === 'b') {
            return 4
          }
        }

This second case is a bug in TSC, and is tracked in [https://github.com/microsoft/TypeScript/issues/18319](https://github.com/microsoft/TypeScript/issues/18319).

[0] [https://www.typescriptlang.org/play/#code/AQ4FwTwBwU2AFATgey...](https://www.typescriptlang.org/play/#code/AQ4FwTwBwU2AFATgeygZ2AXgFClAH2AG9xoYAuYAcgEMqAaYGygOwFcBbAIxkWAF9ceYIRKRYlKlwbAulNGEQBLFgHMB2ISABmbFgGMwS5C2DaAFFBTpKSVGgCUrTjz5EtoNAHclYfQAtgS2s0ADpxGAdiDzx9GjQ4WipKRBgwNkRTAGYY0DiE6mkUtIzTABZcwTxBIA)

[1] [https://www.typescriptlang.org/play/#code/AQ4FwTwBwU2AFATgey...](https://www.typescriptlang.org/play/#code/AQ4FwTwBwU2AFATgeygZ2AXgFClAH2AG9xoYAuYAcgEMqAaYGygOwFcBbAIxkWAF9ceYIRKRYlKlwbAulNGEQBLFgHMB2ISAD024AFFEKPgBUAygCYAzADYblAGJsWAYzBLkLYABsaLgNYYMCwAJirqiDBgbIheCjRgMBzBYEyhwJHRsVrAuqSwwCHIMBgsyKkqLt5sIXBUzrUAZiowIVQAdDmNzm4eXo0AFFAo6JRIqGgAlKycPHxEOSBKjcBDI2jt4nCYO9R0k8SLoJkxXlZHgsLAy6vDE5tkWLtSVAcLVyAnscAALBc5giAA)

</comment></comment></comment></comment></comment><comment><USER8> "If you haven't built a finite state machine, you've built a bad finite state machine."

I've recently started using Fulcro (framework in ClojureScript), where they are first class citizens in the form of "UI state machines."

[http://book.fulcrologic.com/#_ui_state_machines](http://book.fulcrologic.com/#_ui_state_machines)

In retrospect it's obvious how much better it is to contain, for example, the logic of logging in and signing up within an FSM.

<comment><USER9> > "If you haven't built a finite state machine, you've built a bad finite > state machine."

Thank you!

I read the article, and then beyond, and I still don't know what in tarnation distinguishes an FSM from a simple state. Every program has a set of states and transitions. Is the difference simply that in an FSM the programmer has modeled both sets explicitly? And if so, what is the model -- a map from states to available transitions?

<comment><USER10> The main difference between a FSM and a statechart is the compositionality aspect of the two formalisms. The FSM can be combined using the OR and the AND operators: the AND operator produces a number of states that is equal to the cartesian product of the original states of the two FSMs that are conjuncted. This means that you are limited in the usefulness of the FSM by the number of interactions between systems, because the number of states increases exponentially.

The statechart solves this problem by using a representation that allows both OR and AND avoiding the state explosion. Multiple states can be combined in a super-state, which allows to model common properties of the enclosed states, provided that the internal substates are XOR-ed, i.e. only one of them can be active in a given time. The advantage of the super-states is that they allow the specifier of the system to proceed in a top-down manner by specifying iteratevily the complete behaviour of the system. These super-states can also conjuncted, to model the interactions between the systems and to represent their parallelism. This conjunction creates implicit interactions between the two subsystems, which substitute the need to create the product FSM.

Both FSM and statecharts can represent the same behaviour of a system, but they differ in how easily understandable their representation can be for complex systems.

</comment></comment></comment><comment><USER11> That looks a whole lot like Elm's Custom/Union/Sum types, except the compiler helps by making `STATE.isValid` redundant (which the programmer might forget to call).

<comment><USER12> A proper sum type would go way beyond that because each state would only contain (and have access to) the relevant data as well, whereas with a C-style enum the data is "sibling" to the enum, and so you generally get possibly garbage or irrelevant data in every state and the possibility for that garbage to not be properly initialised or overridden on state transition.

And the compiler would further ensures that you are _handling_ every possible state at every level.

One problem I've often encountered with UI state machines is the explosion in error states, and the "proper" handling of invalid state transitons (unexpected operations) not from a technical perspective but from a UI perspective.

</comment></comment><comment><USER13> FSMs (and HSMs, the hierarchical version) are very useful for UI design, I am afraid the point that the article is trying to make:

> A simpler approach would be to have a single variable for state, and only > allows switching between well known states!

Was not reflected in the code, since it's possible to transition directly from "error" to "success" without going through "submitted".

Which makes me wonder: Does anyone know whether there's existing art for proving UIs using something like TLA+? Sounds like in interesting match, if your UI is following a FSM pattern.

</comment><comment><USER14> At the last company I worked with, our React codebase was very heavy with enums for exactly this reason (thank you Typescript). Anecdotally, it makes reading a new codebase WAY easier: switch(state) is much easier to understand than if (a bunch of flags).

</comment><comment><USER15> This is a good article to tell everyone that Qt extensively supports finite state machines to simplify UI logic, to the point that it even allows developers to use State Charts XML (SCXML) to CRUD finite state machines that drive UI states.

</comment><comment><USER16> This makes me wonder if something similar can be done with petri nets.

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

<comment><USER17> Philippe Palanque and the Interactive Critical Systems research group at Toulouse [1] have been ploughing this furrow for years, on the academic side but with industrial applications mainly in avionics. So this kinda stuff is happening, but it's still niche.

See e.g. [2] for more on one of the Petri-net-based formalisms they're using.

[1] [https://www.irit.fr/recherches/ICS/](https://www.irit.fr/recherches/ICS/)

[2] [https://www.irit.fr/recherches/ICS/softwares/petshop/ico.htm...](https://www.irit.fr/recherches/ICS/softwares/petshop/ico.html)

</comment></comment><comment><USER18> This is the most basic multi-state machine you could make. You could do this with a typescript enum, giving you compile time type checking "for free".

I've tried this "state machine" approach but the problem with designing a React/UI component to respond to a single "state" value like this is that it's not uncommon to end up wanting _more_ states like "has errors and loading", or "has data and loading". At which point you find you're building lots of similar looking subcomponents which get torn apart every time you add a new attribute to the combination. Sometimes it's easier to deal with the combinatorial number of states by passing in the attributes separately and deal with the combinations of state with if/ternary statements, exactly like in the original example.

Plus you don't have to have the switch statement argument with someone for whom not using them was the only thing they remember from Uncle Bob's Clean Code :grin:

</comment><comment><USER19> Another good example is how in MATLAB an app UI can be integrated with state diagrams (Stateflow charts)

[https://www.mathworks.com/help/stateflow/ug/analog- trigger-a...](https://www.mathworks.com/help/stateflow/ug/analog-trigger-app- using-stateflow.html)

</comment><comment><USER20> Something more advanced, but similar to FSM is GOAP.

It's used in calling AI for bruteforcing possible actions according to a state that a NPC can use.

I recommend to read it/check it out, the AI of FEAR ( which is excellent) is based on it.

<comment><USER21> For anyone who wants to try it, I played around with GOAP a little last year. Here are a few things I learned that might help someone else get started:

Represent your state space as a graph and run A* over it to find a "path" (or plan) from starting state to goal state. A simple heuristic to use for the A* distance heuristic (which I saw in one of the gamedev talks, I don't remember if in FEAR but its likely it was) is to simply count how many variables are correct and use that count as the distance heuristic (they used simple boolean variables, if you use numeric values it may be harder, but I suppose you could still just count how many goal variables are met).

I also attempted to use prolog-style logic programming (in clojure's core.logic) to search for a plan, but I never finished it. I guess I overcomplicated it by being too ambitious. I wanted the actions to be able to have preconditions like "have at least N of X" and the goal to have similar conditions and have the planner keep track of counts. It worked to a degree but I never finished it because it started getting too complex for my limited knowledge of logic programming.

</comment></comment><comment><USER22> The fun part is when you need to integrate anything that's not synchronous into a classic state machine. It just does not work.

Message passing between FSMs usually does instead and makes them simpler.

</comment><comment><USER23> IME pure finite state machines are too limited. E.g. on Android, you have a "go back" stack that you can integrate into a custom state machine, but not into most state machine frameworks. Another difficulty is animated transitions. While transitioning, are you in the start state or the end state? It depends on why you're asking!

If you can make it work, a state machine for navigation is great, but it's often not so easy.

</comment><comment><USER24> Swift is extremely good at this pattern. I've been using this pattern a lot with associated values. You remove any ambiguity in the state of your view controller, and any unhandled state generates a compiler error (so long as you doggedly refuse to implement a default handler).

<comment><USER25> Nice, Swift also handles having all the transition changes as well. I wrote a small post about how to do this: [https://gist.github.com/kolodny/6fa6aa34a711d36e9de01cec4409...](https://gist.github.com/kolodny/6fa6aa34a711d36e9de01cec44091557)

</comment></comment><comment><USER26> > A simpler approach would be to have a single variable for state, and only > allows switching between well known states!

In web apps, this is the route, as the browser comes out of the box with a familiar and handy UI for traversing and sharing state.

</comment><comment><USER27> Isnt this state based transition what react/redux tries to accomplish ?

</comment><comment><USER28> This translates well to backend code too. Really _any_ programming.</comment>


Why Windows 7 Tablets Won't Kill iPad - <AUTHOR> http://mikeschaffner.typepad.com/michael_schaffner/2010/08/windows-7-and-tablets-an-ipad-killer.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+MichaelSchaffner+%28Beyond+Blinking+Lights+and+Acronyms%29&utm_content=Google+Reader <comment><USER2> To be followed up by "Why dogs won't run over cars"</comment>


Google switches everyone to Gmail's new compose window - <AUTHOR> http://thenextweb.com/google/2013/08/13/google-switches-everyone-to-gmails-new-compose-window-says-farewell-to-the-old-version-for-good/

<comment><AUTHOR> It's 8 years since I used a desktop mail program and after a few hours with this, I'm close to pulling the trigger on switching back. It's hideous and strongly encourages top posting like some e-mail newbie :-( I could accept it on something that's trivial like Facebook or Twitter but it's too essential my e-mail experience be smooth and straightforward.

</comment><comment><USER2> Didn't we do all the research years ago? Didn't MS and Apple and others produce reams of really good quality information about what users like and dislike and what users can or can't use?

Why is Google doing this to me? I feel like I'm a rat in a maze, being poked with shitty UI by some out of touch experimenter.

Just because you can do stupid things with interfaces doesn't mean you should. See also Kai's graphics software, all mp3 player skins, etc etc.

<comment><USER3> I agree, most of the UI/X changes make things worse by disrupting my work- flow. You can always use POP or IMAP and the client of your choice.

</comment></comment><comment><USER4> I'm an old fart too, and object to anything changing. But I suspect in a week I'll have adapted to this and forget why I was annoyed.

The shortcuts we store in our spine/brainstem are the ones that we are most annoyed by when they quit working. But they are reprogrammable.</comment>


Why haven't any Wall Street executives been prosecuted for fraud? - <AUTHOR> https://www.quora.com/What-are-the-real-reasons-that-no-Wall-Street-executives-have-been-prosecuted-for-fraud-as-a-result-of-the-2008-financial-crisis/answer/Elizabeth-Warren?share=1 <comment><USER2> Almost the entire body politic would have to recuse themselves because of conflict of interest due to political contributions?</comment>


One in three college seniors don't buy textbooks because of their price  - <AUTHOR> http://chronicle.com/article/Students-Get-Savvier-About/136827/?cid=wc&utm_source=wc&utm_medium=en

<comment><USER2> It seems like a general need as well as price. I used to buy every textbook (even the optional) but in hindsight, I was never held to anything in the optionals. The course packs were the real value added content.</comment>


In under 24 hours, two people will die unless we get drones out to Joshua Tree - <AUTHOR> https://twitter.com/emblem21CEO/status/799458786792439808 <comment><AUTHOR> 2 hours after posting this, I now have a fleet of 20+ drone operators with gear at the ready. Fixed wing, multicopters, and hopefully a few FLIR cameras in the mix.

Waiting for Justin Samenfeld to get back to me in the morning. He's burning $3k an hour on helicopters. :/

<comment><USER2> Good to hear.

BTW, it turns out there's a registry of volunteer drone pilots for doing SAR (search-and-rescue) called SWARM, whose website is this:

[http://sardrones.org/](http://sardrones.org/)

I don't know how helpful this would be for the current situation, given that the California pilots seem not to be at all close by (at least the cities I recognize), though perhaps the list is worth a look:

[http://sardrones.org/search-and-rescue-drones/sar-drones- wor...](http://sardrones.org/search-and-rescue-drones/sar-drones-worldwide- members/)

(There's also a guide for volunteer pilots on procedures that might be helpful:

[http://sardrones.org/swarm-standard-operating-procedure- sop/](http://sardrones.org/swarm-standard-operating-procedure-sop/) )

</comment></comment><comment><AUTHOR> UPDATE: The missing couple has been found alive near the Mexican border! Thank you for all of the help and thank you to the drone pilots who volunteered.

<comment><USER3> Way to bring attention to this. Great news!

<comment><USER2> Excellent news!

Some details, from a Facebook post [0] by a friend of theirs:

 _Hi Everyone, here 's the official update from the parents to put everyone at ease.

From the parents that spoke with both Masha and Aaron:

They were at the sand dunes at Osborne Lookout, left their car there on Sunday (their last wifi signal) and went on a day hike to take pictures. They got lost while out on their hike and could see a red light flashing in the distance so they started walking direction. Spent 5 days walking in the desert without food and little water. In order conserve their water they also drank their own urine. They saw helicopters flying, and actually were able to light a fire to get attention but no one was able to see them.

They walked all the way to the cell tower until they ran into some maintenance workers at the tower who then contacted the Border Patrol. The Border Patrol contacted family and the investigator with LAPD and took them back to their car at Osborne Lookout.

The Border Patrol guided them back out of the park and they are now headed to meet up with family, friends and the rescue team to celebrate.

Just a Note: That tip from Devin Adkins was correct!

Devin Adkins i think i might have spoke to her on sunday giving direction to osborn over look where she could take some pics' of the dunes i also posted it up on the Glamis beach store facebook page_

[0] [https://www.facebook.com/icanseeyourprivacy/posts/1015418988...](https://www.facebook.com/icanseeyourprivacy/posts/10154189889007734)

</comment></comment></comment><comment><USER4> Where did 24 hours come from? This is insanely sensationalized.

<comment><AUTHOR> They've been missing since Monday. Dehydration and exposure, combined with poor wilderness survival skills, should be taking their toll right about now. Time is, unfortunately, running out.

<comment><USER2> I assume this is them -- Aaron Morganstein and Masha Mitkova?

[https://www.theeastsiderla.com/2016/11/elysian-valley- couple...](https://www.theeastsiderla.com/2016/11/elysian-valley-couple- missing-after-heading-for-desert-camping-trip/)

If so, there's information on the GoFundMe page -- in the comments as well as the main content -- linked in the article:

[https://www.gofundme.com/2zdy25w](https://www.gofundme.com/2zdy25w)

 _This Gofundme was created by Justin Samenfeld, Jake Smith, and Briana Gonzales of Los Angeles, California to raise money for the search and rescue of_ Aaron Morganstein _and_ Masha Mitkova. _Aaron and Masha are two extraordinarily bright, family-oriented, loving individuals who come from WONDERFUL families. They are good-natured, honest, sweet, peaceful, highly intelligent, creative and genuine people who brighten up the lives of everyone around them._

More: [https://www.facebook.com/aaronandmasha](https://www.facebook.com/aaronandmasha)

<comment><AUTHOR> That's them.

</comment></comment></comment></comment><comment><USER5> At the risk of sounding callous this is why I carry a PLB with me (and you should too) when I go hiking.

Edit: just wanted to also mention you can rent PLBs (personal locator beacon).

<comment><USER2> I was looking into PLBs earlier this evening, for obvious reasons and, since the topic was mentioned here, and since this might be helpful to people, I'll describe something notable I found.

On a site called outdoorgearlab.com, which has reviews of a number of units, one stood out in particular for being simple, well-reviewed (there and elsewhere) and relatively inexpensive.

The ACR ResQlink 406 Personal Locator Beacon, reviewed here [0], is around $250-$300, has a 5-year battery and doesn't require any subscription/data- plan, like some units that can send msgs do -- it just reliably sends S.O.S. messages to the relevant satellites in orbit (and it will send such messages at 5 watts, which is around 2.5 - 12x the power used by some other units -- helpful when sending data to a satellite).

There's a ResQlink+ model now too -- it's buoyant (the ResQlink is not) so it floats (but doesn't come w/a case, from what I read and is about 20 grams heavier).

[0] [http://www.outdoorgearlab.com/Personal-Locator-Beacon- Review...](http://www.outdoorgearlab.com/Personal-Locator-Beacon-Reviews/ACR- ResQlink-406-Personal-Locator-Beacon)

<comment><USER5> I suppose I should've checked my comments earlier:

I didn't bother getting one with a plan (seemed like a waste), I just have it for emergencies.

If you do buy one then make sure to check the battery expiration date, also good to check it when you buy a "new" battery. Last time I bought a new battery it was over a year old (sent it back).

For anyone buying a PLB, make sure it broadcasts at 406 MHz and 121.5 MHz (long range / short range)</comment></comment></comment>


Ask HN: Anyone know what's up with hckrnews.com? Seems down - <AUTHOR> <comment><USER2> It's up and running</comment>


The Right to Be Rude - <AUTHOR> http://esr.ibiblio.org/?p=8609 <comment><USER2> Freedom of speech is not the freedom from consequences. One has the right to be rude and the inextricable burden of being judged.

Intentional rudeness is an expression of emotion. Fundamental truths and well- reasoned arguments, despite the article's claim, do not require emotional expression. Open source contributors are neither punching bags nor therapists.

<comment><USER3> Cold analysis and reason are rarely motivational or persuasive on their own. None of us like to admit it but our lives are emotionally driven pretty much all of the time, even when we're trying to be reasonable. To lead, persuade, and negotiate effectively with other human beings you need to be able to press emotional buttons.

While someone who is rude all the time, or unnecessarily, is probably not someone you want to work with. Well timed rudeness does have its place in a constructive conversation. Just like analogy does, or hyperbole, or reason - each have their place. To snap people back on track, to be understood, to escape being bogged down in irrelevant detail, convincing others of behavior or actions that are truly unacceptable to you, etc.

</comment></comment><comment><USER4> Birds eye view:

Movements to change things almost always have a good reason and almost always happen in a low resolution way that makes a mess of the merits of many specific situations.

Most individuals tend to focus on either the legitimate need for change, or the legitimate messes being made by promoters of change.

The two imperfect viewpoints strongly reinforce each other.

Rudeness is a very blunt instrument. Even in small groups with well shared context.

Any use of rudeness is going to beg legitimate, illegitimate, and well intentioned but off the mark responses.

The larger a community becomes, the lower the chance that "constructive" rudeness actually is constructive - including in "brutal" meritocracies. Rudeness just adds noise and creates dissension no matter how nuanced it's intent.

Merit regarding work includes how the work is communicated, negotiated, etc. It is part of the work, and in larger groups becomes more of the work.

In merit based communication, intent means almost nothing. Avoiding creating unnecessary side issues and misunderstandings means everything.

Want to grow a community, hear from many voices, remain focused on merit? Avoid rudeness.

</comment><comment><USER5> It's just a zeitgeist. We'll get through this eventually.

The only thing that bothers me is the possible schism in the culture. We will have communities where openness and meritocracy are valued more than being nice, and the ones with code of conducts. This would be hard to glue back together when the fashion for suppressing expression passes.

</comment><comment><USER6> More here in this [Flagged] Thread, including original message.

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

He seems totally in the right.

<comment><AUTHOR> Thanks I didn't see this.

</comment></comment><comment><USER7> Typical ESR

What are "attempts to subvert OSD clauses 5 and 6."?

A link would have been helpful...

<comment><USER8> The thread is difficult to find and dense. It's not helped by the OSI _deleting_ the supposedly incriminating email, which is nice because we don't get potentially emotionally scarred by having to read it, and also it makes it impossible to transparently judge who the real bully was.

Installing rules contrary to:

\- 5. No Discrimination Against Persons or Groups

\- 6. No Discrimination Against Fields of Endeavor

were at discussion. Along with codes-of-conduct. At one point involving a so- called "Persona-non-Grata Preamble". Good Heavens! That would get me up in arms too. And yes, there were people supporting the position that it was fine to study a "Persona non-Grata Preamble"...

Now we all know ESR is a complete right-wing libertarian wackadoo right? And he doesn't _ever_ mince words. So one can totally read the headline and just imagine what a profanity-ridden racist, sexist, response. It would probably have offended Linus Torvalds and made him cry, right?

Actually, most of the comments from ESR and the other OSI contributors were fairly measured. Finally found what appears to have got him hauled up to the secret kangaroo court here: [http://techrights.org/2020/02/29/getting-banned- osi/](http://techrights.org/2020/02/29/getting-banned-osi/)

Make your own judgement. It's not nice. It is abrasive. My opinion, however, is that I think ESR is 100% right in his characterization of SJWs and the situation. It always _seems_ over the top until you really see them in action. IMHO.

Good luck with your OSI thingy, Ehmke (and your like-minded pals). Meanwhile there's a lot of us who won't say a lot publicly, but will keep on doing good things and judging others by how good they are at doing _work_. When you argue against meritocracy, I know better than to argue publically. But I'll _never_ _ever_ agree.

<comment><USER7> That was interesting.

ESR says "Make no mistake; we are under attack". Too right. Good thing too!

But the attack is from projects making huge progress with codes of conduct and efforts to seek out under represented groups and include them.

This is not a attack on "meritocracy", it is a adjunct.</comment></comment></comment>


Show HN: We're creating the missing link between idea and kickstarter - <AUTHOR> http://www.ifmine.com

<comment><USER2> What is it? I signed up but I don't quite understand what the site is about.</comment>


What's so cool about APL - <AUTHOR> http://arcanesentiment.blogspot.com/2010/12/whats-so-cool-about-apl.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ArcaneSentiment+%28Arcane+Sentiment%29&utm_content=Google+Reader <comment><USER2> I'd add a few more (equally regarding APL and K and J and q)

* They make it easier (and thus idiomatic and common) to write code that is vectorizable, GPUable, parallelizable, etc.

For example (q syntax here), if you have a string x that has parentheses, and you want to know if they are balanced, a "balance" vector would be b:sums (x='(')-x=')' [sums is cumulative sum] this would count +1 for each open, -1 for each close. To verify the string is balanced, you have (all b>=0) and 0=last b [read: minimum of b is 0, and last of b is 0]. They can be combined to one vectorizable expression:

(all b>=0) and 0=last b:sums (x='(')-x=')'

* The bugs in these languages tend to be almost exclusively logic bugs (wrong implementation assumptions, common to every language) or one-off bugs if your cut-and-paste vectors with mismatched indices. Others are very rare

* The terseness makes a lot of code fit on the screen at the same time. Which requires more mental effort to process but pays off hugely as you get a lot more context at the same time.

</comment><comment><USER3> It's a fair argument, although I feel that most APL programmers would have noticed that a lot of languages share those characteristics now, but if it gets the job done, great.

I was kind of hoping for a more technical discussion (with code samples!) of why APL was cool, though.

<comment><USER4> Exactly, you could replace APL with lisp or OCaml (well, except that OCaml wasn't around in the 60') and all these points would still be true. I wonder if there are any APL users on HN who could provide more detailed information on merits of this language?

<comment><USER5> I'm not too familiar with OCaml, but afaik one of the appealing features of APL is that it makes it easy to work with multidimensional collections in addition to one dimensional list-like collections (well, "easy" once you can grok the syntax). Do lisp and OCaml have those facilities out-of-the-box too?

<comment><USER6> No - neither Lisp nor OCaml makes looping over collections with an arbitrary number of dimensions _implicit_.

</comment></comment></comment></comment><comment><USER7> I wonder how many people would appreciate APL on the iPad? At least one person would....

<comment><USER8> I lit up at your suggestion. I've been looking for a reason to not chuck my APL books. Then it hit me: One with the initials SJ would not appreciate APL on the iPad. The iOS ecosystem abhors "arbitrary code" apps.

<comment><USER9> Maybe you could get away with describing it as a "calculator"?

</comment></comment></comment><comment><USER10> I've never tried the original APL, but J and q are great interactive calculators, due to their terseness and overall structure.

For example, if I want to convert a 4-item vector to fractions of the total, I can write:

      x <- c(1, 3, 2, 5); x/sum(x)
      x=np.array([1, 3, 2, 5]); x/np.sum(x)
      {x%sum x} 1 3 2 5
      (%+/) 1 3 2 5

in R, python, q, and J respectively. In q and J, I don't have to type the commas, and many of the parentheses and brackets go away.

I know it seems like a trivial thing. It certainly is for _code_ , i.e. stuff that you're saving in a file and intending to use later. But for an _interactive calculator_ , it's important.

Clearly, if you're not doing very mathy work, things like this don't come up. But in its domain, it's very nice.

(Edit: TCL is similar in this regard: it doesn't require as many commas and parenthesis as other languages, making it a very good, well, tool command language.)

</comment><comment><USER8> Anyone recall a paper depicting full emulation of an IBM 360 mainframe in APL? A fond memory of techcool from long ago...</comment>


India's Space Agency Hits New Milestone With Satellite Launch - <AUTHOR> http://blogs.wsj.com/indiarealtime/2016/09/26/indias-space-agency-hits-new-milestone-with-satellite-launch/ <comment><USER2> I've been to India's Satish Dhawan Space Centre for work. They do a _lot_ with the resources they have been given.

The on-base museum exhibits show how their weather and communications satellites help India with its national development goals (agriculture, connecting the countryside, etc.).

Space is hard. India has very reliable rocket (PSLV) that gets satellites to orbit. They have also successfully sent a probe to Mars, which is a real accomplishment for any space program. I was living in China at the time, and the Chinese felt a bit shown up by what they consider to be a less developed economy.

<comment><USER3> > The on-base museum exhibits show how their weather and communications > satellites help India with its national development goals.

My question is: Can India achieve those goals with less money using a commercial satellite launching company like SpaceX? And if India does have a competitive advantage in launching satellites, should it be run by the government or as a private enterprise?

<comment><USER4> India has been launching rockets and satellites since 1960s. SpaceX wasn't there, then ;)

ISRO launch vehicles (PSLV and GSLV MkII) do have competitive advantages in launching commercial payloads (up to 2.5 tonne). They already have a commercial/marketing arm called Antrix Corporation[1]. Also, there are a few private launch brokers like Earth2Orbit[2] who can procure ISRO launches. However, ISRO doesn't yet have heavy lift (4+ tonne to GTO, 8+ tonne to LEO) launch vehicle. They are working on it, and they have a new heavy lift launcher called LVM3 (aka GSLV MkIII)[3]. First developmental flight is scheduled in Dec 2016.

[1] [http://www.antrix.gov.in/](http://www.antrix.gov.in/)

[2] [http://www.earth2orbit.com/](http://www.earth2orbit.com/)

[3] [https://en.wikipedia.org/wiki/Geosynchronous_Satellite_Launc...](https://en.wikipedia.org/wiki/Geosynchronous_Satellite_Launch_Vehicle_Mark_III)

</comment></comment></comment><comment><USER4> Primary payload of this launch was ScatSat-1 satellite[1]. ScatSat-1 contains a scatterometer to monitor weather conditions over ocean (weather forecasting, cyclone prediction etc.). ScatSat-1 data can predict/reveal bad weather conditions as early as five days before the actual bad weather conditions occur.

ScatSat-1 satellite is a stopgap replacement for OCSCAT payload, which stopped functioning recently, onboard Oceansat-2 satellite.

ISRO's Oceansat-2 data is widely used by various weather and space agencies such as ESA, NOAA, NASA/JPL[2][3][4] etc.

[1] [https://en.wikipedia.org/wiki/SCATSAT-1](https://en.wikipedia.org/wiki/SCATSAT-1)

[2] [https://earth.esa.int/web/guest/missions/3rd-party- missions/...](https://earth.esa.int/web/guest/missions/3rd-party- missions/current-missions/oceansat-2)

[3] [https://www.wmo-sat.info/oscar/satellites/view/344](https://www.wmo- sat.info/oscar/satellites/view/344)

[4] [https://podaac.jpl.nasa.gov/dataset/OS2_OSCAT_LEVEL_2B_OWV_C...](https://podaac.jpl.nasa.gov/dataset/OS2_OSCAT_LEVEL_2B_OWV_COMP_12_V2)

<comment><USER5> I'm a huge fan of India's space program. This latest accomplishment is awesome. However, I can't help but think what an unfortunate name for an instrument and subsequently a satellite.

<comment><USER4> Haha! Yea! NASA also has one, named RapidSCAT.

</comment></comment></comment><comment><USER6> Non-paywalled stories:

[http://spacenews.com/indias-pslv-launches-7-satellites- in-a-...](http://spacenews.com/indias-pslv-launches-7-satellites-in-a-record- fifth-mission-this-year/)

[http://www.firstpost.com/india/isro-successfully-launches- ps...](http://www.firstpost.com/india/isro-successfully-launches-pslvs- longest-flight-scatsat-1-seven-others-into-orbit-3020486.html)

</comment><comment><USER7> "Engineers repurposed spare parts from previous satellites to construct ScatSat, according to the Indian Space Research Organization"

This only happens in India. I am saying this in a good way.

Source: [https://spaceflightnow.com/2016/09/26/india-declares- success...](https://spaceflightnow.com/2016/09/26/india-declares-success-on- pslvs-most-complex-mission/)

</comment><comment><USER8> Google linked link which is not subject to paywall: [http://bit.ly/2cGd7E7](http://bit.ly/2cGd7E7)

</comment><comment><USER9> This is a great achievement for a developing country. A space race between India and China is probably better than an arms race. Kudos India

</comment><comment><USER10> For those interested, there is an ISRO subreddit at www.reddit.com/r/ISRO which is well updated.

<comment><USER11> Yes, the moderators are ex employees of ISRO iirc.

</comment></comment><comment><USER12> Is it possible to work for ISRO with an OCI card?

<comment><USER13> Indian government agencies have weird recruiting procedures and age limits as far as I can tell. I am not sure if things changed now. Perhaps getting work at Antrix would be different ?

</comment></comment><comment><USER14> as an Indian techie, have always looked up to ISRO from my younger days.

</comment><comment><USER15> I am curious if someone from the India can comment on what the coverage for this has been in the local media. I know its been a bit controversial.

<comment><USER16> What controversy ? If your referring to the cost of the ISRO program - we are very proud of the Space Program in India, both media and People.There is no doubts about the cost effectiveness of the Space Program. It is just the western media, who highlight the short commings of other areas of India and compare it to our Space Program.

<comment><USER17> And for all those highlighting the short comings of other areas of India compared to its space program, do you recall what other aspects of life in the US were like at the initiation and heights of its space program?

Just as in the US, benefits of India's space efforts will soon begin to show up in the life of the average Joe/Jane, if it hasn't already.

<comment><USER18> In 1999, a devastating cyclone hit the Indian state of Odisha killing 10000 people.[1] In 2013, Odisha was again hit by a cyclone of similar magnitude[2]. However due to advance warnings by weather satellites[3] 550,000 people were evacuated and only 45 people died this time. What is the worth of 10,000 human lives?

[1] [https://en.wikipedia.org/wiki/1999_Odisha_cyclone](https://en.wikipedia.org/wiki/1999_Odisha_cyclone)

[2] [https://en.wikipedia.org/wiki/Cyclone_Phailin#Odisha](https://en.wikipedia.org/wiki/Cyclone_Phailin#Odisha)

[3] [http://www.skymetweather.com/content/weather-news-and- analys...](http://www.skymetweather.com/content/weather-news-and- analysis/satellite-images-thwarted-the-threat-of-cyclone-phailin-isro/)

</comment></comment></comment></comment><comment><USER19> India is a vigorous democracy that has sent an orbiter to Mars. Yet its children are more likely to starve than children in far poorer nations in Africa. [http://www.nytimes.com/2015/10/15/opinion/half-these-kids- ar...](http://www.nytimes.com/2015/10/15/opinion/half-these-kids-are- stunted.html)

<comment><USER20> I guess you're unaware that satellites are used for

        Space Based Inputs for Decentralized Planning (SIS-DP)
        National Urban Information System (NUIS)
        ISRO Disaster Management Support Programme (ISRO-DMSP)
        Biodiversity Characterizations at landscape level- http://bis.iirs.gov.in
        Preharvest crop area and production estimation of major crops.
        Drought monitoring and assessment based on vegetation condition.
        Flood risk zone mapping and flood damage assessment.
        Hydro-geomorphological maps for locating underground water resources for drilling well.
        Irrigation command area status monitoring
        Snow-melt run-off estimates for planning water use in down stream projects
        Land use and land cover mapping
        Urban planning
        Forest survey
        Wetland mapping
        Environmental impact analysis
        Mineral Prospecting
        Coastal studies
        Integrated Mission for Sustainable Development (initiated in 1992) for generating locale-specific prescriptions for integrated land and water resources development in 174 districts.

Source: [https://en.wikipedia.org/wiki/Indian_Remote_Sensing](https://en.wikipedia.org/wiki/Indian_Remote_Sensing)

There are probably other uses as well. This argument of "cant-go-to-space- till-every-other-problem-is-solved" makes no sense. You need space programs to solve major problems. If you take away all the budget from space programs and other research, and then put all of that into providing food, it'll take much longer to get rid of poverty. Think "teaching a man to fish" vs "giving a man a fish".</comment></comment>


Architecture of a Database System (2007) [pdf] - <AUTHOR> https://dsf.berkeley.edu/papers/fntdb07-architecture.pdf <comment><AUTHOR> It's part of a series:

<http://www.nowpublishers.com/product.aspx?product=DBS></comment>


StartupBus - 7 Cities Announced, applications still open - <AUTHOR>

StartupBus is adding some Southern and International flavor to the roadtrip-cum-hackathon this year by announcing Louisiana and Mexico City as the newest regions for this year's event. Louisiana and Mexico City will be joining buses from Florida, Ohio, Los Angeles, Silicon Valley and New York City for a head-to-head competition against the best doers in tech in Austin. Applications are now open and the best hackers, hipsters and hustlers are invited to apply at http://startupbus.com.
The first seven regions were selected based on the caliber of applicants, the buzz generated and sponsorship gathered. The final regions will be announced next week.
What is StartupBus? StartupBus is an invitation-only community of hackers, hustlers and hipsters passionate about startups. Teams compete in an annual hackathon-style competition on buses traveling across America at 60 mph towards Austin in time for SxSW, where they will pitch to top-tier angels and VCs. The competition is intense, the constraints are challenging and the bonds forged are testament to the experience Buspreneurs share.
--- Are you a "Buspreneur"? If you are one of those driven, maniacal world-changers, you're probably what we're looking for.
Hackers - You're more than a coder: you're a versatile hacker, you're bad-ass and you do what it takes to get the job done.
Hipsters - UX and UI, Shoot us a link to your portfolio. (n.b. although not a requirement, if you are a front-end coder, please say so.)
Hustlers - Your business acumen is second to none, you pitch in your sleep, you created the bubble. Innately undefinable, hustlers must prove they have the Midas touch.
Buses depart respective cities March 6 and arrive in Austin on March 9 to party before the Grand Final in the Startup Village on March 11. To request an invitation, head to StartupBus.com and connect.
CONTACT INFO: Twitter: @TheStartupBus Email: email@example.com (general inquiries), firstname.lastname@example.com, firstname.lastname@example.com <comment><USER2> Any other invites left, by chance?!

</comment><comment><USER3> Anyone have an invite for a Buspreneur?

<comment><USER4> I got 1 invite left :) send me your email : @picsoung

Wondering when they will reveal who is selected.</comment></comment>


Grid-Based Design: Six Creative Column Techniques - <AUTHOR> http://www.smashingmagazine.com/2008/03/26/grid-based-design-six-creative-column-techniques/

<comment><USER2> The "Grids are Good" presentation by Khoi Vinh is absolutely must-read for any designer. <http://www.subtraction.com/archives/2007/0318_oh_yeeaahh.php></comment>


Deciphering the Messages of Apple's T2 Coprocessor - <AUTHOR> https://duo.com/labs/research/apple-t2-xpc <comment><USER2> Why did Apple choose to use a networking protocol like HTTP to interface with two chips in the same hardware device?

<comment><USER3> The amount of money and eyeballs testing out an http stack far exceed that of a proprietary protocol.

The real question is why don't more rpc style protocols just use http?

<comment><USER4> But then the article states that they do non-standard/non-compliant things with HTTP/2 so they are using modified or new stacks...

<comment><USER4> "Apple appears to be using the HTTP/2 protocol only as a mechanism to maintain persistent connections, passing empty HEADERS frames to open new streams. This breaks section 8.2.1 of the HTTP/2 specification. We work around this by modifying the h2 module to allow empty HEADERS frames.

Apple's use of the HTTP/2 protocol is also irregular for two other reasons. First, the HTTP/2 specification mandates that stream IDs must be created in a monotonically increasing order. However, Apple's application endpoints appear to hardcode a handful of particular stream IDs for certain communications, which when opened do not conform to this monotonic ordering requirement. Second, client-server communication patterns often use multiple streams in unusual ways. For instance, heartbeat messages send requests over stream 1 and responses on stream 3."

</comment></comment></comment></comment><comment><USER5> > Passing baseDirectory sets an internal variable on the sysdiagnose server, > but it is unclear from our manual analysis how this variable is used.

It looks like this might be the directory the completed sysdiagnose is saved to? I don't have a Mac with a Touch Bar to test this, so I'm guessing this based on analysis of /usr/bin/sysdiagose pulled from a BridgeOS firmware.

</comment><comment><USER6> Tangentially related, I have a wild idea: assuming Apple makes a transition to using ARM processors, existing Macs could be able to execute both ARM and x86 apps, just like they did with the Intel transition, but instead of translating machine code like with Rosetta, all Macs with a T2 chip can simply execute machine code on whichever processor the app was built for.

Here's how it would work: macOS already works with more than one CPU core. What if several of those cores just happen to be for a different architecture? When an app is launched, it would read the executable's header and schedule the app to run on the appropriate CPU. Things like producing sound, drawing to the screen, or getting user input is all done via the OS anyways; it doesn't really matter what architecture the app or OS is on, thing would just get translated, like how communication is being shipped over the bus with this protocol.

To me, it seems like the T2 chip is the real processor of newer Macs and the x86 chip is just some co-processor that the T2 chip offloads a bunch of work to. The T2 controls many of the internal components already and the x86 chip must interact with the T2 chip to interact with said components (e.g. booting, webcam, audio, SSD, etc). It will be interesting to see if this is the route that Apple takes with a supposed ARM transition.

<comment><USER7> Processors have not decreased all that much in price though. It's unlikely that even Apple is interested in making each computer $100 or $200 more when software emulation works almost as well and is much less work.

<comment><USER8> Apparantly apple's A12 costs around $72. It wouldn't be entirely ridiculous to include one of these in macs (it would be awesome for ios app dev if nothing else).

</comment></comment></comment><comment><USER9> 0x42133742 is clearly someone having a bit of fun. 42 from Hitchhiker's and then 1337 for "leet", short for elite.</comment>


Ask HN: Is Docker Swarm Dead? - <AUTHOR> Now that the latest Docker Enterprise Edition has integrated Kubernetes, does this mean the end of Swarm?<p>I've heard comments from Docker PR that they will continue to utilize both platforms, but I wonder if they will continue to invest in Swarm in the future.  Any proof of this? <comment><USER2> A full list of all the evidence that it's not dead: [https://www.bretfisher.com/is-swarm-dead-answered-by-a- docke...](https://www.bretfisher.com/is-swarm-dead-answered-by-a-docker- captain/)

</comment><comment><USER3> They've end of lifed Docker Cloud. Not sure what value Docker Swarm has without it.

[https://docs.docker.com/docker- cloud/migration/](https://docs.docker.com/docker-cloud/migration/)

> Cluster and application management services in Docker Cloud are shutting > down on May 21. You must migrate your applications from Docker Cloud to > another platform and deregister your Swarms.

</comment><comment><USER4> I moved off of swarm and back to regular docker after taking a hard look at our needs and infrastructure. Turns out we don't need all the clustering and scaling magic of swarm or kubernetes.

In fact, this has greatly simplified our development, testing, deployments, monitoring, and recovery.

If I need to scale then I add more cores to a machine with minimal downtime. No need for all this rolling upgrade stuff (at least for my applications)

<comment><AUTHOR> Did you have any issues with bugs or technical issues while in production?

Or are you simply moving away for the sake of simplicity/cost?

<comment><USER4> Moved away purely for simplicity. Clustering brings too many black boxes in the mix.

</comment></comment></comment><comment><USER2> I'm a Docker Captain and Swarm consultant. Yes, lots of proof here's just a few things from a similar post last week [https://news.ycombinator.com/item?id=16771118](https://news.ycombinator.com/item?id=16771118)

<comment><USER2> The TL;DR [direct quote from Docker blog]([https://blog.docker.com/2017/11/swarm-orchestration-in- docke...](https://blog.docker.com/2017/11/swarm-orchestration-in-docker- enterprise-edition/)) _after_ the Kubernetes announcement:

> But it's equally important for us to note that Swarm orchestration is not > going away. Swarm forms an integral cluster management component of the > Docker EE platform; in addition, Swarm will operate side-by-side with > Kubernetes in a Docker EE cluster, allowing customers to select, based on > their needs, the most suitable orchestration tool at application deployment > time.</comment></comment>


Improving AI language understanding by combining multiple word representations - <AUTHOR> https://code.fb.com/ai-research/dynamic-meta-embeddings/ <comment><USER2> Point of armchair skepticism --

My own experience has been that the performance differences among the different embedding models largely disappear if you take the time to individually fine-tune the hyperparameters for each one. Which is not something that is typically done when reporting performance results in the literature.

I haven't really read the paper, but it seems like there's room for that to have happened here - a search for "hyperparameter" yields one mention, where they describe the choice of algorithm as itself being a hyperparameter. I only skimmed the methods, but didn't notice any mention about individually optimizing each of the embedding models they tested with there, either.

So, unless I'm missing something, that means there's plenty of room to question whether this approach would significantly outperform a single well- tuned embedding model. It might be that it's mostly useful for ensembling together a bunch of off-the-shelf pre-trained models.

<comment><USER3> It would be interesting to see what would happen if you also tried to tune the ensemble towards a specific task in the same way that you could tune a single model.

We've definitely seen that tuning the embedding hyperparameters (along with the others) can have a significant impact on performance. [1]

Additionally, whenever you open up the space of tunable parameters to include the embeddings or feature representations themselves you can usually significantly outperform just a well tuned classifier. [2]

This model seems like it trades off complexity in tuning for complexity of an ensemble, but I wonder what would happen if you tried to have your cake and eat it too and just tuned everything.

[1]: [https://aws.amazon.com/blogs/machine-learning/fast-cnn- tunin...](https://aws.amazon.com/blogs/machine-learning/fast-cnn-tuning-with- aws-gpu-instances-and-sigopt/)

[2]: [https://blog.sigopt.com/posts/unsupervised-learning-with- eve...](https://blog.sigopt.com/posts/unsupervised-learning-with-even-less- supervision-using-bayesian-optimization)

</comment></comment><comment><USER4> It's not surprising that an ensemble of embeddings beats single embeddings. I can't imagine it beats a single embedding fine-tuned to the task at hand, given sufficient training data. Where ensemble embeddings might shine is when there is sufficient data to determine how to weight the ensemble, but insufficient data to effectively fine-tune. I'm not sure how often this case comes up.

</comment><comment><USER5> Another popular and promising approach is using contextual word representations, such as ELMo ( [https://allennlp.org/elmo](https://allennlp.org/elmo) \- RIP Paul Allen) and Flair ([https://github.com/zalandoresearch/flair](https://github.com/zalandoresearch/flair))

The downside is a very heavy slow-down in training/prediction.

</comment><comment><USER6> > We use 256-dimensional embedding projections, 512-dimensional BiLSTM > encoders and an MLP with 512-dimensional hidden layer in the classifier.

After having made fasttext, Facebook should have called this implementation _slow_ text. I'm surprised there isn't more discussion of training speed in the paper.

</comment><comment><USER7> Ensemble models have higher VC dimension and are more prone to overfitting.

<comment><USER8> I thought the whole point of ensemble models is to reduce the variance</comment></comment>