Is GraphQL Still Relevant in an HTTP2 World? - <AUTHOR> https://medium.com/@__xuorig__/is-graphql-still-relevant-in-an-http2-world-64964f207b8 <comment><USER2> From the linked article:

> _With all of those caveats noted, HTTP /2 should put to rest any notion of > the need to minimise the number of requests for APIs; the protocol makes > them cheap enough to not practically matter. Go ahead and design a highly > granular HTTP API to meet the needs of your clients_

This seems highly misleading and missing the point. Sure, you can send a lot of requests in parallel with http/2\. But you still incur significant latency if these multiple requests are dependent on one another and serialized. For instance, suppose you have 2 granular APIs that:

\- Returns all friends for the specific user

\- Returns the name, age and hometown for a specific user

Suppose your client wants to get all of a user's friends whose hometown is NYC. Even with http/2, it has to use the first API, wait for the response containing a list of userIDs, then use the second API to get all of their hometowns.

Whereas with GraphQL, it facilitates building a single API call that says "give me all friends for a specific user, along with each friend's hometown". Now, there is only one round-trip latency cost. Not two. Even with the overhead improvements mentioned, the cost of two back-to-back round-trips would be much higher. It is very odd that this isn't mentioned in the article or any of the other articles they reference.

<comment><USER3> Why wouldn't you return more data for the REST API instead of making dependent requests?

<comment><USER4> GraphQL can support arbitrary numbers of fields and arbitrary nesting of relationships. You can do this:

        {
          hero {
            name
            friends {
              name
                friends {
                  name
                }
            }
          }
        }

But some clients might only need this:

        {
          hero {
            name
          }
        }

This is a small example, but it's pretty clear that "always including all fields and nested relationships in every REST API response" is not a viable solution.

(GraphQL examples based on the schema used in the official documentation: [https://graphql.org/learn/queries/](https://graphql.org/learn/queries/))

<comment><USER5> This is the most important comment in this thread. For more, read this excellent article:

[https://brandur.org/graphql](https://brandur.org/graphql)

</comment></comment></comment></comment><comment><USER6> I worked with GraphQL a bit over a year and half ago on a project. I was the front end consumer, working with backend microservices via graphQL.

I wasn't sold on the GraphQL hype then, and I'm still not, but this article seems to miss the point. [Edit: I mean, it agrees, but it does so poorly]

A lot of people TALK about the lack of multiple back-and-forth, and about not wasting unnecessary data, but honestly, that wasn't a big deal. I expect there are some situations where that comes into play, but for most people the appeal of GraphQL lies elsewhere. If HTTP/2 means that's less of a big deal, I don't expect much change.

The legit upside to GraphQL was that backend could change rapidly without breaking compatibility for existing consumers. Some changes could be fixed purely frontend by changing the query, but if we needed new data that wasn't provided (or a variation on data that was provided) the backend could add that AND NOT IMPACT EXISTING CONSUMERS. That's not the only benefit (and remember, I remain a skeptic) but that was by far the biggest and was definitely real.

Even if the claims of HTTP/2 rendering the call overhead are correct (see other comments to doubt that), that has no impact on this value of GraphQL.

<comment><USER7> > I wasn't sold on the GraphQL hype then, and I'm still not,

Why not?

<comment><USER6> Foremost, I'm not comfortable with abandoning the meaning of HTTP methods. Changing everything to POST means pushing all sorts of caching decisions to the start-and-end points and bypassing decades of work done on improving GET caching for intermediate layers. (Caveat: this is where people start talking about how GraphQL doesn't _require_ POST. I fully allow I don't know enough to be sure, but on the face it seems problematic).

Secondly, it may just be something solved as the tech becomes more mature and practiced, but there are numerous smaller issues such as versioning (the ability to change rapidly without breaking backward compatibility is separate from when you DO want to break that compatibility) and tooling. These are hardly solved issues with, say REST, but they are "more solved". Most places have some level of versioning, and requests are trivial to read with existing tooling.

When doing an involved front end app (I was in ag tech working on app that was tying data models with farm field overlay maps and setting values by geographic region - which sounds way more impressive than it really is) I found that GraphQL seemed great for straightforward CRUD apps, where the results of a query and the display of the page mapped closely, but the value add on the front end was pretty minimal for more complex applications. Lots of tooling (Apollo at the time, and I hear "Relay" being discussed today) performs magic to make this all effortless.

"magic" is great when it works - we adopt it and stop considering it magic. The other times it is usually a flash in the pan that spawns lots of regrets. I'd be an idiot to claim I knew which side of magic this falls on, but my experience is currently saying to avoid anything too involved. A GraphQL API? Sure, it's not my first pick but I'll use it. A framework that magically hides all the complexity on the front end? I'm willing to bet I'll run afoul of some hidden boundary.

If I'm at a company that starts talking GraphQL I'd ask about the solutions for caching and versioning. If they have answers, I'll keep listening. If they wave it off as something to worry about later, I'd expect headaches.

A long, rambling, and subjective answer, but that's my answer.

<comment><USER8> [https://www.apollographql.com/docs/ios/fetching- queries/#usi...](https://www.apollographql.com/docs/ios/fetching- queries/#using-get-instead-of-post-for-queries)

I use this in prod, and the only downside I'm aware of is the length limit on the query string. (Haven't hit it though)

[https://stackoverflow.com/questions/2659952/maximum- length-o...](https://stackoverflow.com/questions/2659952/maximum-length-of- http-get-request)

</comment></comment></comment></comment><comment><USER9> The biggest problem GraphQL solves is not a technical one. GraphQL is an enforceable contract between clients and servers that encourages APIs to be designed in a way that best serves the client, and in doing so, the end-user. Clients used to spend an inordinate amount of time and thought in simply getting the correct data from the server. So much so that entire FE frameworks and libraries evolved to essentially pull all the server's data, organize it into UI-friendly chunks, and then (and only finally then) create an experience the user would find valuable. It was a small miracle if any time or energy was left to make the user experience enjoyable too.

A litmus test for a well designed GraphQL API is: could you tell what the client looks like and what the client does simply by looking at the schema? GraphQL forced everyone to think about the end-user experience, and to be on the same page. Literally. And that is it's greatest strength.

</comment><comment><USER10> It's refreshing that the author acknowledges the nuances around tradeoffs of using, and not using, GraphQL.

Having used REST (with swagger/openAPI), gRPC and now graphQL, the most painful thing has been the tribal militance from supporters of each, defending their own vested interest.

It's almost like different tools are useful for different things.

<comment><USER11> > tribal militance from supporters of each, defending their own vested > interest.

This is something I really wish I understood before going down the road of graphql. I think it's a great technology, but the developers supporting it are making it nearly impossible for a legacy codebase to ever adopt.

Ex: so many JS codebases use redux. Apollo is a popular graphql framework that supported redux integration for some time, then suddenly ripped it out. They cited performance concerns, but I looked through the code myself and it would seem they just have a bias against redux. This issue thread makes that especially evident: [https://github.com/apollographql/apollo- client/issues/2273](https://github.com/apollographql/apollo- client/issues/2273)

We were very lucky to have found that before breaking ground on the work.

<comment><USER12> Which is ironic because Apollo 2.0's caching mechanisms have some very serious performance issues themselves, and they take almost all the power away from the user (unless you want to implement your own cache from scratch).

<comment><USER13> I believe one of the main selling points of the upcoming 3.0 version is indeed to make the cache more usable with manual evictions, etc.

</comment></comment></comment></comment><comment><USER14> It would be irrelevant only if the sole reason to use GraphQL is to minimize network hops and bandwidth. I'd argue that, if that's the only positive you see in GraphQL, then you would be just as well off writing custom API endpoints for each view of your application.

I prefer interacting with GraphQL over RESTful interfaces. From my experience, it's less prone running into bugs inherent to client-side joins of API responses, easier to evolve iteratively, and generally more pleasant to work with thanks to its introspectable declarative schema and flexible query language.

</comment><comment><USER15> This seems like a false dichotomy. In my eyes the point of GraphQL is the query model.

HTTP2 is just a transport, you still need to put something on it, like gRPC.

Seems natural that GraphQL will evolve to use it, and benefit from the technical improvements.

I really like the server push model, but not sure how to square it with GraphQL way of doing things.

<comment><USER16> > In my eyes the point of GraphQL is the query model.

Yeah me too, I would compare restful to GraphQL and HTTP2 to HTTP1. It is also annoying that the author hardly mentions restful APIs or it's shortcomings.

</comment></comment><comment><USER17> Can someone please explain what GraphQL actually is? I've looked at it multiple times but never got super deep... my limited understanding is that all it is is basically defining a schema so that when issuing API requests, the client itself can make it's own "query request", rather than talking to an app backend which has SQL queries programmed/written in an ORM or some database wrapper.

I feel like I'm missing something, as that seems incredibly limited, especially with things like performance (where queries need to be tuned and refined and custom written. Just a simple SELECT * FROM X INNER JOIN Y and horrible N+1 isn't good enough)

Can someone please explain what is GraphQL once and for all?

<comment><USER18> Yes - (and totally reasonable question, btw - it's remarkable how hard it is for the folks behind it to just plainly state what it is vs. coating it in buzzwords).

BTW - I may be wrong / misunderstanding something here as I'm only in the research phase, but here's what I got:

GraphQL is an alternative to REST as a way for clients to query servers for information. In a REST query, you hit an endpoint and add optional query params. But you get back results based purely on what the server has been singularly designed to give back. For example, if I query:

GET /users/1

I'll get back a user object that the server has been programmed to return. It's of course possible to customize this with query params, and do something like:

GET /users/1?only_include=first_name,last_name

But that's the exception to most RESTful APIs, not the norm.

In a GraphQL query, the client specifies _exactly_ which fields it wants back, and that's baked into the design. So the client would submit a query like this:

{ user(id: "1") { first_name last_name } }

And the server would return exactly the object the client asked for.

There's no magic here -- that's the part that many people have trouble explaining. When you write your GraphQL server, you still need to write the actual queries (<\--- this is the key!). But structurally, you write more generic queries -- you'd say "when a client requests a user, run this SQL", "when a client requests first_name on a user, run this SQL", etc. etc.

That way on the server, you write isolated query resolvers (called, amazingly enough, resolvers), each of which get run when a query comes in.

This is as opposed to a RESTful approach, where you'd do a more traditional single SQL query for the /users/:id endpoint (SELECT * FROM USERS WHERE ID = ... )

Hope that makes sense (and is accurate!)

<comment><USER19> Your understanding matches my understanding, but you missed the point which was the "ah ha!" moment for me. Which is that the front end developer can design their own endpoints without bothering the back end developer.

When a front end developer wants to request a specific shape of data (e.g. All the people with age between x and y who are within a distance of z of the logged in user and just get their name and list of interests) then with REST they have to either compose that data from the available endpoints or bother a back end developer for a new endpoint.

With GraphQL the front end developer can compose the query themselves without knowledge of any back end technology beyond the GraphQL schema.

E.g. they'd write something like the following, using either a schema reference, or introspection-powered autocomplete UI to find out which fields are valid.

        query nearbyCandidates {
            allUsers(filters{
                isTheLoggedInUser:false,
                ageBetween:{start:x, end:y},
                closerThan:{distance: z, from: [LoggedInUserPosition]},
            }){
                interests:{
                    interestName:name,
                    description,
                }
                candidateName:name,
            }
        }

This actual story is a bit of a fairy tale because you'd still need the two developers to interact if the required fields or filters did not exist.

Finally the general theme of the comments here, that there's nothing stopping you using both, is accurate.

<comment><USER20> Unless you are using something like Hasura which in many cases negates the need of a backend developer. Front end developers can have almost total autonomy.

</comment></comment></comment></comment><comment><USER21> In a discourse where GraphQL is just an additional layer over "REST" services to make sense in terms of network roundtrip, and similarly HTTP/2 server push is used to bundle multiple "REST" results, it's worth noting that there's always the option to use more unopinionated approaches to request/response payloads such as RPC- or SOAP-like protocols merely seeking to model payload syntax without implied semantics and restriction to "GET"/"PUT" primitives. Locking your response semantics to network interactions such as in "REST" never made sense from an engineering PoV IMHO.

</comment><comment><USER22> We've been developing a GraphQL api for the past few years and I really really really like using GraphQL. From a developer experience perspective, it's so much easier to work with than traditional REST based API's. I could add more but I'm pressed for time and I simply wanted to leave my +1 comment for GraphQL. Happy to answer follow up questions (if any).

</comment><comment><USER23> Uh, main feature of graphql is a graph cache and graph model itself. It has nothing to do with HTTP2.

<comment> drew-y That's basically what the article says though. The connection to HTTP2 is that they both try and minimize the amount of requests made to a server. The author is just pointing out that GraphQL has more to offer than reduced requests.

<comment><USER24> Making a request to the server is completely different than opening a new connection. HTTP/2 lets you use an already opened connection, if applicable. Thus it is able to bypass making a handshake/etc. for every request made as well. Making a request however will still have to traverse the network irregardless. GraphQL gives you a query language to tell the server what you want in a single request. So if it is your first request to server, and a new connection needs to be opened, HTTP/2 is irrelevant. Basically, HTTP/2 and GraphQL have NOTHING to do with each other.

<comment><USER15> Even in Http 1.1 you can keep the connection open, you dont need to re- negotiate tls and friends for every request.

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

</comment></comment></comment></comment><comment> why-oh-why Ignorant here: why not just use a subset of SQL?

It needs a filter and it definitely needs to be applied to a limited, custom view of the actual underlying data, but… that's what you have to do anyway with a REST or GraphQL API.

By the time you're done making your REST/GraphQL API "really flexible" couldn't you just build an SQL filter?

All the APIs I used to so far are so limited. For example there's no easy way to query multiple posts at once on GitHub's GQL while that could have be an extremely simple `SELECT title FROM issues WHERE id IN (13,57)`

<comment><USER20> Or you could use a zero coding backend solution on top of a database like Hasura or PostGraphile.

<comment> why-oh-why Just like there's Hasura there could be a zero-coding tool that does the same for SQL.

I'm not arguing that the average developer should write an SQL query sanitizer but just that what companies are investing into GQL could be invested into something more flexible.

Sometimes we discard tools and ideas because at some point in the past they were poor or bad practice. See PHP and IE.

</comment></comment></comment><comment><USER25> Title sounds so wrong that I'm unable to click on it.

<comment><USER26> Totally. doesn't make sense at all. Sounds like "Are burgers still relevant in coffee-table world"? HUH? What the f did the author smoke before writing that?

</comment></comment><comment><USER27> This is an interesting article!

A few weeks ago I found an interesting open-source project that tries to combine the best of GraphQL and REST, though it's more tilted towards REST.

[https://www.graphiti.dev/guides/](https://www.graphiti.dev/guides/)

We haven't switched our API over just yet, but are planning to do so.

<comment><USER28> Graphiti is based on the JSONAPI standard. While Graphiti is an awesome library (the author is one of the most supportive devs I've experienced with OSS, rivaling most paid support I've experienced), JSONAPI has existed longer than GraphQL, and has virtually no relationship with GraphQL or how it functions.

</comment></comment><comment><USER29> 1\. Depending your database technologies, queries are still going to be more efficient with batched operations.

2\. HTTP/2 doesn't make latency/speed of light zero.

3\. Outside of performance, GraphQL is a type-safe, error-minimal way to perform joins and searches.

<comment><USER30> What about HTTP/3 for your second point?

<comment><USER29> Same.

Query, Answer, Query, Answer

has twice the latency of

Query, Answer

<comment><USER31> No it doesn't. It depends on how long the query<->answer time is, and if it's the same. A complex GraphQL query may well take longer than 2 simple REST requests

</comment></comment></comment></comment><comment><USER32> I'm a reluctant user of GraphQL. I can't specify any deep technical reasons, I just prefer a lot more control over interfaces - particularly where I'm in control of both the client and server.

But. I use GraphQL. GraphQL is a whole toolchain around client-server interactions. (IMHO) It's a pain to get started using is, but then the benefits of tooling start to compound.

HTTP2 won't replace GraphQL. Perhaps a set of libraries that use HTTP2 effectively. Even then I'd be surprised if it was a huge departure from GraphQL fundamentals - but you never know.

</comment><comment><USER33> One problem I see with Graphql, in general, that it seems like it amplifies a problem which is something all OXMs inadvertently do. And it is the problem of managing business logic. And from what I can see is that graphql now pushes this to the client and erodes the server side's encapsulation of business logic. Now you have the problem of having business logic everywhere? Isn't this something we have learned throughout the years is a bad thing?

<comment><USER34> but facebook...

(your description appears accurate, and in-fact, that is precisely what this enables, and it's symptomatic of team (human) interactions rather than technological drivers.)

<comment><USER34> Apollo is a product of the Meteor Developer Group, if I'm not mistaken. FWIW.

</comment></comment></comment><comment><USER35> It would seem to me as a casual observer that GraphQL is more an alternative to SQL than it is to HTTP2. No?

<comment><USER36> Yeah. The advantage of GraphQL is that you can bring the exact data you need with a single API call instead of querying against multiple endpoints to assemble whatever data you need.

That's completely independent of the protocol that you're using. I understand that there's a performance consideration when you have to make fewer calls and how HTTP2 basically can help with that. But I honestly have never thought about GraphQL as something that would improve performance.

For me, the advantage of GraphQL is not that it reduces network roundtrips but the fact that you can get the data you need in the exact structure you need it.

</comment></comment><comment><USER37> AFAICT, the point of GraphQL to get an API that corresponds to your React state tree, so that there's much less mental overhead from client developers who don't want to deal with multiple shifting data representations.

Batching almost seems like a nice-to-have.

</comment><comment><USER38> I guess in theory we could take a gql query like:

      query {
        user {
          first_name
          last_name
        }
        settings {
          debug
          paid
        }
      }

could be translated into:

GET /user/first_name GET /user/last_name GET /settings/debug GET /settings/paid

And you could represent any gql query as a multiplexed http2 call. And you could then have the server use a persistent user scoped dataloader (or some other shared cache) to resolve all that data and respond to each of those queries.

That's roughly an isomorphism between graphql and http2.

<comment><USER39> In reality, that would be GET /user GET settings; the cost for the unneeded associated fields at that point of time is typically not significant for many backends as they stored in aggregate and text based responses compress well.

If the data is not particular dynamic then you can cache the entire representation deriving a future benefit.

Graph base queries tend to lend themselves to adhoc query patterns and I would be concerned about unpredictable patterns of loading. If the backend store is distributed then graph QL looks more attractive to me. If the datastore stores related attributes in aggregate there seems to be little benefit since different parts of an adhoc graph would different levels of 'cachability'.

I have found an application for GraphQL in storing soft-defined triggers or other criteria on data.

</comment></comment><comment><USER40> GraphQL has a very specific cross-functional advantage: it provides a spec for data access, to cut down novel design (of APIs) by backend and frontend.

If Backend have few data entities, or the requirements are extremely clear, your team is not likely to get the full spectrum of benefits.

If you have a large number of existing Backend data entities, or expect a large number to be created - GraphQL is a very handy spec. But if the Frontend/Product are EXPLORING how use the data, and unsure exactly how to best utilize the data types, OR they are supporting many permutations of APIs, GraphQL is a game changer. Write a python decorator to generate resolvers...

\- and BOOM, Backend and Frontend will never have to negotiate over a rigid & novel API contract again.

The other stuff, like introspective documentation, sophisticated Frontend state management, and so on are great conveniences, but are not the point.

As far as HTTP2 and Frontend goes, I'm excited as it solves a fundamental networking problem. And theoretically saves us from having to bundle. But this is not what I personally consider a big Frontend problem.

In most large webapps with network-connected components, you don't want each component to make a discrete network call and pump its data straight into the component. Often you will want to use the response and update a global state, to ensure nothing is out of date. This encourages you to colocate your network logic, with some facilities for this. The GraphQL ecosystem ticks this box. Additionally network requests are a complicated flow, due to APIs having different semantics, needing to shunt value objects through promise/callback chains and the need to covering various edge cases. This encourages codification of network logic, which again, GraphQL does a great job of.

This is of course quite complicated stuff, and if you don't need the Frontend magic - you can just put your GraphQL query on a fetch, and use it like a REST endpoint.

And of course - if you don't really need the spec, I'd say think very hard before adding GraphQL.

That said, big fan of HTTP2 (although last I looked, the perf envelope created by plotting no. of connections against speed, the shape told me "don't rely on this yet").

</comment><comment><USER41> Having built a lot of react apps with and without flux/redux, I would say the best part of GraphQL is the simplification of SPAs. Building up the query with fragments and colocating data fetching with the component that need it, is a huge win. If you have lots of micro services or even a few SOA apps, GraphQL is "developer ergonomic" win.

Majority of the latency/bandwidth wins can be achieved with a well architected jsonapi. This should not be your only reason for choosing GraphQL.

</comment><comment><USER42> GraphQL is barely relevant today with the older HTTP standard. There is a very limited use case for GraphQL, and you most likely don't need it. If you are new to GraphQL I would recommended simply trying to use it to delete an item by Id. While this is a trivial task if you were using the MongoDB with Node/Express.. just and the GraphQL Layers.. and see all the extra code you need..</comment>


OpenWrt and LEDE to re-merge - <AUTHOR> http://lists.infradead.org/pipermail/lede-dev/2016-December/004786.html <comment><USER2> This is awesome! So this is some of the important stuff:

1\. Use the LEDE codebase, rather than OpenWrt's (undecided but likely). They'll first push any new changes in OpenWrt since the fork into LEDE, and then rebrand move completely to LEDE's codebase.

2.Will be using OpenWrt's name, not the name 'LEDE' anymore.

3\. The workflow is still being discussed. The workflow of both LEDE and Openwrt will be learnt from to come up with the new one. Github will be used for issues, not PRs.

<comment><USER3> Are you sure about #3? I read it issues are not to be used but PR are.

<comment><USER2> You're right #3 is not right, but its not completely wrong either. Looks like issues on github won't be used, but PRs won't _really_ be used since there isn't going to be any merging done using PRs. Maybe it'll be a bit more clear as to what they'll do. I wonder what's left for them to host on github if people can't open issues or merge their code.

>\- workflow between LEDE and OpenWrt? Using Github to gather pull requests, but not use the merge pull request feature of Github, have staging trees for queuing changes, and then merge into the main tree

</comment></comment></comment><comment><USER4> The forked from OpenWRT in May 2016 and are now already going back. I guess there's not much to gain from the code merge for end users except for a few bug fixes ([https://lede- project.org/faq#were_there_any_technical_reason...](https://lede- project.org/faq#were_there_any_technical_reasons_to_split_from_openwrt)).

<comment><USER5> Well, technically you might be right, but I would like to point out that two groups joining their efforts, while picking the best of both (organizational) worlds (processes, infrastructure, etc.) is always a good thing in the open- source world and means progress could be accelerated for the new, unified project.

Politically this could mean that either OpenWRT has moved and intends to improve regarding the issues that lead to the fork, or that the fork wants to return home either way.

I suppose at least both groups think their time is better spent together instead of separate, and I personally like these news way more than those of yet another fork...

<comment><USER6> From what I've gathered so far, LEDE is where the vast majority of activity and development moved after OpenWRT alienated most of the participants with friction in their workflow. OpenWRT had just a shell of 3 project members left, but continued to have substantial name recognition.

<comment><USER7> This is correct. LEDE is where all the devs and action went. OpenWRT is now just two or three people who were holding the old project hostage and may agree for LEDE to take over the name.

If there is a re-merge, it's going to be the LEDE base that is used. There are a half-dozen or more new devices supported in LEDE, an no new devices in OpenWRT from after the split (that I am aware of anyway).

</comment></comment></comment></comment><comment><USER8> I really wish the openwrt software ecosystem wasn't in its own little world, things like ubus + augeus would be nice.

</comment><comment><USER9> LEDE folks have started to dump their patches on kernel mailing lists, but they don't seem to be mainline-able as is and the submitter is loathe to rework them:

[http://marc.info/?l=linux- kernel&m=148230680302480&w=2](http://marc.info/?l=linux- kernel&m=148230680302480&w=2)

<comment><USER10> Perhaps there is more context, but from a narrow read: the linked email states a need, contains a patch that solves the problem, and offers to solve it another way if needed... that seems pretty mature?

The text literally says:

> I am not sure if this is the best way to remove the quirks from the build. > Let me know if you prefer a different way of solving this.

<comment><USER7> I can speak from experience that some of the LEDE/OpenWRT core people are fairly toxic at times. John Crispin in particular is known to go autistic on you if you top-post on one of his mailing lists instead of bottom-post. He's a real laces-out kinda guy.

</comment></comment></comment><comment><USER11> best news for Christmas!

</comment><comment><USER12> The submission title "OpenWrt and LEDE to re-merge" doesn't match the post which is titled "Talks between OpenWrt and LEDE" and specifically says:

> It is still not decided that both project will finally merge

<comment><USER13> It's the record of more than one meeting. Check out the part under 'OpenWrt / LEDE follow up meeting'.

<comment><USER12> My bad, I thought the first section was a summary and skipped the rest.

<comment><USER14> I did exactly the same thing.</comment></comment></comment></comment>


Get the Tipjoy Bookmarklet. Tip any site, while you're on it. - <AUTHOR> http://tipjoy.com/bookmarklet/ <comment><USER2> It's actually kinda cool, going around the web, reading articles on my favorite blogs, and for once, _leaving a tip_. It makes me feel good.

<comment><AUTHOR> I love the internet

</comment></comment><comment><USER3> At least be honest: tip Tipjoy _and_ any site you chose while you're on it. Tipjoy does take a cut, right?

<comment><AUTHOR> We take a small cut. Smaller than other services, like PayPal. We're open about this: <http://tipjoy.com/faq/14/#q14>

I stress the bookmarklet not because of our cut, but because it will grow our userbase -- people receiving lots of tips without being Tipjoy users will probably soon become users to claim the tips.

edit: I should also mention that our effective cut is small when you consider that tips can be recycled back into the community. Tip receivers can tip other things for essentially zero overhead. We take our small cut when someone cashes out.

<comment><USER3> Cool, allowing tips to be used inside the system to fund other tips is a good touch that also have the side effect of encouraging even more generosity.

</comment></comment></comment><comment><USER4> how does a site that does not use tipjoy ever find out that someone tipped them? Is it one of those if they login they'll find out things?

<comment><AUTHOR> We actively seek out people that have received money that aren't users. We're thinking about ways to automate this, but making it personal is probably going to be the most effective.

You can search for a domain, url, or email here to check if it's been tipped: <http://tipjoy.com/domainSearch/>

If it has, you need to authenticate that you own it through one of a few methods.

<comment><USER3> Does the tip get debited only after the intended recipient receives it?

<comment><AUTHOR> No, when the tipper gives it. Also, someone only receives the money into their account when the tip is paid, but they are shown the level of unpaid tips.

I expect a number of blog posts of people saying "hey folks, pay your tips!". We're deploying some friendly ways of encouraging it too.</comment></comment></comment></comment>


How Far is it to Mars? - <AUTHOR> http://www.distancetomars.com/

<comment><USER2> Or if you want the current distance.

[http://www.wolframalpha.com/input/?i=distance+to+mars](http://www.wolframalpha.com/input/?i=distance+to+mars)</comment>


Kick Ass Conversions and Traffic: Lessons from Marketing Verify - <AUTHOR> http://www.zurb.com/article/508/kick-ass-conversions-and-traffic-lessons <comment><USER2> Really good article. Worth watching the Dmitry's (author of this article) interview on Mixergy: [http://mixergy.com/how-do-you-get-users-and-how-do-you- turn-...](http://mixergy.com/how-do-you-get-users-and-how-do-you-turn-them- into-evangelists-with-dmitry-dragilev/).

Loved how it covered everything from inception of the idea, to the marketing and blog coverage.

Would be interested to find out what they're going to be doing in the long term though...</comment>


Emacs for Python Programmers #2: Virtualenv, IPython & Daemon Mode - <AUTHOR> http://jesselegg.com/archives/2010/03/14/emacs-python-programmers-2-virtualenv-ipython-daemon-mode/

<comment><USER2> One word: Rope

It gives you all sort of semantic and refactoring awesomeness for python in emacs.

</comment><comment><USER3> Thanks so much for posting that; it has been on my todo list for a while now to figure out a neat way of hooking virtualenv into emacs!

</comment><comment><USER4> It's not about what Emacs can do for you, but what you can do for Emacs.

</comment><comment><USER5> What can give me IDE-like popup completion for the current file using a live python interpreter beyond the scenes?

<comment><USER2> Rope :)

</comment></comment><comment><USER5> Why isn't there SLIME for Python?

<comment><USER2> Because Python isn't Lisp.

I don't think python particularly handles image based programming very well (not that all Lisps do this exclusively, just that they support it well enough for SLIME to make sense). Right now I have a load of code in Python which I'm constantly changing and reloading into my iPython session and it can be a bit of a pain, my files are littered with "reload(x)" statements just so when I reload one the others also get reloaded. I've tried the deep-reload extension to iPython without much success but maybe this will help in the future.</comment></comment>


How to Deploy Apache Storm on AWS with Storm-Deploy - <AUTHOR> http://cloudacademy.com/blog/how-to-deploy-apache-storm-on-aws/ <comment><USER2> Any plans to create similar tutorial for Apache Heron?</comment>


How to sum from 1 to 10 in Common Lisp - <AUTHOR> http://c2.com/cgi/wiki?HowToSumFromOneToTenInLispOrScheme

<comment><USER2>
      > Do I have to do everything myself?
      > (+ 1 2 3 4 5 6 7 8 9 10)

</comment><comment><USER3> (loop for i from 1 to 10 sum i)</comment>


10 React mini-patterns - <AUTHOR> https://hackernoon.com/10-react-mini-patterns-c1da92f068c5 <comment><USER2> Previously posted: [https://news.ycombinator.com/item?id=13736465](https://news.ycombinator.com/item?id=13736465) and [https://news.ycombinator.com/item?id=13743096](https://news.ycombinator.com/item?id=13743096)

It's an informative article listing common "mini-patterns" that the author has found useful for React applications. I imagine most people have discovered (or invented their own variations) of some of these patterns, but there are a couple in there that I hadn't considered before - and will be trying it out.</comment>


Show HN: SpotDy – Analytics for Government - <AUTHOR> https://spotdy.com

<comment><USER2> I think design wise the site looks great but I am still confused about what it is you do. Don't get me wrong, the website does its job. I want to know more. But the constant stream of "cutting edge technologies" jargon is vague and even the features pages don't really go into detail.

Who do you perceive as your primary user base? Perhaps it would help to have sample screenshots or a demo of the data available.

</comment><comment><USER3> Nothing too serious, but you should properly resize those logos in the footer (keep aspect ratios).

<comment><USER4> Yes, the companies logos are not in aspect ratio, it wouldn't harm to re-do the AAP logo yourself and use a polished one instead of the edgy.

<comment><AUTHOR> agree with the logo comments. we will fix that soon.</comment></comment></comment>


Ask HN: Why are comment trees not collapsible yet? - <AUTHOR> <comment><USER2> My guess is that they don't want it to be like reddit. Same reason why there are no comment notifications.

When you have a new comment notification, you are more likely to respond. People are more confrontational on reddit because of this reason. Whereas on HN, you tend to write a thoughtful answer and leave it at that. Threads are shorter on average, so the conversation is less likely to get out of topic.

Collapsed comments are usually ignored, because people are too lazy to dig that deep, that means some really good conversation might get buried.

I kinda like HN comments style better, I hope they keep it like that.

<comment><USER3> That my biggest complaint about HN though. I think conversations would be a little bit easier if we had comment notifications.

<comment><USER4> My biggest wish would be a visual indication which comments I haven't seen, yet.

<comment> squeaky-clean I use Hacker News Enhancement Suite for this. On the front page it shows total number of comments, and new comments since you last viewed a submission. Comment trees with new replies are all highlighted with a dark orange, while the new replies themselves are highlighted with a bright orange.

It also adds collapsible comment trees, inline commenting and other features I'm probably not even aware of.

[0] [https://chrome.google.com/webstore/detail/hacker-news- enhanc...](https://chrome.google.com/webstore/detail/hacker-news- enhancement-s/bappiabcodbpphnojdiaddhnilfnjmpm?utm_source=chrome-app-launcher- info-dialog)

</comment></comment></comment></comment><comment><USER5> I would like the ability to collapse comment trees at my own discretion (not have it already auto-collapsed based on votes like others suggest or as seen on Reddit).

If the top comment is about a sub-topic that I'm not interested in, and there are 100 nested comments, it's a pain to scroll through them on mobile and not accidentally scroll past the next parent comment.

<comment><USER6> The existing HackerNewsCollapse extension mentioned in the other comment already does this. I built a Chrome extension which extends this further by also trying to summarize the comment thread based on word frequency of entire subtree (with mixed results)

[https://chrome.google.com/webstore/detail/hngist/jigimhmnilg...](https://chrome.google.com/webstore/detail/hngist/jigimhmnilghciamfcdlogbaaokpakim?hl=en- US)

It also tries to come up with a summary sentence, but I need to do better sentence splitting.

I don't think these extensions work on Google Chrome for mobile though..

</comment></comment><comment><USER7> We've asked the HN folks for it but they may not see it as a priority for now. However if you use chrome there's a simple extension that does only that. Take a look next to the usernames on this pic.

[http://i.imgur.com/73rf3cj.png](http://i.imgur.com/73rf3cj.png)

[https://chrome.google.com/webstore/detail/hacker-news- collap...](https://chrome.google.com/webstore/detail/hacker-news- collapsible-c/hockhafcdegocajmjhafgjncjpodihkd)

<comment><USER8> There is also one for FireFox

[https://addons.mozilla.org/en-US/firefox/addon/hn-utility- su...](https://addons.mozilla.org/en-US/firefox/addon/hn-utility-suite)

<comment><USER9> FANTASTIC. Thank you.

This will significantly improve my ability to get useful info out of HN. The "single mega-thread" problem really cripples some comment sections.

</comment></comment></comment><comment><USER10> I'm using this extension (Safari and Chrome) to get this and more: [http://hckrnews.com/about.html#extensions](http://hckrnews.com/about.html#extensions).

<comment><USER11> As do it, and I'll add that it has a very nice feature of marking new comments after a page refresh with a narrow vertical orange bar.

</comment></comment><comment><USER12> If you're on Chrome, you can use the HackerNews enhancement suite: [https://chrome.google.com/webstore/detail/hacker-news- enhanc...](https://chrome.google.com/webstore/detail/hacker-news- enhancement-s/bappiabcodbpphnojdiaddhnilfnjmpm?hl=en)

<comment><USER13> Also available is [https://github.com/andrewheins/HN-Comment- Hider](https://github.com/andrewheins/HN-Comment-Hider) (Chrome extension or Greasemonkey script)

</comment></comment><comment><USER14> Dear HN admins:

Any chance of changing the table background color from #f6f6ef to something that has sharper contrast with the white page background? I look at comment distance with this border to find new top level comments, but it's hard when one is white and one is light grey.

</comment><comment><USER15> I would use this so much. Alternatively 'scroll to next top level comment' and 'scroll to next same-level comment' buttons would be similarly useful.

</comment><comment><USER16> I've used a chrome extension for so long that I was confused that one time when it didn't apply. It really makes it easier to read the comments when you can collapse a tree so that you can see the 'next' reply and still keep the parent in the view.

</comment><comment><USER17> I wrote a userscript a while ago that does this:

[https://greasyfork.org/en/scripts/12493-hacker-news- folding-...](https://greasyfork.org/en/scripts/12493-hacker-news-folding- subtrees)

</comment><comment><USER18> Please don't change a thing.

There's a reason why I had better conversations on BBSes in the 90s than I typically do online these days - the tech forcing you to slow down and be (somewhat) thoughtful.

</comment><comment><USER19> While reading this on my tablet, using Yarn, I collapsed a bunch of these comment threads. It's useful. Implement it.

</comment><comment><USER20> The comment page is basically broken without this feature. I rarely get to the even the 3rd comment when the first comment has many responses. Please allow collapsable comment trees.</comment>


Face.com closes its API after Facebook purchase - <AUTHOR> http://www.gyford.com/phil/writing/2012/07/10/face-com-facebook.php

<comment><USER2> Related (or identical):

<http://news.ycombinator.com/item?id=4211021> <\- Comments

<http://news.ycombinator.com/item?id=4211271> <\- Comments

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

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

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

</comment><comment><AUTHOR> The interesting point here to me is, is there _any_ obligation for service continuity across an acquisition? Any at all?

<comment><USER3> Moral obligation or legal obligation? Legally they would be bound by whatever terms you and they agreed upon such that they are enforceable. Morally? I dunno, that's trickier, but at inception, one surely can't account for all possible future scenarios (acquisition being one) and build that into people's expectations.

I think it's just the nature of business. Even with the best of intentions, a company (site whatever) may not be able to survive (and most people accept that). In the case of failure a mature business can go through bankruptcy proceedings. Still, in most cases, customers are probably the last ones receiving any comp, if any is left. Mostly it goes to creditors and so on.

</comment></comment><comment><USER4> Seems like such a perfect opportunity for competitors to step up.

</comment><comment><USER5> According to the recent rulings you can't copyright APIs, and if that's the case, why have their not been more open source API alternatives to these ventures? I understand money would be an issue so I imagine a non-profit or open source foundation funding servers to house such a venture would also be necessary unless you were to do it yourself.

<comment><USER6> The APIs aren't hard, the technology _behind_ the APIs are.

<comment><USER7> That's the real problem. You can find stuff like libfacerec out there, which OpenCV just added to their latest release (2.4.2) a week or so ago. Maybe we will see more face-recognizing software come from this.

[http://docs.opencv.org/modules/contrib/doc/facerec/index.htm...](http://docs.opencv.org/modules/contrib/doc/facerec/index.html)</comment></comment></comment>


In Turkey, a power play will leave ancient towns underwater - <AUTHOR> https://www.nationalgeographic.com/magazine/2018/11/turkey-flooding-dams-displaced-antiquities-mesopotamia/ <comment><USER2> It's tough for Turkey I bet. Water is one of the worlds most important assets, and Turkey should ensure their water supply for the future droughts that are coming, but destroying such history rich area is tough.

<comment><USER3> I can't comment on the specific project, but it could do the opposite. Dams eventually silt up and the changes in waterflow can cause a lot of other undesirable changes. If planned poorly enough, hydroelectric shouldn't even be considered renewable energy.

</comment></comment><comment><USER4> > Turkey has no native oil or natural gas sources.

Wrong. Turkey has vast oil resources[0] but they are unexploited due to current oil&gas pipeline treaties. As can you see in [0], European part and South of Turkey is full of oil reserves. More reserves are available in the shores.

[0]: [https://slideplayer.biz.tr/slide/1938461/7/images/3/T%C3%9CR...](https://slideplayer.biz.tr/slide/1938461/7/images/3/T%C3%9CRK%C4%B0YE+PETROL+HAR%C4%B0TASI.jpg)</comment>


Ask HN: Can I sell for you? - <AUTHOR>

Me: Freelancer looking for a full-time position. Very interested in sales and would love to gain experience. Can afford 2 hours a day between current freelance workload. Willing to work on commission only basis. I am northern California. Let's talk! <comment><USER2> Please update your HN profile with contact information. Also: what do you sell? (Do you have a niche?) How do you sell it?

<comment><AUTHOR> Done, thanks. I would love to pitch b2b service for starters. I am fine with cold calling or working from an opt-in list.

</comment></comment><comment><USER3> I run <https://www.shicray.org/> ... I'd be willing to give you a commission on all sales. It's a freelance marketplace. Would require a lot of guerrilla marketing and advertising. My email is in profile

</comment><comment><USER4> Yes. Send me an email. Details in my profile.

<comment><AUTHOR> Done. Thank you.

</comment></comment><comment><USER5> can you share some info on your sales experience and current network?

<comment><AUTHOR> My experience includes tele-sales (sold AAA service, worked a script, made a million pitches, got a lot of rejection, but closed many a sale), computer retail (at computer store - knowing technical aspects, approaching people, listening, helping, closing), freelance (finding clients, listening, helping, closing). My network includes friends and colleagues in many professions, but am eager to grow this. As I mentioned in the post, I am offering a trade: I sell for you to gain experience, and learn, or re-learn how to sell. I can afford ~2 hrs a day. I am very motivated and resourceful. Let's talk!

</comment></comment><comment><USER6> I'll email in the morning

<comment><AUTHOR> Thank you.</comment></comment>


How a Kalman filter works, in pictures (2015) - <AUTHOR> http://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/ <comment><USER2> For anyone who read this blog post and thought "Wow that's interesting, but I don't understand half of this. I need a whole youtube series to explain this to me."

Well we're in luck. [https://www.youtube.com/watch?v=CaCcOwJPytQ](https://www.youtube.com/watch?v=CaCcOwJPytQ).

It's a great set of 55 video lectures on Kalman filtering. (I'm only on number 5 but so far they've been great)

<comment><USER3> Unfortunately those lectures are not complete.

<comment><USER4> Well there are at least 42 videos, so that's fairly complete. Nearly a semester already...

</comment></comment></comment><comment><USER5> Good work putting the colour highlighting on the formulae. It does make them easier to follow for someone who is not a complete wizard with algebra. Without this little formatting touch I would find the article to be mostly a sea of symbols that I would likely skim over and still not properly understand.

<comment><USER6> I wish more math papers did this. It's a nightmare for someone who doesn't read equations all day for a living.

</comment></comment><comment><USER7> For those familiar with least squares estimation, there's a good answer here that relates it with the Kalman filter [http://dsp.stackexchange.com/a/2398](http://dsp.stackexchange.com/a/2398)

It's a little simpler to derive the least squares smoothing function [http://stats.stackexchange.com/a/138342](http://stats.stackexchange.com/a/138342)

</comment><comment><USER8> Pardon my ignorance, I'm just wondering about some context, since the Kalman filter was invented in the 60s. Are Kalman filters still highly relevant, or are they (in practice and/or in theory) obsoleted by other techniques, such as general ML?

<comment><USER9> Yes, they are a staple of modern robotics and other fields. If the Kalman filter assumptions about the system hold (linear model, Gaussian noise), the Kalman filter is an optimal filter and you can't do better. There are also more complicated variants like the extended Kalman filter and the unscented Kalman that can do better when the assumptions of the Kalman filter are not accurate.

It's also worth noting that the Kalman filter follows the EM pattern of many ML / statistical models.

<comment><USER6> In practical robotics, how often do the assumptions hold? Is it really usually true that the variables have only a linear relationship?

<comment><USER9> People are generally happy with the Gaussian noise assumption. In some cases, there are acceptable linearizations of the dynamical model. One example is linearizing the quadrotor dynamics about the hover state (no roll or pitch). This approximation works well enough for basic flying, but you won't be able to pull off any flashy maneuvers because any hard bank will move you too far away from the linearization point for it to hold. A better choice would be a more complicated KF (I've used an error-state KF in the past).

The real draw of these filters, though, is that they are very fast. In my experience, most of the compute time every update cycle is spent on sensing because your sensors dump a ton of data that you need to process as part of your CV / SLAM / whatever pipeline (the outputs of these then go into your KF). The dream is to get a 10ms update loop so your control algorithms can do a good job, but this is easier said than done.

</comment></comment></comment></comment><comment><USER10> My ML professor once took hidden markov model and arrived at equations of a kalman filter. That just completely blew my mind, I could never think the concepts from estimation theory machine learning could be related so beautifully.

<comment><USER9> The Kalman filter algorithm is an EM algorithm.

<comment><USER10> At that point, I did not have an idea of the family of techniques that these belonged to.

</comment></comment></comment><comment><USER11> This is really great! I kept encountering Kalman filters in my research during graduate school, but they didn't directly affect my research so I never made the time to understand them. What a fantastic explanation!

I'm also a huge fan of the use of colors to understand all the different concepts at work. Yesterday I actually asked the secretary of my department to get my an 8 pack of multicolored pens for this exact purpose (red, blue, and black aren't enough!).

</comment><comment><USER12> That was a really coherent explanation. The coloring was helpful, also the way in which the details were introduced one by one.</comment>


Ask HN: How best to structure a "start-up" of 25 people - <AUTHOR>

I'm in a software engineering class, and the class is being run like a start-up (theoretically).  We have a customer, a summer camp that wants to move from a paper based sign-up for art classes to a more automated system.
Currently we have 4 people who volunteered to be managers, and about 20 other folks.
As a class we have to decide how to structure the teams.  Since the product can be divided into 3 groups- teacher interface, student interface, and billing- the managers are considering dividing students into three groups.
However, to me this seems like a suck way to do it.  I was wondering if any HNers have any ideas (or links) on how to structure a group of this size. <comment><USER2> A 25 person startup is 22 people too many.

Actually the students would learn more if the class was broken down into 5 startups all competing for the customers work. This would give you 5 small tightly focused groups. Each would have to nominate a leader and or agree on a unified vision for their approach. Then fire the gun, BANG and get to work. Break out your roles, do yer thing, but most of all focus on that customer and learn about the problem.

The problem with one big class is that now you have to have 25 people agree on the vision/course of action, good luck, and you stir up the pot to get 4 folks or less to basically lead/do/all the work and or you ignore people that had good ideas but maybe not the best communication skills to bring/push those ideas to light.

Plus the customer suffers with just one vision. Why not produce 5 in a class, bounce around perspectives, ideals etc, and have people reflect on how their group performed- challenges, successes and weaknesses.

Sure the client sorta gets a taste of spec work startup style but the students can potentially learn more and feel like they have more skin in the game due to smaller groups.

The competitive edge makes it fun as well.

<comment><USER3> real startups have people working 16+ hours a day on the startup. This is a class, people will not work 16+ hours a day to get this out the door.

I do think you can take a similar approach, and break the groups up in to 7 groups of 3 to work on the initial design of the product an 1 group of 4 to present the various designs to the customer, have the customer choose one, then split the product up into roles.

4 managers, 3 visual designers, 3 user interface designers, 3 user researchers, 3 developers, 3 database experts, 3 QA people, and 3 back ups to take over the work that other people drop.

The people in roles should spend time working as a team on their part of the product and also interfacing with teams in the other roles. It will be quite a class that brings together all of those skill sets, but even if it is a programming class it would be good to get experience "working" in one of the other roles to get some perspective on what they do.

This is the way a large company works, though. Or at least a mid stage startup, not a new small startup. Good luck!

</comment></comment><comment><USER4> This seems to be a natural thing to do. What are the drawbacks that you see from this approach?</comment>


Algorithm Design  - <AUTHOR> http://www.ambesty.com/default.aspx

<comment><AUTHOR> The only issue with the website: Development of this site is slowing down due to the lack of support and popularity. If we get more support from our viewers by reaching 200 "likes" (upper right hand corner of the site), we will continue to work on this site full time again. Thanks.

It seems like a really good idea so I am hoping that some people from hacker news will go there and show support. :)</comment>


Apple Files Patent for In-App Purchases - <AUTHOR> http://www.tomsguide.com/us/application-purchase-ecommerce-advertising-ios-android-blackberry-windows-phone-lodsys,news-12806.html

<comment><USER2> As someone with a business process patent pending, let me just say, business process patents are ridiculous.

This is yet another great example of why. For one, you already get a copyright on the software you write, as well as any books or pamphlets that your company might write to describe your business process. So there really is no reason for the patent -- you can use your copyright for all types of business practices.

Second, the purpose of patents was to protect an inventor for a limited time to encourage invention. They required you to turn in a prototype to get one.

I think we need to go to a system where you have to turn in a working prototype of a physical invention to get your non-renewable three year patent.

If you can't turn your prototype profitable in three years, move out of the way so that someone else who can execute better than you can do it instead.

<comment><USER3> We're firmly in the stage in which patents _stifle_ innovation, instead of promoting it. The industry has been headed down the wrong path, and unless patent law sees some drastic reform, frivolous and ridiculous patents such as this will only serve to make patent lawyers very, very rich. It's beyond pathetic.

</comment></comment><comment><USER4> Wow seriously? This shit is ridiculous. Theres so many applications web/phone/desktop based that have allowed purchases within the application before Apple.

<comment><USER5> This appears to be a defensive maneuver in Apple's litigation with Lodesys. You obviously didn't read the article so I'll quote part of it here: "The idea is, in general, very similar to the Lodsys patent, however, it is much more specific. If Apple was granted the rights to the patent, both sides could easily challenge each other's patents. The question, of course, would also be what Apple would do, if this patent is granted, about Android, Windows Phone and Blackberry developers? Most likely nothing, as there are countless iOS developers who offer their apps for multiple platforms and Apple may not have an interest in upsetting them."

<comment><USER6> It seems as though there are exactly two reasons to get a patent.

To troll people with, and to protect yourself from the first.

It's about time we just did away with the entire system.

<comment><USER7> In this particular case, protecting itself (Apple) could mean protecting iPhone developers.

<comment><USER6> My point is that if the only "legitimate" purpose of patents is to counteract the illegitimate purpose, the proper solution is to do away entirely.

<comment><USER8> <slow clap>

</comment></comment></comment></comment></comment></comment><comment><USER9> These tactics seriously make me wonder why everyone is treating Steve Jobs (yes, his death is sad of course) like some kind of Oracle?

Apple has over the last 5 years, become EXACTLY what they were making fun of in their first famous commercial.

<comment><USER10> _Apple has over the last 5 years, become EXACTLY what they were making fun of in their first famous commercial._

2nd time I've seen that meme today. The first was from ESR, so I guess you're in good company.

It doesn't sound historically accurate to me. The Ridley Scott commercial "1984" used Big Brother as a caricature of IBM, who had been battling with the DOJ over monopoly practices constantly since 1969. Although that specific suit was dismissed in '82, IBM had a stranglehold on the PC market, and until March '83 they were the only company making them. When the 1984 commercial aired, the first PC-compatible machine had only been on the market for about a year, and it wasn't clear yet that Compaq would be successful in challenging IBM's dominant position. Even those who believed Compaq would be successful would have to admit that the only viable challenger to IBM's dominant position was someone forced to imitate, and not terribly free to innovate.

The commercial was not about patents. Apple filed their first patent in 1977.

Unless you can make a case that the DOJ should go after Apple and that it is difficult for consumers to take their business elsewhere, you'll not be able to make the claim that they have become what that commercial alluded to.

<comment><USER9> Why would I need to nit-pick patent legislation or ownership to express the opinion that the business model adopted by apple is counter productive, and a fucking joke when you compare their current business model to their 'change the world' model of 80/90s?

iTunes, Appstore and OSX being locked to a single hardware base is the most protectionism-based software development to emerge EVER.

If you want to argue that on a philosophical basis, 'come at me bro!'

I am NOT saying Steve Jobs is not a visionary, a great leader of a company, a fantastic CEO.

All I am saying is that I despise the direction that Apple has come to take and I highly dislike this new 'model' of funneling sales.

If you take the case of freedom of expression, creativity and freedom.

How can you accept a future where all software that wishes to be financially viable being vetted by 2-3 large companies?

<comment><USER10> Apple's "change the world" model has always been about user experience. With the Macintosh the phrase was "the computer for the rest of us". They seek to enable ordinary people to express themselves with usable tools. This vision has unflaggingly informed the trade offs they have chosen, and their current strategy is just a continuation of that. I think you read too much into that commercial. They have never been militant freedomistas. That's RMS's shtick.

It does not bother me that you disagree with the tradeoffs they have chosen. Let's not revise history to make a point, though.

</comment></comment></comment></comment><comment><USER9> TIL; Arguing the reality that Apple 'might' not be an altruistic entity set on selflessly improving the quality of the world can cause some 'fans' to get very, very sad and pissy.

</comment><comment><USER11> The patent application (10/6/2011) claims appear likely to be anticipated and/or practiced in the prior art. Can anyone cite prior art on which these claims read?

1\. A method comprising: presenting an application offering a product for purchase, the application being from a first entity; presenting a purchase interface overlaid the application, the purchase interface being from a second entity; and completing a sales transaction without navigating away from the application.

2\. The method of claim 1, further comprising: initially presenting a portion of the application offering the product for purchase and upon receiving an input or selection in the portion of the application revealing the full application.

3\. The method of claim 1, wherein the purchase interface is presented after receiving an input into the application offering the product for purchase indicating that the user desires to purchase the product.

4\. The method of claim 1, wherein the purchase interface is translucent.

5\. The method of claim 1, wherein the purchase interface is partially transparent.

6\. The method of claim 1, wherein the application is an advertisement.

7\. The method of claim 1, wherein the application is from an application server that targets applications to users.

8\. The method of claim 1, wherein the purchase interface is for purchasing a product directly from an online store.

</comment><comment><USER12> This is just one of Apple's ways to deal with a patent troll. Why are people not seeing this? Everyone hates patents here but as long as they exist these kinds of ridiculous patents will be filed. No need to rail against Apple (or even Steve) here.

<comment><USER13> As trolls do not make any products they are immune to any other parties' patents, you can't keep them from enforcing their patents by holding other patents, and their patents doesn't become less valid by the existence of other patents. On the other hand, these kinds of patents can be useful to stifle uppity competitors like Android.

<comment><USER12> True. But don't they have a case going on in court right now? I would assume the new patent if granted would help Apple. I might be a little lenient on Apple but from what I see their only issue is with the implementation of multi-touch by their competitors (I could be wrong). I am not sure they care about Android's in-app purchases.</comment></comment></comment>


Ask HN: How do you manage your personal finances and budgets? - <AUTHOR> Do you use any specific applications or websites? Any neat tips that you may have would be interesting too.<p>Thanks! - Ahmed <comment><USER2> Although I would probably find mint.com very useful, I won't use it while doing so still means violating your bank's TOS [0].

Mint.com requires your online banking credentials. Most banks will state in their TOS that sharing these credentials with 3rd parties is a violation and absolves them of liability should your account be compromised (via any means).

[0] [http://www.moneysense.ca/spend/the-banks-take-a-bite-out- of-...](http://www.moneysense.ca/spend/the-banks-take-a-bite-out-of-mint-com)

</comment><comment><USER3> I use a plain text file with columns separated by tabulations. First column is my earning, and my expenses that are predictable (like phone, loan...). second column is my expenses on a daily basis. A simple awk command and I can compute a projection of the money that will be left on my account at the end of the month. Each month I use a new file. The beauty is that I can print the result of my command and put it in my status bar, next to the temp of my proc. It's a metric value like another after all.

</comment><comment><USER4> I'm writing my own. I used Mint for past 3 years or so but it's just not working out because it keeps creating duplicate copy of accounts, the expenses/income per month isn't right and so on. I've a prototype that I'm using personally for past two months. Still need to add few more features. After it's ready I would probably do Show HN.

</comment><comment><USER5> I use mint, personalcapital, and a spreadsheet. You may want to checkout the financial independence subreddit for a deeper dive on the topics of personal finance and budgets: [http://www.reddit.com/r/financialindependence](http://www.reddit.com/r/financialindependence)

</comment><comment><USER6> [https://mint.com](https://mint.com)

[https://futureadvisor.com](https://futureadvisor.com)

[https://simple.com](https://simple.com)

Simple for banking. FutureAdvisor for automated retirement investments. Mint to aggregate various accounts into one spot.

<comment><USER7> Mint is great, I'm also tracking my federal student loan balance with it

</comment></comment><comment><USER8> I keep track of my finances using my Android phone. There's Financisto ( [http://financisto.com/](http://financisto.com/) ), an awesome and extensible app which suits my need extremely well.

</comment><comment><USER9> If you want a tool that is freely available and runs on your PC, try something like: [http://gnucash.org/](http://gnucash.org/)

</comment><comment><USER10> [http://www.moneydance.com](http://www.moneydance.com)

</comment><comment><USER11> We use Quicken, Personal Capital, and spreadsheet.

</comment><comment><USER12> Excel Spreadsheet.

<comment><USER13> This company is really good - [http://www.simpleplanning.net/](http://www.simpleplanning.net/)

Lots of good spreadsheets. Not too expensive either.

</comment></comment><comment><USER14> mint.com, betterment.com, sigfig.com</comment>


Bitcoin network reaches 1 Exahash/s - <AUTHOR> 1 Exa = 1x10^18
Screenshot: https://i.imgur.com/FVrnXJW.jpg
Source: https://blockchain.info/charts/hash-rate?timespan=2year&showDataPoints=false&daysAverageString=1&show_header=true&scale=0&address= <comment><USER2> And still just ~5 transactions per second.

<comment><USER3> Since the two things are not really connected (as far as I understand)...

<comment><USER4> Correct. The amount of hashing power is correlated with how difficult it is to manipulate the network, but not with the rate at which coins are mined or transactions are processed.

I expect this to drop off after the reward halving. It's a constant zero sum game, but I don't expect the halving to propel the price so much that the hashing power is maintainable.

</comment></comment></comment><comment><USER5> That's a lot of power consumption.

<comment><USER6> Compared to what?</comment></comment>


Ask HN: How to Decode Interstellar Signal with Unknown Bitrate - <AUTHOR> I have a question about FSK modulation I'm going to frame in terms of a hypothetical:
Imagine that you are transmitting a message to an ET in another solar system. The message is encoded in binary and embedded in the radio signal using FSK modulation. Lets say the signal is broadcast at 5 GHz and FSK +50kHz (i.e. 0 = 5,000,000 kHz and 1 = 5,000,050 kHz). Finally let's say you want to broadcast @ 1 bit per second.
Now lets say the message you send is "1111111111" (10 ones).
Would the ET recipient of this message be able to decode it without knowing the bit rate?
My argument would be no, since to the ET it would just look like an unmodulated signal at 5000050 kHz that lasts for 10 seconds. If the ET didn't know the bit rate, it would be impossible for it to determine whether there was 100 ones or 10 ones encoded in the signal unless some zeroes were present as well--that is, unless the signal was modulated. Even in a modulated signal, however, it seems difficult to determine the number of bits in the transmission without knowing the bitrate.
Are there any techniques for "reverse engineering" baud in a signal whose transmission parameters are unknown? <comment><USER2> First of all, you never send 11111111111. Even one earth when we know the encoding and expected bit rate: long sequences of ones (or zeros) are hard to decode. There are various schemes to encoding so that we never send more than a few.

Second, we send much longer messages. 1111111111 doesn't mean anything, so decoding it as 11111 or 11 or even 1 is all the same. Instead we send very long messages with a lot of things that we believe they know. Maps of every star in the galaxy for instance - presumably they already have their own map. Thus once they think of this idea (which we hope is obvious) figuring out how we encoded it from the vast amount of data isn't very hard. Once they are sure of the encoding they start looking at other parts of the message that don't make sense, but they already have a map of the encoding so they know they have the data right, it is just a matter of understanding it. We start by adding things to the map - they already know it is a map and have a good idea where we sent the message from, so a "we are here" arrow is easy to figure out. Then we add more and more information, each building on the next.

Then after sending all that data we repeat it because they probably didn't even notice it the first 100 times we sent it. The fact that a long sequence that seems random keeps repeating is a very clear sign that the sequence ins't random.

</comment><comment><USER3> Maybe clock recovery strategies can help? But the initial problem is that the hearer doesn't know they're hearing a message (maybe?), which is like detecting steganography.

<comment><AUTHOR> Good point. I'm assuming this problem of letting the ET know a message is being sent can be overcome with certain design choices, such as using a really narrow bandwidth for transmission to mark the signal as artificial (most cosmic radio sources have really large bandwidths).

What sort of clock recovery strategies are you thinking of?</comment></comment>


Ask HN: Anyone hacked their power bills? - <AUTHOR>

I'm interested in the kind of things hackers have done to lower their power bills.
This is keeping in mind that I don't have a budget for much spending as a student.
Are LED lightbulbs the way to go? Does swapping out a 60W globe for a ~5-10W LED really lower your bill much at all? I need to know what kind of affect it could have before I outlay the cost of buying all LED for instance.
How much does lowering your hot water temperate affect power bills? I recently lowered ours from 70-60 degrees celsius by recommendation from a friend, but I'm not too sure how much it is affecting our bill.
We try to switch appliances off at the wall if we're not using them. I have an energy saver connected to the TV that cuts power to the Raspberry Pi and consoles when the TV isn't in use.
I tried to find some articles about cutting power usage but it's the internet and I don't know who to believe. Most of the results were commercial sites that sell power saving devices, so I don't really know that I can trust them. <comment><USER2> Here's a few bits, hopefully useful:

* 1 kwh is about 25.5 cents going by the average tariff in NSW. (It's ok to approximate).

* That means a full power 2400w heater you use in the evenings from 7pm to 2am, costs around $4.35 for those 7 hours. After 3 months of doing this most evenings it might be a $300+ item on the bill.

* Modern TVs and appliances often boast "1 watt standby". You won't notice any dent on your bill from these. Sure, on a global scale you're doing your bit, but it makes bugger all difference on your bill if you leave these on. Except of course if you have pre-2006 appliances, sound systems etc, that can sometimes drain 20 - 40 watts on standby which is bad.

* you could invest in a coin-op box for your electric heater. Ebay has them, little metal boxes with timers, mainly used for coin-op PCs in cafes. They can accept different coins and multi values. They remove the stress when you see your house-mate using the heater! 60 cents buys one hour of heater or whatever you set it to.

* hot water is cheaper if you have off-peak power (properly done on a dedicated off-peak circuit). If you're renting you might not even know whether you have off-peak hot water. The size of your hot water cylinder needs to be big enough to qualify for off peak.

* Lowering thermostat by 10 deg would definitely make a difference on your bill.

* Energy efficient lights bulbs means your total lighting cost for 3 months really is a small dot on your bill. The big stuff is hot water, and your big appliances.

<comment><AUTHOR> A lot of useful information there, thanks.

</comment></comment><comment><USER3> The best way to lower your bills is to demand (or allow) the utilities to build base-load power plants, preferably nukes. Since the most rational solution is off the table you are stuck with micromanaging demand instead of concentrating on more productive career or school goals.

I don't know where you live but here in California the local utility has a complex set of daily, weekly, weekend and monthly rates and tiers. The key to lowering your utility bill is to push heavy loads out of the highest rate periods, typically daily like 11am to 2pm, etc. It is all explained (very poorly) on their website. Also, you are given some "base" load for electricity and gas (defined by region) and if you exceed that your rate jumps dramatically. So if you can avoid hitting these limits on a monthly basis you can keep your costs down. Also, nat gas is about 1/3 of the cost of electric so electric heat is very expensive. If you live in an electrically heated apartment make sure that PG&E is giving you the discount for electric heat or you will pay a ton.

<comment><AUTHOR> I'm living in Newcastle, Australia

</comment></comment><comment><USER4> I don't have the data to look up, but I believe heating and cooling is the largest factor in energy consumption. This includes water heating as well as room climate control, so be sure to set those. The next largest would be appliances - dryer, washer, refrigerator, stove, oven in no particular order. Lights are a smaller part overall, but as dmfdmf said, power companies have different rates at different times of the day depending on the demand. They may or may not pass those rates down to end consumers - the hack is to use more during off peak/load hours and use less when it is expensive.

disclaimer: I work at a company that does this analysis for utilities to lower consumer consumption overall - we happen to have an Australian client as well.

</comment><comment><USER5> Your biggest costs are in heating and cooling, followed by appliances.

Some electric companies offer programs to cycle your air conditioning during peak hours. They'll cut the compressor but leave the fan running, and then turn it back on.

Example program: [http://www.jacksonemc.com/home-save-energy-money/energy- savi...](http://www.jacksonemc.com/home-save-energy-money/energy-saving-rates- tips/switch-savings-program-reduces-summer-bills)</comment>


New 'unremovable' xHelper malware has infected 45,000 Android devices - <AUTHOR> https://www.zdnet.com/article/new-unremovable-xhelper-malware-has-infected-45000-android-devices/ <comment><USER3> Wonder if it's written itself into recovery. Or the SIM card/baseband - <USER2> card in particular usually includes functionality for triggering a sideload of apps (eg for carrier apps), sending notifications, etc into the main SOC so it fits. Maybe the second instance of SIM card malware ever.

[https://www.youtube.com/watch?v=31D94QOo2gY](https://www.youtube.com/watch?v=31D94QOo2gY)

There are only so many places it can be hiding if it's surviving a factory reset.

\--Guy who is undoubtedly vastly underestimating the problem given that it's resisted AV vendors for a while

<comment><USER4> I'd wager that the firmware came pre-infected by the manufacturer (or an update to the firmware has the infection).

Based on the reddit thread at least one of the devices is from a no-name manufacturer.

[https://www.reddit.com/r/antivirus/comments/bj6isa/xhelper_k...](https://www.reddit.com/r/antivirus/comments/bj6isa/xhelper_keeps_installing_itself_on_android_phone/)

<comment><USER5> a not insignificant portion of generic weird mediatek chipset android phones come rooted from the manufacturer, because the OS is built with a root/developer configuration. This also helps malware like this spread on the sub-$80 android phones sold to non technically sophisticated users in the developing world.

<comment><USER6> I remember reading something about mediatek based phones saving on the BOM by utilizing virtualization on a single SoC to run the baseband RTOS and the Smartphone OS.

<comment><USER7> That's actually kind of brilliant.

<comment><USER8> Until you get bugs like "3D games lag when in fast moving car due to constant cell handovers" and "4G doesn't work at the same time as playing a 1080p60 video, so netflix/youtube are broken unless on wifi".

<comment><USER7> Sure but the phones $80. Getting to that price point requires some compromises. You'd think they'd also set the baseband VM at highest QOS.

<comment><USER9> I'm currently using a Xiaomi Redmi Go that was a bit less than that and I think it's remarkable how few compromises it has.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> > The ads and notifications redirect users to the Play Store, where victims > are asked to install other apps -- a means through which the xHelper gang is > making money from pay-per-install commissions.

Software publishers which have been proven to be paying out commission money from "bait and install" app links, for things published in the Play Store, should have their entire app and developer profile removed with extreme prejudice.

<comment><USER10> That's a bold demand, considering that majority of free games in Play Store monetize themselves via partner installs. For all we know, developers of involved apps are paying a "legit" advertising company for installs, and malware authors act as ordinary partners of that company (likely using a bunch of throwaway accounts).

<comment><USER5> I don't feel sorry for them, they can continue to monetize themselves through pay to win lootboxes and pay to win power boosts instead.

</comment></comment></comment><comment><USER11> I'm really confused. How is it possible something like this survives a factory reset? To be fair, I have a very limited knowledge of hardware like this, but my assumption is a factory reset should remove EVERYTHING that didn't come on the phone put of the box.

Some other comments are questioning weather this is happeneing to 'budget' devices sold by sketchy manufacturers. Would that explain something like this.

I sure as hell hope thats not the case on a phone from reputable manufacturer. If I can't wipe everything, including malware from my android device by doing a factory reset, I'm going to throw it in the garbage tomorrow & buy an iPhone.

<comment><USER12> Android devices have multiple storage partitions. "Factory reset" generally refers to wiping the data partitions, but _not_ the system partitions. It does not mean reflashing the phone's entire storage from an external image as you would expect.

I would imagine this malware modifies one of the partitions that is not customarily wiped. And I would expect that doing a proper full reflash from a computer (eg starting from `fastboot flash bootloader ...`) would remove it, assuming it wasn't already baked into that image at the manufacturer.

<comment><USER11> Thanks for explaining!

<comment><USER13> And the "not customarily wiped" partitions are not wiped because they are not customarily writable in the first place. Rooting a phone by a prominent manufacturer requires discovering an exploit which overcomes this write protection. This is why manufacturers try to protect against exploits, and why you probably shouldn't use a second-hand phone that has known exploits, where second-hand means touched by basically anyone in even a seemingly-legitimate supply chain.

<comment><USER12> > _you probably shouldn 't use a second-hand phone that has known exploits, > where second-hand means touched by basically anyone_

Clearly unpublished exploits are also bad, meaning this essentially applies to every phone. That's a pitfall of the closed security paradigm - even if you are willing to trust the manufacturer, you still can't be sure that their control has not actually been usurped by some unknown third party.

So you either need to double down and choose the closed system that receives the highest scrutiny (Apple), or opt for a device that has been opened by the community for long enough that any stateful hiding places are known.

</comment></comment></comment></comment></comment><comment><USER14> >According to Malwarebytes, the source of these infections is "web redirects" that send users to web pages hosting Android apps. These sites instruct users on how to side-load unofficial Android apps from outside the Play Store. Code hidden in these apps downloads the xHelper trojan.

Ok, maybe don't do that?

<comment><USER15> You never had to deal with an untechnical user, had you?

</comment></comment><comment><USER16> Sounds big, but likely paltry compared to active Android devices. That said, for other reasons that are more compelling, Apple is killing Google on "captive portal advantages". Google needs to dedicate more resources to both the PlayStore and the Chrome Extension store for many, many, reasons. They are not getting the inflection point of their "automation is fine" approach.

In other words, the conclusion is right, but this incident is NOT the selling point. Ad blockers and manifest V3 is a much better research study into their stupidity.

<comment><USER17> This doesn't really seem like a detection issue, but more of a design issue that Google needs to fix. Why is an app able to display ads across the system, even when you aren't running it? And how is it even possible for an app to make itself uninstallable?

<comment><USER16> Those are good specific examples that I might have missed. Good point. The PlayStore is a train wreck that takes a lot of percentage of revenue from apps and adds little value in return.

Just noting that 45,000 users affected IS NOT the PlayStore failure reference story. It's bigger than that.

10 million uBlock Origin Chrome users are soon to be abandoned due to Google's policies. That's way more interesting, and ties the PlayStore issues to the same Chrome Extension issues.

Apple is credibly watching out for their customers. Google is credibly watching out for Google. Pretty much unapologetically with little pushback.

Personally frustrating for me as I've been a loyal Android user for a long time. Almost ready to switch to an iPhone, despite my unfamiliarity and the much higher price point. Google should pay attention.

</comment></comment></comment><comment><USER18> Does anyone know if any of the hosts lists from blokada ([https://blokada.org/](https://blokada.org/)) keeps this out?

</comment><comment><USER19> I know IOS isn't perfect, however, when I read articles like this, I just have to smile. There's something to be said for a tightly controlled platform and ecosystem.

<comment><USER20> What do you think iOS reviewers were thinking when carefully auditing these apps -

[https://mashable.com/2017/06/12/apple-app-store- subcription-...](https://mashable.com/2017/06/12/apple-app-store-subcription- scams/)

[https://9to5mac.com/2019/10/25/malware-iphone- apps/](https://9to5mac.com/2019/10/25/malware-iphone-apps/)

[https://www.techtimes.com/articles/235985/20181204/apple- rem...](https://www.techtimes.com/articles/235985/20181204/apple-removes- malicious-fitness-apps-that-tricked-users-to-make-touch-id-payments.htm)

[https://www.wired.com/2015/09/apple-removes-300-infected- app...](https://www.wired.com/2015/09/apple-removes-300-infected-apps-app- store/)

They get so much wrong, so often, you have to wonder if they really look at the apps at all or just have some checklist, screenshots and a quota to hit. They explicitly approved all the garbage practices that Apple Arcade's billing protects users from.

<comment><USER21> That doesn't feel like the same thing _at all_. A shady developer tricking people into a subscription because they don't know any better is way different from malware that reinstalls itself even after a factory reset. People have to agree to pay for the subscription from an OS-level prompt in the first instance. They don't have a choice in the 2nd.

<comment><USER22> > A shady developer tricking people into a subscription because they don't > know any better is way different from malware that reinstalls itself even > after a factory reset.

A shady developer tricking people and a shady website tricking people result in bad things.

To get this trojan I'd need to go into settings and tick this box:

[https://q3fb03rfy3f4ahuzu2uy6e11-wpengine.netdna- ssl.com/wp-...](https://q3fb03rfy3f4ahuzu2uy6e11-wpengine.netdna-ssl.com/wp- content/uploads/2016/03/sideload-android-apps.png)

Then go to the dodgy website, then download the apk, then install it then pikachu face when I get a trojan.

And you can talk about how great Apple's security is but to fix this issue all Google has to do is remove that tick box in settings so no more sideloading apps.

But that also comes back with drawbacks that I assume an Apple user like yourself wouldn't know about, because all you know is a walled garden. Sort of like how Chinese people love the fact their internet is censored. So safe, so secure.

<comment><USER23> > And you can talk about how great Apple's security is but to fix this issue > all Google has to do is remove that tick box in settings so no more > sideloading apps.

And yet, they don't.

> But that also comes back with drawbacks that I assume an Apple user like > yourself wouldn't know about, because all you know is a walled garden.

Funny how Android users keep saying that. I'm an Android developer by profession, which is why I use an iPhone as my personal phone and would never recommend an Android device even to my worst enemy. I've seen how the sausage is made and it isn't pretty. The best thing you can say about Android is that it's free, which correctly reflects what it's worth.

</comment></comment></comment></comment></comment><comment><USER24> 45,000 is a trivial number of infections when you consider that there are 2.5bn monthly active Android devices: [https://venturebeat.com/2019/05/07/android- passes-2-5-billio...](https://venturebeat.com/2019/05/07/android- passes-2-5-billion-monthly-active-devices/)

That's what, 0.0018% of devices infected?

<comment><USER7> So far?</comment></comment>


EU Data Protection: Proposed Amendments Written by US Lobbyists - <AUTHOR> http://blogs.computerworlduk.com/open-enterprise/2013/02/eu-data-protection-proposed-amendments-written-by-us-lobbyists/index.htm <comment><USER2> There are layers upon layers of problems here.

1\. EU democracy and governance is not great. Very few europeans have any understanding of how the EU legislative process works or feel like they have anything to do with it.

2\. Lobbying is increasingly making a mockery of consultation as an idea.

3\. These laws are pretty technical and the people making them have no understanding of the issues. They don't need lobbyists to make stupid laws. See the UK/EU cookie laws for an example. They mandated that all sites must have _nag screens._ They cost the economy money. Annoy all european website users and achieved _absolutely nothing useful._ Malice may have had some role, but incompetence had a bigger one in that case.

I wish the EU would think creatively about its whole legislative process.

<comment><USER3> Actually a lot of EU directives are relatively easy to read. It only gets complex and legalese when national governments transpose them into national law.

<comment><USER2> I'm not talking about the language. I mean that if you ask someone in Italy or Poland how reps get elected, what their job is, what sort of laws they can make, how they get enforced locally, how you can participate, etc., then they have no idea.

It feels more like the American IRS than the Congress.

<comment><USER3> But then ask the same to those people of their own national governments, or political structure. Many don't understand how their own country works.

Should we abolish or get rid of national governments? Why are you holding the EU to a different standard?

<comment><USER4> Much of the EU is unelected and unaccountable as compared to national governments. It's more a bureaucracy than a legislature. I don't want to pass too much judgement since I am far from an EU scholar, but tat unaccountability seems to remove an incentive to learn about the processes, since you will have less of an opportunity to change it.

<comment><USER5> All members of the European Parliament are directly elected. The entire Council consists of the member states' ministers, which are elected politicians in their home states or appointed by elected politicians. The Commission too consists solely of persons appointed by elected politicians.

I too would like more direct elections and more openness in the legislative process but that does not come from lobbyists paid by American companies.

</comment></comment></comment></comment></comment></comment><comment><USER6> The wording in any data protection act within the EU should be strongly anti- US. It's been shown many times that the US government does not consider data held in the US or by US corps on non-US citizens to be protected at all.

<comment><USER7> Even without looking at the ethics of all this, you're exactly right. At the most basic level, why do governments do things that are against the national interest in favor of multinational corporations or other countries?

I think the answer probably has to do with who is picking up the tab. Politicians are owned, even more so the higher level you get.

<comment><USER6> I'm not sure it's so simple, but there's definitely something wrong. You wonder if they live in a little echo-chamber that only lobbyists have access to.

In terms of laws that impact trade I think they absolutely do need to consider whether new data laws will make trade with the US (or other entity) difficult, because it could negatively affect both sides. However they shouldn't always shy away from it when it's the right thing to do.

<comment><USER7> Yes, they definitely do live in an echo chamber which is why their views are so skewed, but they also live in the world of globalist weasels who love this crap. Most of the people who would participate in a body as anti-democratic as the EU are not dependent on their own nations to succeed to make their checkbooks fat. They, like say, AlGore and Soros and these creeps, are mostly tied to economic interests outside of their own nations and could honestly care less whether or not their own nations sink or swim. Do I care whether the company across the street goes belly up?

Now you can go crazy down the conspiracy road here and think those people are somehow in a cabal, but I think it's far more simple than that. They are just more reliant on groups outside their countries for their personal success.

</comment></comment></comment></comment><comment><USER8> The audaciousness of taking those lobbyists' demands word-for-word and expecting nobody to find out in this day and age is pretty shocking.

<comment><USER9> It's not audaciousness, it's ignorance.

<comment><USER8> Politician in "doesn't understand the internet" shock. It's an old story, I agree. Like when they wanted to "turn off Twitter" during the riots...

</comment></comment></comment><comment><USER10> I am involved in some FOIA at the moment. It seems to me thus far that, at least at times, the EU Data Protection Supervisor (EDPS) has been well meaning but have been actively sidelined by other, pro-American-outcome parts of the European beast. For example, see: <http://www.asktheeu.org/en/body/edps>

</comment><comment><USER11> Somebody should make a kickstarter for political lobbying.

Then, somebody could start a project to raise funding for writing new patent laws, and based on funding thresholds there'd be a certain amount of lobbyist facetime with congresspeople, "draft legislation" provided, etc. Why should big companies be the only ones playing that game?

It'd be like the White House petition system, but with some results - even if they're just congressional awareness.

<comment><USER12> The same problems will still exist.

</comment></comment><comment><USER13> The title of this has been changed and is wildly misleading.

New _AMENDMENTS_ being proposed by _some_ MEPs are taken from lobbyists. These are amendments to the presently extremely pro-consumer proposal that are trying to water it down.</comment>


Seattle leaders look to push 'refresh' button with Amazon - <AUTHOR> https://www.documentcloud.org/documents/4109733-Amazon-Letter-Final-v5.html <comment><USER2> That document is a joke. Where is the section on repealing that gratuitous (and illegal) city income tax?</comment>


Show HN: SpartanS – a pub-compatible minimal RPG rule system - <AUTHOR> https://www.dungeon-gazette.com/rule-systems/spartans/ <comment><USER2> > D3, where a six-sided die is thrown and the value is halved (rounded down). > I.e., 1 and 2 on the die count as 1, 3 and 4 as 2, and 5 and 6 are the D3's > 3.

Don't you mean rounded up? round_down(1 / 2) = 0

I don't have experience with pen and paper RPGs, but how does this compare with other "ultra-light" RPGs like Risus?

And is this setting agnostic?

<comment><AUTHOR> > Don't you mean rounded up? round_down(1 / 2) = 0

Oops, you're right. Fixed.

> I don't have experience with pen and paper RPGs, but how does this compare > with other "ultra-light" RPGs like Risus?

I have been asked the same by SDF bboarders, but I honestly cannot given an answer (yet)—I need to check out Risus (and other systems).

> And is this setting agnostic?

Yeah, there are also different skill sets. I have added magic because fantasy themes seems to be the most popular settings, but I plan to add different ideas for modern-day or Sci-Fi scenarios, such as rules for hacking systems, space maneuvering and space ship battles, etc.</comment></comment>


How I Force Myself to Be Productive (or else) - <AUTHOR> http://blog.sugarenia.com/archives/productivity/how-i-force-myself-to-be-productive-or-else

<comment><USER2> I've not been so methodical in it as you but I've been checking out and throwing money at productivity tools just like you. None of them fit so far though I stuck with Things the longest. Will revisit THL as a result to reading your blog post.</comment>


Microsoft's CEO Apologizes Again for Comments on Women - <AUTHOR> http://techcrunch.com/2014/10/16/microsofts-ceo-apologizes-again-for-comments-on-women-promises-new-diversity-efforts/?ncid=rss&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Techcrunch+%28TechCrunch%29

<comment><USER2> That's pretty weak, it ignores the underlying question: How many "Lead Engineer" or managers were women, and were men.

Basically, you could be obscuring...men make 87% of the pay at Microsoft, but for equal titles its equal pay!

<comment><USER3> What if 87% of the workforce are in fact men?

If we complain about things like this, surely we should complain about this as well: [http://www.prisonpolicy.org/graphs/genderinc.html](http://www.prisonpolicy.org/graphs/genderinc.html)</comment></comment>