Ask HN: Interest in self-hosted secure messaging system with iOS/Android apps? - <AUTHOR>

I want to gauge the interest in a new open-source project for a self-hosted secure mobile messaging platform. The emphasis of this project is making it very easy to deploy (e.g. 1-click deployment onto EC2 micro-instance) and use with your network of friends.
High-level functionality
- Messages encrypted on client and sent via HTTPS to server. - Messages deleted from server as soon as recipient receives message. - Mechanism of locally sharing a private key between devices (e.g. Bump like functionality if you want to get fancy) - Clients receive delivery and read confirmation (and possibly see when other person is typing)
End-product
- iOS / Android apps available in respective app stores - Backend available on AWS Marketplace for 1-click deployment - Source code for mobile apps / backend available with instructions on how to build / deploy
Implementation
- Focus on simplicity that's easy for others to audit - Backend in Python or PHP and MySQL <comment><USER2> yep. there was a project to build an open source whatsapp clone.</comment>


The soul of a new computer company - <AUTHOR> http://dtrace.org/blogs/bmc/2019/12/02/the-soul-of-a-new-computer-company/ <comment><USER2> Comments moved to [https://news.ycombinator.com/item?id=21682360](https://news.ycombinator.com/item?id=21682360).

</comment><comment><USER3> FWIW I registered the domain name "moonmicrosystems.com" thinking along these same lines :-). I share their passion that a "real" computer company need exists. That said, Google and Facebook at least design their own computers because they have the scale. Not many companies need 10,000 servers at a pop.

</comment><comment><USER4> Currently #4 is Jessie's blog post announcing the company too: [https://news.ycombinator.com/item?id=21682405](https://news.ycombinator.com/item?id=21682405)

</comment><comment><USER5> Third post about oxide/it's founders in the top 5? Either HN loves marketing spiels or the founders have a passionate upvoting cartel, propping up the exact same non-informative marketing in 3 different posts.

<comment><USER6> It's because of whom the founders are. Jessie Frazelle was a major engineer in containers and a frequent talk giver. Steve Tuck was President and COO of Joyent. Bryan Cantrill is the former CTO of Joyent and co-creater of Dtrace. To many in the HN community those are impressive credentials. Added to that is that many people here have worked with one of those three or at the very least listened to at least one of their talks.

<comment><USER7> Cantrill is also, if not a frequent presenter, a high profile one. He has an odd mix of insightful observations peppered with highly inappropriate (but amusing) speculations about Larry Ellison's membership in the Nazi Party.</comment></comment></comment>


Former Google corporate attorney becomes Deputy Director of US Patent Office - <AUTHOR> http://www.wired.com/wiredenterprise/2013/12/michelle-lee/ <comment><USER2> I fall into the camp that believes that patents shouldn't exist at all, but if we could at least stop granting vague and abusable patents for software and business processes, I'll take it.

I know nothing about Michelle Lee, but if she spent time at Google, there's no way she doesn't have some understanding of how bad the patent ecosystem has become. The only question is whether the bad publicity around patent trolls has created enough political will to push back against bad patents, given that granting as many patents as possible is effectively the business model of the USPTO.

<comment><USER3> "...given that granting as many patents as possible is effectively the business model of the USPTO."

and the one that companies exploit a lot knowing they have backlog of cases. Each case should be examined carefully by the office. See how crowd validation can come in handy: [http://patents.stackexchange.com/](http://patents.stackexchange.com/)

I do not know the success rate but they have helped invalidate some patents in initial stage itself. A similar official and easy to participate program will be even more helpful.

PS: I would recommend watching the movie "Flash of a genius". It is regarding invention of time delayed windshield wipers, and how bigger car companies stole idea from a guy after he pitched them.

</comment></comment><comment><USER4> How about "Former Google corporate attorney becomes Deputy Director of US Patent Office"?

EDIT: (commenting on the article title; not the HN title)

<comment><USER5> I had a coworker once who said he'd found a good anti-Hearst-pattern for Google executives: "Google exec". (A Hearst pattern, for those who aren't well-versed in information retrieval, is like a linguistic template for IS-A relationships. For example, if you see the text "<person>, a <thing>, ..." or "<person> is a <thing>" or "<thing> <person> recently <verb>", you can be reasonably sure that <person> is a <thing>.) In other words, if the press reports someone is a Google exec, they are almost certainly not a Google exec.

I've done a few spot checks and this seems to hold up. Andy Rubin, Google's Android executive until recently, is called an "engineer", "founder", and in one case "head honcho" in the press. Larry and Sergey are usually called "founders". Amit Singhal, Google's Search executive, is referred to as "engineer", "chief", and sometimes "senior vice president". Sundar Pichai is referred to as "senior vice president" and "head of android and chrome". Vic Gundotra and Susan Wojcicki each got one mention as "Google exec", but are much more commonly titled "senior vice president" or "head of social/ads & commerce".

By contrast, the people who are usually labeled "executives" in the press are often corporate attorneys, regional marketing managers, or mid-level ops managers.

<comment><USER6> I have noticed the same. The time it really stood out to me was that guy who started the Facebook page for the Egyptian protests a few years back. The press was reporting him as a "Google executive", but he was actually an Adwords account executive. I don't know if there is a position further from exec than someone who manages Adwords accounts for big customers.

<comment><USER7> "Executive" is commonly used for any reasonably senior management position. This is arguably correct.

 _Executive: relating to the job of managing or directing other people in a company or organizaton_ [1]

Interestingly, for me Googling define:Executive gives the following definition and example: _a person with senior managerial responsibility in a business. "account executives"_

(Note that "account executives" are the specific example given).

[1] [http://www.merriam-webster.com/dictionary/executive](http://www.merriam- webster.com/dictionary/executive)

<comment><USER6> Right, but my point is that an adwords account exec/manager does not have any managerial responsibility at all. They would be more properly termed account technicians or analysts.

</comment></comment></comment></comment></comment><comment><USER8> Hopefully she sets up a system so only a tiny fraction of those 600,000 backlogged patents get accepted by USPTO employees, while the others get discarded as the useless patents that they are. Then USPTO will have time to pass the patents that really matter, right on schedule, too.

</comment><comment><USER9> This is a very interesting appointment, and brings about an interesting question on government appointments. Without knowing anything about Michelle Lee, my first thought was, "Great, this is someone who actually knows something about the topic, rather than some political hack!" But then I switched to, "Didn't I think the same way when banking execs went to jobs in the Treasury?"

At what point is this industry capturing the regulators that should be watching them? This was a big enough problem in Japan that they forbid execs from regulating the industries that they used to work in.

My sense is in this case it's still probably a net positive. Looking only at her LinkedIn profile, it seems like she was a technologist first, then a lawyer, then a Google GC. Seems like the right intellectual background. We will see if she has the political savvy to negotiate a large bureaucracy. For all of our sake I hope she's able to pull it off!

</comment><comment><USER10> Abolish intellectual property.

<comment><USER11> Sounds good. I'll just make a closed source version of the Linux kernel now.

(Copyleft is based around intellectual property.)

<comment><USER12> I can't see it ever happening, but a government forcing everyone to distribute the sources and rights to redistribute/modify along with their works pretty clearly abolishes intellectual property.

<comment><USER13> As a lesser thought: currently, when you publish a book in the US, you are legally required to send a copy to the Library of Congress. I could see the same thing working for software, requiring a submission of source code to some central publicly-accessible digital library. No licencing requirements beyond "people can read this," but that'd still be an unearthly boon to, say, security researchers.

</comment></comment></comment></comment><comment><USER14> Hopefully this is a sign of good things to come for Tech.

</comment><comment><USER15> Wow, the State Dept and now the USPTO. What parts of government will they touch next? FCC, DOT, FDA, or Consumer Protection?

<comment><USER16> This person formerly worked at Google, not currently.

<comment><USER15> And I am SURE that will not influence any judgement regarding any patent matters related to Google!</comment></comment></comment>


Show HN: Haash-Super simple one-click-setup help centers - <AUTHOR> http://haash.io <comment><AUTHOR> The task of setting up a well rounded Help center is often overwhealming and tedious, espacially after long dev sessions. We've build this tool to make it super easy to create a sleek and a powerful help center in minutes. It's super simple to build and edit and has a powerful stack overflow-like built-in support community. We're beta testing it right now and we're open to all kind of thoughts and feedback.

A live demo: [http://kmetrics.haash.io/help](http://kmetrics.haash.io/help)

Thank you!

<comment><USER2> Just curious about how the mobile view support?</comment></comment>


Rivian's platform approach to electric vehicles helped it raise $3B this year - <AUTHOR> https://www.technologyreview.com/s/614995/the-rivian-pickups-real-edge-over-teslas-cybertruck-isnt-its-battery/ <comment><USER2> _> On Monday, Rivian announced it had raised $1.3 billion in its fourth funding round of the year, led by T. Rowe Price, bringing its total for 2019 to nearly $2.9 billion._

 _> Rivian has been quietly developing vehicles for a decade, but it seized the industry's attention in late 2018, when it unveiled a pair of eye- catching, high-end electric trucks._

Rivian raised $2.9 billion over _four_ funding rounds in the span of _one year_? And it's been around for a full decade without ever releasing a product?

Does this not set off alarm bells?

<comment><USER3> It is yet another effort (fuel cell, Nikola, lucid, workhorse) by the existing industry to divert attention and money away from the few players (mainly Tesla) that are actually delivering battery electric vehicles. /tinfoil

<comment><USER4> Few players ?

There are are dozens and dozens of companies delivering EV vehicles including big players like VW, BMW, Porsche, Jaguar, Audi, Volvo etc. Could be even hundreds based on what what little we know from all of the skunkwork projects.

<comment><USER5> Half the companies you listed are the same company.

</comment></comment></comment></comment><comment><USER6> I've never owned a truck before, mainly for economic/environmental reasons, but I am extremely interested in an electric truck. I've decided to order the Cybertruck over the Rivian, primarily for 2 reasons:

1) Tesla has a massive charging network that is expanding rapidly

2) The Rivian starts $30k+ higher than the Cybertruck

</comment><comment><USER7> I noticed that some of Rivian's promotion videos are CGI, and they are currently hiring even more CGI artists.

Just look it up if you're doubtful.

</comment><comment><USER8> When Tesla did a platform deal in 2010 for the RAV4 they had at least sold a car to customers.

Why would Ford license a drivetrain from a company thats never shipped a car when they already have a drivetrain licensing deal with VW (who have at least sold EV's).

I predict Rivian will use the deal with Amazon and Ford as an excuse to "pivot" from shipping any cars to customers, and it'll be another decade of prototypes and vague licensing deals that dont generate any revenue.

</comment><comment><USER9> I'm a huge Tesla fan, but it looks like Rivian has made some very smart moves, and I hope it's a massive success.

Why do I say that? Because to save the climate we need to move off of fossil fuel vehicles as fast as possible, and that can happen only if there are lots of car companies all doing it at once.

Now the problem is so many big car companies don't have their ev programs very well developed, so it is great there is a pure ev company that is licensing its well-developed technology out to them so they can get up to speed years sooner.

</comment><comment><USER10> Surprised that no one has yet mentioned the US Postal Service and their fleet of 30+ year old LLV vehicles.

Surely someone is trying to convince the USPS to upgrade to an EV based solution? There are 140,000 plus LLVs out there. The last one was made in 1994.

<comment><USER11> The USPS was supposed to announce their next gen delivery vehicle (NGDV) this fall, but the decision is pushed back to 2020. There's a small American EV company called Workhorse among the four contenders for the contract. DHL was also trialing some Workhorse EVs recently, I'm not sure how that ended up.

[https://www.trucks.com/2019/09/03/postal-service-delays- new-...](https://www.trucks.com/2019/09/03/postal-service-delays-new-mail- truck-contract/)

</comment></comment><comment><USER12> Since this is pulling all the EV experts out of the woodwork, do people have thoughts on Bollinger Motors' trucks?

I don't follow news on thr subject but they look cool as hell.

[https://bollingermotors.com/bollinger-b1/](https://bollingermotors.com/bollinger-b1/)

<comment><USER13> Bollinger is dodging all the safety regulations a normal car manufacturer would have to deal with by classifying their vehicle as a commercial light duty truck. It's cool but I think the company is doomed.

<comment><USER12> Huh, I didn't find anything about that from a quick Google. What kind of regulations does that allow them to skirt?

<comment><USER13> This is a very wide generalization but effectively no crash testing or safety equipment.

</comment></comment></comment></comment><comment><USER14> The Rivian is a truck you need, the Tesla is a truck you want.

And the Revian will be road legal in Europe.

<comment><USER15> I think it's actually quite the opposite. If you need a truck for its utility which one makes more sense? The Cybertruck is less expensive, has more range, bigger payload, higher towing capacity, access to the best charging network in the world. Why would you buy a Rivian instead? The only reason I can think of is that it looks more conventional. If you need a truck, you buy the Tesla. If you want a lifestyle truck that looks pretty, you buy the Rivian.

<comment><USER14> When it comes to utility design the Rivian is far far ahead.

It's not about more conventional but about more convenient.

One example: you cannot throw stuff in the back of the Tesla from the side.

And when it comes to towing: nobody will use an electric vehicle yet. You can buy a gas truck for half the price with the same towing capacity. A gas truck with the same price as the Tesla will have twice the towing capacity.

<comment><USER16> Have you owned a truck? How often are you throwing things into the bed from the side? What are these things?

<comment><USER17> Yes, literally all the time.

Sports gear, camping equipment, portable chairs, anything soft that can go on top of other luggage, all go over the side, over the back, however it's most convenient.

More importantly though, is that a lot of this gear is _removed_ from the truck over the side, especially at the beach or on the mountain or at a trailhead, where I'm parallel-parked and can't easily remove items out of the back.

</comment></comment></comment></comment></comment><comment><USER18> Bonus: They get free marketing with the success of Netflix's The Witcher

</comment><comment><USER19> ... Aren't all the Teslas skateboard design? Isn't the skateboard design the basic EV design since the EV prototypes from the 90s?

This seems basically like a Rivian press release reprinted.

<comment><USER20> Yeah I think the innovation here is in the business model, not the engineering.

I really do like the four motor design on the Rivian platform though. It opens up a lot of possibilities for improved performance/handling/safety and off- road capability. The 'tank turn' demo is kind of a gimmick but also not - [https://www.youtube.com/watch?v=yzwM8KE2L3I](https://www.youtube.com/watch?v=yzwM8KE2L3I)

Edit: Add mecanum wheels and you could strafe (at least until they fell apart): [https://youtu.be/snbiKkxPgig](https://youtu.be/snbiKkxPgig)

<comment><USER21> Would the "tank turn" work on asphalt? Or would that be too much friction for the tires?

<comment><USER15> It might work, but Rivian has said that it should not be used on asphalt due to tire damage and maybe damage to other vehicle components.

</comment></comment></comment></comment><comment><USER22> holy dilution. those poor option-holders.

</comment><comment><USER23> Lol this company is so obviously going to fail and people are still throwing money at it.

</comment><comment><USER24> While a 4-motor design allows this really cool tank-turn trick, it also prevents torque transfer between wheels / axes.

Some "pedestrian" SUVs today allow transferring up to 70% of all available torque to any single wheel if situation demands. A 4-motor design is limited to 25%.

<comment><USER25> When you have a truck with 700hp and 800 ft lbs torque, you are only using all that power in good traction situations. I don't think you'll need more then 25% power per wheel with traction in slippery situations.

Also, in bad traction situations open diffs have the issue of transferring all the power to the wheel without grip and much engineering is put into solving this on off road vehicles. A 4 motor electric car solves this while being mechanically much simpler and likely lighter.

</comment></comment><comment><USER26> I think most hype over EVs is a direct result of the Tesla stock price and people upset they missed their chance to buy it when it was $20. Probably nothing to do with Rivian or their tech - they just want "the next Tesla".

<comment><USER27> No, the hype is over the vehicles themselves. EVs are the future. And, as William Gibson famously said, "The future is already here, it's just unevenly distributed." Once you experience the quiet, convenience and power of an EV, it's hard to go back to an ICE car. We're already past the early-adopter phase. Improvements in price, range and charging infrastructure (already happening) will capture everyone else.

<comment><USER28> The EV market has already hit a plateau, suggesting that it has exhausted the customer base for very expensive cars with short ranges. September 2019 sales were down (US and global) vs 2018, and 2019 Q3 sales were down vs Q3 2018 as well (also for the US and globally). These sales figures suggest that EVs need something new, like lower prices or more utility, to start growing again.

<comment><USER29> IDK where you got these numbers, Teslas are selling better right now (q4 2019) than ever before.

<comment><USER28> [https://insideevs.com/news/343998/monthly-plug-in-ev- sales-s...](https://insideevs.com/news/343998/monthly-plug-in-ev-sales- scorecard/)

</comment></comment></comment></comment></comment><comment><USER30> Sounds familiar to NIO. They raised a total of $4.1B. This whole electric hype is interesting to me. Why is it better for the environment? In the end you drive around with however the power from the grid was produced. Even in California that's only one third renewables. Most is natural gas and nuclear. So, your electric car is driving around with natural gas with an efficiency way worse than petroleum. Besides, disposing the batteries is an issue. Also, the required rare earths might become an issue (especially because China kind of owns the market).

<comment><USER31> See the first chart on this page. [https://www.pca.state.mn.us/air/electric- vehicles](https://www.pca.state.mn.us/air/electric-vehicles)</comment></comment>


Channels: Connect with people easily and anonymously - <AUTHOR> http://www.channelsapp.co <comment><AUTHOR> Other Features:

\- Chat: Each channel has a group chat embedded in the channel, as a pull up view once inside a channel. For now the chats are only text based, but will improve to add other media support as we move forward. The chats are color coded to differentiate you as a user, the creator of the channel, and all other users.

\- Create a channel anywhere: You can create a channel through the floating button, but can also go to any location on the map, hold the screen to create a marker, tap the marker and its pop up message to create a channel at that particular location. This way you can start conversations for places you are at and plan to go.

\- Explore: The third screen of the app is our Explore section which allows users to explore channels by popularity. You can filter results to "Everything" which explores all channels, "Map Area" which explores whatever area is visible on the map screen, or by "My Location" which explores channels around you.

\- Location search: From the Map view (second screen), you can search for a particular location, to then be taken to that location to perform a channel search. This option allows you to go to any particular area in the world, and search for or explore channels in that particular area at any time. Use this to plan talk to people about whats there is to do in an area you're about to visit or to talk about somewhere you visited already for instance.

\- Navigate: For channels that show their exact location, there is also a navigate button which takes you to Google Maps and shows navigation options for that location. This is ONLY for channels that have chosen to show their exact location, and this can be changed at any time.

</comment><comment><AUTHOR> A message from us:

We've created channels completely on our own, between just two guys who've never published apps previously, but wanted to make something of value. We want this app to be something you as users would want to use, so we accept any and all feedback and incorporate it as quickly as possible (for instance, we received feedback a few days after release, and submitted an update within a few hours). Our philosophy is that our app is your app, so any issues you may have with the app, please understand that it's just the two of us and that this is just the beginning, so since we do not have any investors to satisfy, we are 100% willing to improve the app as you, our users, see fit. Feel free to contact us here, on our twitter (@TheChannelsApp), through email (email@example.com) or through the app. Please also rate the app if you have a moment, we highly appreciate it. Stay tuned for any updates!

</comment><comment><AUTHOR> User Concerns:

\- Location permission: We do request location services privileges due to the fact that channels are location based. We NEVER use this location information unless you create a channel, and then only use that to associate that channel with a location. When creating a channel, you can also choose to not show your exact location, in which case your original location is never displayed but instead shows the channel on the map in the center of a half mile radius circle. If you do not show your exact location, users also cannot navigate to your location. You toggle this option at any time.

\- Private channels: We understand that there is a desire to create channels that are private/invite only, and we are working now to create this feature.

</comment><comment><AUTHOR> What is Channels:

Channels is a simple way to create posts about any topic (something for sale, event, trip, something funny, rant, etc) which is then automatically geo- tagged with your location or any location you choose on the map. Once its created, users can scroll around the map and/or perform tag & category based search to find channels they're interested in like yours, subscribe to that channel, and immediately group chat with you and all other subscribed users. Channels are therefore just location based posts with an embedded anonymous group chat. How is it different: - Most social apps require email, usernames, passwords and sometimes other information. This app is meant to be as anonymous as possible, so all we ask is for you to set a username, if and only if, you wish to chat with others or subscribe. - Channels was created to be simple and anonymous so we have no menus or ads or hidden ways to make money; just 3 screens that you can swipe between. - Rather than stick with the norm of comment based communication like other social platforms, we are chat based so each channel is actually a conversation. Just as if this was a messaging app, you can go between channels to chat with different people from all over the world anonymously about anything. - Channels is community driven. We made this app for the community so all posts are by real people, not bots or sponsored data. Upon request we can change this to add more features, but for now we want to make sure everything is community created.

Sample Uses:

\- To plan a trip and chat with only the people who are going \- To talk to other users anonymously that are at a venue you want to go to but would like to know what its like ahead of time or coordinate where to go next.

\- Alert the community to an emergency at a particular location (I made a Channel for an Amber Alert yesterday so people have a way to share information)

\- Advertise an event or something for sale (or find something for sale or an event)

\- To find a partner or group of people interested in something (i.e tennis partner, gym partner, people interested in sky diving, etc)

\- To explore a new area you've never been with the ability to talk to real people real time.

\- Reminisce with friends or the world anonymously

\- To just talk about something cool, funny or interesting with other people. Who knows, you may meet a new friend!</comment>


How APIs should be: Drop in keys, running in 1 minute - <AUTHOR> http://blog.singly.com/2012/05/31/how-apis-should-be-drop-in-keys-and-be-running-in-1-minute/

<comment><USER2> Apropos of nothing: if one is making decisions based on estimates of probable conversion rates, my ballpark for "web page visitor -> makes at least one API request" would be closer to 1/100th of 2% than to 2%. You're probably better off going for an intermediate conversion ( _cough_ get their email _cough_ ) and then selling them into using the API over time, since this is a thing that the best prospects won't exactly do on a lark.

(I am unsure of whether I like the make-a-play-in-the-browser-utility suggestion from the perspective of the business. I have never work directly on that question for a client, so I don't have even anecdata for y'all on this, but the developer in me says "That's a great idea! That way I don't have to do any work to kick the tires." and the marketer in me says "If we sold 'tire kicking' that would be wonderful now wouldn't it")

<comment><USER3> At Pwinty- we collect emails (conversion rate 5-10%), and then try and guide users through the process.

Firstly- its a great way to engage with users where you might not offer exactly what they want (do you print canvases, how about xyz). We get most of our feature ideas from our users wanting something that we don't yet offer.

I also try and schedule in a Skype call with all of our users to understand exactly what they want from us, and how we can help them (I think this also convinces them that there's a real person there they can do business with).

Once we've got their emails, we probably convert about 20% into 'making API calls'. However, I'm expecting that to increase over time (lots of people sign up, but are just working out how they're going to build their app, rather than actually doing it).

It's also worth following up non-active users after 1,3 and 6 months. You can often get useful info that you'd otherwise miss 'we decided not to use you because x,y,z; we canned the project but are keen to use you in the future etc)

<comment><USER2> I very much regret that I have only one upvote to give for this comment, because _every_ API company should be doing that. (Most of the very successful ones do already, but since many API companies start with two hackers and a couple of boxes of ramen, you can greatly increase your chance of success by taking this comment and executing on it.)

</comment></comment></comment><comment><USER4> > The bottom line is that the single most important step in converting > developers to permanently use your API in their product is how easy it is > for them to get started after they sign up.

I take issue with this. If the single most important step to converting developers to /permanently/ using your API isn't something like scalability, security, performance, or functionality, there is something wrong with this world.

Just because you get more people to succeed in trying your API at the beginning, if it doesn't work for their use case over the long haul they are just going to leave and do something else: the key word is then "permanently".

In comparison, Amazon's APIs are often ludicrously complex. Even if you try to use Amazon's client libraries, they are often ludicrously complex, requiring you to construct object factories to get arguments even for the most common request paths.

But, by and large, Amazon's services don't stop working when you get too much data, have well-thought-out authorization mechanisms, have never become randomly slow as lots of users sign up for the service, and are sufficiently flexible to support many different kinds of tasks.

The fact that the first time I sat down and used Amazon's APIs it took me a while to get them working (and that some APIs from them I still haven't gotten around to learning all the properties of) is then irrelevant: I could tell they would do what I wanted once I figured it out, and I have never been disappointed.

Meanwhile, I've come across tons of random startups, often that have websites that are a "little too Web 2.0" (normally a negative indication for an API provider, btw), whom have APIs (or libraries, or daemons, or services, or programming languages) that are great at first but actually sucked.

(I mostly felt the need to make this comment, btw, due to someone else in this thread seemingly arguing against OAuth because, despite being secure, it made the API sufficiently complex that they could no longer use curl with it: that is the opposite method from how you should be choosing an API.)

</comment><comment><USER5> Good points are covered in this blog post, however what if we would push it even further?

Why would people need to download a package? Why would anybody need to learn a programming language you package designed for (or assume you distribute packages for many programming language)?

When using APIs for integration or mashups, especially in business world, person who know how solution should looks like may not have time to code. So we at <http://elastic.io> think API could be via visual designer.

We believe it's also a way to make API usage _simpler_ for enduser, even the one who can not, or have no time to code.

<comment><USER6> We implemented something similar for The OpenPhoto Project where every URL a user visits is a visual representation of an API endpoint.

My site, for example, is at <http://jmathai.openphoto.me/photos/list>. You can add ".json" to the end to see the JSON representation of that page. <http://jmathai.openphoto.me/photos/list.json>. The same rule applies across the site.

We wrote about it a while back.

[http://blog.theopenphotoproject.org/post/8462620991/clean- ur...](http://blog.theopenphotoproject.org/post/8462620991/clean-urls-that- your-users-should-be-able-to-guess)

<comment><USER7> this seems like pretty standard REST

<comment><USER6> It's REST-ish. But the highlight I was hinting at is making the API itself be more discoverable. We did it by mapping the API directly to the web UI such that html just becomes the default format type of the API.

</comment></comment></comment></comment><comment><USER8> I now know how I like Web APIs to work: Give me the URL and let me go at it with cURL and some scripts to parse the your JSON.

[Been using the Salesforce REST API recently, and apart from the process of getting your OAuth token, it's really rather good].

<comment><USER9> Yes, I was rather pleasantly surprised with the Pivotaltracker API. I managed to get it integrated in our hour registration within 30 minutes.

Check; <https://www.pivotaltracker.com/help/api>

All calls have ready cURL examples you can copy/paste and try. Prototyping is fast.

And no OAuth. OAuth could be good if it were standardized (and thus would work with a single library without any extra tinkering); it's horrible all over the place. I understand this fanatical obsession with security and such, but just make me login and get a token back.

Anyway; Hooray for Pivotal! (Again)

</comment></comment><comment><USER10> FYI this is the same org which is running the $10K app challenge using their API this weekend; <https://singly.com/appchallenge>

</comment><comment><AUTHOR> Re-posted to the Factlink blog at <http://blog.factlink.com/></comment>


Ask HN: Product Pricing - <AUTHOR> Hello HN,
My side project (https://kernl.us) has been in a long period of alpha (may-oct) followed by a period of beta (oct-now).  During that time I've worked out most of the kinks and got a bunch of active users.  The next step in my launch process is to set and implement pricing, which is where I need some help.
For developer tools (think online tools like GitHub, CircleCI, CodeShip, etc), is there a preference for cost structure?  I think there are a few ways of pricing.
- Tiered cost structure. (Freelance, agency, enterprise, etc) - Pay as you go.  (essentially fixed price per plugin/theme hosted on Kernl)
Any direction in how you decided your startups pricing structure would be great.  Books, articles, twitter feeds of thought-leaderss, or examples would also be welcome.
Thanks! <comment><USER2> Services are almost always structured as subscriptions. In your case, there's a big question of whether you should use a flat price or charge as a multiple of the products that are being updated with your service.

Unfortunately pricing is really challenging and complicated, and the only way to get it right is to survey and A/B test.

One thing you need to know is this: what's the average number of products a developer creates? If the answer is 1.5, then you wouldn't want to do a "first product updates free" model. But if the answer is 5+, then you have nothing to lose by letting them test out your service with one product before adding the rest. (But then they could also be really shady and use multiple email addresses, so you'd have to verify identity somehow.)

If you're surveying users, you should also ask what they'd be willing to pay. There are probably best practices for how to ask that question, and I don't feel qualified to tell you what I think.

<comment><AUTHOR> Thanks for the reply. You make good points. I imagine I'll end up doing a lot of A/B testing on pricing to see what sticks the best.</comment></comment>


The Slow Death of 'Do Not Track' - <AUTHOR> http://nytimes.com/2014/12/27/opinion/the-slow-death-of-do-not-track.html <comment><USER2> The worst part about the DNT header was the requirement for the tracking companies to regulate themselves. Initially, the header was opt-in, but with the introduction of IE10, Microsoft decided that the option was going to be opt-out. Once the the DNT header was gaining traction and a not-so-small percentage of people began sending the header, the companies had no reason to comply, and the initiative sorta fell out of favor.

For blocking tracking, the most effective tools are browser extensions made to block ads. Ghostery provides comparisons on an non-biased website between the methods of blocking tracking through browser modifications [1]. According to the site, the Do Not Track header actually has an effect with a difference of 18% in cookie size when the header is set. AdBlock Edge and disabling third- party cookies results in a 59% and 40% decrease in cookie size respectively. It seems that the easiest thing you can do to lessen your internet footprint would be to disable third-party cookies and enable the DNT header, and the majority of tracking can be eliminated through the use of a browser extension. (But with the recent revelations [2], using a browser extension may actually reduce your browsing experience if you don't have the RAM to spare.)

[1] [http://www.areweprivateyet.com/](http://www.areweprivateyet.com/) [2] [https://news.ycombinator.com/item?id=8802424](https://news.ycombinator.com/item?id=8802424)

<comment><USER3> Wont you always be trackable by an heuristic approach?

I would expect that a fuzzy hash of your ip,location,language settings,resolution, browsertype, average mousespeed, your computers speed to draw a circle, calc a prime etc etc etc will always identify you.

<comment><USER4> So we ought to start considering whether those things should be permissible by default in browsers.

It used to be that sites could inspect the clipboard until we realised how bad for security that was. Perhaps mouse movement and/or timing information should be something that isn't allowed by default without granting the site additional permissions. Perhaps browsers could be set to stop sending many of the headers they currently send by default, or send approximations to reduce the uniqueness of the headers.

<comment><USER5> Two of the worst offenders are overly-specific user agents (a setting which should definitely be configurable) and list of plugins (which I see no reason for being available).

<comment><USER6> In Mozilla Firefox, you can create the setting general.useragent.override (it doesn't exist by default) and set its value to "Firefox" to get a very generic user agent string that websites will still recognize as Firefox and not block as a bot.

Regarding plugins, the best solution I have found is to have none enabled. Firefox still sends them in the list when using click-to-play, so it is necessary to disable them completely.

<comment> ryan-c As I said in my other comment, changing your user agent string affords you no privacy protection against those who care about knowing, and makes you more trackable.

</comment></comment></comment></comment></comment></comment><comment><USER7> DNT was essentially dead quite a while ago.

If we are goign to get something like Do Not Track, then it should have been drafted out of the public eye, had a nice short period for public comment and then recieved some sort of backing in law. Speculative implementations didn't really help.

I'm not too familiar with the laws surrounding things like 'do not call' lists and anti-spam measures, but some sort of system from that area of law could surely have been a part of DNT.

<comment><USER8> And the EU, rather than doing this, enacted their dumb 'cookie law' which, as far as I can tell, has just meant every UK website now has unnecessary cluttery popups telling you that they're using cookies.

<comment><USER9> That was around before DNT (just). Given that the popups were required in any case and are site-specific acceptance, why bother with DNT? It was more work to implement for zero benefit. Admittedly that also applies to the popups, but those were less optional.

</comment></comment></comment><comment><USER10> It never made sense in the first place. It was an opt-in, voluntary restriction that destroys all of advertisers' supposed value with no legal consequences if they ignore it.

The only real solution is client-side, and we have that technology now: hosts- blocking, Ghostery, AdBlock, etc. If enough people cared, it could be enabled by default on new browser installs.

</comment><comment><USER11> It was a weak idea from the start. If you trust advertising companies to do what they say, then there's already an opt-out tracking system: [http://www.networkadvertising.org/choices/](http://www.networkadvertising.org/choices/) The bad actors (particularly ones not based in the US) were going to ignore DNT anyway.

Now, granted, it's technically far inferior to a DNT header (it sets a cookie on each ad network domain) but as far as I can tell it works and has worked for years.

</comment><comment><USER12> This is one thing that could have been done better in Europe.

<comment> ryan-c Can you elaborate? That cookie thing seems to have only resulted in web pages having annoying popovers about cookies.

</comment></comment><comment><USER13> DNT is the product of "technology by committee". It was a disaster out the gate from the start.

</comment><comment><USER14> This is part of why regular web users need and use adblockers.

</comment><comment><USER15> I don't trust anyone to respect my Do Not Track settings.

Rather what I do is to blackhole the analytics servers with my /etc/hosts:

       127.0.0.1 www.googleanalytics.com
       127.0.0.1 www.heapanalytics.com

Unfortunately one must jailbreak mobile devices to get at their hosts files. I understand that Windows no longer uses it at all.

Better would be to block the analytics services at the router, or preload a caching DNS server with them.

I also avoid "Log In With Facebook" &c. I don't register at a site unless it offers its own login facility.

<comment><USER16> Windows still uses the hosts file in windows 8. I did a little looking around and it looks like Windows Defender automatically removes some hosts from the file.

<comment><USER15> Thanks for looking into it. I have Windows but don't use it a whole lot.

Strictly speaking DNS is a protocol and not an API. Applications aren't required to perform name lookups by using any particular software, it's just common to use what the OS supplies.</comment></comment></comment>


Ask HN: How do you split app revenues? - <AUTHOR>

When developing an app with friends/partenrs, how do you handle splitting revenue and expenses? Do you use an Excel spreadsheet, pay a 3rd party, or use an online tool? I would love to know what the market is doing.
We have built a pretty robust site for ourselves and I think it may be generally useful to all small dev shops to track expenses, payments and revenue.
Thanks for any and all input! <comment><USER2> I think it depends on what stage you are with the company and who you're dealing with. If its just 2-3 friends/partner and theres a good amount of trust...I think you can swing it with a spreadsheet for a while. You'll need to switch over as soon as it starts getting complicated though.

<comment><AUTHOR> I think this is how people approach it. When you say switch over, what do you switch over to?</comment></comment>


Using Ground Relays with Starlink - <AUTHOR> https://www.youtube.com/watch?v=m05abdGSOxY <comment><AUTHOR> > The early SpaceX Starlink satellites lack inter-satellite links planned for > later versions. Can they still provide low latency wide-area communications? > In this video I look at what might be possible using ground relays to hop > from satellite to satellite around the world. > > > > For more details: > > [http://nrg.cs.ucl.ac.uk/mjh/starlink/](http://nrg.cs.ucl.ac.uk/mjh/starlink/)</comment>


Tiny C compiler written in Forth - <AUTHOR> https://groups.google.com/forum/#!topic/comp.lang.forth/lBYFfVJ1qhc <comment><AUTHOR> Compare the Forth code to the Marc Feeley's C original:

[https://gist.github.com/seanjensengrey/874a1dcdb7b40407ac916...](https://gist.github.com/seanjensengrey/874a1dcdb7b40407ac916dd2090051a4)</comment>


Show HN: 5 Minute Resumé of Your GitHub Contributions - <AUTHOR> https://github.com/beneills/cv <comment><USER2> Great project. It would be cool if you added work from other sources, I'm thinking - Twitter, Reddit, GitHub, LinkedIn. Maybe add a ranking algo based on 3rd party engagement of your contributions. I wish I could find some time to contribute to this.

<comment><AUTHOR> Thanks! Adding other sources would be straightforward. A ranking algorithm only slightly more so.

</comment></comment><comment><AUTHOR> Oh, also I'm looking for work, but ended up writing this...

[https://beneills.com](https://beneills.com) | ben@<that website>.com

</comment><comment><USER3> Is there a service that generates these?

<comment><AUTHOR> Hi - I don't run such a service myself, nor do I know of one. Setting it up this way was far simpler, while remaining accessible to most Github users.

<comment><USER3> You are probably right.</comment></comment></comment>


Origins of the finger command (1990) - <AUTHOR> https://groups.google.com/forum/#!msg/alt.folklore.computers/IdFAN6HPw3k/Ci5BfN8i26AJ <comment><USER2>
        I wrote Finger and developed the supporting database to provide this
        information in traditional human terms -- real names and places.  Because
        I preferred to talk face to face rather than through the computer or
        telephone, I put in the feature that tells how long the terminal had been
        idle, so that I could assess the likelihood that I would find them there
        if I walked down the hall.

        The program was an instant hit.  Some people asked for the Plan file
        feature so that they could explain their absence or how they could be
        reached at odd times, so I added it.  I found it interesting that this
        feature evolved into a forum for social commentary and amusing
        observations.

It's amazing that the core features of a modern social network were invented so far back.

I wonder what the world would be like today if Unix-like systems had gone more mainstream. Maybe ISPs would include a Unix account on their servers where you could set up your .plan file and things like 'finger' and 'talk' and regular email would fill the space, in a completely distributed and open manner, that Facebook and other social networks currently do.

<comment><USER3> > _Maybe ISPs would include a Unix account on their servers where you could > set up your .plan file and things like 'finger' and 'talk' and ..._

Around 20 years or so ago, many did. At least, the ISPs that I used back then certainly did. It wasn't extremely common but it wasn't all that unusual either.

<comment><USER4> Yup, I had access to these on my shell that was given to me by my dial-in ISP.

I think what killed these services was a potential for abuse and spam. If you have your name/details attached to an e-mail account, it's super easy for marketers to scrap that, and then spam you if you meet certain criteria.

Centralised services (with all my distaste towards them) prevent that, because they block spammers, and limit access to such data quite nicely.

For a similar reason I think many people stick with gmail - because it's centralised, it can use ML to filter out spam much better than any other mailing services. It's also more secure - the Google's budget on maintaining security of their services is far higher than that of any other provider.

<comment><AUTHOR> > _... gmail - because it 's centralised, it can use ML to filter out spam > much better than any other mailing services._

For me, GMail is worse than useless as a spam filter. I don't know if I have especially unusual email or what, but there's so much ends up in the spam bin I need to wade through it all anyway, so it _costs_ me time.

At least, it did. I've given up on it.

<comment><AUTHOR> I'm baffled - I have no idea why this would be downvoted. I know that 88k karma and $5 will buy me a $5 coffee, and to that extent karma is completely irrelevant, but it says that somehow, to someone in the HN community, this comment is of negative value.

As I've said elsewhere[0], as an engineer at heart, a model-maker and problem solver, it's like sandpaper on the brain when people act in ways that mystify me, and for which I have no effective, working model.

Baffled.

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

<comment><USER5> I usually don't comment on these sorts of comments, but since you're a very active user I'l bite.

I downvoted you because this type of commentary is the least useful thing you can read on HN.

Nobody learned anything useful from knowing that some guy with a GMail account isn't pleased with the spam filter. What was this supposed to achieve? Some long side-thread with people sharing anecdotes about whether or not GMail worked for them? This is the sort of thing that gets made fun of at n-gate.com.

Also:

        Please don't comment about the
        voting on comments. It never
        does any good, and it makes
        boring reading.

\-- [https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

<comment><AUTHOR> Thank you for the response! That gives me something useful to be going on with.

In contrast to your comment, I've always found the personal experiences of HN users to be incredibly valuable data points, which is why I shared my own. I'll re-evaluate that.

WRT the guidelines, I'm painfully aware of that one. While I appreciate its wisdom, it means that one can never learn from the otherwise anonymous downvotes, so to my mind it's worth taking the risk. In this case I really have learned something.

Again, thank you.

<comment><USER6> As a personal anecdote, I've also noticed that people around me are less interested in personal anecdotes in general. It seems more pronounced over time. I could hypothesize that Facebook and Twitter give people all the anecdotes they need, or that my anecdotes have become more poorly worded over time, but I really have no idea what the cause is.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> I love finger! Back in the early 90s, I wrote a thing that would let you see what was playing on the CD-ROM in my desktop Linux machine. I used some finger daemon that allowed scripts to be executed as part of a .plan. You would finger firstname.lastname@example.com and a shell script would call "cda" (a command-line version of xccd and it would look up the disc name and track names from CDDB, pipe it through some sed and awk-foo and send it out to the client. I got fingered from around the world all day long.

There were all sorts of fun things you could finger around the 'net. My favorite was a VAX at McMurdo Station in Antarctica. The latency was several seconds. I posted about this years later on Slashdot and a former sysadmin chided me and said that all of the fingers were chewing Ho their minuscule satellite-provided bandwidth.

<comment><USER8> Back when finger was popular, I used to have the following line at the bottom of my .plan file:

        Bus error - cored dumped

I caught a few sysadmins with that one.

<comment><USER9> If you made .plan file a fifo, you could see when people fingered you, and customize the response based on who it was.

For example: [http://www.ram.org/computing/plan/plan.html](http://www.ram.org/computing/plan/plan.html)

</comment></comment></comment><comment><USER10> In case anyone hasn't read it already and may be interested - this is the story of the Morris worm that leveraged a finger vuln in 1988:

[http://www.cs.unc.edu/~jeffay/courses/nidsS05/attacks/seely-...](http://www.cs.unc.edu/~jeffay/courses/nidsS05/attacks/seely- RTMworm-89.html)

Robert T Morris is a YC partner now I understand.

<comment><USER11> From [https://www.ycombinator.com/people/](https://www.ycombinator.com/people/) :

 _> Robert Morris is a professor of computer science at MIT... In 1988 his discovery of buffer overflow_ [sic] _first brought the Internet to the attention of the general public._

</comment></comment><comment><USER12> The SAIL source to Les Earnest's finger program is here[0].

[0] [https://www.saildart.org/FINGER.SAI[P,SYS]](https://www.saildart.org/FINGER.SAI\[P,SYS\])

<comment><USER2> That source code seems very strange. I'm not even sure what language it is.

On one hand, some things feel a high-level as C - such as many of the procs starting with "proc oops". On the other hand, things like "proc netloc" seem to have a chunk of assembly embedded in the middle of it. The use of symbols in the code (e.g., "←", which seems to be the assignment operator) is also interesting.

Even though I don't fully understand it, I find old code like this absolutely fascinating. I also feel the same way about old electronics/electrical manuals.

<comment><USER13> Like tjalfi said, it's SAIL [0]. It was an ALGOL derivative.

[0]: [https://en.wikipedia.org/wiki/SAIL_(programming_language)](https://en.wikipedia.org/wiki/SAIL_\(programming_language\))

<comment><USER2> Oh! I thought SAIL meant Stanford AI Lab in that context, I had no idea that it was a programming language too.

Thanks!

</comment></comment></comment></comment><comment><USER14> Finger still has some use; you can take any running job from [https://zuul.openstack.org](https://zuul.openstack.org), extract the uuid and

finger email@example.com

and it will stream the job logs to you. Most of the code in

[https://git.zuul- ci.org/cgit/zuul/tree/zuul/lib/fingergw.py](https://git.zuul- ci.org/cgit/zuul/tree/zuul/lib/fingergw.py)

</comment><comment><USER15> It's nice to know that no product managers, UX designers or vice presidents were harmed in the process of developing "finger". :-)

</comment><comment><USER16> Slightly off topic, but one of Google's greatest services was not only rescuing DejaNews Usenet archive but also archiving Usenet posts from 1981. This type of pre web history would have been lost forever.

</comment><comment><USER17> I've been kinda wishing for the past year or so that I'd stumble on a FaaS provider that can handle traffic on arbitrary ports, so that I could serve finger requests without needing to keep up with a VPS.

</comment><comment><USER18> > _I enjoyed the comradery of those gentler times and have no regrets._

I had just closed twitter when I read that. Indeed, the times are not gentle on the internet.

<comment><USER19> Posts like this from 1990, and ones complaining about Eternal September, remind me that no matter what generation you are, what year it is, people always say "It was better in the old days"

</comment></comment><comment><USER20> Its funny. I actually recently pulled out the Finger RFC to try to reimagine how it could be adapted to the world of today.</comment>


Artificial Intelligence Is Lost in the Woods - <AUTHOR> http://www.technologyreview.com/Infotech/18867/ <comment><USER2> Our brains ARE computers. Conscious machines are a matter of when, not "if".

Think of a computer simulation of every atom of your brain, along with modelling the electrical impulses going through it. It WOULD be you, and it would be really freaked out by the lack of sensory input. Probably you'd need to "anesthetize" parts of it that panic when they detect "you" aren't breathing -- along with other autonomic controls -- or feed them fake information. Otherwise you'd be in a situation where you'd boot up your brain simulation and you'd actually _torture_ a conscious machine. If you simulated every atom, it _would_ be you!

Note also that this would not need to run in real-time. It could be updated in simulated femtosecond steps that could take an arbitrarily large amount of "real" time, without realizing it. Ethics would apply to a software simulation, as far as pain goes, but you could shut it down or pause it without it realizing what happened, as long as it was in a virtual environment. If you gave it physical sensors, it would find it quite jarring to be in the middle of saying something and suddenly have it be 5 days later partway through the sentence!

<comment><USER3> Well, from what you are talking about it sounds a lot like this good short story on just such a situation, check it out:

<http://www.newbanner.com/SecHumSCM/WhereAmI.html>

</comment></comment><comment><USER4> Why would we expect an intelligence with sensory inputs and expressive outputs so radically different from our own to relate to our experiences in the same way?

</comment><comment><AUTHOR> I'm surprised Gelernter is so pessimistic (he's a brilliant guy)... It looks a lot easier to me than he's making out.

Hecht-Nielsen's discoveries about brain architecture have supplied a great foundation for building raw cognition, so we can move forward to the conscious level.

<comment><USER5> Thanks for finding this article, Donna!

"looks a lot easier"? Please let everyone know when you've got it working!-))

To the best of my knowledge there's no neural network technology available today currently that could be described as providing "raw cognition". Neural nets are for the most part focussed on backpropagation networks, which aren't prevalent in nature. The brain has much more variety in it's architecture.

Gerald M. Edelman has argued that a biological approach based on evolution and biology will prove more fruitful than the physical symbol system hypothesis(PSSH) of "good old-fashioned AI". Edelman explicates his ideas in "Bright Air, Brilliant Fire: On the Matter of the Mind":

([http://www.amazon.com/Bright-Air-Brilliant-Fire- Matter/dp/0465007643/ref=sr_1_1/103-2087616-1051018?ie=UTF8&s;=books&qid;=1182842907&sr;=1-1).](http://www.amazon.com/Bright- Air-Brilliant-Fire- Matter/dp/0465007643/ref=sr_1_1/103-2087616-1051018?ie=UTF8&s=books&qid=1182842907&sr=1-1\).)

In that book he clearly states his objections to the PSSH.

There is significant recent work on consciousness, tying it to neuroscience studies of the brain. Bernard J. Baars' explications of Global Workspace theory appear fruitful in leading us toward conscious computing. Right now I'm reading one of Baars' books, "In the Theater of Consciousness: The Workspace of the Mind":

[http://www.amazon.com/Theater-Consciousness-Workspace- Mind/dp/0195147030/ref=sr_1_1/102-9391404-9424956?ie=UTF8&s;=books&qid;=1182841961&sr;=1-1](http://www.amazon.com/Theater- Consciousness-Workspace- Mind/dp/0195147030/ref=sr_1_1/102-9391404-9424956?ie=UTF8&s=books&qid=1182841961&sr=1-1)

The Galernter article is extremely timely since it mentioned several ideas that clicked into place as I read Baars.

I was surprised to find that Baars is now working at the The Neurosciences Institute which Edelman founded: <http://www.nsi.edu/index.php?page=facilities_architecture>

</comment></comment><comment><AUTHOR> My question is: Can we build a mind out of software that aggregates millions of minds?</comment>


Wright Electric unveils its commercial electric plane business - <AUTHOR> https://techcrunch.com/2017/03/21/wright-electric-planes/?ncid=rss&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Techcrunch+%28TechCrunch%29 <comment><USER2> I would be fascinated to see how they intend to beat the incumbents to market. Airbus has already announced its interest in electric planes: They've flown an electric two-seat trainer ([https://en.m.wikipedia.org/wiki/Airbus_E- Fan](https://en.m.wikipedia.org/wiki/Airbus_E-Fan)), and announced plans for a (hybrid-)electric 90-seat regional plane.

Commercial aeroplanes are incredibly capital-intensive, and their plan seems to require getting good at commercial aeroplanes before Boeing/Airbus gets good at batteries/motors. Precisely one of those things is commodity technology...</comment>


Make phone calls via slack, yes it transcribes in real-time - <AUTHOR> https://github.com/IBM-Bluemix/phonebot <comment><USER2> Very cool project, and thanks for sharing the code :)

<comment><AUTHOR> Not my project, but I stumbled upon it while researching the plausibility of a similar cognitive slack bot. It is indeed cool.</comment></comment>


Polyglot is a distributed web framework for multiple programming languages - <AUTHOR> https://github.com/sausheong/polyglot <comment><USER2> "Messsage queue - a queue that receives the messages that represent the HTTP request. the acceptor accepts HTTP requests and converts the requests into messages that goes into the message queue. The messages then gets picked up by the next component, the responder. The implementation of the message queue is a RabbitMQ server."

Alrighty then. Someone has never scaled RabbitMQ vs. a basic HTTP service. If raw scalability is what you're looking for w/ a polyglot backend, an edge service that accepts HTTP and turns those requests into Thrift structs (or similar) to RPC to various polyglot services might be better for you. This is the model most use.

However, I'm unsure how this'll be more 'performant' than picking the right technology from the start and architecting wisely. Generally, the more performant you want something to be the simpler you build it and only compromise where necessary. Thrift/RabbitMQ are definitely complexity compromises.

Complexity is the bane of scalability.

Additionally, if you needed pure scalability, you generally have purpose-built services for each "responder" which is load balanced over. Pretty similar to this, minus the message queue.

I imagine having a message queue in the middle of your HTTP response path could lead to some nasty latency spikes too. Much better to drop a request with a 503 than have the next N spin for minutes while workers chug through it. Especially if you're taking in 10K req/s.

Last thought: The benchmarks are lacking detail, could use a more thorough job.

<comment><AUTHOR> Thanks for the comments. The detailed benchmark data is in the perf/ directory, I just did some basic analysis.

</comment></comment><comment><USER3> Switching from a monolithic framework like Rails to a number of independent communicating services that handle different responsibilities is a classic step in scaling. However, to the best of my knowledge that transition usually involves moving to a mostly-custom setup dependent on the app's specific needs.

It's not clear exactly what functionality Polyglot provides beyond, say, raw RabbitMQ, but if it can find a way to encode best practices in a service- oriented architecture it could be a handy tool for developers going through this process for the first time.

<comment><AUTHOR> Polyglot as it is at the moment is an experiment, a prototype. Still fleshing things out, so feedback and contribution is always welcome :)

</comment></comment><comment><USER4> I had to stop and check where this guy works. 2 companies I know of have just moved to something fairly similar.

A request is turned into a JSON message pumped into a queue with a signature declaring the type of message it contains, service discovery reads from the queue and allocates a service to handle it, shuffling it onto another queue (and if necessary spinning up the service). The service picks up the queued item, processes it and hands it back where the new message may be the response (in which case it gets handed back) or another service call (in which case discover the handler and assign it to a queue).

It's SOA based on messaging and a basic pipeline. Except they don't call it that.

Thankfully the applications in question do not have low response time as a core criteria.

</comment><comment><USER5> If the goal is the ability to have certain routes processable by different languages/systems you could achieve this with reverse proxying (from eg. nginx) [1].

That way you can leverage any existing language frameworks and run them as standard HTTP responders. No need to work with a queue (and add it to the stack).

You can still limit the HTTP methods each proxy responds to as well [2].

[1]: [http://nginx.com/resources/admin-guide/reverse- proxy/](http://nginx.com/resources/admin-guide/reverse-proxy/)

[2]: [http://stackoverflow.com/questions/8591600/nginx-proxy- pass-...](http://stackoverflow.com/questions/8591600/nginx-proxy-pass-based- on-whether-request-method-is-post-put-or-delete)

<comment><AUTHOR> Thanks for the suggestion, it's a good one. A few cases a message queue can be advantageous -- (1) persistence (2) a few responders can work on the same request in parallel (3) adding/removing responders dynamically according to the load.

These are not common/generic use cases but would be useful under particular circumstances.

* I could be wrong with (3) -- I'm not very experienced in reverse proxies.

<comment><USER5> You're correct on 3; I actually did this in a large system I wrote and worked on at my last job.

It wasn't quite dynamic (it required an engineer to set new values for how many workers you wanted..) but we could do this via a GUI.

For (1) what do you do with the persistence? A web request, in general, is not important after a few seconds.

For (2) how does Polyglot accept multiple responders for a single request, and how would it join the responses?

<comment><AUTHOR> Thanks for the confirmation.

The implementation today is as a task queue which removes the request from the queue once a responder acknowledges, but it could be a pub-sub model, where a number of independent responders can work on the same message in parallel, and only 1 responder need to return a response. In this case, persisting in the queue is useful.

An alternative is to chain the responders where one responder can leave a message in the queue for another responder, and the final responder returns the response.

Polyglot is still experimental though, and the current implementation is a prototype.

</comment></comment></comment></comment><comment><USER6> So, it's like mongrel2, but a bit worse: AMQP is centralized, unlike ZeroMQ.

<comment><USER7> That was my thought as well, though I never really understood the point of Mongrel2.

It's basically a reverse proxy that speaks to upstream application servers using a custom protocol over ZeroMQ instead of HTTP over TCP? Why is this better than just using HTTP?

Does anyone here use Mongrel2? Do you like it?

<comment><USER8> I haven't used Mongrel2, though I have used ZeroMQ, but I can try to answer this question:

> _Why is this better than just using HTTP?_

In SOA most of your services aren't going to be exposed publicly. HTTP is a great protocol for public facing servers, but HTTP is a very clunky protocol. For private services, it's a pretty big benefit (performance, scalability and ease of parsing) to skip HTTP and use something else. ZeroMQ gives you several messaging patterns that you would never get from HTTP.

<comment><USER9> That makes sense if your services do not follow the request-response pattern (e.g. background workers). But what if they do? In Polyglot, the services very clearly follow a request/response pattern because they're handling web traffic. What sense, then, does it make to use a message queue?

Persistence? Makes no sense for web traffic. Even if the message is persisted to disk, it's useful for a few minutes at most before the user gives up and closes the tab.

Language-independence? You don't need a message queue for that. You can do that with regular HTTP.

Scaling and load balancing? Ditto.

<comment><USER8> I'm not sure what your comment is getting at. I think HTTP is fine for the Web, and any service exposed and designed for use by the Web is going to have to use HTTP. But if you're going to use a framework like Polyglot, you're going to have several services and any of those services not directly communicating with the Web doesn't need to speak HTTP.

<comment><USER9> What I'm getting at is why those services _shouldn 't_ speak HTTP. I understand that they don't _need_ to speak HTTP per se, but I get the feeling that your comment is implying that such services _should_ speak a non-HTTP protocol, while I think that it's fine even if those services speak HTTP.

</comment></comment></comment></comment></comment></comment><comment><USER10> "forcing the deliberate use of different programming languages"

...wait, what? I don't see how this solves anything. It's like asking American schoolchildren to learn English, Russian, and Chinese before doing math. Makes no sense.

<comment><USER11> I'd like to share my experience. I started to learn programming by taking Coursera and other moocs in python, ruby, javascript and c. I feel that my understanding was greatly enhanced by simultaneously getting to know various language.

So this may be a nice learning exercise.

</comment></comment><comment><USER12> Also relevant to building microservices in a somewhat similar fashion: [https://github.com/koding/kite](https://github.com/koding/kite)

</comment><comment><USER13> This sounds very similar to tir / mongrel2.

</comment><comment><USER14> This is cool, but the naming is unfortunate as Polyglot is already a somewhat popular library for doing internationalization in Javascript: [https://github.com/airbnb/polyglot.js](https://github.com/airbnb/polyglot.js)

</comment><comment><USER15> Seems like this is pretty much what every single system does that is based on a web application that scales with a message queue.

With Polyglot are there standard SDKs for responders or acceptors?

I think we should relate this to that ocaml mirageos thing and the idea of a common knowledge representation for program generation. I think pattern with queue has a fairly close correspondence with some common OOP patterns.

We are repeating the same patterns over and over in different contexts for different applications. I think that we have semantic representations and programming languages that if we created a good common dictionary and referenced that rather than restating everything I different forms then we could get much better code reuse.

</comment><comment><USER16> " _1\. Acceptor_

" _2\. Message queue_

" _3\. Responder_ "

So, a SOA?

<comment><USER17> It's kind of amazing how often SOA is rediscovered by people. It's not at all exotic either. It's fairly common in enterprise applications but I guess maybe most people don't write enterprise apps?

My first thought when I read the article was "Did he just reinvent the wheel?"

It's in Go so that's kind of neat.

</comment></comment><comment><USER18> I actually built something very similar 2 years ago [http://radial.retromocha.com](http://radial.retromocha.com)

Mine used a node proxy instead of a message queue, but same basic idea. It makes scaling and changing languages so much easier.

Really, the trick is having a standard message protocol that everything abides by. Once you have that, building a proxy and frameworks around it is pretty trivial. I chose something similar to JSON-RPC and for what I wanted/needed it worked well.

It never saw any kind of scale, but it was a fun project.

<comment><USER9> Why does it make scaling and changing languages easier? How is using an HTTP reverse proxy/load balancer not just as easy, if not easier?

</comment></comment><comment><USER19> I thought of Polyglot by AirBnB when I first saw this post, [https://github.com/airbnb/polyglot.js](https://github.com/airbnb/polyglot.js)

</comment><comment><USER20> Acceptors / Responders feel a bit like Python's WSGI model, with the addition of a queue in the middle for connecting gateways to applications. I suspect that the similarity extends to JSGI (Javascript), SCGI, and PCGI (perl).

</comment><comment><USER21> What is the benefit of having this vs say a monolithic framework?

<comment><USER22> So you can write the new functionalities in the new popular framework and keep the old one running. Why that's a better choice... well it depends on case by case.

However this is a bit like a reverse proxy that load balances many different web apps. You could have different applications written in different languages serving requests to the same url.

Furthermore I don't see anything here that load balancers haven't done since the '90s. Maybe I'm missing something but maybe that's why everybody is puzzled.

<comment><AUTHOR> It's supposed to be more fine grained than load balancers, and you should be able to scale up and down different parts of the same web app dynamically. That probably didn't come up well in the write-up.

</comment></comment></comment><comment><USER23> I was thinking why RabbitMQ and not ZeroMQ? just for my knowledge

<comment><USER24> They solve slightly different (architecture) problems and they are on completely different ends of the message queue library spectrum of "usability vs. customizability".

RabbitMQ is a "batteries included" solution. ZeroMQ is a roll your own sort of library. If you just want a message queue use RabbitMQ. If you want to build your own message queue system (with complex or specific requirements) use ZeroMQ.

</comment></comment><comment><USER25> vert.x?

<comment><USER26> vert.x is limited to only languages with supported implementations and hooks in the JVM world.

</comment></comment><comment><USER27> Based on examples, it seems to be meant for dynamic scripting languages, rather than programming languages?

<comment><AUTHOR> Not really. I started with Ruby, Python and PHP but it's very much possible with compiled languages like C/C++. There's a whole bunch of client software that allows you communicate with RabbitMQ - [https://www.rabbitmq.com/devtools.html](https://www.rabbitmq.com/devtools.html)</comment></comment>


Kubernetes vs Docker Swarm vs DC/OS - <AUTHOR> https://blog.netsil.com/kubernetes-vs-docker-swarm-vs-dc-os-may-2017-orchestrator-shootout-fdc59c28ec16 <comment><USER2> This is your 4th time posting this link. [https://news.ycombinator.com/from?site=netsil.com](https://news.ycombinator.com/from?site=netsil.com)</comment>


JQuery dropping GPL from licence requires CLA , Big corporations hand? - <AUTHOR> http://www.h-online.com/open/news/item/jQuery-dropping-GPL-from-licence-1705461.html <comment><USER2> What a sensationalist title. They dropped GPL, leaving MIT. This is a big win. MIT is significantly more free than GPL (it does not mandate that you make things derived from it free, but the license itself does provide more liberties than GPL).

They require CLA, so that they can put the code under MIT. It's legal silliness, but how is it at all bad?

<comment><USER3> > They require CLA, so that they can put the code under MIT. It's legal > silliness, but how is it at all bad?

Why would a CLA help with that? Since all existing code is already licensed under MIT, and for future code they can just refuse to merge anything not under MIT. The only use a CLA has is if anyone thought the MIT restrictions were too harsh, but I cannot see when that would be the case. You can do almost anything with MIT licensed code.

<comment><USER4> it's because contributor work is under it's own copyright, per individual. This is a huge legal (bureaucratic) issue and thus the CLA is meant to normalize all contributions to fall under the MIT.

also I know this is getting into inflammable territory but the GPL (v3 especially) is a very big turn off to adoption for a lot of for-profit companies due to worries that if they use the GPL code, their product and all derivative works are "tainted" (need to provide 'free' source access)

Thus I can see the removal of GPL as being a clarifying factor, as lots of companies dual license GPL and a proprietary license, which may lead to misunderstanding in this case.

<comment><USER3> I have no problem at all with the dropping of GPL. Dropping GPL may stop any worries that jQuery at some point in the future will drop MIT in favor of GPL (though they still could do that since MIT is GPL compatible).

The license itself is what normalizes the copyrights, so a CLA is just additional bureaucracy. The contributors to jQuery have already all agreed to contribute their code under MIT, so why would they need to do it again?

</comment></comment></comment></comment><comment><USER5> I'm always a bit surprised that an open source project can change its licensing terms so easily. Can't any contributor to the project with their code upstream oppose this change? How does that work?

<comment><USER6> If your project insists on copyright assignment (as the FSF does) then there's a single copyright owner and the project can make any licensing change it likes. Otherwise (assuming you don't manage to get explicit agreement from all previous contributors for their past changes) the only licensing term changes you can make are those which the previous license already permitted. For instance, many projects use a "GPL v2 or any later option" wording, which would allow them to later move to GPLv3 even though they had previously accepted contributions made when v3 didn't even exist.

In this case it looks like jQuery was previously dual-license MIT-and-GPL, so anybody who contributed to it was saying "you can use these changes under either MIT or GPL". That means it's entirely OK for the project to switch to "just MIT", because "MIT" was an option all those contributors were permitting already.

<comment><USER5> Makes sense. Thanks.

</comment></comment></comment><comment><USER7> I hope the people upvoting this are doing it to encourage discussion, not to agree with this totally inane post. There is no controversy.

Dual licensing confused people for no good reason. Some people thought that including jQuery in their own projects would somehow apply the GPL on their project, since that was one of the licenses. The idea of choosing one license and not the other seemed odd, and most people are just users (not derivative work creators) so it doesn't even affect them.

> Some users were surprised by the change

Nobody has expressed surprise anywhere but the few people who posted here without reading the original post. The link to the bug tracker wasn't a user _surprised_ by the change, it was someone simply reporting that we'd forgotten to remove the GPL from one of about two dozen pages where we had it mentoned. That's fixed now.

> A search of the site shows that details of the actual agreements are not > currently available.

The only reason we didn't link the CLA or CAA is because it contains a form that the contributor submits and we don't want a bunch of crap posted back to us by people who aren't contributors. dave1010uk posted a link to the text below, and I've added a todo to make that text available on another page.

</comment><comment><USER8> Full text of the CLA: <http://pastebin.com/raw.php?i=ZehcMYyX>

</comment><comment><USER4> a lot of people don't understand the reason for the CLA:

it's because contributor work is under it's own copyright, per individual. This is a huge legal (bureaucratic) issue and thus the CLA is meant to normalize all contributions to fall under the MIT

disclaimer: I'm not related with jQuery, this is based on my prior knowledge of open source contribution legal issues.

<comment><USER3> Do you have an example of where this has been a problem? Most open source projects lack a CLA and do not have problems with bureaucracy. For example the PostgreSQL and Linux projects lack any CLA and have never had any problems with this as far as I know.

Lacking a CLA means one less hurdle for new developers. The advantage of a CLA is that you can change license, but if you are MIT licensed you can already change to almost any license without requiring any approval from the community. CLA:s only make sense for very strict licenses.

</comment></comment><comment><USER9> CLA... wow, this is bad and sad. :(

<comment><USER10> Actually it's very good news.

It means that no single zealot or bad apple can stop the code from being used in ways the users want.

E.g like this Rémi Denis-Courmont guy, a VLC contributor working for Nokia, killed the iOS VLC port for violating some GPL technicalities, despite the code being available, the users wanting it, and the team porting it to iOS for free.

And you still get GPL with their MIT licence: "The Foundation confirms that with the MIT licence, if someone desires GPL licensing, they are free to make changes and re-license it under the GPL."

<comment><USER11> I don't like how you brand Denis-Courmont a zealot or bad apple for not letting others break the license terms of his code. He licensed his code under the GPL for a reason, and if someone doesn't like his license, they shouldn't expect him to waive his rights on his code. (I don't know about the case, I'm basing this on your comment alone.)

<comment><USER12> Having the legal right to do a thing does not mean that you are invincible to criticism for exercising that right. You have the right to freedom of speech, but the things you actually say may be foolish or wrong; contrarily, cheating on your spouse is not a crime, but doing so still makes you a worse person. You have the right to keep all your money instead of giving a penny to charity, but being charitable is better. "Legal" and "good" are not the same thing.

Denis-Courmont may have licensed his code under GPL for a reason, but it can very well be a bad, zealous reason. Indeed, I would expect that almost every person who truly is a zealot and a bad apple would choose to license their code under GPL. The GPL is a license that demands total obedience to a particular ideology of software distribution, and requiring that other people obey your ideology in every detail is the defining characteristic of a zealot.

<comment><USER13> Calling him a zealot just for using the GPL seems a bit unnecessary to me, but whatever. It does not matter what his reasons are for it, he is allowing people to use the code he wrote under a certain set of conditions, which some people have not been honouring. I don't believe there is anything wrong with him calling them on that; why should he just sit there quietly while other people violate his license and profit off his work?

<comment><USER10> > _why should he just sit there quietly while other people violate his license > and profit off his work?_

Gee, I don't know. Maybe for the good of the hundreds of thousands of users of iOS/VLC? Maybe because the other contributors had agreed to this and didn't care for the technical violation, especially since both the code was available and the app was free? Maybe because also working for Nokia seems like a huge conflict of interest?

<comment><USER11> Maybe Apple and Microsoft should release all their software under a permissive license for the good of hundreds of millions of users. Is that what you are suggesting? I do not have any problem with people/corporations releasing/selling their code as they see fit, but I do take issue at people feeling entitled to set the terms for other people's code. If the other contributors do not mind the violation, they are free to remove his code and release their code as they see fit.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> They say they drop the GPL to avoid confusion ... i.e., they're caving in to FUD about GPL.

<comment><USER15> It is very unclear with Javascript what a derived work is and what linking means, unlike C. You could argue that your whole website would become GPL if you linked with jquery under GPL terms, including the text, logos etc, even though most people do not want to put documentation under GPL (because of the attribution terms).

</comment></comment><comment><USER16> wow, this are really good news :)</comment>


Show HN: Official Release of Gmelius, A Better Gmail in Chrome, Firefox & Opera - <AUTHOR> http://gmelius.com

<comment><USER2> All I see is "Gmail™, Gmelius™, Gmail™, Gmail™, Gmelius™, Gmail™". Is it really necessary to put a symbol next to them everytime in every paragraph? The whole page is littered with ™ symbols. I find it difficult to read with all this, but maybe it's just me who's picky.

Aside from this, I see a lot of potential for a great plugin, but all those features Gmelius claims to remove since they are annoying, are features I like. And all the things Gmelius adds to Gmail, are stuff I couldn't care less for.

This plugin is really not appealing to me and I think it's because, to me at least, Gmail is simply great and there is pretty much nothing to add except maybe enable a few Labs options. It seems to me that this plugin is really useless because there is practically nothing to change to Gmail to make it great in my opinion.

<comment><USER3> There's a few things to object to in the plugin (like a comment below I find that removing ads together with asking for donations a very distasteful combo), but honestly, what value does your comment add except trying to put down the authors?

There are ways to critique something without calling it "really useless".

<comment><USER2> I'm giving my honest opinion and I'm saying that I really love Gmail the way it is without any extra plugin. I think it's feedback that matters to the authors, maybe they will find that some of their potential user base find no added value in their plugin and they will try to come up with other features that will attract users such as me.

<comment><USER4> > there is practically nothing to change to Gmail to make it great in my > opinion.

Sounds like you're not even a member of their potential user base if you're already happy with the Gmail interface.

<comment><USER2> Well it's a product that I use every day and I'm always eager to try new stuff if I see it could be cool. I was really interessed by the article and headed to the website to see what it offered, and I felt it wasn't a plugin that would suit me. There is always place for improvement, even if I think Gmail is great as it is right now.

Sometimes, you're so used to a certain interface that you don't even know you can improve it until someone comes at you with something new and say "look, here's a new feature we thought you'd like : " and you go "yeah! why didn't I think of this first?".

</comment></comment></comment></comment></comment><comment><USER5> I find it distasteful, perhaps even unethical, to encourage removal of ads from ad-supported services.

Google offers substantial functionality in exchange for the opportunity to show its users ads.

<comment><USER6> That's interesting. If you DVR a show do you feel obliged to sit through the commercials? This feels somewhat similar.

<comment><USER7> TV either comes over public airwaves, or through a cable service that I pay (a lot) for.

So no, I don't feel obligated to sit through commercials.

My GMail account, on the other hand, is a great service provided directly to me. The ads on it are well done and don't interfere with my usage. Sometimes I even see ads I click on, since they are interesting. Seems like a good deal.

<comment><USER8> Broadcast is forced into your home over public wavespace, yes. But cable is something you signed up for, and ads are part in for the deal, like Gmail. You are paying Comcast, not the content producer of the channel you watch. A better argument against cable is that it's a monopoly product, so you feel entitled to renegotiate against the anticompetitive agreement that got cable in you neighborhood.

<comment><USER7> Given that my DVR is 1) provided by that same cable company, and 2) rather awful (5 years old, and yet still the newest model available), I still don't have any sympathy.

</comment></comment></comment></comment></comment><comment><USER9> Two questions my dad would have if I showed this to him:

\- How do I pronounce this?

\- What does "poly-browser extension" mean?

It doesn't matter that it's cross-browser or even that it's an extension. Those are descriptions of the technical architecture. What matters is how it makes my life better: it improves Gmail by getting rid of ads, etc.

Perhaps my dad isn't your target audience. But it might be worth testing an alternate design that includes more accessible copy.

<comment><USER10> I read it as G+melius /dʒiˑˈmɛliˌ(j)əs/, roughly like Gmail+ius /dʒiˑˈmeɪɫˌjəs/.

<comment><USER11> i think you missed his point..

<comment><USER10> What, because I used IPA? You can't reliably describe a pronunciation in many other ways.

<comment><USER12> I read the original as an indirect question.

Will anyone be able to pronounce this?

<comment><USER10> I'm not sure how much it matters. People mispronounce "Imgur" all the time, yet it's still widely used.

</comment></comment></comment></comment></comment></comment><comment><USER13> Can Google come after you in any way for disabling ads? I would think that you are in the clear, otherwise AdBlocker would not exist, but I could be wrong.

The "icons for attachments" is the killer feature for me and would install an extension only for that. It will really save me time. Cheers!

edit: can you remove the button? It does nothing but provide short-cuts to options and update (which I don't really get since extensions auto-update). I know I can hide it, but it would be better (IMO) to include the link to settings/donate somewhere in gmail.

<comment><USER8> You Gmelius, probably not, since ads are a private contract EULA thing, not a public law thing. You the user, if Google got desperate and tone-deaf, and an additional agreement were actually in the EULA.

</comment></comment><comment><USER14> Is there a source for this? I'm not sure how to view source of extensions.

I'm sure nothing bad happens, I just wanted to see how some of what you do is achieved. I wanted to make a similar extension for myself for browsing HN. Cheers.

<comment><USER15> <https://github.com/xpressyoo/gmelius>

<comment><USER16> I found it curious that this repo only contains the Chrome extension, but not the Firefox extension.

</comment></comment></comment><comment><USER17> I'm happy with the existing GMail UI, and the fact that people are experimenting with custom modifications is a good thing. It's disturbing though, that the first improvement touted is the removal of ads. For a free service offered by an an advertising company, the GMail ads are about as unobtrusive as they could be. And hiding the ads doesn't do anything for privacy concerns. If it's ad-free email you're after, you really should be looking to pay for the service from someplace else.

</comment><comment><USER18> My biggest gripe with Gmail is the lack of any ability to customize font sizes for different sections. I'm on an 11" Macbook Air and fonts can be unbearably small at times, but I see no way to increase the font-size of the emails I read. Even hitting cmd+ doesn't do the trick; the fonts get a _little_ bigger but the whole layout goes pear shaped, of course. More granular control over font sizes would make this plugin a lot more valuable to me.

<comment><USER19> Maybe you could play with Custom.css ? <http://hackerne.ws/item?id=3878589>

</comment></comment><comment> cool-RR Here's what will make me use this: Keyboard shortcuts for everything, including text-styling when composing a message. I want to be able to use 100% of GMail's functionality without ever touching the mouse. If your product would do that, and work well and not have any big issues, I'd pay $50 for it.

</comment><comment><USER20> Looks great but please don't remove the ads. I dislike ads as much as the next person but it should not be the role of this plugin to remove them, if you really don't want ads people can find another way to do that but it seems wrong to bundle it in with this.

<comment><AUTHOR> Hey, as already emphasized, all the features can be enabled/disabled in the extension's preferences. You're of course perfectly free to not remove the ads.

<comment><USER20> And I understand this, it doesn't make it any less distasteful...

</comment></comment></comment><comment><USER21> "Experiment Gmail™ without ads"

Experience?

</comment><comment><USER19> I like the part about the same font across emails, so I tried to mirror that :P

Found this [http://blog.affirmix.com/2012/01/20/change-the-font-size- of-...](http://blog.affirmix.com/2012/01/20/change-the-font-size-of-messages- in-gmail-with-google-chrome/)

for Linux, default path is ~/.config/chromium/Default/User\ StyleSheets/Custom.css (Chromium) or ~/.config/google-chrome/Default/User\ StyleSheets/Custom.css (Chrome)

I don't know css, but it seems adding color:#<color_in_hex> makes all the text have that same color.

<comment><AUTHOR> You should use "color:inherit !important;" in order for your tweak to be applied and adapted to the Gmail theme you're using. The CSS selector should look like : ".ii.gt.adP.adO font{}"

<comment><USER19> Thank you

</comment></comment></comment><comment><AUTHOR> Dear HN community, Gmelius developer here. Thanks for your comments, please keep them coming.

Just to precise one point: every Gmelius feature can be enabled or disabled in the preferences of the extension.

</comment><comment><USER22> The UI modifications are great. Finally, someone else is providing UI features that should have been there by default in Gmail.

</comment><comment><USER23> I would _pay_ for a GMail extension that allowed me to automate or semi- automate actions upon some kind of matching... e.g.

When I get an email from so-and-so... Scrape some data from email Add as a new row in Google Spreadsheet Reply with this data inserted or my own manual edits

Are commercial GMail add ins permitted?

<comment><USER24> _Are commercial GMail add ins permitted?_

Convert to Google Apps (there's a free plan) and you get a full marketplace: <https://www.google.com/enterprise/marketplace/>

</comment></comment><comment><AUTHOR> Looks like the HN community on the Pacific coast is going to miss the official release of Gmelius (<http://gmelius.com>).

Fair enough and thx to you all who checked it out!

</comment><comment><USER25> I would not use this for 2 reasons

1\. I love consider including. It's great 2\. I don't know how this affect rapportive

If you have a feature to enable/disable tweeks. Then It would be awesome

<comment><USER26> You can enable or disable any of the tweaks. All disabled by default.

<comment><USER25> Wow. Then it'll be great.

</comment></comment></comment><comment><AUTHOR> Hi HN, thanks for your valuable comments. Please do not hesitate to keep them coming, proposing features/tweaks you would like implemented in your Gmail. Florian (Gmelius Developer)

</comment><comment><USER27> Gmail should borrow two features from this - Attachment Icons and Auto-Scroll to top of inbox.

</comment><comment><USER28> Been using this for a while! Thanks! I love the labels with icons.</comment>