Our brief in support of Twitter's First Amendment suit against the US government - <AUTHOR> https://freedom.press/blog/2015/02/our-brief-support-twitters-lawsuit-against-us-government-violating-first-amendment <comment><USER2> It kinda blows my mind that the US government thinks this is a case they can actually win.

If they actually do, it's pretty much all over for democracy in the US.

<comment><USER3> Democracy survived the Supreme Court upholding internment of US citizens of Japanese descent, and it will survive this.

Some kinds of gag orders are undisputably Constitutional. It's not like in 1790 the government couldn't do anything about someone tipping off a suspect in a criminal investigation. The Sedition Act, banning criticism of the government, was passed during the presidency of a Framer in 1789.[1] And Near v. Minnesota noted that national security issues could justify prior restraint even while striking down a restriction as violating the First Amendment. That was in 1931.

That said hopefully the government loses this one, and there is good reason for them to lose.[2] The bar for Constitutional prior restraints is very high.

[1] The Sedition Act also demonstrates how nobody ever agreed on the definition of "freedom of speech." The Federalist argument in support of the Act relied on the narrow English definition of the concept.

[2] This article in the Yale Law Journal has some good coverage of the background to this litigation: [http://www.yalelawjournal.org/forum/warrant- canaries-and-dis...](http://www.yalelawjournal.org/forum/warrant-canaries-and- disclosure-by-design).

<comment><USER4> US democracy also survived the rise of the KKK, courtesy of very strong free speech and free press protections. Had the US lacked such, it's entirely plausible that the KKK could have become the US version of the National Socialists in Germany. I think a lot of people are ignorant of just threatening the KKK was for a few decades. The ability to freely argue ideas, and for the right ideas to win, is what made it possible to fundamentally neuter the KKK (such that now they're a meaningless, powerless, small group with no real impact on national politics). All of that was accomplished without having to fight a military conflict with the KKK / destroy them with force.

<comment><USER5> It seems to me that the KKK had about three stretches of considerable power: in the south during Reconstruction; in the south with some considerable influence in Pennsylvania, the Midwest, and as far as Colorado, during the 1920s; and again mostly in the south in the 1950s and 1960s.

After Reconstruction, the KKK essentially won--no black votes, no black officials. In the 1920s, I think it reduced itself to absurdity, with a high official jailed under the Mann Act. And law enforcement, notably the FBI, had a good deal to do with the end of its 1960s power.

</comment></comment></comment></comment><comment><AUTHOR> Previous discussion here: [https://news.ycombinator.com/item?id=8422581](https://news.ycombinator.com/item?id=8422581)

</comment><comment><USER6> .press? Dammit, ICANN.

</comment><comment><USER7> Aside from donating to the EFF, how can I help?

<comment><USER8> Don't use centralized services like Twitter that allow this to happen.

Take back control of your social networks and run your own instance of a federated social network like Diaspora, Pump.io, or GNU Social.

<comment><USER9> 1) Twitter isn't allowing this to happen, they are fighting it.

2) If the government were to subpoena your Diaspora node you'd be in the same boat, no?

</comment></comment></comment><comment><USER10> People and companies need to remember that civil disobedience is a valid option in response to unjust laws.

<comment><USER11> Only at a critical mass. Below that, enough civil cooperation from others following said unjust laws buries the voice, and hides the effort.</comment></comment>


Why do most job ads look and feel dull? - <AUTHOR> I think the quality of most job ads are dull. I believe the self-promotional chit-chat and useless jargon distracts would-be candidates from applying. Shouldn't they be written to ensure the opposite happens?
I'm interested in learning how job applicants feel when they read job adverts and what really makes them apply.
I'd also be interested in hearing from people who write job ads for their employers - and what they feel would make someone want to apply to their ad.
I've experimented with writing an ad for the industry I work in (see link). All thoughts, comments and constructive feedback is welcomed. <comment><USER2> You're definitely right on the uselessness of the self promotion part being a turn off I.e. "We're the world leader in blovation software." (That also goes for the recruitment firms adding a paragraph at the bottom of the job ad about how long they've been in business, etc.)

[Edited] I had posted some some suggestions for making the job ads more attractive but then I realized, as a recruiter, you can't really change the negative aspects of your client company's culture. The tips I had written would simply allow you to change your clients "messaging" to hide their negative "tells". Letting you know those "tells" would be a disservice the to my fellow developers so I deleted my comments. I hope you understand.

<comment><AUTHOR> All good. Thanks for commenting.

I believe recruiters can help employers realise the negative aspects of their culture. I think it's our job to raise them and help employers understand why people will/won't join them.

After all, we used to have the title 'consultant' after recruitment.

<comment><USER2> I hear you but (sadly) I just don't think it is possible to change an organization's culture with external input.

For example; if the company views software developers as "code monkeys" their culture is going to reflect that. To really change the culture you would need to change the way they view developers and that seems like a tough nut to crack.

Here is something that can tell you without giving away the "tells" that developers use to sense a company would be bad to work for:

Convince your clients what the actual marker rate is for developers vs. what they wish it was. If you are paying the true market rate, you can hire developers without much trouble. As Joel Spolsky put it:

 _" Now, let's review some microeconomics. In a free market, it is almost axiomatic that the market always clears. That's a technical term that means that when somebody tries to sell something, if they are willing to accept the market price, they will be able to sell it, and when somebody wants to buy something, if they are willing to pay the market price, they will be able to buy it. It's just a matter of both sides accepting the market price."_

[https://www.joelonsoftware.com/2000/06/15/whaddaya-mean- you-...](https://www.joelonsoftware.com/2000/06/15/whaddaya-mean-you-cant- find-programmers/)

Here's another way to convince your clients that the market rate is somewhere higher than what they are offering: Would you still have trouble finding developers if you paid $1 million dollars a year? No? Than the true market rate is somewhere between what the company is offering now and $1 million dollars.

<comment><AUTHOR> I see your point. I think the culture is set by those leading a business. Then again, those leading should listen to both internal and external factors that drive culture.

In recruitment, I regularly hear 'they're too old for this position' or 'they're too experienced.' In 2017.

I challenge thinking like this by trying to find out the real objection. 90% of the time it's a different objection that's normally easy to overcome. The remaining 10% can't be helped. The last example was a 63-year-old engineer who started for us last week - deemed too old and past it by an employer.

It won't change overnight, but it can change gradually.

Thanks for your comments and for sharing that link. A good read.

</comment></comment></comment></comment><comment><AUTHOR> Link: [https://www.markpearce.net/single-post/2017/10/24/How-to- wri...](https://www.markpearce.net/single-post/2017/10/24/How-to-write-a- different-job-ad-for-a-Recruitment-Consultant)

</comment><comment><USER3> > I think the quality of most job ads are dull.

The _quality are dull_ because most jobs are dull. Moreover, it's not like anything different from the standard form of a job ad would convey more information about the important aspects of the job.

<comment><AUTHOR> Good spot - and thank you for the grammar correction.

I agree. Most jobs are boring. Unless employers can articulate what problems the person will solve, learn and what impact their job will have on their peers/employer.</comment></comment>


Ask HN: Is objective-C really used anymore? - <AUTHOR>

Looking through the top charts on the app store (most of which are games), it seems that most apps were not made in objective-C.  In order to keep up with the competition, is knowledge of objective-C still sufficient for iPhone development?  What other frameworks should be considered necessary? <comment><USER2> Yup. It's currently the 6th most popular language: [http://www.tiobe.com/index.php/content/paperinfo/tpci/index....](http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html) (among all of IT, not just iOS)

<comment><USER3> 10th most popular on Github. <https://github.com/languages></comment></comment>


Show HN: Tettra – a wiki for Slack teams - <AUTHOR> http://tettra.co <comment><USER2> Cool! This is actually a potential resolution my team has. We use Slack to communicate and kind-of-sort-of put documentation in VSTS, but really we only use VSTS for source control and project management. The real 'this is how the system works'-type information falls into the cracks.</comment>


Design Trends: Coolest iPhone APP Website Designs - <AUTHOR> http://spyrestudios.com/design-trends-25-coolest-iphone-app-web-designs/ They generally all follow the same plan of attack (for good reason) but it makes me wonder – are these sites being built to just blend in with the rest of the pack or are there some that stand out? <comment><USER2> Good find, always nice to see some visual inspiration.

The App called "Spiffing" actually seems pretty useful, I like the really lightweight take on to-do lists.

<comment><USER3> our website was very similar but then our business model changed, and we developed apps for desktop and web which sync, so we had to go back to mainstream website design...

</comment></comment><comment><USER4> You know... if Apple threw another one of their copyright dickyfits almost all of those sites could be faced with nasty letters from their legal department. After-all, most of them have a big whopping pic of an iPhone on their homepage.

Bear in mind, Apple frequently won't allow apps to be published just because they have an icon representing an iPhone and usually cite 'copyright' as the reason for not allowing it.

<comment><USER5> They actually give some pretty sweet 'official' images to use on marketing websites, which is why all the enormous iPhone images look exactly the same.

However, they also have forms that have to be mailed ( _mailed_ ) in to be able to use the materials, so they legally cover their ass by licensing said materials instead of just handing them out to anyone who stops by.</comment></comment>


Business Plot - <AUTHOR> https://en.wikipedia.org/wiki/Business_Plot <comment><USER2> [https://news.ycombinator.com/item?id=22012255](https://news.ycombinator.com/item?id=22012255)

</comment><comment><USER3> Glad to see this here along with the War Is A Racket post.

People need to know how fragile democracy is.</comment>


NetNewsWire 5.0 – Open-Source RSS Reader for Mac - <AUTHOR> https://thesweetsetup.com/netnewswire-5-0-relaunches-as-an-open-source-rss-reader-for-the-mac/ <comment><USER2> And there's a podcast with John Gruber about it: [https://overcast.fm/+B7NA72wCE](https://overcast.fm/+B7NA72wCE)

</comment><comment><USER3> I've settled with Vienna (another open source RSS reader for Mac) for quite sometime after trying out many RSS readers on Mac. I've ignored electron-based RSS readers, but after trying out NetNewsWire, migration from Vienna was just a export and import away and that was it. I couldn't be more happier with using NetNewsWire on my MacBook.

> (We're also working on an iOS version.)

I am seriously looking forward to this. Syncing from iOS and Mac would make sense here.

<comment><USER4> Syncing will likely be limited to the third-party sync, I believe.

<comment><USER5> News Explorer is doing a great job syncing between macOS and iOS without third party service, I hope NNW follow that model

<comment><USER6> Yeah, News Explorer is breaking new grounds here. News Explorer's price point is somewhat high but it makes up for it avoiding subscription costs.

And technically it does it really well. The FAQs in News Explorer support page try to explain some issues that can arise but I've never found them (my Mac Mini always running News Explorer at home and use it from my iPad, iPhone, and two laptops).

</comment></comment></comment></comment><comment><USER7> I've used NNW for years and it was fantastic! If you looking for desktop RSS reader look no further. Switching back to Linux forced me to look for alternatives and I ended up with Feedly. There were complaints at first but after a while, I came to the conclusion that web app is a better choice for RSS reading than stand-alone. The modern browsers privide sufficient UI for implemnting a full-featured RSS reader, and since the most of contents is rendered in HTML, having a reader inside a browser vs. having a browser inside a reader makes more sense. Opening new links in tabs also plays well: you navigate over one dimension (tabs) vs. two (apps+tabs).The bottom line is that I want to encourage you to consider web-based RSS reader.

</comment><comment><USER8> RSS-wise, is there any "accumulating" / persistent / offlining RSS client?

I read a fair amount of serials these days, and while most notify updates over RSS (though not necessarily with a full-text feed), neither generic RSS clients nor offline readers (e.g. pocket, instapaper, …) are really built for multi-updates works, the ability to browse across chapters, re-read a work, …

I guess an option would be to collect updates into ebooks, but there it's not quite clear how various epub readers handle updates (e.g. can I point the reader towards a URL and it'll check for updates on its own, do I have to update manually, do updates only work through proprietary storefronts?)

<comment><USER9> You can install full-text RSS yourself at the URL below. They also offer a hosted solution for €4 per month.

[https://fivefilters.org/content-only/](https://fivefilters.org/content-only/)

I personally pay for and recommend a hosted RSS service called Bazqux, and they host the FiveFilters full-text RSS service for their customers.

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

[https://ftr.bazqux.com/](https://ftr.bazqux.com/)

<comment><USER8> I don't know if I failed to explain things correctly or if you just missed it, but that certainly does not seem to help much.

The core issue is not partial feeds, it's — as the first paragraph describes — the ability to collect and collate feeds into persistent offline-available books (for lack of a better word).

Having full-text feeds don't really do anything when the feeds are still ephemeral, mixed together, to be sent to a separate reader for any sort of offline permanence, and basically unavailable for later (also offline) re- reading. The RSS feed of a serial is a way to get update notifications, it's not a feed of articles which become outdated once you've read them.

<comment><USER10> I think RSS are the wrong starting point for such a task. They may syndicate limited content, may contain ads, etc. So I guess you want to collate the _posts_ rather than the feed entries themselves.

Personally, I "solved" a similar issue of mine (collecting posts I want to read in a weekly EPUB and send them on my Kindle) with Pocket and a web service called Crofflr. (Notice Crofflr seems to be under no active dedelopment, but in my experience it just works). I guess Instapaper offers a similar service, but I never tried it. You can automate the RSS-to-Pocket (or other read-it-later service) part with tools such as If This Then That. Hope this helps.

<comment><USER8> > I think RSS are the wrong starting point for such a task. They may syndicate > limited content, may contain ads, etc. So I guess you want to collate the > posts rather than the feed entries themselves.

Certainly.

> Personally, I "solved" a similar issue of mine (collecting posts I want to > read in a weekly EPUB and send them on my Kindle) with Pocket and a web > service called Crofflr.

Interesting. That is sort of the things I've considered, however each serial's feed really is a single work being updated (mostly append-only I guess, I don't know how many serials authors go back and significantly rework previous entries) and I don't know how well epubs and their clients deal with updates / additions (without intermediate proprietary storefronts).

I really need to knuckle down and play with epub, seeing how googling around doesn't seem to yield anything useful.

> You can automate the RSS-to-Pocket (or other read-it-later service) part > with tools such as If This Then That.

"RSS to pocket" isn't really the issue, going through my RSS feed, reading the regular entries and sending the serials to pocket isn't much of a drain / difficulty. The issue is mostly that serial entries can accumulate rather fast in pocket (especially for those with small frequent entries e.g. one of the defunct serials I used to follow would publish a page per day), and so pocket is a mess of interspersed normal articles to read later and chapters from dozens of serials. Because of that I regularly find out I've skipped chapters.

</comment></comment></comment></comment></comment><comment><USER11> Just want to mention self-hosted rss app tt-rss ([https://tt- rss.org/](https://tt-rss.org/)). It can publish to a feed URL itself if you want, or just use the tt-rss app.

<comment><USER12> And tt-rss works great with Fiery Feeds[0] (along with many other RSS sync services)... Fiery Feeds is an outstanding RSS client for iOS.

[0][https://apps.apple.com/us/app/fiery-feeds-rss- reader/id11587...](https://apps.apple.com/us/app/fiery-feeds-rss- reader/id1158763303)

</comment></comment><comment><USER13> I use viennaRss:

Vienna is a free and open-source RSS/Atom newsreader for macOS [https://github.com/ViennaRSS/vienna-rss](https://github.com/ViennaRSS/vienna- rss)

<comment><USER14> Another Vienna user here.

</comment></comment><comment><USER15> Still can't find (not that I really want to) anything better than ReadKit.

Most of the readers can't fetch the whole article when rss has only an excerpt (or do ot poorly). This is a must for me.

</comment><comment><USER16> I'm curious if no one is interested in reading less of RSS feeds, effectively curating them and only reading them once a day.

A few years ago I had over 300 feeds in Google Reader, and even migrated them to Feedly and Reeder, but eventually I ditched them to my most important 10 and built something to get any new things only once a day (won't link here so people don't think I'm spamming).

<comment><USER17> I'm interested in something similar. I currently tame various firehoses by using regex filters in QuiteRSS. That makes switching to NNW a non-starter right now.

But, both of these readers still make the assumption that I want to keep a feed reader open all day every day to check feeds and interrupt me when new ones come in. I'd like something that runs on a server and emails me a link to an rss "digest" once a week. I currently imagine that digest being a "newspaper" stream where the full content of every feed item is listed in chronological order. You can skip ahead to the next item with 'n' if you don't want to finish the item you're on.

I'm sure I'll get around to building it one day.

<comment><USER16> That's basically what I built, and I very much prefer to read that way. It's a lot calmer.

You can find the link in my website, if you're curious.

Edit: major difference there: I don't download the content, just link to it.

<comment><USER17> Cool! I found it. The site's down. :(

<comment><USER16> Hmm, which one? [https://focusd.co](https://focusd.co) should be working

<comment><USER17> That's the one. "This site can't be reached. focusd.co unexpectedly closed the connection." in chrome. It works in firefox and safari.

<comment><USER16> So I've been debugging this and I'm not really sure what's up with that.

I can reach it via Chrome, and analyzing via multiple tools, all report things are fine, except for downfor.io ( [https://downforeveryoneorjustme.com/focusd.co](https://downforeveryoneorjustme.com/focusd.co) ):

\- [https://www.uptrends.com/tools/uptime](https://www.uptrends.com/tools/uptime) \- [http://currentlydown.com/focusd.co](http://currentlydown.com/focusd.co) \- [http://downforme.org/is-focusd.co-down-today-for- everyone](http://downforme.org/is-focusd.co-down-today-for-everyone) \- [https://tools.pingdom.com/#5b3bb6faf9400000](https://tools.pingdom.com/#5b3bb6faf9400000) \- [https://www.ionos.com/website-checker- result](https://www.ionos.com/website-checker-result) \- [https://www.site24x7.com/check-website- availability.html](https://www.site24x7.com/check-website-availability.html)

:/

<comment><USER16> So I got in touch with the owner of [https://downfor.io](https://downfor.io) and he was super helpful in order to get me to discover an issue with my SSL setup in Chrome < 71 (I'm currently on 77). I got it working now, hopefully for everyone!

@ScottFree please reach out to me, I'd love to pay you back somehow for making me discover this problem!

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> Here's another super specific request: are there any RSS readers that

1) Support both Windows and macOS

2) Can import a Fever database

Moving from Fever is a pain which keeps me on my usual host, but it'd be great to migrate it somewhere else, preferable something self-hosted. I also think my license is tied to a specific domain to make matters even more annoying.

<comment><USER19> >2) Can import a Fever database

It has been a while since I used Fever, but I remembered it being able to export OPML files, which most feed client should be able to import.

<comment><USER18> OPML is easy enough; I'm talking about the database of saved items. :)

</comment></comment></comment><comment><USER20> Is cloning Google Reader really that hard? I use QuiteRSS but this article and comments has me thinking an RSS aggregator in PHP and using SQLite that could be installed (git cloned?) to __any __hosting provider would be an awesome project.

Maybe I should write it. :-)

<comment><USER17> That's exactly what TheOldReader[0] did.

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

<comment><USER20> TheOldReader appears to be a semi-free SaaS; I was referring to something that's an open source product that could be installed on any commodity hosting provider -- git clone {path_to_repo_on_github} -- with the database/state of the app being just a SQLite database which can be backed up or moved at will. That's not at all what TheOldReader appears to be.

<comment><USER21> But you asked for a clone of Google Reader. Which theoldreader is. (bazqux.com is better though)

<comment><USER20> I actually asked if cloning Google Reader was all that hard, not if it had been done.

</comment></comment></comment></comment></comment><comment><USER22> I'm one of those people still using version 3.3.2 and I've just exported from it and imported into version 5 and.... it loses all the folders and subfolders I've spent years polishing up.

All feeds are now at the same level and basically unusable :-(

<comment><USER23> NetNewsWire is capable of importing OPML files with folders. Worked for me when I imported from Feedly. If it doesn't work for you, I'd report a bug. I'm sure having a migration path from old versions of NNW is something Brent cares about.

[https://github.com/brentsimmons/NetNewsWire/issues/new](https://github.com/brentsimmons/NetNewsWire/issues/new)

<comment><USER22> thanks for pointing this out. If I change the export option from the default to "with groups" I can import folders into v.5 but not subfolders as mentioned by others below.

It's better than nothing for sure

</comment></comment></comment><comment><USER24> RSS is back!

Just added it to our corporate 11ty site using a plugin. So glad the open web is on the upswing.

</comment><comment><USER25> does anyone know some software as nice as NNW for Windows 10? It is the kind of thing I miss on my surface...

<comment><USER26> QuiteRSS is available for Windows, but it seems to me that Netnewswire has a more sophisticated GUI.

[https://quiterss.org](https://quiterss.org)

<comment><USER25> thanks for the link

</comment></comment></comment><comment><USER27> I wish that there were more apps that focused on the problem of searching and organizing archives and tracking ideas over time, rather than just another interface to the latest posts.

<comment><USER28> I use RSS/Atom to email, so I just save an .eml and file/organize it on my file system (with all my other files).

So I got three independent interfaces: one to configure the feeds, one to read them and other to organize and search/recall. Each with different folder structure optimized for the task at hand.

</comment></comment><comment><USER29> Is there a way to synchronize between Firefox (or another browser) and RSS reader which links have been visited? If I use Firefox on every device, and I use Firefox Sync, then the content of synced including tabs, history, and which sites have been visited. These have a different color (e.g. when I visit HN). How do other people work around this? By never using a browser? If that works for you, then I suppose you use some way to synchronize your RSS readers.

<comment><USER29> I've partly figured out the answer to my question.

You can self-host a backend such as Nextcloud News, TT-RSS, FreshRSS. Your client then needs to sync two-way with such a backend.

Using Newsboat (a TUI RSS reader) as standard, I'd say the following backends are applicable:

       urls-source (parameters: <source>; default value: "local")
           This configuration command sets the source where URLs shall be
           retrieved from. By default, this is ~/.newsboat/urls.
           Alternatively, you can set it to opml, which enables newsboat's
           OPML online subscription mode, to ttrss which enables newsboat's
           Tiny Tiny RSS support, to oldreader, which enables newsboat's The
           Old Reader support, to newsblur, which enables NewsBlur support, or
           feedhq for FeedHQ support, or ocnews for ownCloud News support, or
           inoreader for Inoreader support. Query feed specifications will be
           read from the local urls file regardless of this setting. (example:
           urls-source "oldreader")

For example, for NextCloud/OwnCloud (which I opted for, as I already run NextCloud, and have no clue whatsoever which one I should be otherwise using) you need to add urls-source "ocnews" in ~/.newsboat/config and furthermore configure ocnews-url, ocnews-login, and ocnews-password.

NetNewsWire looks good (Vienna looks like macOS did 15 years ago). However, it does not support nearly as many external synchronization as Newsboat does (only Feedbin, which is commercial, while I can self-host and prefer an open protocol).

As for an Android RSS reader, I haven't figured that out yet, but Nextcloud News support a lot of sync clients [1]

[1] [https://github.com/nextcloud/news#Bugs](https://github.com/nextcloud/news#Bugs)

</comment></comment><comment><USER30> This app is nearly perfect for me, but I cant stand the three pane layout on every rss reader. It's a mobile layout, not a desktop layout. Give me a single line list view with completely customizable columns. Give me articles in simple popup windows, like apple mail messages. If I could have those two things this would be perfect for me and would replace inoreader.

</comment><comment><USER31> I worked on Winds for a few weeks: [https://github.com/getstream/winds](https://github.com/getstream/winds) It has quite a bit of a following amongst designers and developers.

RSS has a lot of quirks, I wonder if an open-source solution will ever become truly mainstream in this space though.

</comment><comment><USER32> Any recommendations for a RSS reader for Mac and iOS that syncs, preferably without a third party? Doesn't have to be free.

<comment><USER33> I've been using reeder and it's just fine.

<comment><USER4> Reeder doesn't sync without a third-party though.

</comment></comment></comment><comment><USER34> I'd recommend self hosting FreshRSS[1]. It works on all my devices via the browser and there's an open-source Android client on F-droid. Works with a SQLite DB, so no migration issues. PHP, so also works on my cheap shared hosting.

[1] [https://freshrss.org/](https://freshrss.org/)

<comment><USER35> I'm actually a bit sad that it seems there's no decent standard for just syncing the read status and subscriptions, combined with some good native clients (like NetNewsWire, which always was one of my prime examples of why the OS X app space seemed so good in the '00s).

But hosting or paying for a common complete RSS service and accessing that with a limited set of clients seems the only viable approach these days.

Although in the last few weeks, I've foregone centralized services and do it all via NNW in the evening -- saves me from constantly checking feeds, too.

<comment><USER36> I started out with NetNewsWire, but have in the past transitioned to Inoreader - web apps work perfectly for RSS as you don't need to sync anything between devices (EUR 20/year for ad-free version)

Now if only all services could retain RSS, there's a new CMS being used by Norwegian press that don't support it - I'm actually considering cancelling one subscription because I will miss a lot of the content :/

<comment><USER34> Mind me asking what CMS that is?

<comment><USER36> [https://labradorcms.com](https://labradorcms.com)

The few sites I checked doesn't offer any feed at least

<comment><USER34> Thanks.

</comment></comment></comment></comment></comment></comment><comment><USER37> I still miss Mr Reader for iPad, the best RSS reader I've used on any platform - now sadly abandoned

</comment><comment><USER38> Damn, needs Mojave. This ol' laptop has been having problems upgrading the OS. Guess we'll try that, again.

That's a bummer for me, I find the last version of NNW to hold its caches for forever, leading to several dozen gigs of images I have to delete every now and again.

</comment><comment><USER39> For me, I am stick with terminal-like interface.

Since I am using Emacs, elfeed ([https://github.com/skeeto/elfeed](https://github.com/skeeto/elfeed)) is my best choice for RSS reader.

</comment><comment><USER40> Dumb question, but is RSS still that much of a thing? I remember it being big 10+ years ago. Then Google reader shut down and I haven't given it much thought. Where would I find a good list of RSS feeds to try this out?

</comment><comment><USER41> A link to the github repository, in case anyone else was looking for it too:

[https://github.com/brentsimmons/NetNewsWire](https://github.com/brentsimmons/NetNewsWire)

</comment><comment><USER42> In this day and age, how could people use desktop reader without syncing feeds when they're on their phones? I don't get it.

NetNewsWire on Mac is pretty good looking and fast software. But it is useless without its counterpart on iPhone.

When it comes to RSS feeds, it is an either/or scenario. You either have RSS wherever and whenever you want (and it has to be synced up and up to date), or you don't.

<comment><USER43> I agree that a multidevice, always-available solution is better for many activities, especially for news, but the downside to this requirement is that desktop apps become unimaginative, blown-up versions of the mobile apps.

I want more developers to create _unapologetically_ desktop apps — unconstrained, customizable, with multiple and filterable views of content, able to integrate and share data with other apps.

(Yes, these are not mutually-cancelling goals. You can have a good enough iOS app and a more interesting Mac app. However, developer time is finite, features beget bugs, and only a small fraction of users collaborate with an open source project)

<comment><USER42> I agree. I only want my up-to-date data (which is feeds in this context) to be available in a bare-minimum fashion on my mobile, when I'm away from my desktop. The argument I make above is based on the fact that when it comes to RSS, your data (feeds) is either in a read state, or it is un-read. It should be up to the users to decide where and what he/she wants to read. The equal unavailability of the data/feeds on multi-platform makes it very hard to consume the feeds.

</comment></comment></comment><comment><USER44> This looks very good, I'm just waiting for Feedly compatibility.

</comment><comment><USER45> Any suggestions for a Linux RSS reader that supports Feever?

</comment><comment><USER46> Do it support fever api?

<comment><USER47> Not yet unfortunately. There are issues open about this, but Feedly will probably be the next sync service.</comment></comment>


"Pirate Wi-Fi" On NYC's Subway Not Just For Hooking Up With Hot Strangers - <AUTHOR> http://www.fastcompany.com/1795011/see-someone-say-something-pirate-wifi-comes-to-nycs-subway

<comment><USER2> An interesting and fun project.

But . . .

> _Krawczuk arrived at around 11:30 a.m., dangling a green canvas grocery bag > that held a small white box containing the apparatus--a plug computer, > battery, and car inverter--that would fuel the Wi-Fi and serve the content._

. . . be careful with weird looking boxes and bundles of wires in today's paranoid atmosphere.</comment>


BeagleBone Black GPIOs - <AUTHOR> http://kilobaser.com/blog/2014-07-15-beaglebone-black-gpios

<comment><USER2> Adafruit has a ton of tutorials for the beaglebone black. They even have their own Python library. [https://learn.adafruit.com/category/beaglebone](https://learn.adafruit.com/category/beaglebone)

Derek Molloy has several video tutorials: [http://derekmolloy.ie/beaglebone/](http://derekmolloy.ie/beaglebone/)

Both of these resources have just about all of their source available on Github.

Anyone whose done "little" embedded will be absolutely amazed by embedded linux, once they can get a base level of proficiency. With smaller processors, every bit of functionality in the code is there either because you had to put it there yourself, or you cobbled it together from 7 different barely tested libraries. If those libraries are any good, you may have paid thousands of dollars each, plus 20% every year, for an RTOS, Ethernet, TCP/IP, USB, filesystem, etc. Oh, whats that? You want to switch from Freescale to Texas Instruments? Fuck you, pay me. You want to release two different products with the same RTOS? Fuck you pay me. You want multiple developers using the same libraries? Fuck you pay me.

With a beaglebone black, for free, immediately and in perpetuity, you have TCP, UDP, HTTP, FTP, DHCP, SSH, SPI, I2C, UART, Filesystems, SDMMC, USB host and device, HDMI, Threads, Processes, Semaphores, Pipes, Queues, Python, Java, C/C++, Android, MySQL, and more. Additionally, just about all of these features have been thoroughly tested because its all Linux. There are more questions and answers on Google/StackOverflow, because there are more Linux developers to chime in. Even if they've never touched a beaglebone, most of their experience is still relevant. You can program, compile, and debug directly on the processor, without needing an IDE or JTAG debugger. It's truly an amazing device/experience.

</comment><comment><USER3> I'm using the BeagleBone Black as the platform for my GoBalloon [1] project. Overall, it's awesome: the GPIO and UART ports work as expected. One major annoyance, however, is the lack of easy-to-use DC input current sensor. For my battery-powered project, I want to be able to monitor the supply voltage that the BBB is getting. I want to read this value in software so I can do things like reduce the telemetry transmission rate if the battery starts to run low. I also want to log the supply voltage so that I can compare the performance of different battery technologies on subsequent flights.

I was chatting with the folks on freenode:#highaltitude and it turns out there is a way to do this, but it involves soldering jumper wires onto pins of the BBB's Power Management Controller and pulling resistors off the PCB. Yuck. I decided to use a INA219 on my custom cape instead. Hacky.

Thanks for the writeup on the device tree overlays. That's going to be super useful for me.

[1] [https://github.com/chrissnell/GoBalloon](https://github.com/chrissnell/GoBalloon)

</comment><comment><USER4> I love the BeagleBone Black and I own several of them. I also bought some for work. But I hate setting them up. I wasted days getting one to boot again, after an update made booting from uSD impossible. Setting up the GPIO pins and the PRUs (programmable real time units) is a pain in the behind, because the set-up-method keeps changing. The article mentions device tree overlays, which are relatively new, but these were actually thrown out of the latest Ubuntu builds. And don't get me started on uEnv.txt. For beginner/intermediate users, this is suboptimal.

<comment><USER5> What is the best set up method at this point then?

I have a BeagleBone Black but it still hasn't made it out of its box. I'm hoping to use it to write simple synths/audio effects and connect lots of buttons/pots/switches/sensors and such to the GPIO pins.

In the meantime I've been using the Teensy to build I/O devices and then send MIDI/OSC to and route audio through my laptop.

<comment><USER4> If you are not using it online, then you might be better off not applying any updates. In my experience, updates caused as many problems as they were solving.

The 3.8 Kernel was the only one that supported Device Tree Overlays. I found that to be easiest to work with, although there are a few bugs. Last time I tried, removing overlays did not work reliably - a reboot was usually better.

I am currently on Ubuntu 14.04, which unfortunately does not support device tree overlays. I installed it a few weeks ago and kept a few notes on the process here:

[http://hoeckerson.de/notes/beaglebone-black- overview/](http://hoeckerson.de/notes/beaglebone-black-overview/)

</comment></comment></comment><comment><USER6> Tangential to the core topic of the post, it mentions problems with the RaspberryPi's USB and Ethernet, referencing a 2-year-old Slashdot Post.

I've never encountered real issues with my RasPi, but I really haven't used it significantly. Nevertheless, that's a long time to have issues with popular hardware.

Have the USB problems been since corrected? What about the model B+, which upgrades the USB controller from the LAN9512 to the LAN9514: [https://learn.adafruit.com/introducing-the-raspberry-pi- mode...](https://learn.adafruit.com/introducing-the-raspberry-pi-model-b-plus- plus-differences-vs-model-b/usb-ports-hub) ?

<comment><USER7> I have not had any problems related to USB with my B+, except that one time I directly connected a device that uses the USB power for charging - the screen went blinking black (not enough power for HDMI?), and the red power led blinked a bit (meaning, inadequate power supply/too much demand) but no kernel panics or reboots. I have since bought a more powerful power supply, it's possible that the problem is gone (but I have not checked).

Ethernet is as fast as you'd expect from a Ethernet-over-USB-2.0 adapter (read: no Gbit, but 100 Mbps). Plugging and unplugging USB devices has never caused kernel panics or reboots for me, and for the model B I recall reading these problems have been corrected, or at least significantly attenuated, a lot of time ago, in the form of kernel updates. Stability also has a lot to do with the quality of the power supply - from what I see, people using less powerful power supplies tend to have more problems, especially when connecting power-hungry devices.

I think calling such problems "major bugs" is exaggerated. At most, it's a power management problem, but one must see that the RasPi has a microUSB connector for power. This means people are possibly going to use a random charger, which is not exactly prepared to power a mini-computer plus two (or four, with the B+) possibly hungry devices, to power it. That's why a powered hub, or at least a good power supply, is recommended.

In my opinion, the BeagleBone Black is, from the start, less prone to "power abuse", because it has a traditional power jack (people are less likely to use a random USB charger with it) and only one USB port (it's harder to pull a lot of power from a single port, unless a non-powered hub is used). The amount of people using the BeagleBone is, I think, also going to be much smaller: even if the chance of failure is the same as for a RasPi, there will be less broken devices around. Lastly, the people using the BeagleBone will likely be much more tech-savvy (i.e., they hopefully will know what power supply to use, for example), as it doesn't exactly appear to be targeted at people still learning the basics about computers and coding.

<comment><USER8> >the BeagleBone Black is [..] less prone to "power abuse", because it has a traditional power jack (people are less likely to use a random USB charger with it)

Not quite true. The BBBlack can _also_ power itself from the mini-usb port (and mine is currently powered up in exactly this way, off a normal usb phone charger I had lying bout)

</comment></comment></comment><comment><USER9> Thank you, this is very helpful for people who are experienced with embedded work, but unfamiliar with the BBB. I wish I had this available a couple of months ago, when after figuring things out on my own, I also ended up writing an I2C library (something I never expected would be necessary, it's called LsquaredC).

Platforms like the BBB and RPi have a lot of beginner-level tutorials, but as soon as you try to do anything out of the ordinary (PWM a pin, or issue repeated I2C start), you end up on your own.

<comment><USER2> This tutorial has SPI, I2C, PWM, GPIO, ADC, and UART. Its in Python, but it almost exclusively uses the sysfs interface, so porting it to C, or the language of your choice, should be very simple.

[https://learn.adafruit.com/setting-up-io-python-library- on-b...](https://learn.adafruit.com/setting-up-io-python-library-on- beaglebone-black/)

I think they also have a similar library for the RPi.

</comment></comment><comment><USER10> Nice article, but why does every post about the BeagleBone have to include a swipe at the Pi?

<comment><USER9> I think anyone who tried to use the Pi for long-running reliable applications and failed has this knee-jerk reaction. I certainly find it understandable.

<comment><USER11> While the BBB may be more reliable, it's still not rock solid - I've been working on an embedded project w/ heavy USB usage and the BBB seems to have occasional, but unavoidable and hard to diagnose hard lockups every couple weeks. In the end we were forced to use a separate IP-switch device to power cycle the BBB when it became unresponsive.

<comment><USER12> Does the BBB not have a watchdog mechanism capable of triggering a board-level reset?

</comment></comment></comment></comment><comment><USER13> Another great feature of the BBB GPIO pins is that you can map some of them to a register on the PRU. Since the PRU runs at 200Mhz, this gives you some really impressive real-time capability. The sysfs technique the article outlines is definitely convenient, but latency can be high, as much as 1ms. Mmaping the GPIO controller and using some real-time extensions to the kernel can get that down to a few us, but using the PRU can take it down to a handful of ns.

The PRU is the unrecognized gem of the BBB. As long as you're not scared of assembly :).

</comment><comment><USER14> Good overview, as someone who's worked with the BeagleBone Black a bit it's nice to see a single blog post that covers lower level GPIO access comprehensively like this one does.</comment>


Stephen Elop New Chief Innovator for Australia's Telstra - <AUTHOR> http://www.telstra.com.au/aboutus/media/media-releases/stephen-elop-joins-telstra-senior-leadership-team.xml <comment><USER2> As an ex-Nokian, I wish Telstra the best of luck.</comment>


Unfolding The Box - CSS 3D Transforms in the Box Model - <AUTHOR> http://rupl.github.io/unfold/ <comment><USER2> Am I the only one with nothing on the slinky/spiral slide? Otherwise: Awesome!

<comment><USER3> This was originally a presentation aid and as such I only fully tested it in Chrome on a projector at 1280x960. I would like to keep improving the FF support in my spare time, and PRs are also welcome ;)

<comment><USER3> The flood of HN traffic motivated me to sit down and squash a bunch of bugs tonight. Should look much better in Firefox now, including a visible slinky!

</comment></comment></comment><comment><USER4> awesome demo. very informative and useful for any level of dev

</comment><comment><USER5> This is very very impressive and a great way to grok.

</comment><comment><USER6> Doesn't work on either Firefox or Chrome for me.

<comment><USER7> Works fine on FF except the slinky, and all of it works on Chrome for me. OSX

<comment><USER6> Ah, I thought you could just scroll the content and using the keyboard was optional. The site works after all.

</comment></comment></comment><comment><USER8> Very nice but pretty CPU intensive presentation :)

</comment><comment><USER9> If only every browser implemented it...but IE 7,8,9 are stuck on the old APIs. They're a large percentage of all users.

<comment><USER4> actually...

IE7: 0.5% worldwide

IE8: 8.65% worldwide

IE9: 5.29% worldwide

[http://gs.statcounter.com/#browser_version_partially_combine...](http://gs.statcounter.com/#browser_version_partially_combined- ww-monthly-201211-201311)

<comment><USER10> Depends on your demographic. 20% of our site visitors use IE8 :-(.

</comment></comment></comment><comment><USER11> Good stuff if even as visual reference material as to some of the awesome possibilities CSS 3D brings. Love it!

</comment><comment><USER12> Doesn't work at all on the Android Stock Browser but commenting so I can check it out tomorrow at work.

<comment><USER13> OT, but if you upvote an article, it gets saved into your "saved stories". You can find the link on your profile if you click your username in the URH corner.

Your "saved stories" URL would be [https://news.ycombinator.com/saved?id=Kiro](https://news.ycombinator.com/saved?id=Kiro)

<comment><USER12> Thanks, didn't know that!

</comment></comment></comment><comment><USER14> Doesn't work on latest Firefox/Windows.

</comment><comment><USER15> Nicely done! Easy to understand.

</comment><comment><USER16> This is beautiful, great job.

</comment><comment><USER17> awesome. totally brilliant. it's rare that something absolutely knocks my socks off, but i'm sitting here in my bare feet, wondering what the heck happened...

this is gonna take some time to digest, but thank you, thank you so much, for doing something so outrageous...

-bowerbird

</comment><comment><USER18> Excellent work here!

</comment><comment><USER19> I CAN'T SEE SHIT!</comment>


NASA wants YOU (to make its Fortran code run faster) - <AUTHOR> https://arstechnica.com/information-technology/2017/05/nasa-wants-you-to-make-its-fortran-code-run-faster/ <comment><USER2> Link to the competition page: [https://herox.com/HPFCC](https://herox.com/HPFCC)

</comment><comment><USER3> Do schools still teach FORTRAN? Is there anyone under the age of 50 writing it professionally (not just a little hobby dabbling)? Would someone who is expert in the CFD domain be interested in picking through 30yo code to learn the language and contribute?

<comment><USER4> I had the dubious pleasure of being assigned to revive some NASA FORTRAN code from 1978 during grad school. FORTRAN 77 was too new, so it was written in FORTRAN 66 style. With vendor extensions, naturally. Fortunately this wasn't CFD code. It was an order of magnitude less complicated. Anyhow, nobody had compiled this thing in 15 years. It took about a month for me to figure out how to make it work, because it wasn't obvious that the garbage I was getting out of it was because I was compiling it wrong. Eventually I found the right flags for gfortran, and it just worked.

So yes, if you count grad students, people are working on FORTRAN for their bread.

</comment></comment><comment><USER5> I can do that: I usually manage to get the wrong answer really fast...</comment>


Kubernetes 1.10: Improving storage, security, and networking - <AUTHOR> http://www.zdnet.com/article/kubernetes-1-10-improving-storage-security-and-networking/ <comment><USER2> First two sentences are catchy and on-point! Love it :)

      Ever been in a Tesla and hit the accelerator in Ludicrous Mode?
      If you have, you know you'll speed up like the proverbial bat
      out of hell. The development of Kubernetes, the leading container
      orchestration program, has been like that.</comment>


East - node.js database (mongodb and others) migration tool - <AUTHOR> https://github.com/okv/east

<comment><AUTHOR> What tool are you using for migrating database in node.js projects?</comment>


How to Build HTML Forms Right: Accessibility - <AUTHOR> https://stegosource.com/how-to-build-html-forms-right-accessibility/ <comment><USER2> > The key takeaways for semantics are: always use a <form> tag

Great article; I would like to learn more about what the <form> tag is functionally providing (it did not explain why it's necessary). Does it have a purpose beyond serving as a landmark?</comment>


Console.table() - <AUTHOR> https://developer.mozilla.org/en-US/docs/Web/API/Console/table <comment><USER2> This is a great example that shows how poor most non-web debugging and logging. The ability to mix and match data types and presentation format is extremely useful. Almost everywhere else we just have printf. And that's printf going to stdout — there isn't a universally deployed format to even allow it to travel easily over the network and be viewed on one of many useful and advanced viewers.

I think part of the problem is that programmers rarely want to get into these supportive details; they just printf and get on with it.

<comment><USER3> Damn, glad to see this, but they're also kinda encroaching on my territory! :P

I've been working on something like this that's language agnostic and works with not only tables but also trees, graphs, lists, hashmaps, etc., and animates the visuals as the data structures are modified in real time (and you can pause, playback, step, etc.): [http://symbolflux.com/projects/avd](http://symbolflux.com/projects/avd)

The api I was conceiving earlier was more complex, but if you read the copy there, you'll notice it's essentially the same now: `MObject.monitor(...)` or MTable.monitor() MStateMachine.monitor() etc.

Edit: really am happy to see some other projects like this in total, partly because I want to use 'em now if possible—but also because I've had a surprisingly hard time communicating to other developers why it might be desirable to do something like this in the first place, so I'll be very happy to have general awareness raised.

I read the first line of their docs as rather dry humor, "Displays tabular data as a table." —like yeah, of course you would want to see tabular data as a table, and hierarchical data as a tree, etc.!

<comment><USER4> At a quick glance it looks like it's targeted towards mutable data structures. Can it support (and would it make sense to support) immutable data? E.g. it would be nice to have a Haskell state monad that also visualizes its state.

<comment><USER3> You are correct, it's very much targeted toward mutable data structures. It'd be interested in looking more into the state monad and considering the possibilities, but I haven't yet.

Actually part of how I see the role of systems like this is part of the necessary conditions for more safely working with mutable data. I think mutable data is more risky, but also super easy to work with, so if we had ways of making it more reliable we should explore them. I envision languages where this sort of visualization is a core feature designed in tandem with the runtime etc.

<comment><USER4> Neat! Very interesting ideas! The Vacuum package[1] seems like something you could look into if you want to explore Haskell. Good luck with your project!

[1]: [https://hackage.haskell.org/package/vacuum](https://hackage.haskell.org/package/vacuum)

<comment><USER3> Thanks! Looks pretty cool. I also found this: [http://felsin9.de/nnis/ghc- vis/](http://felsin9.de/nnis/ghc-vis/)

</comment></comment></comment></comment></comment></comment><comment><USER5> Another useful trick I've been using for some time is

console.log({ a, b })

where _a_ and _b_ are some variables. This will print the name of the variable next to its value. So it can be thought as a faster version of

console.log('a: ' \+ a)

<comment><USER6> Nice! Thank you

<comment><USER7> Completely tangential, but you can also do the opposite with nesting, which I learned about literally yesterday:

const { some: { nested: { field } } } = tree; // field === tree.some.nested.field

or rename things while you destructure them:

const { crappyFieldName: betterName } = myObject; // betterName === myObject.crappyFieldName

Now I can't stop using this feature...

</comment></comment></comment><comment><USER8> List of console.* methods in Chrome DevTools: [https://developers.google.com/web/tools/chrome- devtools/cons...](https://developers.google.com/web/tools/chrome- devtools/console/console-reference)

</comment><comment><USER9> Thanks for the tip to this, never really explored the console API deeper than log. This is actually very useful

<comment><USER10> Yea, I can't believe this is the first time that I'm seeing this.

<comment><USER11> There are a bunch of other console logging utils that are worth checking out. time and timeEnd are one of my favorite.

</comment></comment></comment><comment><USER12> ThereThere.table()

ThingsWillGetBetter.table()

INeverLikedHimAnyway.table()

<comment><USER13> I didn't get the reference. Some help?

<comment><USER14> CONsole, the noun, vs conSOLE, the verb (to comfort at a time of grief or disappointment)

</comment></comment></comment><comment><USER15> Some indentation can make logs more readable:

        :71: 04:09:04.26 Added to trace list: All
       :271: 04:09:04.26 ----v
       :271: 04:09:04.26     TestProcessTickFiles:
        :97: 04:09:04.26     ----v
        :97: 04:09:04.26         SetupTickFileProcessing:
       :157: 04:09:04.26         ----v
       :157: 04:09:04.26             GetNumLines:
       :161: 04:09:04.26             Returning number of lines as: 752
       :161: 04:09:04.26         ^----
       :140: 04:09:04.26     ^----
       :277: 04:09:04.26 ^----

As well as log functions that output arrays, in some applications being able to log state machine changes can be handy too.

<comment><USER16> Chrome devtools has support for logging groups, which indent and allow collapsing.

<comment><USER17> Never knew that, thanks.

</comment></comment></comment><comment><USER18> This is a really good one to remember, and it's also implemented in node which can be handy for making little CLI tools.

</comment><comment><USER7> I was just playing around in node a few days ago, and had to mock some console statements. I stumbled upon this exact API and played with the output bit. It's a useful feature I never knew about in my years of doing javascript and it's kind of surreal to see it on the top of HN just a few days later!

</comment><comment><USER19> I made something similar as a fun little project [https://github.com/mrmagooey/taboo](https://github.com/mrmagooey/taboo), does the same print function but also does some basic querying, deletes and updates, left and inner joins. I had no idea that the inbuilt version existed though.

</comment><comment><USER20> Is this supported in other browsers as well?

<comment><USER21> Yes, both Chrome and Edge support it, as well as Safari and Opera.

The Fine Article includes a compatibility chart at the bottom

</comment></comment><comment><USER22> Some other Console tips in DevTools: [https://www.google.com/search?q=site%3Ahttps%3A%2F%2Fumaar.c...](https://www.google.com/search?q=site%3Ahttps%3A%2F%2Fumaar.com%2Fdev- tips+console+panel)

</comment><comment><USER23> Recently I've been working on kind of the converse of this problem with JSON and spreadsheets, and I'll briefly describe it here (and I'll be glad to share the code), in the hopes of getting some feedback and criticism:

How can you conveniently and compactly represent, view and edit JSON in spreadsheets, using the grid instead of so much punctuation?

The goal is to be able to easily edit JSON data in any spreadsheet, copy and paste grids of JSON around as TSV files (the format that Google Sheets puts on your clipboard), and efficiently import and export those spreadsheets as JSON.

It's especially powerful with Google Sheets, since you can run JavaScript code in them to import, export and validate JSON, and other apps can easily retrieve those spreadsheets as TSV files, which are super-easy to parse into 2D arrays of strings to convert to JSON.

This is a new reimplementation of some old ideas I've been happily using for years with Python and CSV files, plus some new ideas. But now it's general purpose, JSON oriented, written in JavaScript, integrated with Google Sheets, and I'm releasing it as open source once I get it into working shape.

Here is an example spreadsheet, which includes several sheets of different structures, and a script to convert the spreadsheet to JSON.

[https://docs.google.com/spreadsheets/d/1nh8tlnanRaTmY8amABgg...](https://docs.google.com/spreadsheets/d/1nh8tlnanRaTmY8amABggxc0emaXCukCYR18EGddiC4w/edit?usp=sharing)

The first sheet "world" is the top level object, which configures a Unity3D app scripted in JavaScript (that's UnityJS, another story, but just think of this JSON as an arbitrary example). So the world is a big fancy JSON structure used by JavaScript code to create and configure a bunch of prefabs.

As you can obviously see, you just write your JSON expressions as an indented outline with type names before the values, putting keys, types and values in separate indented cells.

        object
            tileRows       number 1
            tileColumns    number 2
            materialTiling object
                           x      number 4
                           y      number 4
            materialOffset object
                           x      number 0.5
                           y      number 0.5
            ...

You can use the "sheet" pseudo-type to make references to objects, arrays, etc, defined in other named sheets of the same spreadsheet:

            texturePaths       sheet texturePaths
            prefabMap          sheet prefabMap
            bowConfigs_outline sheet bowConfigs_outline
            bowConfigs         sheet bowConfigs_table
            ...

There's another sheet named texturePaths that contains an array of strings:

        array
              string Abstract_001
              string Abstract_002
              string Abstract_003
              ...

And the prefabMap sheet is just a map of different types of content, directories and file names. You can represent any kind of JSON structures in the spreadsheets, and it's much easier to edit than raw JSON text.

Also, there are some convenient ways of compactly representing repetitive structured data.

One common type is a 2d array of elements all the same type, which you can make with the "grid" pseudo-type:

            tileName grid          string    10        10
                     Hex_Sea       Hex_Sand  Hex_Magma ...
                     Hex_Grass_Dry Hex_Magma Hex_Sand  ...
                     ...           ...       ...       ...

That's a 10x10 grid of strings. You can also make grids of other types that will fit into one cell. For example, you could make a grid of strings or numbers or booleans, but not arrays or objects, since they don't fit in a single cell. But you could make a grid of the "sheet" pseudo-type, with a grid of sheet names, each sheet each containing any type or pseudo-type of object.

It also supports a "json" pseudo type that lets you put an arbitrary JSON expression into one cell.

Notice that the values themselves may be calculated by spreadsheet formula, which call any function or refer to any cells in any other sheet. In this example, each tile name is calculated by randomly choosing from a range pointing to all the hex tile names in the prefabMap:

=index(prefabMap!$E$5:$E$26, RANDBETWEEN(1, counta(prefabMap!$E$5:$E$26)))

You can write comments and intermediate values and formulas off to the right of the JSON data, or in other spreadsheets, which the JSON data may ignore or depend on.

The spreadsheet gives you enormous amounts of power to dynamically process the resulting JSON! So you can publish spreadsheets connected to live data, and import them as JSON.

Some people laugh at me when I say I prefer spreadsheets to outliners or even text editors. I'd love it if there were a decent tree structures JSON editor as powerful and ubiquitous as Google Sheets, but I've never heard of one. Tell me if you have, please!

Userland Frontier (later Radio Userland) came close to that ideal, predating and then adapting to both XML and JSON, but it never quite hit the mark of what you can easily do with a spreadsheet.

Another great way of compactly representing repetitive JSON structures in a spreadsheet is to use a table whose headers specify the structure, key names and types of the JSON arrays and objects.

This is essentially what Console.table does with an array of objects, but with rows and columns exchanged, and supporting arbitrarily nested arrays and objects.

The "bowConfigs_outline" sheet has a conventional outline formatted array of two JSON objects (rainbow bow configurations) that have the same structure. It is 175 rows, and 9 columns (1575 cells, many empty, with many repeated types and key names).

        array
            object
                bowStart number 0
                bowEnd number 0.8
                bowHeight number 30
                startWidth number 1
                endWidth number 0
                widthMultiplier number 5
                fromLocalOffset object
                    x number 6
                toLocalOffset object
                    x number -6
                ...

The "bowConfigs_table_compact" sheet shows the compact table representation of that same structure, with headers that implicitly describe the shape of the structure so there is one value per column, with no rows or columns of wasted space. It is only 4 rows (a row with the "table" type, a row with the headers, plus one row for each structure), and 58 columns (232 cells, few empty, with no unnecessarily repeated types or key names).

Lining all the values of the same name and type up in vertical columns makes it really easy to view and edit the values, and apply spreadsheet formula to dynamically calculate them! It would be much harder to track down and apply a formula to each "bowEnd" property in the outline format.

(Shown here as comma separated values since the headers contain spaces and that would be confusing.)

The top row is a series of columns of tokens, including [ and ] for arrays, { and } for objects, and keys and types for the object and array elements. It's like a simple horizontal schema that specifies the JSON structure, key names, types and columns, so that nothing needs to be repeated, and no space is wasted.

        table
        ,{ bowStart number,bowEnd number,bowHeight number,startWidth number,endWidth number,widthMultiplier number,fromLocalOffset { x number },toLocalOffset { x number },lineRenderer/startColor { r number,g number,b number },lineRenderer/endColor { r number,g number,b number },lineRenderer/alignment string,lineRenderer/widthCurve { animationCurveType string,keys [ { time number,value number }, ...

      ,0,0.8,30,1,0,5,6,-6,0.8782983063,0.7984165253,0.0370873959,0.7169641118,0.7843719274,0.3921475355,View,Keys,0,1,0.25,0.2,0.5,0.5,0.75,1,1,0,Blend,0,1,0.25,0.5,0.5,1,0.75,0.5,1,1,0,0.9368487271,0.6433703118,0.198860128,0.25,0.4861432977,0.5704963395,0.6107422953,0.5,0.9640410996,0.08846161285,0.05927839517,0.75,0.1199717053,0.2262674866,0.7876422776,1,0.6955264667,0.01858220912,0.7418451801

...

</comment><comment><USER24> Chrome has had this for ages. But I am glad to see Firefox's dev tools making improvements in recent times.

The only reason I stick with Chrome is the dev tools.

<comment><USER25> This is mdn, it's not a showcase of firefox features but a web development documentation for everyone. Firefox had this since at least v34 (2013).

</comment></comment><comment><USER26> > Damn, glad to see this

Hmmm. I seem to remember seeing this a year or two ago. Didn't really find any use for it.

</comment><comment><USER27> Some time ago I saw bold font in console and I thought - why not render entire website into console?

</comment><comment><USER28> Is it possible to write interactive elements (e.g. buttons) to the console?

</comment><comment><USER29> wow, already works in FF:

console.table({me:80,you:15,she:5})

 _thats_ why some people love JS!

<comment><USER30> Because it has fancy debug printfs? Strange.</comment></comment>


Jan Koum: "I couldn't agree more with everything [Apple] said" - <AUTHOR> https://www.facebook.com/jan.koum/posts/10153907267490011/? <comment><USER2> Jan Koum is a WhatsApp co-founder. WhatsApp is notable, I think, in this debate specifically because WhatsApp partnered with Moxie's Open Whisper Systems for end-to-end encryption.

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

<comment><USER3> WhatsApp is still closed-source though, and I'm unsure as to the veracity of the claim of end-to-end encryption, I sure hope that's the case. In the Panorama documentary about Edward Snowden on the BBC, when discussing the death of Lee Rigby, a representative of Facebook says they're capable of decrypting messages (whether that applies to WhatsApp or just Facebook messenger is not clarified.)

[https://www.youtube.com/watch?v=SjVxqlncS2I&t=46m15s](https://www.youtube.com/watch?v=SjVxqlncS2I&t=46m15s) (also see 49:00+)

<comment><AUTHOR> You might be interested in this set of videos[1] of public testimony by WhatsApp's Deputy General Counsel at a hearing on cybercrime in Brazil in December 2015, where he explains in some detail the type of information they have and don't have. He explicitly notes that they are incapable of accessing message content for end-to-end encrypted messages, and also explains that they don't retain copies of any communications once they've been delivered to recipients.

[1] [http://www2.camara.leg.br/atividade- legislativa/comissoes/co...](http://www2.camara.leg.br/atividade- legislativa/comissoes/comissoes-temporarias/parlamentar-de- inquerito/55a-legislatura/cpi-crimes- ciberneticos/videoArquivo?codSessao=55221&codReuniao=42467#videoTitulo)

<comment><USER4> I think that only messages sent between two android devices are encrypted using E2E. If you send a message to your mom (who uses a blackberry), the message won't be encrypted with that protocol.

<comment><USER5> What about ios? And how does your device know whether to encrypt or not? It's useless talking about encryption if the code is hidden. What if tomorrow they turn off the encryption silently?

<comment><USER6> They can turn off the encryption silently whether or not the code is hidden.

<comment><USER5> How so? You can compile yourself if you like.

<comment><USER7> More importantly, you could change the client to show encryption status before a message is sent and add client-side key management.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> It's gotta be so frustrating. Here's this little thing that could answer all your questions, maybe. If you could just open it, you could easily solve many mysteries. And the only people who can help won't.

I don't envy the job of law enforcement. It must feel like at times that everyone is standing in your way. But where does it stop?

If only we could track everyone all the time...

If only we could watch everyone in their homes all the time...

If only we could open everyone's safes whenever we needed to...

Yes, you could solve many mysteries with all of the keys. But it's not your information. You're not owed it. No one is owed the answer to any question.

I hope law enforcement understands someday what a destructive request they've made, but I'm guessing like anything else addictive, that one taste will just lead to more.

<comment><USER9> Many of us often complain that our jobs would be much easier _if only_. This is a reminder to step back and realize that, sometimes, your job isn't _supposed_ to be easy. Your goals are not necessarily your entire organization's goals, nor the entire nation or world's goals.

<comment><USER10> A programmer complaining about bureaucracy usually does not have the same moral high ground. Thats probably the difference. Nobody in society complains when the newest feature of your Webapp is delayed but when when its about crime and terror, its different. Thats where they are coming from.

It totally disagree but thats how many people see it (I would guess).

</comment></comment></comment><comment><USER11> I really respect Jan. I saw him talk at Startup School a few years ago and what really impressed me was his non-traditional path to becoming a tech billionaire. He had a long career at Yahoo! before founding WhatsApp. He's a role model we should be looking at. Not young college kids who can dupe old investors into giving them millions for vaporware.

It's also important that he's speaking out in opposition to these government tactics. Hopefully Zuckerberg will follow suit but if history tells us anything it's that Facebook is rather compliant and doesn't take security seriously.

<comment><USER12> _if history tells us anything it 's that Facebook is rather compliant and doesn't take security seriously._

Citation needed...

<comment><USER11> [http://www.boston.com/news/nation/2015/08/12/harvard- student...](http://www.boston.com/news/nation/2015/08/12/harvard-student- loses-facebook-internship-after-pointing-out-privacy- flaws/zASZFdUjn6PoliUiR9kVHJ/story.html)

[http://m.huffpost.com/us/entry/facebook-security-wall- mark-z...](http://m.huffpost.com/us/entry/facebook-security-wall-mark- zuckerberg_n_3779228.html)

[http://www.forbes.com/sites/thomasbrewster/2015/12/17/facebo...](http://www.forbes.com/sites/thomasbrewster/2015/12/17/facebook- instagram-security-research-threats/#7b320e2f2d82)

[http://www.businessinsider.com/facebook-security-flaw- leaks-...](http://www.businessinsider.com/facebook-security-flaw-leaks- private-photos-2015-3?r=UK&IR=T)

[http://www.businessinsider.com/well-these-new-zuckerberg- ims...](http://www.businessinsider.com/well-these-new-zuckerberg-ims-wont- help-facebooks-privacy-problems-2010-5)

[https://facebook.com/safety/groups/law/guidelines/](https://facebook.com/safety/groups/law/guidelines/)

<comment><USER13> These individual cases happen for every tech company.

</comment></comment></comment></comment><comment><USER14> WhatsApp doesn't seem very secure:

 _As of December 1, 2015, WhatsApp has a score of 2 out of 7 points on the Electronic Frontier Foundation 's secure messaging scorecard. It has received points for having communications encrypted in transit and having completed an independent security audit. It is missing points because communications are not encrypted with a key the provider doesn't have access to, users can't verify contacts' identities, past messages are not secure if the encryption keys are stolen, the code is not open to independent review, and the security design is not properly documented_

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

<comment><USER15> The EFF score card is an embarrassment which is essentially equivalent to one of those "comparison table of our competitors" on a SaaS website. That's a good analogy for it, because it uses the same questionable metrics and even more questionable ranking system that one of those tables would use. The score card gives Signal the same ranking as Cryptocat - that's an instant negative result for its usefulness.

<comment><USER14> > Signal the same ranking as Cryptocat

You are probably right that getting a high score on the scorecard doesn't guarantee a secure program. (The standard of the socrecard is not high.)

But can't you still argue that getting a low score on the scorecard would probably mean it's not a secure app?

</comment></comment></comment><comment><USER16> Why should I trust a company that works with NSA and makes money on information about me to protect my privacy and "fight" government. I see his post as nothing more than PR move - "we're the good guys" \- before we find out that they cooperated with agencies. Am I alone in this opinion?

<comment><USER17> His company also makes money by earning the trust of their customers. If they lose that trust, it has the potential to be a great financial loss.

<comment><USER16> It's a corporation that's a point of living is making profit and selling overpriced stuff. It's government job to take care of people and give them safety, privacy and protect them from illegal and harmful practices of corporations.

</comment></comment></comment><comment><USER18> Will Google step forward too?

<comment><USER19> I doubt it. Google has shown little spine so far in standing up to the intelligence community or in securing user data. They spent some legal money to defend Appelbaum and encrypted GMail data in transit between data centers, but that's all that comes to mind.

Standing with Cook would be a good step for them but I'm not optimistic.

<comment><USER20> Unsure:

Google 'appeared' to have a negative reaction to the NSA jacking their inter DC lines which at the time were not encryoted.

Google will not make public claims on their infra regardless

Google may stand up to the .gov but it may choose to be more quiet.

Anyone that stands up to the police-state-mentality is honorable. The situation we have now is fucked.

Its not "Armageddon" or anything - but the situation is fucked.

Do you have any idea how many people at places like goog and fb and appl are very progressive - dont give a shit about pot, molly, lsd etc as they have all been partying and have had growth experiences due to this? a fucking ton.

It is disingenuous for these companies and their employees to not have the balls to stand up to the government's over reaching BS. EXCEPT that they all share a tenuous thread of "employment status" with a corporation... thus they dont speak up.

Hey Obama, you smoked pot, (That was the point), so release anyone who has ever gone to jail for pot -- or go to jail yourself?

so tired of this hypocrisy

<comment><USER21> > The situation we have now is fucked.

This situation _should_ have ended 20 years ago with the first round of the crypto wars. /sigh/

> Anyone that stands up to the police-state-mentality is honorable.

Exactly. They aren't alone, either - with Apple taking first-mover risk, it should be easier for others to stand up together.

It's important to realize that there isn't much neutral ground here. Now that the line has been drawn, you're either helping implement backdoors or you are making a stand, potentially at personal risk. Collaborators will not find much cover if they attempt to hide behind a Nuremberg Defense.

I _strongly_ recommend that everybody watch Quinn Norton and Elanor Saitta's amazing talk from 30c3, "No Neutral Ground in a Burning World"[1]. Most people didn't ask for the responsibility, but it's irresponsible to avoid it by pretending that technology is somehow external to politics. Everything we implement _has political consequences_ , and we (the people implementing all of modern technology) need to start thinking about those consequences.

[1] [https://media.ccc.de/v/30C3_-_5491_-_en_- _saal_1_-_201312272...](https://media.ccc.de/v/30C3_-_5491_-_en_- _saal_1_-_201312272300_-_no_neutral_ground_in_a_burning_world_-_quinn_norton_- _eleanor_saitta)

<comment><USER22> The underlying debate isn't technological, its social and requires a more abstract paradigm of thinking - beyond "with us or against us mentality". Everyone involved has been and will be negotiating boundaries that fits with their own moral focus.

> Anyone that stands up to the police-state-mentality is honorable.

Theres a difference between a police state and a police state mentality. The latter is a subjective and abstract point of view, not so easy to stand up against.

</comment></comment></comment></comment></comment><comment><USER23> Imagine if Donald Trump reaches the White House what would happen. I bet an scenario of much more hardcore surveillance.

<comment><USER24> What do you mean by 'more hardcore'?

Also, more surveillance means also more noise

</comment></comment><comment><USER25> and Microsoft said?

</comment><comment><AUTHOR> Jan Koum is WhatsApp's co-founder and current CEO, and a Facebook board member. I had this in the original title but it seems to have gotten removed—sorry!

</comment><comment><USER26> I noticed several people asking, and was wondering myself: Jan Koum is one of the WhatsApp cofounders.

<comment><USER27> That makes a lot more sense. His Facebook profile didn't indicate anything about his background.

<comment><USER28> Whatsapp and it's founders are famous for avoiding drawing any attention towards themselves and their company. There offices in Mountain View didn't even have any signage outside (even to identify them as one of the tenants in the building) right up to the time they were acquired by Facebook. Looks like things haven't changed much since the acquisition.

</comment></comment></comment><comment><USER29> Is this someone I should know about?

<comment><USER30> One of the founders of WhatsApp

<comment><USER29> Thanks!

</comment></comment></comment><comment><USER31> What is suspicious about this Cook's statement is that he was able to publish it. I believe this kind of government requests is usually made with a strong non-disclosure agreement with severe consequences if disclosed. So, either the consequences were not that bad or Apple has chosen to ignore them for the good cause.

Or ... something "fishy" is going on and this article is just a bait by Apple to let its customers believe they do care about privacy ... while in reality the situation might be entirely different. And the "best" thing is that ordinary people will never know for sure, because with Apple's proprietary software philosophy, there is no way to tell.

<comment><AUTHOR> Sorry, this isn't "suspicious": there is a publicly available court order[1] issued by the US District Court for the Central District of California for Apple to comply with, which you could have found in 15 seconds of Googling. This was not a FISA warrant or National Security Letter.

[1] [https://www.documentcloud.org/documents/2714001-SB- Shooter-O...](https://www.documentcloud.org/documents/2714001-SB-Shooter- Order-Compelling-Apple-Asst-iPhone.html)

<comment><USER32> Just playing devil's advocate here (and I'm in no way full bottle on U.S. law) but from other posts here, one of the most contentious points about national security letters is the very strict gag order that is usually attached to them.

Yes, there's a publicly available court order. How would you know there isn't also an NSL?

</comment></comment></comment><comment><USER33> This specific encryption debate is THE TURNING POINT around this debate.

The NSA has [most likely] found a way to penetrate Apple/Google/MS/FB for specific targets i.e. they can get the info on any specific person/group covertly. The attack surface is just too large - TAO, Zero-Days, Insider threats, Financial threats, etc. The problem with that is things like needing "Parallel Construction [1]" to legally prosecute.

What the FBI is now doing is using a recent horrible tragedy to force SV companies to establish a precedent. Make no mistake, this has been long time coming. The Feds want to set a precedent both legal and 'cultural'. Ultimately Apple might cave, but the fact that they are raising a stink is very good news. Time for other heavyweights to join the chorus.

[1] [http://thefreethoughtproject.com/parallel-construction- law-e...](http://thefreethoughtproject.com/parallel-construction-law- enforcement-illegally-collected-evidence-criminal-prosecutions/)</comment>


Ask HN: Looking for sponsors and backers for open source project - <AUTHOR> I have created a free and open source project called Komiser (https://github.com/mlabouardy/komiser). It already crossed +2100 stars on GitHub and 400 daily downloads. It allows you to identify potential cost savings on public cloud (AWS, GCP, OVH and Azure) on one single Dashboard. I have created an open collective page for users/companies using Komiser and who would be interested in supporting the project. The support will allow me and other maintainers to dedicate more time for maintenance and add new features for everyone for free. I appreciate your help and support. <comment><USER2> Have you looked in to [https://github.com/sponsors](https://github.com/sponsors)?</comment>