NextDNS Is Out of Beta - <AUTHOR> https://nextdns.io <comment><USER3> Since pretty much all the reviews here are glowing I'll offer up an alternative.

If you want what they are selling, then it does work quite well.. but there are drawbacks.. one primarily.. that made me end up not using it for my whole network and only on my ipad when I don't want ads in a game.

As mentioned in other comments, you can whitelist domains, but unlike the whitelist in ublock or something in your browser, this means you need to know the exact ad server domain/domains. For example if I want ads on for certain websites to help support or troubleshoot my own site then I'm unable to do that or if the wife needs to see an ad in her game to get gems, you have to dig through the logs to find out what ad server its calling.. or set up another profile to not block any ads.

In short, you're not whitelisting the domain you're visiting, you need to whitelist every domain that website might call too. Perhaps most people are okay with then and if so then ignore :)

Another thing I didn't like, which I mean makes sense, but in order to label a device you need to run their client. I had set up nextdns on my router which worked great, but if I wanted different devices to have different rulesets they each needed to run the nextdns client. So good luck knowing which smart device is calling what because you're not going to be installing the client on your Alexa. One other downside of this which honestly I probably could have fixed was their client broke WSL network connections so on my primary device I ended up operating in logged out mode.

That said, I might end up giving it another shot at some point but running on a very limited set of rules rather then the pretty comprehensive rulesets I had enabled. I did like how it blocked the device telemetry calls.. perhaps that is all I need to block and then handle everything else client side.

Hope this helps someone!

<comment><USER4> Currently using OpenDNS Family Shield and giving NextDNS a try.

Re labeling devices: I set up descriptive hostnames and static LAN IPs on my router for all my devices (including smart ones). The NextDNS interface reports traffic using those hostnames without me having to run clients on any of my devices.

I'm curious how the ad blocking will work. I was running adblock on my router but had to disable it because a few legitimate sites were being blocked (i.e. school sites my kids needed access to). I'm hoping NextDNS provides easier to use controls and UI that would let me keep ad blocking enabled.

<comment><USER5> Did you install the clients or do anything in the setup to get that? I can see client hostnames where the client software is installed, but just my external IP for all others. It doesn't seem possible with just IPv4/Router config. Are you using IPv6 or DoH?

</comment></comment></comment><comment><USER6> If you are wondering (as I did) how they can know what is your DNS resolver, they simply makes the webpage load some JS from a random host, like "[https://853af2kklyt-dda385.test.nextdns.io/"](https://853af2kklyt- dda385.test.nextdns.io/"). Of course, as this host cannot be cached anywhere, their DNS are hit by your DNS resolver, thus they can know the IP of your DNS resolver. In my case as I have a DNS server at home, it displayed the name of the AS of my provider.

</comment><comment><USER7> NextDNS is nice and easy to use for us, a family -- non-technical spouse, two kids with access to devices for schools, 'games & stuff'. I ran Pi-Hole on a Raspberry Pi 3 for about a year and it is one of the best ever there. I wanted something simple and something I can just clicky-click.

Been testing NextDNS for quite a while and I like it. Will continue as long as it serves what I'm looking for.

On a different note, unlike most of us, my wife and kids are worried that they can no longer see those 'interesting and useful' ads. They go on to those ads, spend long minutes browsing from one to the other, propelled by ads. My kids discovers 'these amazing games' via the ads. It is a different world out there.

<comment><USER8> That's why I switched to Adguard Home: [https://adguard.com/en/adguard- home/overview.html](https://adguard.com/en/adguard-home/overview.html) You can make custom configurations per device, OS or a different label you give them. So you can have your wife see their ads while still blocking your smart TV from calling home.

<comment><USER9> Difference from pi-hole? Genuinely curious since I'm currently using pi-hole at home.

<comment><USER7> NextDNS is advertised as Cloudflare + Pi-Hole. And I think this is correct.

Something wrong with the Pi-Hole, I have to sit down (likely at home), and do it -- even to add/edit something. NextDNS is much simpler, I can set up from anywhere and I can even ask my wife to fix herself stuffs.

Must be just personal but these days, I'm not too keen on doing everything myself the way I want. I'm learning to say NO to a lot of things.

<comment><USER9> Not NextDNS, my question/comment was regarding the parent comment's mention of Adguard.

</comment></comment></comment></comment></comment><comment><USER10> Really happy to hear this. I have loved next dns since its start, not only for their product, but also due to the fact is is a clean sustainable business. No need for ads, a generous free tier, and a cheap full featured paid tiered. This is the way I would like to see most SaaS's go

<comment><USER11> And they give users incredible control over their data/privacy. Their privacy policy is fantastic[1].

On my dashboard I can:

\- Enable/disable logs and decide whether logs include client IP address and domains

\- Clear logs and set log retention period (as short as 1 hour and as long as 2 years)

\- Select the country of the servers that store my logs to the US, EU, or Switzerland

I really hope to see more tech companies follow their lead.

[1] [https://nextdns.io/privacy](https://nextdns.io/privacy)

</comment></comment><comment><USER12> That's awesome and I've tried nextdns and loved it. But - and this is just me - I just don't trust anyone to delete my logs or not log in the first place.

That's why I'll probably not move off of my pihole

<comment><USER13> You have to trust someone because at some point the DNS request is getting made. It sounds like you're just choosing to trust your ISP.

<comment><USER14> Is anyone aware of a VPN out there that supports PiHole-like list filtering, so you could get the best of both worlds?

Right now it feels like I have to choose:

\- Use my PiHole to block all sorts of content on filtering lists that are useful in cases like blocking unwanted tracking in mobile apps, but my ISP knows everything I access

\- Use a VPN, where my ISP doesn't know what I'm doing, but every web service I use can use whatever tracking it wants (except where uBlock is used and such, but you don't get that luxury with, say, Samsung Smart TVs which are notorious for phoning home)

<comment><USER15> My home network is running a VPN I can access from my phone & computers while away. The home network includes a PiHole that is running DNSCrypt (DNS over HTTPS) with Cloudflare's DNS service.

Edit: so ultimately, you'd be trusting whoever's on DNSCrypt's resolvers list. Better than trusting Comcast, in my situation.

</comment></comment></comment></comment><comment><USER16> But missing the point. If I am worried about privacy from cloud players, why to trust another cloud player?

I would setup my own Pi-Hole if I wanted true privacy.

Missing something?

<comment><USER17> "But missing the point. If I am worried about privacy from cloud players, why to trust another cloud player?"

The workflow I am (not quite finished) setting up is as follows - I run a caching, recursive nameserver (unbound) in my own colo space. That DNS server, not me or my devices, is the nextDNS client.

Then I set all of my own networks and devices to use my (unbound) DNS server.

My goal is to receive all of the benefits of a paid nextdns account, but on the nextdns side, all they see is a single, fixed IP, in a fixed location, owned by a corporate entity, doing a bunch of DNS queries.

In fact, I am a bit worried about this exact setup because although I am using this for my own, personal use, consistent with their expectations, I could just as easily be a full-blown ISP passing through my nameservice to nextDNS ... how do they deal with that ?

Do they care ?

<comment><USER18> You personally make a many DNS queries as a full-blown ISP? The fact that your server does it's own caching may keep your query rate lower than others.

I'm sure they can refuse service to customers in certain cases.

<comment><USER17> No, I wouldn't make anywhere near that number of DNS requests, but the setup would be the same - a caching, forwarding nameserver doing a MITM between my networks and nextDNS.

So I assume they allow (or, rather, can't really disallow) such a setup but I wonder what ramifications it has when someone decides to front their entire customer base behind their nextDNS acount ...

<comment><USER18> I'd assume they would just ask them to stop.

</comment></comment></comment></comment></comment><comment><USER19> This is cool.

NextDNS appears to implement DNS over HTTPs (DoH) and Firefox ships with it as an option, next to Cloudflare.

UPDATE — Took it for a test drive:

* Logs are concerning, but look good for optimizing the traffic and notice odd communications; I already noticed telemetry sent by my browser that I switched off

* Ad blocking seems to work, not as good as desktop uBlock Origin, but I'll take anything for my iPhone

* Latency is around 30 - 100 msec, which seems a bit high? (server I connect to seems to be 400 km away)

<comment><USER20> > I already noticed telemetry sent by my browser that I switched off

Mozilla is running some Firefox experiments with different DoH providers. Eventually Firefox may automatically select whichever DoH provider is the fastest for each user. This would improve performance for users and reduce the privacy concerns about DoH consolidation with one provider (the current Firefox default Cloudflare).

</comment></comment><comment><USER21> One cool thing about NextDNS is that they also support the Handshake DNS protocol. It's an alternative root DNS that supports new TLDs while maintaining compatibility with existing ICANN TLDs [https://handshake.org](https://handshake.org)

<comment><USER22> I got pretty excited when I saw that and tried to find some use cases for it as soon as I enabled NextDNS. But I couldn't find any use case where it would make domain management easier. In fact it seemed overly complicated with it being auction based and having to use a cryptocurrency.

Have you found Handshake useful in any way?

<comment><USER21> Right now most of the sites are personal projects and toy sites. You can check out some of them here [https://github.com/NamebaseHQ/Awesome- Handshake](https://github.com/NamebaseHQ/Awesome-Handshake). For my personal use, I set up tieshun.txt to point to my personal todo.txt file, and I use watchman to rsync my local todo.txt to tieshun.txt so I can access it from all my devices. I could also set up todo.tieshunroquerre.com for this but I find that tieshun.txt is much more convenient to use.

I bought tieshun.txt on [https://gateway.io](https://gateway.io) (in beta). The owner of .txt set up their own registry and they're selling .txt domains. That's another aspect of Handshake that I'm excited about. To get an ICANN TLD you need to be a big corporation that can pay for the $200k application fee (and you're not even guaranteed to get the name), whereas anyone can create a registry on their own TLD with Handshake.

The cryptocurrency aspect is unintuitive (if possible it would've been ideal to not require it), but it's actually needed in order to have a more secure root of trust alternative to CAs. This article expands on this point: [https://www.namebase.io/blog/meet-handshake- decentralizing-d...](https://www.namebase.io/blog/meet-handshake- decentralizing-dns-to-improve-the-security-of-the-internet)

</comment></comment></comment><comment><USER23> I trialed nextDNS based on other people talking about it here, and have really liked it - it's really awesome to have an always on, dns-over-https solution for every device. I think it's really worth the 20$ per year, just for the slick ui and not having to manage a pihole somewhere.

<comment><USER24> I was not aware of this service before, but I'm very interested! The price seems very reasonable, and as you say, not managing a pi-hole device is very appealing. I have tried multiple times to setup pi-hole on a dev board on my home network, and could never get it to work properly so I gave up.

<comment><USER25> As a counter-example, I was amazed at how simple it was to set up Pi-Hole. I thought they had the setup workflow built pretty well. Took me ~10 minutes including flashing a SD card with Raspbian.

<comment><USER24> That's fair. I do like the project, and everything is well documented and easy to follow.

I should have prefaced my statement with the fact that I was trying to install it on something other than a raspberry pi. I have only tried on my Rock Pro 64 board. But to be fair, they are pretty mature, well supported boards at this point.

I understand that it is designed to run on Pi boards first so the issue is likely my specific hardware. But Pi-hole is supposed to be compatible with Ubuntu 18.04 so I would have expected it to work regardless?

I'm not a networking expert though, if anyone has experience with pi-hole on Rock pro's or other Pine boards I'd love to know!

Maybe I'll just go ahead and invest in one of the new Pi boards with 4Gb memory :) That was the main reasons I got the Rock Pro 64 to begin with.

<comment><USER26> Certainly should work just fine - I've installed pi-hole a few times, and its never been on an actual RasPi. Not sure what Linux distro you're running on the Rock Pro, but I can't recommend Armbian enough for these sort of boards: [https://www.armbian.com/rockpro64/](https://www.armbian.com/rockpro64/)

Install, and run armbian-config to get get an easy Pi-hole installer (among many other functions).

<comment><USER24> Thanks, I think I will try again with Arabian. It's been a while since I tried, I think Armbian was not available at that time. Something must have been wrong with the other Ubuntu/ Debian builds I tried.

</comment></comment></comment></comment></comment></comment><comment><USER27> What's the difference between using the macOS app or just setting the DNS on a router level? Just the attribution to a specific device in the dashboard? I couldn't figure that out by reading the (actually very well written) FAQ.

<comment><USER28> \- Encrypted DNS (DNS-over-HTTPS)

\- Ideal routing (low DNS latency)

\- Bypass DNS-level censorship (inside a country, from your hotel Internet provider, your school, etc.)

\- Being able to identify your device in the logs (if you choose to)

\- Hardened Privacy Mode (if you are into that)

Edit: this goes for all our apps (iOS/Android/macOS/Windows/Router client), not just macOS.

<comment><USER5> I literally (not figuratively) setup NextDNS yesterday and so far it's been great. The documentation is awesome, and love the features available. The only mild feedback I have is that the "Setup Guide" doesn't provide enough context about what's going on, and the implications of setting up on my PC vs mobile device vs router. It says:

"Follow the instructions below to set up NextDNS on your device, browser or router."

A couple more sentences there would be super helpful..

</comment></comment></comment><comment><USER29> Hello an other alternative is [https://libreops.cc/radicaldns.html](https://libreops.cc/radicaldns.html) . They also offer DNS over https and TLS [https://libredns.gr/](https://libredns.gr/)

</comment><comment><USER30> Saw this when it first came out, never tried it until now.

Used it for around an hour and I've already made 2,000 requests and 15% of those were blocked. Can definitely see myself going over 300,000 requests (free monthly allowance) but it's looking great so far so would be happy to support it.

Currently use AdGuard on my phone, looks like this does almost everything AdGuard does (stats, logs, blocklists) with the added benefit of the processing being done elsewhere.

</comment><comment><USER31> Signed up for a year as soon as I got the email announcement. Love NextDNS and excited to see where they go — particularly would love some sort of time-based scheduling or API for rule automations.

</comment><comment><USER32> A year to the day: [https://news.ycombinator.com/item?id=20012687](https://news.ycombinator.com/item?id=20012687)

Making this a perfect snee-less dupe!

</comment><comment><USER33> "Privacy Policy

1\. We do not (and will never) sell, license, sub-license or share any of the data submitted directly or indirectly by our users with any person or entity."

This does not cover metadata. For example, NextDNS analyzes the data submitted directly or indirectly by the user and makes a note, "This user [something private]"

If NextDNS sells, licenses, sublicenses or shares that metadata they are not violating this Privacy Policy.

If NextDNS acquires data from a third party (e.g., data brokers) that identifies NextDNS users, then that is not "data submitted directly or indirectly by our users" and they are not violating this Privacy Policy if, e.g., they pair that data with NextDNS metadata and store, sell, license/sublicense or share it.

This Privacy Policy also does not cover the event of NextDNS itself or a successor selling ads or ad services. If that ever happens, it would not violate this Privacy Policy.

<comment><USER34> So NextDNS is free to sell metadata. What is the extent of this metadata - <USER2> it like 'this user spends 10 hours a day actively using the internet', or 'this user consumes a lot of streaming video content', or this user 'watches netflix every friday evening', or 'this user uses duckduckgo instead of google'? Can these examples be considered metadata?

<comment><USER33> They do not need to sell metadata. They can sell services. Neither Google nor Facebook need to sell data. They sell services.

Those companies are not obligated to disclose what metadata they might have. Neither is NextDNS.

If the Privacy Policy stated that NextDNS will not create, collect or acquire metadata about its users, then we would have less reason to be concerned.

However the NextDNS Privacy Policy is all of nine sentences. It is not very restrictive.

</comment></comment></comment><comment><USER35> Just a perspective - 300k DNS queries is not very much. 1 full day of home use + work (most DNS goes over VPN for that) and I am at 130k queries. So you'll get a nice little trial, but don't expect it to last very long, imo

<comment><USER36> I'm genuinely surprised you've made 130k dns queries in one day.

I've been using NextDNS now for half a year or so and I have 1,021,075 queries in the last 90 days, or roughly ~11k a day. I have ~69k in the past 7 days.

I have this set up on all my devices.

Are you running a home server or something that could explain so many requests?

<comment><USER35> I have ~50 docker containers running with various stuff I am working on. I am sure that contributes quite a bit.

2 Windows 10 machines make a LOT of phone-home queries.

<comment><USER35> Oh, and a Samsung TV, which gets really query-happy if you block its tracking domain

</comment></comment></comment></comment><comment><USER37> "Try it now. No sign up required"

I love that phrase. This looks like a fantastic service!

<comment><USER38> It is, been using it since multiple months. I have no more ads on my iphone now, for free. The dns request pass throught Switzerland and i feel i have 007 level privacy. sweet !!

<comment><USER26> DNS level blockers arent really for privacy - your ISP can still see all of the connections your device is making. It can however greatly reduce connections to known tracking domains.

</comment></comment></comment><comment><USER39> Love this service. Gladly paying a subscription now. It's like a pihole without having to worry about keeping it running, updated etc. So ideal for not-super-techy people like me.

One feature request if the team is reading along a pause button to disable blocking for 1/5/15/60 minutes.

</comment><comment><USER40> I really wanted to like and use NextDNS but my latency was ~200ms vs maybe 10-40ms for my ISP resolver. I'm fine with paying a bit of a latency price for the extra features and privacy, but not that much. And I'm located in Toronto, not somewhere remote.

<comment><USER28> Looks like a case of bad anycast routing, as we have a PoP in Toronto! It happens and is usually easily fixable, can you talk to us via the chat on our website (or at firstname.lastname@example.com)?

A map of our network for anyone interested:

[https://i.imgur.com/2uenEAZ.png](https://i.imgur.com/2uenEAZ.png)

<comment><USER40> I figured I'd activate it again and test it first... and of course it's way better now! Consistently getting around 40ms now so I'll keep it enabled and try again :)

<comment><USER41> Definitely try again! I'm also in Toronto and I haven't had latency problems.

</comment></comment></comment></comment><comment><USER41> I've been using NextDNS for the past few months and it's a fantastic product!

I don't need Blockada on my phone anymore and I can block whatever I want at the router level instead of doing it on each devices.

Keep up the good work!

</comment><comment><USER42> What I don't get about DNS, is why doesnt every device just run its own recursive caching resolver. Why ask ISPs and hotspot providers to resolve your requests?

What would be the downside outisde of corporate networks?

<comment><USER18> A cache shared by a couple thousand people would have lots of stuff already cached. Running your own would be add latency as you'd need to fully resolve more domains.

<comment><USER42> Only on initial use. Most DNS records have a cache time of 24 hours, so if you're using the internet every day, you're unlikely to notice.

Some latency when visiting a new site seems like a small price to pay for side-stepping all the shenanigans that ISPs have been doing to DNS, without having to defer trust to yet another cloud provider.

</comment></comment></comment><comment><USER43> Where is the pricing information? I couldn't find it on the homepage or in the help page (even searching there doesn't help). Even the article on 300K free queries a month [1] doesn't have anything related to pricing.

Where is the announcement that it's out of beta? I don't see that in the homepage either. What am I missing?

[1]: [https://help.nextdns.io/en/articles/3962038-what-happens- aft...](https://help.nextdns.io/en/articles/3962038-what-happens- after-300k-queries)

<comment><USER44> Pricing information is at [https://nextdns.io/pricing](https://nextdns.io/pricing), there's a link to this on the homepage.

I didn't found their releasing news too, maybe their announcement is just deleting "free during the beta" on the pricing page?

</comment></comment><comment><USER45> DNS is not an encrypted protocol.

The people routing your DNS traffic can inspect it and even tamper it (e.g.: your ISP) even if you pick DNS servers other than the ones provided by your ISP. Your privacy is not guaranteed.

DNS over HTTPS/DNS over TLS is encrypted and may offer better privacy, if you trust them, that is.

</comment><comment> m-p-3 I'm a fan of their service, and because most browsers support DNS-over-HTTPS natively I can put the configuration right into my browser settings and have the same level of DNS filtering even when I'm outside of my home network without VPN.

<comment><USER28> Google Chrome (and some Chromium forks) will also be supporting custom DNS- over-HTTPS providers very soon (it's already being rolled out to some users).

<comment><USER46> It's in my chrome://flags/#dns-over-https currently 81.0.4044.138 (Official Build) (64-bit)

<comment><USER28> I meant this:

[https://i.imgur.com/tZh6p0x.png](https://i.imgur.com/tZh6p0x.png)

As far as we know, it's slowly being rolled out and not behind any flag (unfortunately).

<comment><USER30> Oh that's in Canary now? Will give it a try

</comment></comment></comment></comment></comment><comment><USER47> How is this actually different from using Cloudflare DNS (220.127.116.11)?

For ads, I already use AdGuard.

</comment><comment><USER48> If we all use enough of things like NextDNS then all ads will go away. Oh wait, suddenly all websites except those with a paywall will exist. No more news reports of any kind. No more free services. Nothing but a few sites that sell T-shirts to struggle to survive. I don't like the present web either, but somehow people have to make money. Unless we build in an infrastructure that easily allows me to pay you to run a business online, I fail to see how in the long run this total blockage of ads is a benefit for all.

Of course we live in HackerNewsLand, where the rest of technologically illiterate humanity pays by watching ads so that we don't have to.

Somehow we have to use technology to find a way to balance the needs of those who are online serving us content/information/etc with a less irritating and horrific way to pay for it. Without a solution for that, the future is going to be a lot less diverse and a lot more frustrating, although in a different way.

<comment><USER49> I don't thing most people are against ads. What's the issue with a simple .png add in a banner or at the side as long as it's not screaming at you? or the occasional sponsored content. There are 2 big issues that people hate about ads:

\- Obnoxious ads that take away from you browsing experience

\- Tracking, spying, privacy, monopolies from ad tech and all that stuff.

And those even combine, as all the tracking makes sites slower.

Hacker news works on the sponsored content way. (but it's just one sponoer which it's also its owner) The site is kept low cost as possible, and YC uses it to promote its startups One YC posts on the front page, don't really bother us too much, as long as they don't become obnoxious.

</comment></comment><comment><USER50> If you're in the UK and your family like watching Channel 4's 4oD, I had to whitelist *.fwmrm.net for it to play.

Otherwise 4oD think you have an ad blocker enabled and the video refuses to start.

</comment><comment><USER51> I've been using NextDNS and really enjoy it. I've found it a lot easier to manage than pihole. Only issue I have is that it doesn't seem to work with the Economist.

</comment><comment><USER52> I had it on my phone for a while, sadly it breaks URLs in the twitter app because it was blocking the analytics redirect. Nice service otherwise

<comment><USER53> I believe you can whitelist certain domains. That might be a solution if that was the only thing which wasn't working for your needs.

</comment></comment><comment><USER54> I like it, but it's sad that I have to run an extra VPN app on my Android because Xiaomi doesn't allow me to configure private DNS.

<comment><USER28> It's a "fake" VPN, it only captures the DNS traffic (that's just the cleanest/most efficient way to do it).

<comment><USER54> Yes, I thought so.

Still sad.

On my desktop systems I can configure it in the network options and never think about it again. On Android I always close it if I don't think about it when closing all apps, then I forget to restart it.

</comment></comment></comment><comment><USER55> I can think of an entire niche that could grow nextdns into the public domain.

It only needs one feature :)

Is anyone of nextdns reading this? Possibility to contact?

</comment><comment><USER56> I absolutely love NextDNS and I don't think I've ever been so pleased for a product to start charging me.

</comment><comment><USER7> Request to NextDNS, if you are listening, can we have servers in the Southern Part of India too? Thanks.

</comment><comment><USER57> Am I "grandfathered in" if I was using NextDns during beta?

<comment><USER58> I got a warning that I was approaching the limit of free queries, so it appears that the answer is no.

</comment></comment><comment><USER59> For me Pihole on hosted vps has less latency than NextDNS

</comment><comment><USER60> I hope they introduce MFA for the web config console

</comment><comment><USER61> I've just set it up, and so far I quite like it.

</comment><comment><USER62> I don't want "in depth analytics" from anything really especially a DNS provider. How about a truly non-logging, ad-blocking, DNS provider that does DNSSec?

<comment><USER63> They actually have the ability to turn off all logging and analysis, pretty easy and front-and-center, not buried deep in a hidden settings page like some companies. Or you can limit it to a timeframe that makes sense for you. I have mine set to delete everything after one hour. That way if I ever have issues I can pretty easily debug the problem by going to my account details within the hour.

</comment></comment><comment><USER64> Consider reading IETF docs for how things like DNSSEC were intended to be used.

<comment><USER65> Care to expand on what you are talking about? I've been very curious for a few years about CurveDNS and less so dnssec, but I admit I haven't read the ietfs yet.

</comment></comment><comment><USER66> recently discovered this opensource hosts solution for android

[https://github.com/AdAway/AdAway](https://github.com/AdAway/AdAway)

almost everything obeys hosts on android, works great on lineageos

<comment><USER41> You can add AdAway to your blocklist in NextDNS super easily [https://imgur.com/a/VVKM8TF](https://imgur.com/a/VVKM8TF)</comment></comment>


Reminder: Pittsburgh Hacker News Meetup, Saturday 11/14 8PM, Church Brew Works - <AUTHOR> http://churchbrewworks.com/

<comment><AUTHOR> Previous thread: <http://news.ycombinator.com/item?id=921896>

</comment><comment><USER2> I missed the previous thread, thanks. I'll see you guys there!</comment>


SEC Knifes Its Whistleblower Program - <AUTHOR> https://www.nakedcapitalism.com/2018/07/sec-knifes-whistleblower-program.html <comment><USER2> The most terrifying part of this article is that I have no idea whether this is true or not. And I'll probably only find out when the next major financial scandal erupts.

How is democracy supposed to function if our civilization becomes so complex that bureaucrats can make up reasonable-sounding policy for anything that serves their personal interests, and you'd need to be an expert to tell that it's self-serving?</comment>


Show HN: DIY Business Emails - <AUTHOR> https://gduverger.com/diy-business-emails/ <comment><USER2> Buy domain, Setup VPS, Configure DNS, Install mailinabox, Setup letsencrypt

I pay ~$12 month which I have complete access and control over. My $0.02.....</comment>


Come have a beer with Chute (YC12) in SF or NYC - <AUTHOR> http://blog.getchute.com/2014/03/21/we-like-you-lets-meet-up/

<comment><USER2> "Chute is a comprehensive visual brand engagement platform. We help brands and publishers discover consumer photos and videos, organize them, secure the rights to use them and publish them in any form - from mobile apps to banner ads to billboards to social hubs and everything in between."

If I'm reading this right, you grab content from social media and help companies secure the rights to re-use the images?

</comment><comment><USER3> I understand the goals of having a meetup like this, but having people meetup over "beer" is kind of exclusive and isn't a very inviting for a large chunk of people. Not to pick on Chute, since this is a common thing, but it is worth pointing out every now and again.</comment>


Comcast: stop using Netflix and order more TV channels - <AUTHOR> https://medium.com/tech-talk/2ad46642c18

<comment><USER2> > So why is a company that sells internet telling me to use less internet?

Probably because you're using more internet than you're paying for?</comment>


One congressman's opposition to SOPA worth noting - <AUTHOR> http://securityskeptic.typepad.com/the-security-skeptic/2011/12/one-congressmans-opposition-to-sopa-worth-noting.html

<comment><USER2> "4. Promote innovation over litigation. Our efforts should be to protect copyrights and trademarks, not outdated business models."

To me, that is the juiciest nugget in the article. From all appearances, the legislators arguing _for_ SOPA and PIPA don't care too much about our complaints about potential legal abuse and curtailing of the rights of American citizens and companies.

I think stating it instead as a market issue might help, sort of like "SOPA is like something the buggy whip industry would have argued for."

<comment><AUTHOR> >the legislators arguing for SOPA and PIPA don't care too >much about our complaints about potential legal abuse and >curtailing of the rights of American citizens and companies.

I can't decide if this is sad, deplorable, or scary.

<comment><USER3> > _I can't decide if this is sad, deplorable, or scary._

That's a false trichotomy. It's perfectly possible for it to be all three of these, and I'd say this is a fitting example of that.

</comment></comment></comment><comment><USER4> Just because a congressman opposes SOPA doesn't make his statements magically profound. Although the direction of his statement is intelligent, his four points at the end are far too vague to be useful.

Phrases like "consider instead promoting approaches that empower users" and "promote innovation over litigation" are nice sound bites, but they're very "safe" opinions. No one's ever going to disagree with them. That makes them lose their usefulness, however, as proponents can easily twist logic to claim that SOPA satisfies those four points.

Not trying to disparage Wyden, but his statement here would be far more useful if it drew a clearer line in the dirt.

<comment><USER5> >they're very "safe" opinions. No one's ever going to disagree with them.

This is baldly, unequivocally false. There are PLENTY of senators and other opinion leaders who would nod at these points then immediately start to spit out arguments that would sound distinctly like they were arguing against them (while in their mind they were agreeing with them). There is not a "clearer line in the dirt." These are fundamental, ideological differences in what "promoting innovation over litigation" means.

I think you're either trying too hard to be cynical or simply have a poor understanding of how deep the divide is on this issue (among others, of course).

<comment><USER4> Do you really think that any SOPA supporter is going to say they want to stifle innovation in favor of more litigation?

"There are PLENTY of senators and other opinion leaders who would nod at these points"

This is exactly what I'm saying. While WE know what Wyden intended, the fact that he stated them in the form of vague feel-good platitudes means that it's no different than if he were to just simply say "Be careful with SOPA," which is unhelpful.

In contrast, Zoe Lofgren's early statement that SOPA would be the "end of the internet as we know it" was an admirably bold statement that promoted discussion and rallied opposition.

"I think you... have a poor understanding of how deep the divide is on this issue."

The divide is over whether SOPA is beneficial for the country, not whether innovation or litigation is better. You think congressmen who support SOPA are actually trying to maliciously stifle innovation and suppress rights? I don't know if I'm the cynical one here!

<comment><USER6> _Do you really think that any SOPA supporter is going to say they want to stifle innovation in favor of more litigation?_

Well yes, although they wouldn't use those words. They would say something about "defending artists' right to control their music." As you can see, this is completely equivalent to supporting increased litigation at the expense of innovation.

<comment><USER7> They would simultaneously say they also 'promote innovation over litigation'. When pointed at the contradiction, they'll see no generalization will ever cover every case. Soundbite dismissed. And they are right, because Wyden also prefers litigation over innovation in some cases. Almost everyone prefers that, _in specific cases_. That's why it's a completely safe opinion to state.

</comment></comment></comment></comment></comment><comment><USER8> Wyden's been consistently on the right side of this stuff, he's been an outspoken advocate of Net Neutrality for years.

<comment><USER9> I don't understand how people can see the complete disgrace that is SOPA, NDAA, and the myriad of other broken laws and think that getting the government more involved in the internet is a good thing. Especially when the problem doesn't exist yet, this preemptive regulation is dangerous. Instead of advocating net neutrality, lets wait till these horrible abuses happen and then decide if we want the government involved.

<comment><USER6> The Internet is already heavily regulated. Specifically, the problem with letting the "market" sort out net neutrality issues, is that most places have granted franchises to only one or two broadband providers. Since this effectively makes real competition illegal, there must be "balancing" regulations to prevent abuse of the customers.

Some ISPs already throttle certain protocols, and some were forging reset packets to drop connections they didn't want on their networks. Others are on record wanting to charge Youtube for each gigabyte of video they delivered to a customer. We can pass consumer-protection regulation now instead of waiting for ISPs to implement their stated plans.

<comment><USER9> I think it'd be better to advocate that we remove the government granted monopolies and handouts than try to add piles of red tape to the internet, and open it up for censorship and other controls by special interests.

<comment><USER8> Which government granted monopolies and handouts, specifically?

<comment><USER9> In many municipalities cable companies are granted a monopoly.

<http://www.fff.org/freedom/0598d.asp> [http://www.thefreemanonline.org/featured/cable-franchise- ref...](http://www.thefreemanonline.org/featured/cable-franchise-reform- deregulation-or-just-new-regulators/)

<comment><USER8> In "many", yeah, but that's more a product of market forces than anything else. I happen to have negotiated one of these contracts from the municipal side, and we didn't have a monopoly, we played the companies against each other, because we were an attractive enough market to do so.

You're proposing more state/federal oversight to insure that municipalities don't give away monopoly rights?

<comment><USER6> What recourse do your constituents have if they have different criteria for picking an ISP than you did? Why remove the "market forces" in the first place?

<comment><USER8> Typically, monopolies are granted in exchange for running service to unprofitable customers, anyone who wouldn't normally be connected. So those consumers are pretty undeniably better off. If there isn't something like that in the offing, competent town leadership would presumably use their attractive market position to make cable companies compete to provide service.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> For easier dictation to congressional aides over the phone:

<http://tinyurl.com/wyden-sopa>

</comment><comment><USER11> He's a Senator, not a congressman. Although both chambers are "Congress", the title Congressman refers to a member of the U.S. House only.</comment>


Google password ignores case for first character on mobile - <AUTHOR>

THIS ONLY WORKS ON YOUR PHONE, not in computer version of chrome
go to accounts.google.com (or gmail.com, etc) and type in your username and password, but change the case (aka caps/not-capitalized) of the first character, and see that you're still able to log in! this only happens for the first character, and im guessing it's because phones often change the case (eg, auto-capitalize) of the first character
again, this does not work on regular desktop web <comment><USER2> Facebook did something similar. If I recall correctly, the case could be entirely inverted (caps lock key was on) and you could still log in. I believe they did this by storing 3 versions of your password hash (initial case, inverted case, and original case), and the permitting sign in if your submitted password hash matched any one of them.

Edit: I found the source for this. [http://www.zdnet.com/blog/facebook/facebook-passwords-are- no...](http://www.zdnet.com/blog/facebook/facebook-passwords-are-not-case- sensitive-update/3612)

</comment><comment><USER3> You probably could have reported this, but my gut tells me it's to protect against stupid users.

<comment><USER4> It's hardly stupidity, just an unfortunate clash of usability.</comment></comment>


Kivo now has diffing for PowerPoints - <AUTHOR> http://blog.kivo.com/kivo-adds-version-control-for-documents/ <comment><AUTHOR> Hey guys, happy to answer any questions here or on email (firstname.lastname@example.com). Enjoy!

<comment><USER2> I did not understand (non-native english speaker here) if it was a software, or an tool online (requiring the documents to be uploaded on the cloud). Can you provide some more information on this part?

<comment><AUTHOR> Hey! Thanks for reaching out. We are a tool online which requires your documents to be in the cloud, but can slot into which cloud storage provider you are using (i.e. Dropbox, Box) easily. Ping me at firstname.lastname@example.com and I'd be happy to walk you through it and get you guys set up.

<comment><USER3> Do you have Onedrive support?

<comment><AUTHOR> Hey, we can build Onedrive integration. If you ping me on firstname.lastname@example.com I'd be happy to discuss.

</comment></comment></comment></comment></comment><comment><USER4> Thanks for creating this. Some time in the future, we'll hopefully be all editing slides in the cloud, but this is useful till then in the corporate world. #DeathByPowerPoint

One question I have though, is where, in your blog, you said highlighting changed portion is more complicated to users than rendering the two slides side-by-side. I understand it is way more technically complex, but I hope you're pursuing that. For text slides, that feature is a must-have.

</comment><comment><USER5> This looks amazing and would be exactly what my organization needs for collaboration in PowerPoint (which is a HUGE hassle that we deal with regularly), if only we could store the tool on our own server to avoid uploading to Kivo. Is something like that possible/in the works?

<comment><AUTHOR> Hey, thanks for reaching out. It's something we are working on. Send me an email, I'd love to chat further: firstname.lastname@example.com

<comment><USER5> Thanks for the reply! I'll try out the demo or freelancer version and email you this weekend when I'm more familiar with how it works. :)

</comment></comment></comment><comment><USER6> Looks interesting.

Are people still using Powerpoint savy enough to collaborate on their documents in the first place?

Any hope of doing the same with Google Docs, Prezi or other more "modern" presentation software?

<comment><USER5> I collaborate on PowerPoint presentations every time my organization has a major presentation due (frequently). The Track Changes feature in Microsoft Word is good enough for documents and all of my coworkers understand how it works, but wrangling everyone's changes into PowerPoint and then letting them know what changed is a nightmare.

When I edit a PowerPoint presentation, I usually add a comment to every slide that has changed and describe all changes to the slide. Other people might put a star on slides they updated, leave the original slide plus the new slide so I know which slides have changed, or not mark their changes at all. Also, we have to email the presentation back or forth or edit it from one shared folder (in which case, multiple people can't work on the slides at the same time). It is very inefficient.

<comment> alok-g As I wrote in another comment here, TortoiseSVN and TortoiseGit support diffing PowerPoints.

</comment></comment></comment><comment> alok-g TortoiseSVN and TortoiseGit already support diffing on PowerPoint, Excel and Word. It works reasonably well.

</comment><comment><USER7> looks great Leo!

<comment><AUTHOR> Cheers!</comment></comment>


Download Coursera videos in batch - <AUTHOR> https://github.com/jplehmann/coursera <comment><AUTHOR> <http://coursera.org> is creating some fantastic, free educational videos (algorithms, machine learning, natural language processing, SaaS).

This script allows one to batch download videos for a Coursera class. Given a class name and related cookie file, it scrapes the course listing page to get the week and class names, and then downloads the related videos into appropriately named files and directories.

Why is this helpful? Before I was using wget, but I had the following problems:

      1. Video names have a number in them, but this does not correspond to the
         actual order.  Manually renaming them is a pain.
      2. Using names from the syllabus page provides more informative names.
      3. Using a wget in a forloop picks up extra videos which are not posted/linked,
         and these are sometimes duplicates.

Naming is intentionally verbose, so that it will display and sort properly using MX Video on my Andriod phone.

Inspired in part by youtube-dl (<http://rg3.github.com/youtube-dl>) by which I've downloaded many other good videos such those from Khan Academy.

Let me know if you like it.

<comment><USER2> Awesome! I was actually planning on writing such a script over the weekend. I haven't take a look at this semester's courses, but I know last semester the quizzes and tests were quite useful for someone with no previous practice in the subject at hand. I can see your script doesn't try to get all that right?

In that case i'll still have a weekend project.

<comment><USER3> In the NLP class there are programming assignments with special formatting, headers, etc. I kind of want to write a script that uses NLP to snag NLP's programming instruction pages (as well as example code, etc.) Seems like that would be fun to do.

<comment><USER2> But in that case wouldn't you be looking to get the essence, the plain text useful stuff of an HTML document, in which case wouldn't parsing using regular expressionism or something be better than NLP? I haven't really done scraping and parsing of documents/text so I'm not too sure.

<comment><USER3> It's possible yeah, though I like the formatting and highlighting and borders etc, it groups the different sections of the instructions together.

I see what you mean though, it's not really full NLP either way, I just used that term in place of regular expressions because it was in the NLP class that I learned about them (first homework is a phone and email scraper.) Probably my fault for using semantics wrong.

</comment></comment></comment></comment></comment><comment><USER4> Some shameless self-promotion: I wrote a Chrome extension for downloading Udacity videos (<http://nzmsv.github.com/udacity-dl/>). If there's any interest in a batch version I could look into it. Alternatively, feel free to write it and let me know :)

</comment><comment><USER5> I use the downthemall firefox extension and to keep the videos in order I add a number to the renaming mask:

      *num*_*name*.*ext*

I like how jplehmann's tool can rename them using the titles on the page.

</comment><comment><USER6> You can also check my script over here: <https://github.com/fvieira/coursera_resources_downloader> It has the advantage of not requiring a cookies file, it can authenticate with your user and password. Otherwise, it does pretty much the same as jplehmann's script, although with some minor changes which you might or might not like.

By the way, congratulations on your script, jplehmann! Wish I had found yours before losing time doing mine...

</comment><comment><USER3> I'm already using it, after sometime I got a connection forcibly closed by remote host error. I can't access the Coursera website either, not sure why though. (mayhaps a bunch of people suddenly using this script crashed their servers? or they blocked us)

It's back up, must have been a small glitch. Might I add that I love the fact the script picked up on the video I dropped earlier.

<comment><AUTHOR> Right now, if you kill the script it will remove any file being currently downloaded to remove partials. I'm not sure if that happens for other failure conditions. I have added an issue for this: <https://github.com/jplehmann/coursera/issues/1>

<comment><USER3> Going to put in a bug @ github, for some reason the video's won't actually play (and their file size is slightly larger.)

<comment><AUTHOR> I'm not seeing that problem. If anyone else is having the same problem please reply with more information: <https://github.com/jplehmann/coursera/issues/2>

</comment></comment></comment></comment><comment><USER7> Nice! I actually found your project last week through google but wrote my own in js (<https://gist.github.com/2225519>) after struggling with the python dependencies.

I think coursera really needs to come out with a native solution and a standard way of numbering/organizing videos.

</comment><comment><USER8> I have tried all of the projects mentioned in the comments here.

To me the most simple & quick was this bookmarklet.

[https://github.com/christiangenco/Coursera-Video- Downloader-...](https://github.com/christiangenco/Coursera-Video-Downloader- Bookmarklet)

</comment><comment><USER9> Another version that downloads coursera videos, and also optionally downloads slides and subtitles:

<https://github.com/LoganDing/Coursera.org-Downloader>

</comment><comment><USER10> Thank heavens! Er, I mean thank you (the OP) for this tool. I already wrote scripts that renamed files to something sane, but this will make my life so much easier.

<comment><AUTHOR> That's great -- I am happy if just a couple of other people get use out of it as well.

</comment></comment><comment><USER11> Do you know which technologies to create the interactive video lectures (subtitles + quizzes ) like those in Coursera courses ?

</comment><comment><USER12> Thanks a lot, does it skip downloaded videos in next run?

<comment><USER3> It seems to.

Edit: Tested, yeah it does, and won't skip a video if it was only half downloaded.

<comment><USER12> Thanks

</comment></comment></comment><comment><USER13> Can someone create an iOS app for this please ?

</comment><comment><USER14> this looks sweet. Thanks. I had been manually downloading the vids on my PC, but I hope this tool will now reduce the pain.

</comment><comment><USER15> How does this work with in-video quizzes?

<comment><AUTHOR> When you d/l videos, it doesn't do those.</comment></comment>


CommaFeed - Open-source bloat-free Google Reader clone - <AUTHOR> http://www.commafeed.com/welcome

<comment><USER2> Bah, the landing page forces me to login. No, I won't sign-up. I want to know _what_ features do you offer, with some screenshots to get a feel of it.

<comment><AUTHOR> Try demo/demo

<comment><USER3> Login failed.

That account name is still there, so I can't recreate it.

</comment></comment></comment><comment><USER4> Some screenshots from some random clicking around by somebody:

Adding a feed: <http://cl.ly/image/16183s0h0t2e> (clever, it auto-fills the name after a second) (not so clever, the only drop-down option is 'all', and it's not pre-selected)

Having added two feeds, I see this: <http://cl.ly/image/321t1J2p461p> it persists for a while, the spinner in the corner goes away, it persists... toggled 'all', 'unread', etc, no results.

Then it pulls in 5 PHD-comics: <http://cl.ly/image/1Y0k01310Q04> No XKCD yet, not sure what happened to it.

And one comic, with read above, unread below: <http://cl.ly/image/3N2d3i2Z0g2b>

Some basic key commands I've used in Google Reader still work. The UI takes a moment to load data from the server when you change where you are, but once it finishes it's fast. Minor bugs, some holes things seem to fall through, but as a basic RSS reader it works. Maybe there's more to come?

As long as nobody messes it up for everyone else, "somebody password" is what I used if you want to try it out.

<comment><USER5> you are a gentleman and a scholar. thank you.

</comment></comment><comment><USER6> The sources are publicly available, but there is absolutely no mention of a license for the CommaFeed code in the repository. I have filed an issue <https://github.com/Athou/commafeed/issues/48>

<comment><USER6> The author went with Apache v2: [https://github.com/Athou/commafeed/commit/201468c085d18b74e2...](https://github.com/Athou/commafeed/commit/201468c085d18b74e2dbe83b07eaf504bf79b178)

</comment></comment><comment><USER7> demo/demo for login works. And it looks good: Just a rss-reader with a list of feeds to the left and articles on the right, good performance in the demo. jk- navigation. custom css.

I'm not exited by it being a java-application (hosting that on my own could be a hassle) and the google reader import doesn't work (invalid grant, error code 400, want the eror message?). Importing the .xml seems to have no effect at all (edit: now it does. just takes some time?).

What is the feed-polling strategy? Does it support pubsubhubbub? Will this instance stay active?

Good work though! I think i might use this.

<comment><USER8> What's wrong with it being a java app? As it says on the github, create an account on openshift and its just a few easy commands to get it running. OpenJDK is nice and easy to install on most open hosting environments too.

<comment><USER9> A lot of us harbour a strong hate of Java due to a decade or more of exposure to abstract factory factories, and obnoxiously slow jvm startup times, and a series of Java applications that are supposed to perform as "native" yet somehow all feel clunky, slow and bloated (Eclipse being the posterchild for all that is wrong with Java...).

I actually have a half-baked code generator to use Ruby to generate Java for some Android hobby-projects because I found that less painful and obnoxious than writing the Java directly.

<comment><USER10> Are you referring to backend or frontend applications? Java on the backend seems to be very stable and popular. Though I don't have any experience with it personally, my understanding is that it's probably the most popular backend language for web apps in terms of deployment size and complexity.

</comment></comment></comment></comment><comment><USER11> Perhaps off-topic, but to those that are interested in bloat-free open source Reader replacements, I've had extremely good luck with TT-RSS. It's been in development since 2005, is written in PHP, and is quite slick IMHO. I run my own instance on shared hosting (DreamHost) and it hasn't failed me yet. Open- source Android client as well (though it costs a couple of bucks in the play store.) <http://tt-rss.org/>

<comment><AUTHOR> I tried it but I really didn't like the old iframe look.

</comment></comment><comment><USER12> I like it so far. I think I might prefer this to The Old Reader. Open source is a plus, too. (And thank you for oldest-first! So many forget this.)

One question: I uploaded my opml file, and ... nothing happened. It is processing or queued somewhere? (That's fine, I'd just like to know.) I then added a single feed, which worked fine.

Edit: I'd switch to this from The Old Reader (and gladly pay) if you make a mobile view.

<comment><USER12> Looking again, it only offers to import a Google Reader XML export file, not any OPML, and I was uploading an export from The Old Reader, so it shouldn't have worked anyway.

<comment><AUTHOR> I just fixed it in the code, it will work when I'll deploy the new version.

<comment><USER12> Cool. I manually subscribed to all my feeds -- slow day at work, and it let me rename things -- but this will let me suggest CommaFeed to friends and family.

</comment></comment></comment></comment><comment><USER13> These are some of the features I'd like to see in an RSS reader (I've actually considered trying to learn to program just to build a reader that has these features):

* Import a list of feeds from a simple text file. I find it strange readers don't support this. If I have a list of 50 rss feeds, I don't really want to enter them one by one. Importing from a file another reader has exported is great, but I'd like to import from a text file too.

* Filters. Per-feed and per-category. Again, perhaps naively, I imagine this would be simple to implement but I don't know of a web-based reader that does this and I usually have to resort to Yahoo Pipes or similar, which is a pretty clunky solution. Filters like: Only show entries containing "bar", or don't show entries containing "foo". Bonus points if I can edit a multi-line list of filters, so if I want to filter for 50 separate words I don't have to enter them one-by-one

* Sort-by-newest that works properly across categories. I currently use feedly and somehow in category view posts 12 hours old show up ahead of posts 3 minutes old.

<comment><USER14> Regarding (1), many (most?) readers support OPML, and you can use OPMLBuilder[1] and similar tools to create a file from a list of URLs. Unless you're regularly import new lists, it seems a decent solution.

[1]: [http://reader.feedshow.com/goodies/opml/OPMLBuilder- create-o...](http://reader.feedshow.com/goodies/opml/OPMLBuilder-create-opml- from-rss-list.php)

</comment></comment><comment><USER15> I'd like to have the 'v' for view link, and '?' to show all shortcuts implemented, but it looks pretty good so far.

<comment><USER16> 'r' to refresh was the key I used most on Google Reader after 'j' and 'k', and I'm surprised to see that TheOldReader and CommaFeed both lack this feature.

<comment><AUTHOR> 'v' and 'r' are implemented and will be available when I deploy the new version.

</comment></comment></comment><comment><USER17>
      com.commafeed.frontend.utils.exception.DisplayException: 400 Bad Request
      {
        "error" : "invalid_grant"
      }
    	at com.commafeed.frontend.pages.GoogleImportCallbackPage.<init>(GoogleImportCallbackPage.java:94)
    	at sun.reflect.GeneratedConstructorAccessor187.newInstance(Unknown Source)
      ...

<comment><USER18> I get the same error. It looks like they need to put the import from google functionality as a background service.

</comment></comment><comment><USER19> Looks very nice. Couple of points:

1\. Error on Google Reader import 2\. Agreed with others it does need at least a single screenshot on the front page (or an About page as a demo). 3\. It would be nice to offer a default Google Reader CSS file to add to the styling function.

But yeah, very nice attempt.

</comment><comment><USER20> I love the speed an simplicity. All I need for me to be using is to have key mapping vor "<space>, v and o". Is this going to be open sourced?

Thanks for showing

<comment><USER21> It is already open sourced. <https://github.com/Athou/commafeed>

<comment><USER20> Do you mind providing better instructions to get it going on openshift? I know nothing about this java maven thingy and the build process.

<comment><USER21> The instructions on the readme detail everything pretty well. You don't need to know anything about Java or Maven. See the section "Deployment on OpenShift."

</comment></comment></comment></comment><comment><USER22> All I can tell is that you've coded up a login page.

</comment><comment><USER23> I value my privacy too much to use web services that are essentially spyware.

What I'm reading or interested in is none of any company's business.

This is why I prefer to use a dedicated RSS app on my computer rather than use one on some "free" web service.

<comment><USER24> I worry that I'll have my computer off for the weekend, and miss some entries on a frequently updated feed.

I guess a good solution to address both of our problems would be to run a hosted Reader clone.

</comment></comment><comment><USER25> Since there aren't any screenshots I don't think I will use this till you fix the landing page. Does anyone have any alternatives that are 'bloat-free' Readers?

</comment><comment><USER26> Is this the current practice of building Java REST + AngularJS frontend web application? It looks like there is so much cruft code laying around.

</comment><comment><USER27> Unable to get write lock on 'subscribe' method for: com.commafeed.backend.services.FeedSubscriptionService

Another waste ...

</comment><comment><USER28> You advertised this here few days ago with a different name, if I'm not mistaken.

<comment><AUTHOR> I didn't, but I posted on reddit a fews days ago maybe someone posted it here then.

</comment></comment><comment><USER5> I'm not seeing read items being marked as such. Is that on the roadmap?

<comment><AUTHOR> Do you mean have all the entries opened and scrolling through marking them as read ? I never used that feature of google reader so I haven't implemented that yet. If it's something people use and want, I'll add it.

</comment></comment><comment><USER29> Not quite ready for prime time? Reader import fails for me too.

</comment><comment><USER30> theoldreader.com is a more faithful clone. I have been happy using it since it was announced that Reader is shutting down.

</comment><comment><USER31> No way to delete accounts...

No keyboard shortcuts.

</comment><comment><USER32> Can I listen podcasts with it?

</comment><comment><USER33> An unexpected error occured

Method onFormSubmitted of interface org.apache.wicket.markup.html.form.IFormSubmitListener targeted at [SignInForm [Component id = signInForm]] on component [SignInForm [Component id = signInForm]] threw an exception Go back to the previous page or to the home page. org.apache.wicket.WicketRuntimeException: Method onFormSubmitted of interface org.apache.wicket.markup.html.form.IFormSubmitListener targeted at [SignInForm [Component id = signInForm]] on component [SignInForm [Component id = signInForm]] threw an exception at org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:268) at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:216) at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:240) at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:226) at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:840) at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64) at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:254) at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:211) at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:282) at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:244) at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:188) at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:267) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258) ... 28 more Caused by: javax.ejb.EJBException: The bean encountered a non- application exception; nested exception is: javax.ejb.EJBTransactionRolledbackException: The transaction has been marked rollback only because the bean encountered a non-application exception :java.lang.NullPointerException : null at org.apache.openejb.core.ivm.BaseEjbProxyHandler.convertException(BaseEjbProxyHandler.java:363) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:283) at com.commafeed.backend.services.UserService$LocalBeanProxy.login(com/commafeed/backend/services/UserService.java) at com.commafeed.frontend.CommaFeedSession.authenticate(CommaFeedSession.java:54) at org.apache.wicket.authroles.authentication.AuthenticatedWebSession.signIn(AuthenticatedWebSession.java:65) at org.apache.wicket.authroles.authentication.panel.SignInPanel.signIn(SignInPanel.java:221) at org.apache.wicket.authroles.authentication.panel.SignInPanel.access$100(SignInPanel.java:51) at org.apache.wicket.authroles.authentication.panel.SignInPanel$SignInForm.onSubmit(SignInPanel.java:296) at org.apache.wicket.markup.html.form.Form$9.component(Form.java:1246) at org.apache.wicket.markup.html.form.Form$9.component(Form.java:1240) at org.apache.wicket.util.visit.Visits.visitPostOrderHelper(Visits.java:274) at org.apache.wicket.util.visit.Visits.visitPostOrder(Visits.java:245) at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1239) at org.apache.wicket.markup.html.form.Form.process(Form.java:921) at org.apache.wicket.markup.html.form.StatelessForm.process(StatelessForm.java:87) at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:767) at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:700) ... 32 more Caused by: javax.ejb.EJBTransactionRolledbackException: The transaction has been marked rollback only because the bean encountered a non-application exception :java.lang.NullPointerException : null at org.apache.openejb.core.ivm.BaseEjbProxyHandler.convertException(BaseEjbProxyHandler.java:345) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:283) at com.commafeed.backend.dao.UserDAO$LocalBeanProxy.findByName(com/commafeed/backend/dao/UserDAO.java) at com.commafeed.backend.services.UserService.login(UserService.java:24) at sun.reflect.GeneratedMethodAccessor309.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181) at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163) at org.apache.openejb.cdi.CdiInterceptor.invoke(CdiInterceptor.java:130) at org.apache.openejb.cdi.CdiInterceptor.access$000(CdiInterceptor.java:43) at org.apache.openejb.cdi.CdiInterceptor$1.call(CdiInterceptor.java:67) at org.apache.openejb.cdi.CdiInterceptor.aroundInvoke(CdiInterceptor.java:73) at sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181) at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163) at org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:180) at org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:99) at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181) at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163) at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:138) at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:239) at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:191) at org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:256) at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:251) at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:85) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:279) ... 47 more Caused by: java.lang.NullPointerException at com.commafeed.backend.dao.UserDAO.findByName(UserDAO.java:19) at sun.reflect.GeneratedMethodAccessor283.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181) at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163) at org.apache.openejb.cdi.CdiInterceptor.invoke(CdiInterceptor.java:130) at org.apache.openejb.cdi.CdiInterceptor.access$000(CdiInterceptor.java:43) at org.apache.openejb.cdi.CdiInterceptor$1.call(CdiInterceptor.java:67) at org.apache.openejb.cdi.CdiInterceptor.aroundInvoke(CdiInterceptor.java:73) at sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181) at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(R

</comment><comment><USER34> An unexpected error occured Unable to get write lock on 'subscribe' method for: com.commafeed.backend.services.FeedSubscriptionService Go back to the previous page or to the home page. com.commafeed.frontend.utils.exception.DisplayException: Unable to get write lock on 'subscribe' method for: com.commafeed.backend.services.FeedSubscriptionService at com.commafeed.frontend.pages.GoogleImportCallbackPage.<init>(GoogleImportCallbackPage.java:94) at sun.reflect.GeneratedConstructorAccessor187.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:525) at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:170) at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:98) at org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:137) at org.apache.wicket.core.request.handler.PageProvider.resolvePageInstance(PageProvider.java:278) at org.apache.wicket.core.request.handler.PageProvider.getPageInstance(PageProvider.java:166) at org.apache.wicket.request.handler.render.PageRenderer.getPage(PageRenderer.java:78) at org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:94) at org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:244) at org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:165) at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:840) at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64) at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:254) at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:211) at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:282) at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:244) at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:188) at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:267) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) Caused by: javax.ejb.ConcurrentAccessTimeoutException: Unable to get write lock on 'subscribe' method for: com.commafeed.backend.services.FeedSubscriptionService at org.apache.openejb.core.singleton.SingletonContainer.aquireLock(SingletonContainer.java:303) at org.apache.openejb.core.singleton.SingletonContainer._invoke(SingletonContainer.java:222) at org.apache.openejb.core.singleton.SingletonContainer.invoke(SingletonContainer.java:205) at org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:256) at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:251) at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:85) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:279) at com.commafeed.backend.services.FeedSubscriptionService$LocalBeanProxy.subscribe(com/commafeed/backend/services/FeedSubscriptionService.java) at com.commafeed.backend.feeds.OPMLImporter.handleOutline(OPMLImporter.java:58) at com.commafeed.backend.feeds.OPMLImporter.importOpml(OPMLImporter.java:34) at com.commafeed.frontend.pages.GoogleImportCallbackPage.<init>(GoogleImportCallbackPage.java:92) ... 37 more

<comment><USER35> Certainly there's a better place to report this, no?

<comment><USER3> Agreed. The long lines are making this page difficult to read on my phone.</comment></comment></comment>


Ask HN: Should I stop trying to find an interesting job? - <AUTHOR> I've been at my company for a couple of years now but looking to go somewhere else. Mainly cause the work is just not interesting. The only problem is that all the jobs in my area just seem boring. Working on another B2B marketing tool or internal HR product is all I see. Working for SoaceX or solving the problems of global warming would be something more worthwhile to me. <comment><USER2> No, you shouldn't.

Have you checked what the local universities are working on? Are you tied to your area?

You should probably try to meet new people and network. Try to learn enough about their businesses, challenges, etc. As soon as you understand their challenges sufficiently, and you know of some solutions, suggest them. Eventually you will find something interesting you could do for them, and take it from there.

EDIT: of course, you should double check if there's nothing interesting you can do in your current company.

Also, network with the purpose to be helpful / find something interesting, not with the purpose to find another job. In case of the latter, people are likely to give you an introduction than to go in depth about what they are working on.</comment>


Ask HN: How can I pivot from firmware to software/web development? - <AUTHOR> Greetings fellow hackers!
I've always loved working on firmware since the uni days but after 2 years in the automotive industry, 2 years in the semiconductor industry and almost 3 years in the consumer electronics industry, most of them $BIG_CORPS, I've had enough of the nightmare that firmware work is becoming and would like to try my luck in the software/web develpment world.
Software wise, I have experience writing Python, C++ and C# apps. Nothing fancy though, most of these apps were tools intended for internal use or in manufacturing facilities instead of being stand-alone products. I also study some JavaScript in my free time.
I'm 29 years old, European, have a BSc in Computer Engineering and a MSc in Embedded Systems, however, every job I apply for I cannot get passed HR. And I don't mean Senior Dev positions in FAANG like companies, I mean local small to medium shops apologise saying they're only looking for candidates with previous on the job experience. I am willing to take a huge pay cut to get in but I never get to any interviews in the first place.
Do any of you go through this? How did you do it? Was it worth it? <comment><USER2> For the last 5 years I've done mostly mobile app dev on native iOS and Android. I've had a few side projects involving EE, MSP430 and MicroPython, USB controllers... but a long way from being competitive against the experience you have.

For the last 6 months I've combined a lot of my skill sets, and extended into web dev by building an electron app that interacts with USB hardware. For me, this is the best of many worlds and allows me to be a "full stack" developer but closer to hardware (vs cloud). Read more at [https://www.label.live/blog/introducing-label- live](https://www.label.live/blog/introducing-label-live)

Good luck!

</comment><comment><USER3> I have a similar background, but I started my own shop. More people asking for web and mobile applications than embedded ones, so for the "how" part, I stumbled into it. As for enjoyment, it's all good except that javascript and its ecosystem are a trash fire.

Not such a great language to begin with, then add all of the variants and tooling (node/browser, ES3/5/6, babel, npm, yarn, typescript, webpack, grunt, etc, etc), and the fact that it seems to change every day, just... ugh.

I'd take some poorly-documented embedded C API like Nordic's any day of the week over the JS ecosystem.

<comment><AUTHOR> I'm also happy with the vendor provided APIs but I wasn't lucky enough to use them anywhere appart from automotive and hobby projects. Most of the time, to make competitive products we had to build our own APIs form the metal up optimized for our use cases wich means you have zero suppor from the IC manufacturer and a clusterfuck of problemes waiting for you.

</comment></comment><comment><USER4> As an Engineering Manager my answer would be: Show Me.

Develop a portfolio of 2 or 3 sites that showcase the type of work you would like to do.

The internal tool usecase is a great one, and having the embedded experience to create a web front end or dashboard will definitely help. If you have some embedded projects at home with an Arduino or Raspberry Pi, write a front end for that that uses key web technologies. Then write some blog posts about it, point to your github with the source and then you have something to put at the top of your Resume/Cover Letter/Email to the hiring manager.</comment>