EveryoneAPI – Convert Phone Numbers Into Business Intelligence - <AUTHOR> https://www.everyoneapi.com

<comment><USER2> Very interesting service. I'm surprised this hasn't been asked yet since it's not on the site - but where do you get your data?

Also, this sentence in your TOU made me giggle a little:

> 3\. Additional Restrictions.

> ... You may not create a link to this website from another website or > document without telo' prior written consent.

<comment><AUTHOR> We have a number of data sources including our own proprietary data, telecom sources, public records, graph data and user supplied data.

That statement in our terms is something that we will revisit. ;)

<comment><USER3> Very useful and easy to understand API. I am working on a project in fraud detection and this data could be very useful if it is reliably available.

However, I tried with three different phone numbers and it gave an empty string for name, profile, gender, image, and address. Could you give a rough estimate of what percentage of phone numbers you able to provide this information for?

<comment><AUTHOR> Please reach out to us directly if you are working on fraud mitigation. We have extensive insight into fighting fraud and the data that can be used to that end. Additionally, there is a special permissible use-case endpoint we are working on for specific business applications such as fraud mitigation. You may reach us at email@example.com.

</comment></comment></comment></comment><comment><AUTHOR> @minot I cannot reply to a reply of a reply apparently. To answer your question, the Try It area uses the endpoint directly. You are charged for any number it returns results for based on the data-points returned. (No hit, no charge)

As for querying the same number twice, yes you are charged. We work to ensure that data is as accurate and up to date as possible and it may change depending on the line owner.

<comment><USER4> Thank you. So I'd probably want to cache the results or add the record into a database if I don't want the latest results every time?

</comment></comment><comment><USER5> site doesn't work for me at all? no content on any page

<comment><AUTHOR> This could be a result of Adblock or similar services. We use angular on the frontend and are troubleshooting this / working on a graceful failover. In the meantime, we recommend turning off Adblock or similar services to allow the site to load.

<comment><USER6> Not that I don't trust your site, but I don't trust any site, no matter how reputable. There is too much malicious crap propagated through click ads, pop- ups, etc, for me to ever consider disabling my adblock extension. My recommendation is to stay away from any site recommending you disable your adblock software.

</comment></comment></comment><comment><USER7> Seems to be down?

From Chrome's console: "Failed to load resource: the server responded with a status of 503 (Service Unavailable: Back-end server is at capacity)"

<comment><AUTHOR> We are back up.

<comment><USER8> Can i sign up using an international number ? i just see a 502 Bad Gateway error.

<comment><AUTHOR> You shouldn't have encountered an issue with a 502 unless it was during the window of time where our front end deploy failed.

Unfortunately, we only support NPA-NXX-XXXX numbers for sign up at this time. If you contact us directly at email@example.com, we can provision you an account if you are still interested. We plan on offering international coverage outside of the NANPA / NPA-NXX-XXXX dial plan by the end of the year.

</comment></comment></comment></comment><comment><USER9> Without being able to see the site, just a guess-question here - but how does this compare to FullContact or Refresh.io (recently sucked up by LinkedIn)?

<comment><USER10> Hi Mike.

We're always happy to see more companies set up shop in this space. It helps to keep us on our toes.

At first blush, it seems that EveryoneAPI is focused primarily on phone numbers. Conversely, our focus with FullContact is much more in line with social profile and public social data. Though you certainly can query the FullContact Person API via a phone number, that's never been our primary focus.

With relation to the comment about speed, it's worth noting that greater than 95% of Person API queries are returned in 30ms or less. But to the end user, depending upon where they are hosted, network latency can play a large role in the actual response time, which is a factor for any http based API traffic.

Like EveryoneAPI, we prefer to compete on merit rather than slinging mud. If you have a project that you're building, I'd love to see how we can help. Our APIs are always free to get started, so you can see your results before ever having to pay.

<comment><AUTHOR> Telo isn't new to this space. OpenCNAM has been around for nearly 5 years and EveryoneAPI was launched a year ago. We have just been doing some updates and now offer a free $0.50 trial.

Record availability probably would have been a better way to phrase it rather than speed. While I am not familiar with the latency of the FullContact API, I have experience a sort of fulfillment period (come back later) for records that require more sourcing efforts. That is unless that has changed. We focus on real-time responses that span nearly the entire NANPA dialing plan (US, Canada, Caribbean and part of Central America). In terms of the data-points and focus you are correct that our focus is on the data associated with the phone number query. We do plan to expand our phone coverage to international dialing plans outside of NANPA (NPA-NXX-XXXX) by the end of the year and will be offering a forward append service for name and address as well.

</comment></comment></comment><comment><USER11> Love it! Any plans to bundle price the requests vs per request?

<comment><AUTHOR> There are some data-points that will provide additional data-points for free. For example a current carrier dip will include the original carrier for free. We have made it a la carte so that developers can use it as needed without having to pay for data they may not want.

<comment><USER11> I tried to sign up, the phone verification fails. It is saying an application error has occurred.

<comment><AUTHOR> Would you mind sending over more information to firstname.lastname@example.com? I would love to solve this issue for you.

</comment></comment></comment></comment><comment><USER12> Is there a way to do batches, such at 50k lookups at the same time? File upload? Or would you just use the API for that too?

<comment><AUTHOR> We do not currently offer a file upload feature. The API can handle mutlithreaded requests for quicker batch processing.

A script using the API and whatever output you needed should do the trick.

</comment></comment><comment><USER13> I'm not signing up unless I can run my phone number and see what comes back first. Don't see any place to do that.

<comment><AUTHOR> That is the intent behind allowing a $.50 free test credit. So that you may test drive the service before paying.

</comment></comment><comment><USER14> Failed to load resource: the server responded with a status of 503 (Service Unavailable: Back-end server is at capacity)

<comment><AUTHOR> Please standby. We attempted a hotfix for some user reported issues that did not deploy correctly. We will be back up in a minute or two. Sorry for the inconvenience.

</comment></comment><comment><USER15> I'm getting 503 errors.

</comment><comment><USER16> Does this have data for the UK?

<comment><AUTHOR> Right now the coverage footprint is NPA-NXX-XXXX. This includes US, Canada, Caribbean and parts of Central America (excluding Mexico). We anticipate international coverage by the end of the year.

</comment></comment><comment><USER17> Creepily accurate.

<comment><AUTHOR> Accuracy, along with being developer friendly, is our focus. Thank you.</comment></comment>


Florida Is Drowning. Condos Are Still Being Built - <AUTHOR> https://www.theguardian.com/environment/2019/feb/15/florida-climate-change-coastal-real-estate-rising-seas <comment><USER2> Ironic that the Union of Concerned Scientists (cited in that article) has relentlessly opposed the largest and most scaleable source of carbon-free energy.

Also the bit about how coastal Floridians don't take "carbon friendly" steps to protect themselves such as not buying SUVs runs into one of those free- rider problems which right-wing economists are so concerned about. Roughly, my own actions are not sufficient to improve the climate I live in, I have to motivate _everybody else_ to make changes.

Also if you actually try to buy a small car at a car dealership in the U.S. in 2019 you might find they don't have any in stock. Seems like the factory that makes Honda Fit(s) gets flooded, but there are always lots of CR-Vs on sale.</comment>


Ask HN: How accurate is 'time on page' from Google Analytics? - <AUTHOR>

I have a blog and I occasionally check stats using Google Analytics. For some pages, I get several visits a day that have zero 'time on page'<p>Are these real (i.e. people clicking and then immediately back)? or are these bots? or is the metric just inaccurate? <comment><USER2> If a visitor clicks through to another page on your site, the difference in time between the visits is reported as the 'time on page' for the first page. If someone visits a single page of your site and then closes their browser, it's not reported as there is no subsequent pageview.</comment>


Ask HN: That website to see languages used per user on Github? - <AUTHOR>

Some time ago, here on HN somebody posted a website where we could enter a Github nickname and it would give us a pie chart with the languages used by that user.<p>I googled and HN-searched for it, with no luck. Does anybody still have it? Thanks. <comment><USER2> this? <http://news.ycombinator.com/item?id=3613135>

<comment><USER2> or this. <http://coderstats.geeksta.net/></comment></comment>


For a cleaner and safer internet (video) - <AUTHOR> http://www.cleanternet.org/

<comment><USER2> This is definitely a satire, but it's so deadpan that it was hard for me to pick up on until nearing the end of the video. Amazing.

<comment><USER3> Somewhere on the internet, someone is taking this seriously.

<comment><USER4> See <http://rationalwiki.com/wiki/Poe%27s_Law> What I don't understand is what is the position of Cecilia Malmström is.

<comment><AUTHOR> Cecilia Malmström plans to introduce a website blocking system in Europe. This part is sadly no satire.

<comment><USER4> And these people keep calling themselves "Liberals". Beats me.

<comment><USER5> Liberal is used as a descriptive term in the US while in this case it's part of a party name. Party names don't have to – for various historical reasons – reflect the current political positions of a party (think US party names). That's especially the case in current European democracies with proportional representation. All the parties have very similar positions close to the center, it's easy for any one party to end up to the "left" or "right" of other parties on any one issue.

(Liberal also doesn't have the same meaning in Europe as in the US. Liberals in Europe are usually socially permissive as well as economically permissive – like Libertarians in the US. But that doesn't have anything to do with the point you are making – Malmström's position is not exactly socially permissive.)

<comment><USER4> >Liberal also doesn't have the same meaning in Europe as in the US.

I know. I am Italian.

>Malmström's position is not exactly socially permissive.

That's the point. There's nothing liberal in censorship.

<comment><USER5> >I know. I am Italian.

Oh, sorry. I promise, no more bad assumptions. I should have just written that party names are not a good predictor of political positions and left it at that :)

<comment><USER4> No prob. It's sad to see that Internet Freedom is really being attacked transversely by all political sides, on every continent. Always with the lame excuse of child pornography. I still haven't decide whether this is the Intellectual Property mafia lobbying or perhaps politicians start to be really afraid of the internet.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> Satire for sure...

But the link to PayPal is real enough!

I wonder if they've taken in any money? And if so, did the people think they were supporting this nutty idea or supporting satire?

</comment><comment><USER7> China's internet as the future of the internet for the rest of the world? I don't know if I should laugh or cry.

</comment><comment><USER8> I really do hope this is satire. otherwise it would be the beginning of the start of 1984

</comment><comment><USER9> Sadly this is true in Australia too.</comment>


Apollo AGC Restoration Part 1 [video] - <AUTHOR> https://www.youtube.com/watch?v=2KSahAoOLdU <comment><USER2> This is amazing to see - completely unpotted AGC! I've been following Curiousmarc's channel for a while and it's great to see this. Anyone interested in AGC stuff might also want to check out this video from the 34th Chaos Communication Congress that exhaustively explains how it works: [https://www.youtube.com/watch?v=xx7Lfh5SKUQ](https://www.youtube.com/watch?v=xx7Lfh5SKUQ)</comment>


mouse, touchscreen, eyetracker - <AUTHOR> http://www.engadget.com/2013/01/06/hands-on-with-tobii-rex-a-peripheral-that-brings-eye-tracking-t/

<comment><USER3> Total rubbish and there are two ways I can back this up.

Firstly there were two kinds of missile used in jet planes - the wire-guided and the fire and forget. The problem with guided is the pilot had to remain focused on the target despite needin to swerve and dodge

Secondly remember the Douglas Adams quite about gesture radio - you had to remain infuriatingly still if you wanted to keep listening to the same program

No - humans learn to use tools and the preferred tools will be those that can be done with hands and fire and forget

Eventually people will want to program their own interfaces - on e the option has been given. They will never let that go - a user programmable UI - <USER2> whatever macros and shortcuts - that's the future not this rubbish - IFTTT is the right bet in GUI</comment>


New in Reader: a fresh design, and Google+ sharing - <AUTHOR> http://googlereader.blogspot.com/2011/10/new-in-reader-fresh-design-and-google.html <comment><USER3> A few thoughts after a some use:

I was part of a community of people I liked, and now, after I clicked a button, that was gone. I miss those people already. I don't recall anything on the text that clearly said "oh yeah, stuff will be gone, including your friends, and we meant to do that."

If I want to share now, I have to do so publicly with the Internet or click a "share" button way in the upper right and then build up groups. There does not seem to be an easy way to get my friends back and to get them into a reader feed. I apparently have to look at my G+ feed if a friend sends me an item. I do not seem to have any convenient way to filter out those useful posts from all the spam of G+.

I had easy access to search a list of things that I had found interesting over the years, and now, I guess I'm going to have to find another program to even look at that. I do appreciate that it was not outright destroyed, so thanks for that kindness.

Visually, I'm baffled. Apparently, grey and slightly darker grey are now visually effective colors for distinguishing things. I can, of course, adjust to this but overall it does not instill me with confidence.

I am, obviously, now looking for a way back to what I had this morning. If someone figures that out, I'll thank them. If it's something that needs support, I'll support it.

<comment><USER4> I don't know why they just didn't try to automatically convert the Readers categories of users into G+ circles, plus a button "not on G+? click here and join".

Google -1 on this one.

(and yeah, the new grey-on-grey style is really bad and depressing.)

<comment><USER5> I don't understand either. I fully expected them to add a new circle for me called "Google Reader Friends" or something but they didn't. Even better would've been in that popup saying hey look, something new! to give the option of creating that very circle. Very big and obvious oversight.

<comment><USER6> Google has a lot of trouble connecting with end users, especially end users that aren't of the majority of their users (e.g. users who use more than just search and gmail). This is more confirmation.

</comment></comment></comment></comment><comment><USER7> The no-sharing/discovery thing has hit me hard.

If anybody out there has a _social_ RSS reader start-up, feel free to reply to this and advertise your service. I will drag my friends to it along with me.

(Yes, I use Twitter, Instapaper, news aggregate sites, etc. Yes social software has changed how i would otherwise discover links/news. But I still need an RSS reader, and the passive sharing in old Google Reader is a layer of social that one takes for granted in almost any app. I get why they took it out (they think they're helping G+), but it doesn't work for me.)

<comment><USER8> We are working on startup: <http://intigi.com>. You can subscribe to your RSS or Twitter feeds and then filter the feeds by your interests (i.e., using keywords).

In terms of social features, you can make any interest public and share it with others. You can also follow or fork any of the public interests (like Github).

We are in early stages with the social features (and overall product) and would really appreciate any feedback/input! You can email me at email@example.com or use the feedback button throughout the site.

Thanks in advance!

<comment><USER4> damn, I fell for it again: joined, didn't particularly like it, decided to delete my account... and there is no way to do it.

Sigh. You guys keep doing this, and sooner or later some EU commissioner with half a brain will crack down on the practice, and then we'll all be poorer.

<comment><USER8> I've deleted your account. :-) We're still in Beta. Can you be specific about what you didn't like? Please email me at email@example.com. Thanks in advance! Michael

</comment></comment></comment></comment><comment><USER9> One early criticism (aside from the sharing bugaboo) is the header is larger making the allowable reading area much smaller.

the topmost the feed content can be read is ~193px from the top of the browser. And you can't scroll down because of the way the page it built.

      Here is what firebug told me:
      29px - account bar
      59px - search bar
      73px - feed toolbar
      32px - feed title bar (in the reading pane)

<comment><USER10> More bars than Dublin...I agree, the waste of space is annoying. I can't even think of the last time I wanted to search my RSS feeds and it's taking up a chunk of space.

On a 13inch Macbook add the Mac App bar, Chrome (tabs + search-url + bookmarks toolbar) a third of the readable area is covered with "bars".

<comment><USER11> same setup, i used the minimalist reader plugin to make life easier: [https://chrome.google.com/webstore/detail/pgpppbiipcfcldpgcj...](https://chrome.google.com/webstore/detail/pgpppbiipcfcldpgcjlhoehdffdjjall)

NOTE: I haven't checked to see if this plugin still works on the new google reader design.

<comment><USER10> Thankyou! It does appear to work.

</comment></comment></comment></comment><comment><USER12> From all the outrage, I'll learn that users will love (or perhaps just grow accustom to) an utterly broken and opaque system as long as it is left around to grow a community. If you used Google Reader's social features before, you impress the hell out of me. I never grokked a single element of it after many years of use. I think Google clearly needed to do something, and integration with G+ is an obvious move. Perhaps the transition could have been smoother, but I cannot really see how the old system was superior in any way except for a very tiny amount of traction.

<comment><USER13> Ways in which the old system was superior:

\- You interacted with that subset of your friends (and their friends) that cared enough about reading to use this weird software.

\- You could read your hand-selected feeds, share items and read others' shares in the same place. It was social reading. Now the reading and the social aspect are divorced.

<comment><USER12> Seems like the first complaint is actually an improvement in the new version. You lose the reading focused only culture, but you gain the ability to have even better granularity. You can share stories with your sports buddies, work relevant info with your coworkers, local stuff with people in your area. Before, you were limited to a very niche group. Now, you can share with people who never even heard of Google Reader or RSS. And if you wanted, you could make an old Google Reader power readers circle. I think that is a fair trade off when you are talking about a Google scale application; I think this the main point everyone is missing, you aren't the typical user. If you were, Google Reader would be mentioned in the same breath as Twitter and Facebook.

Divorcing the social aspect from the RSS reader makes sense. Social reading should be a subset of Google+, not a layer on top of Google Reader. Google should improve the reading articles aspect of Google+ (Sparks or whatever seemed DOA), yes, but the overarching concept is very sound.

</comment></comment></comment><comment><USER14> Took me a while to realise that you had to click the share button in the far top right to share the currently viewed item.

The physical separation between the item you're sharing and the screen element you have to click to share it strikes me as rather counter-intuitive.

<comment><USER15> Woah. I kept looking for this share button you were talking about - <USER2> completely blanked on the actual Google header bar, which at this point I've mentally "edited out" on Google sites. My first thought was that that button would do something stupid - that it would share "Google Reader", not the currently viewed post.

My problem with the new Reader is the lack of visual indication of read vs unread items.

<comment><USER16> _My problem with the new Reader is the lack of visual indication of read vs unread items._

Yeah, I had a few people complaining in my twitter timeline and I thought, "Everyone always bitches when something new gets rolled out. It can't be that bad, come on." I logged in and I wasn't impressed but it was he lack of read vs. unread that pushed me over the edge.

Here's the main kicker of that: What's the point of marking the unread count on the left hand sidebar if there's no way to see which ones in the main view? This is what makes me think it's half-baked. They half-removed a feature.

<comment><USER17> Unread is black on white. Read is black on grey.

<comment><USER15> What? Where in the item is this grey background for Read state? When I toggle the "Keep unread" checkbox, there is no discernible change in the item.

<comment><USER15> If someone would just point out where this grey background is, rather than downvoting me, that would actually be helpful.

<comment><USER17> On the headline for each feed posting. For example:

      Blogs.    Posts.
      </comment></comment></comment></comment></comment></comment></comment><comment>-+</comment><comment>---
      blog1  | Unread post    (b on w)
      blog2=>| Old post.      (b on g)

Here you're reading blog2, there are two posts, one unread.

<comment><USER15> That's not what I see, Edward.

Upon close examination, the headline _text_ (not background) for unread is black on white, while the headline for read is very dark grey text on white. The headline for the item being currently read is also black on white.

The contrast is almost unnoticeable (I didn't notice it before), in particular because it's text on a bright background. I'd have to adjust my monitor gamma to make the distinction obvious, at the cost of color reproduction elsewhere. There is more variance in the shades of grey of text on my monitor from _viewing angles_ than there is from this read / unread distinction.

The text varies between #000000 (black) and #222222 (87% black). Good luck distinguishing 87% black text on a white background from 100% black.

<comment><USER17> Maybe they're doing a/b testing in different markets? Here's a screenshot of my reader page, the top item in the feed (timestamp 12:23pm) is unread and should look b/w, while all the items below are b/g.

[https://picasaweb.google.com/lh/photo/RWN8fsl7HjX5SFul8mb7OJ...](https://picasaweb.google.com/lh/photo/RWN8fsl7HjX5SFul8mb7OJ1oXsKWD0E-WYghuOsSSHM?feat=directlink)

<comment><USER16> Ah Ha! Here's the confusion: You're in list view and I think those of us who are unhappy are using the 'expanded view'. Under the expanded view, you used to be able to see the difference between posts and now you cannot. I had been using expanded view for so long I had forgotten that list view even existed.

So, yeah. The 'read state' of Google Reader is half-baked in expanded view.

</comment></comment></comment></comment><comment><USER18> Back in 2007 I built a social RSS reader called Feed Each Other (<http://feedeachother.com>). It was actually pretty good, but I had to give up on it because I ran out of money, Google Reader was slowly stealing all my features, and I found it very hard to convince people to switch from GR.

It had stuff like:

\- "Circles" aka, letting you group your contacts however you like and see what each group shared with you and share stuff with all your contacts or just certain groups.

\- Feed and user discovery and recommendations. "People who read X also read:" and "Look who subscribes to this feed" type of thing.

\- Keyboard shortcuts, auto discovery, opml import/export etc. All the usual feed reader stuff.

Check out this old intro video I made for it (social/interesting parts start around 1:40). The design in the video is out-dated though, it ended up looking like this, <http://feedeachother.com/screenshot_500.png>. [http://www.youtube.com/watch?v=h1Ltwh4AO_w&feature=youtu...](http://www.youtube.com/watch?v=h1Ltwh4AO_w&feature=youtu.be#t=97)

Maybe I should turn it back on? Any takers?

<comment><USER19> I've been looking for something similar to what you're describing (and hoping to stay away from Google & Facebook). However, before you turn your site back again, are there any other smaller fish out there already filling your niche?

</comment></comment><comment><USER20> The new design is definitely cleaner and consistent with other Google products, but it is not a design focused on providing a great reading experience (as the product name "Reader" suggests). It is basically the Gmail layout and interaction model, just different content. I wish Google had taken an approach that deeply focused on the content first (as Flipboard does).

<comment><USER21> KEEPING IN MIND that I generally hate people who whine every time every thing changes,

as someone who is fairly invested in Google Reader, it pains me that this has been a UI step backwards.

It's lot less usable; defaulting every link to black, like the rest of the interface, makes scanning for links really painful, and there's still a good 130px of useless interface chrome that is taking up space for no good reason.

Blargh! Looks like I'm going to be loading some custom stylesheets _very_ soon.

<comment><USER22> <https://addons.mozilla.org/en-US/firefox/addon/stylish/>

I haven't set up a style for google reader (yet) but Stylish extension for Firefox does a good job letting me customize sites. I don't use it on every site, but places I view regularly I tweak.

I have a style for news.yc <http://news.ycombinator.com/item?id=3085416>

<comment><USER23> Thank you! After installing Stylish they had a style already prepared to fix reader:

[http://userstyles.org/styles/55550/google-reader-g- edition-m...](http://userstyles.org/styles/55550/google-reader-g-edition-more- vertical-space)

<comment><USER24> This was exactly what I was looking for. I did make one addition to mark the read items.

.read > .card { border: 1px solid #f357a1 !important; }

Adds a pinkish border around the cards of read items.

</comment></comment></comment></comment></comment><comment><USER25> It looks cleaner, but overall it's less readable. The old Google Reader featured distinct boxes for each news article. But now Google got rid of this so the articles all sort of glue together and the only way to distinguish articles is by the focus effect and the headings.

Also I'm not sure what prompted Google to move the star button from the left of the heading to the right. Titles are variable-length so it doesn't make sense to put a frequently used UI element in a position where it would constantly change..

<comment><USER26> Looks like the star button is now on the bottom left of the post instead, at least it is in my reader.

</comment></comment><comment><USER27> This thing has an acre of useless interface and padding. With the rise of instapaper, safari reader, reeder, readability, etc, how did they possibly think more clutter was the right direction to go.

I really think Google makes decisions like this: "The data says the search bar is only used occasionally. Okay, so that means it needs to be bigger so more people use it." Search in a reader is fine, but it needs to be about as prominent as "search this page" is in a browser.

</comment><comment><USER28> How do I turn my friends' Google+ posts into RSS that can be consumed by Google Reader? Google+ does not seem to advertise RSS feeds.

Someone wrote an AppEngine service [1] to transcode Google+ to RSS, but they shut it down after Google raised the AppEngine feeds.

[1] <http://www.ghacks.net/2011/07/13/google-plus-rss-feeds/>

<comment><AUTHOR> A Googler on the G+ developer group said that atom support is planned. Until then there is:

<http://plusfeed2.appspot.com/>

<comment><USER28> btw, I wrote this PlusFeed bookmarklet to open the appropriate PlusFeed2 URL for the Google+ user page you are looking:

      javascript:void(open("http://plusfeed2.appspot.com/"+location.href.match(/^https?:\/\/plus\.google\.com\/(\d{21})\/?.*$/)[1]));

</comment></comment></comment><comment><USER29> It's crazy to me the amount of grousing about the Google Reader cheese-moving. The old system was an opaque, user-antagonistic, hacked-on mess.

The new system (integration with +) is rational and a superset of the old system, as far as I can tell.

I also choose to consider this as a precursor to many rational changes/extensions to Google Reader.

Let me be clear: I am sooo glad that I can finally direct Google Reader shared items to specific groups, so I don't have to spam everyone who follows me with every single item, which pretty much guaranteed that 80% of my feed was irrelevant/stupid/boring to any given person.

Now all I need are public, topical feeds that are subscribable/discoverable. RSS, in other words.

</comment><comment><USER30> I hope there is enough contrast between unread and read items. It took me a while to get used to the gmail overhaul with their new design.

But integration with plus is definitely a welcome change. More often than not, I've decided against sharing simply because it's inappropriate to everyone following me.

</comment><comment><USER31> Sigh. I like the redesign (it's about time!) but I hate that they're turning off sharing. I use that to run my link blog, and now I'll have to figure out another workaround.

<comment><USER32> Sharing works. Sharing just does not work without publicly +1 the reader item. (This is a big -1 for me).

<comment><USER33> As the current top comment notes: You click the "Share..." button on the G+ (black)bar.

<comment><USER31> True, but the issue there is that it now takes about 4 mouse clicks that used to be a single shortcut. To set this link blog (squealingrat.org/new) up all I needed to do was feed my Google Reader shared items into the Wordpress blog.

</comment></comment></comment></comment><comment><USER34> The inferior UI I could deal with, but eliminating note in reader? Deal breaker. And it seems they've deleted existing notes. Terrible.

<comment><USER35> You can export the existing notes from settings - import/export.

</comment></comment><comment><USER36> Dear Google,

here is what my screen looks like after the redesign: <http://imgur.com/ppg4o>

Notice that about a third of it is used up by various chrome.

Now, I realize that every Google employee is issued two wall-sized hi-res screens the moment they step up to their desk, and quickly forgets what it was like to work using mere 21st-century technology. And if they ever use a laptop, it is always a sleek Chromebook which shows you a full-screen view of the web and a tiny, exquisitely designed window titlebar in a tasteful shade of blue.

But for those of us still stuck outside the bubble, it sure would be nice to have a way to collapse some of that whitespace....

<comment><USER37> Hit the 'f' key to collapse all the chrome. Mouse-over to get the title bar, including navigation.

<comment><USER36> Awesome, thank you!

</comment></comment></comment><comment><USER38> I liked the search by shared items. Thankfully I always star and share, therefore I can still search (Google +1's search is pathetic, as it is non- existent).

Still wish they'd give +1 a search tool, and make all the previously shared items shared on Google+. But then again, this is power-user wishlist, and Google has been moving away from us.

This is not so bad for Google+, as it has an API, but it is terrible for Google Reader, as it still doesn't have an API. Guess this[1] issue was not starred enough on Google Code...

[1] <http://code.google.com/p/gdata-issues/issues/detail?id=29>

</comment><comment><USER39> I don't know why tristan_louis' comment is dead, but they bring up very good point, far more egregious than either the social sharing changes or the design and screen real estate issues:

 _The first thing that struck me is how much slower this reader is. There seems to be a refresh on every new move forward, which was less noticeable on the previous version, if at all. There also seems to be a substantially slower response time, on the order of a couple of seconds._

Reader is now painful to use, imo. I'm constantly waiting for it to catch up to my actions.

</comment><comment><USER40> Problem: Can no longer access old "notes" or "shared items"

Solution: Turn them into "starred items"

Details: You can only access notes or shared items from certain mobile or desktop clients. I don't know exactly which ones but the one I used was MobileRSS (iOS). Go into the "notes" folder and manually star every item (you don't need to star "shared" items because all of them are notes, but not all notes are shared items). If you want them in chronological order, you'll need to start with the oldest first, the second oldest second, etc. It took me less than 10 minutes to star my 131 items.

If you don't do this, you can't view or search for anything in "notes" or "shared items." However, you CAN view and CAN search them so long as they are starred items.

So far as I know, there is no longer a way to get content into Google Reader via the "Note in Reader" bookmarklet. It is no longer supported. This means that any site without an RSS feed cannot have any pages brought into Google Reader, so far as I can tell.

I wonder if there is a service that turns a site into an RSS feed on the fly? Then you'd be able to subscribe temporarily and star the item. Probably not convenient enough to use as a read it later (or archive in Google Reader) service, as I've been doing for the past couple years.

I've found that the easiest way to search for archive-worth web pages I've read years ago is to search my stash in Google Reader. Using a search engine doesn't always find old stuff which may be buried in search results or no longer on the web.

</comment><comment><USER41> Google Reader circa yesterday provided an inbox-style interface for all of your content. A feed had read and unread items, and folders allowed you to compose macro-inboxes, and (this is the change) shared content was treated in the same way, if not better—new comments on this content would be clearly indicated, allowing for in-app discussions.

Today, Google Reader has made shared content a second-class feed. With the removal of the inbox-style interface, if you miss a friend's shared item on Google Plus (possibly buried in other items), it's gone. The closest you can come to a 'mark as unread' functionality is through a work-around: creating a memberless 'save for later' circle, to share items with. Furthermore, shared content isn't even visible within Google Reader.

I can't be alone in thinking this was a good interface for sharing articles. If anybody has an alternative RSS reader with this functionality, please let me know. I would pay for this, but I can see it being a tough sell generally.

Conesus, I think you've mentioned in a different thread that you have social features in the pipeline: is this something you're aiming at?

</comment><comment><USER42> Overall, with the minimalistic Greasmonkey script, it's not bad. One thing that I don't like is that in expanded view, there is no visual indication to differentiate read from unread items. In list view, read items are grey. Why didn't they do something similar in expanded view? I keep having to look over at the unread count on the left.

</comment><comment><USER43> I must say, this new design is much less readable. I'll probably end up abandoning the web interface altogether and reverting to using Google Reader simply to synchronize my feeds across platforms.

Back when I used WIndows, I used FeedReader, but I'm not sure what other programs are out there for Linux or Android that sync with Google Reader.

</comment><comment><USER31> Someone should tell the GReader guys.... <http://cl.ly/BRqw>

</comment><comment><USER17> I think the sharing complaints are overblown (although common sense would have said that they should be ported over into a new G+ circle or something similar). I do think that Reader was badly in need of an overhaul and that bridging it with G+ will turn out to be a winner.

But damn, that color scheme is oppressive. It's the New Web Brutalism. I hope that once everything Google is using the same design template they'll offer themes again and let you have one look across all Google products. This whitewash-and-grey with carefully rationed rectangles of primaries is depressing, like a grand opening in North Korea. I'm not saying that to be funny: looking at it makes me feel gloomy and want to do...something else. I'm using Google Docs less as well, for the same reason.

</comment><comment><USER44> I don't really care anymore about the design of Google Reader. The only thing I use it for is for syncing my read items between my different reader apps (like Reeder for iPad). As long as they keep supporting that I'm fine, but this seems like a service anyone could implement in case they stop the API access.

</comment><comment><USER45> So how do I remove those two gargantuan toolbar-like thingies taking almost a third of my screen?

</comment><comment><USER46> I had a shot at redesigning the page to make better use of space and condense down the many, many toolbars.

<http://cl.ly/BRCs>

</comment><comment><USER47> Sort by magic seems to be intermittently breaking. Or more accurately the ordering of items seems to be changing dramatically on refresh.

</comment><comment><USER48> Hmm; they've also stopped supporting IE 7, which isn't good for those of us who sometimes inhabit corporate-lockdown-land.

</comment><comment><USER49> Does using Reader now imply a membership in Google+? I am not interested in G+ but I would like to continue using Reader.

<comment><USER50> Not necessarily. You can use Reader now to read documents, but sharing is done through email, or pushed to G+.

</comment></comment><comment><USER51> "A new Android application will follow soon."

</comment><comment><USER52> The lack of contrast between read and unread items ridiculous. The following custom CSS makes it bearable:

#entries .entry .card-common { background: #eee} #entries .entry .card-actions { background: #eee }

#entries .entry.read .card-common { background: #fff} #entries .entry.read .card-actions { background: #fff }</comment>


The Apple Watch Review - <AUTHOR> http://www.anandtech.com/show/9381/the-apple-watch-review <comment><USER2> This is the first disclosure on the S1's CPU and several other things, for those interested.</comment>


A good story always wins - <AUTHOR> http://mcastenfors.com/a-good-story-always-wins/ When you go to a store to buy a bottle of wine, how do you usually pick the wine? Maybe it depends on a certain grape, like Malbec, or maybe you fancy a specific country's wine? Or maybe it's even about price? I would argue that the most important attribute is what connects all these facets: a story. <comment><USER2> Great read. As the world gets more transparent with technology these authentic stories will spread through social media and best will always rise to the top.

<comment><AUTHOR> Thank you, I am glad you appreciated it!</comment></comment>


Swype demos ShapeWriter clone at TechCrunch50 - <AUTHOR> http://news.cnet.com/8301-17938_105-10037202-1.html Swype's method is almost completely identical to Shapewriter (formerly IBM Shark). It'll be interesting to see if they can make this mainstream. more at: http://www.almaden.ibm.com/u/zhai/topics/virtualkeyboard.htm http://www.37signals.com/svn/posts/1240-swype-keyboard-for-touchscreens <comment><AUTHOR> more at: [http://www.37signals.com/svn/posts/1240-swype-keyboard- for-t...](http://www.37signals.com/svn/posts/1240-swype-keyboard-for- touchscreens) <http://www.shapewriter.com/> <http://www.almaden.ibm.com/u/zhai/topics/virtualkeyboard.htm></comment>


UN Telecoms Head Says Internet Freedom Won't Be Controlled  - <AUTHOR> http://www.securityweek.com/internet-freedom-wont-be-controlled-says-un-telecommunications-chief

<comment><USER2> Then why are the foxes leading the henhouse-building effort?</comment>


Show HN: Feathers, blogless writing for everybody - <AUTHOR> http://feathe.rs/ <comment><USER2> Looks great! The design and typography are quite nice! I hate to be "that guy," but have you seen pen.io? Your site seems very similar. Also, what is the reasoning behind eventually removing articles. Is there an option to disable this feature?

<comment><AUTHOR> Hey rob, thanks. Yup I've seen pen.io but it doesn't offer drafting, the writing experience is not that nice and the posts are not optimized for reading nor on pc or mobile devices, and we will also suport markdown syntax for writing.). The removing of article is an idea we have in mind, as we thought unreaden and unshared articles are just dead articles so why not just remove them? But this idea is not implemented atm so articles wont be removed. What you think on this? Would love ot ehar your thoughts on this direction.

<comment><USER2> Good to know. Thanks for answering my comment! I went ahead and signed up for the beta as you struck my curiosity with the writing environment teaser! As for my thoughts on removing old content, I get a kick out of going back through the websites I used to frequent and reading things I wrote. The pack- rat in me would prefer to always have access to my past work. But, I do understand the logic in wanting to keep all of the content fresh. Maybe you could remove it but provide an option to have an old piece salvaged for a small fee?

<comment><AUTHOR> Yup i see your points and they make sense to me, really thank you for sharing and explaining them further ;-)

</comment></comment></comment></comment><comment><USER3> Looks great!

This reminds me of the 'Show HN' posted here two or three days ago. Who inspired who?

It strikes me that such a service could be almost completely cacheable (static)... which raises the question of why you're restricting usage.

<comment><AUTHOR> Hi, We did post already few weeks ago, and while maybe it was inspirational (who knows) it differs from the other project as the other project was about making github gists as article, while our allow to write directly online, no need to write gist on github, people can share them, you have some reading stats of what you post, and you can keep saving drafts and just publish article. we are more focusing on the writing experience, think of it as an Iawriter for the web :) that's why is not static and we are testing during some private before opening up for everybody.

<comment><USER3> Thanks, nick. Good luck to you :)

</comment></comment></comment><comment><USER4> This is a hot "sector": 4 days ago we had a service that described itself as "blogless writing for hackers" (gist.io):

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

<comment><AUTHOR> Yup and we posted before that as well already on HN. pinged the gist guy on twitter but haven't yet received any answer. Look cook the gistio solution as well, although we are doing something less hackerish and more simple to use without any need of github, for the normal user :)

</comment></comment><comment><USER5> Good to see I'm not the only person who plans on using .rs domains! The application looks great!

<comment><USER6> I was planning on using .rs too, small world!

<comment><AUTHOR> cool! We also have the short version of it: fth.rs :)

</comment></comment></comment><comment><USER7> Looks awesome, can't wait to see it. Will personally wait until after beta though.

<comment><AUTHOR> Thanks Killswitch, if you signup we can keep you in the loop for when this will happen :) The more good beta-testers we have the better it will get for the public release .

</comment></comment><comment><USER6> This app has its place for the web, it will fit nicely, give it some time

<comment><AUTHOR> Thanks ojr! At least we are building something we wanna use ourself to write with, and from the feedbacks look like others will most likely be happy to use it as well.

<comment><USER8> It's just lovely to see something done because it's a good idea, because it's "something you want to see", and not because it's cool or might make you rich... I think that's cool, and I hope it makes you rich :P

<comment><AUTHOR> Thanks :) being the richest guys of the graveyard is no our goal in life :-P

</comment></comment></comment></comment><comment> mkr-hn Is this limited to Apple PCs and the iPhone? The image makes me think that's the case, but I don't see any mention of platform.

<comment><AUTHOR> Nope, it's a web app so as long as you have a browser you will be able to use it. And on mobile devices article are optimized to offer a nice reading experience on every one, not just ios. We didn't want to overcroud the page putting there images of anykinf of device, but as soon as we go out of the beta we will add more featurelist and explanation on it. Thanks for pointing it out, appreciated.

<comment> mkr-hn The image implies that it only runs on Apple devices, and that will keep a lot of people from signing up to be notified. The page also doesn't say much about the product. Is this hosted, or do you still need your own web space? If it's hosted, is self-hosting an option? Can it export to something like WordPress' XML?

The copy uses a lot of words to say very little.

<comment><AUTHOR> it's a free and hosted solution. NO selfhosting planned atm, and we are thinking of exporting capability, but not amain goal atm.

<comment> mkr-hn If that's the case, what distinguishes it from Tumblr? It's easy to use, has sensible and appealing defaults, costs nothing, and has plenty of room for customization if you need more.

<comment><AUTHOR> read the manifesto and you'll see why: <http://feathe.rs/manifesto> , its all about the writing experience. and in about being able to have posts not linked among them as normal blogs do by listing them. Its more ment for the social web, that's why we called feathers as each post for us is like a feather traveling on the web via social sharing... think of it like the iAwriter for the web :) Of course tumblr still rocks and for its purpose is ok, we just wanted somethign faster, simpler, more minimal..read the manifesto there you'll find why we hacked this project together.

<comment> mkr-hn Must not be for me. I don't see the point of it. But don't let me stop you if you think you've got a market for it.

<comment><AUTHOR> There are no solutions for everything and everybody, so don't worry, you are welcome and thanks for having shared your points, always nice to hear from others:)</comment></comment></comment></comment></comment></comment></comment></comment>


Python 3.6 dict becomes compact and keywords become ordered - <AUTHOR> https://mail.python.org/pipermail/python-dev/2016-September/146327.html <comment><USER2> This doesn't feel right.. it's _not_ actually a nice side effect at all.

1\. it's not in the spec

2\. you shouldn't rely on it

3\. python can't figure out if you're relying on it, so _no error will be raised_

4\. subtle bugs are sure to be introduced by people who "know" this "feature" exists and use it.

Regardless of the cool implementation details, this post shouldn't advertise that "keywords become ordered" and "A nice "side effect" of compact dict is that the dictionary now preserves the insertion order".

Ergo... we built this awesome thing that you'd love to use but you can't. Don't use it or you'll be a _bad programmer_ who doesn't read specs!

(Just use addict or OrderedDict.)

<comment><USER3> For what it's worth, the JS ecosystem has tried for years to get users to not rely on key iteration order. It was _always_ unspecified but no matter what, users still expected them to iterate in insertion order.

V8 fought against it for _years_. Look at this bug horror show:

[https://bugs.chromium.org/p/v8/issues/detail?id=164](https://bugs.chromium.org/p/v8/issues/detail?id=164)

I think Python is doing the right thing. The only reason to not provide a deterministic iteration order for unsorted maps is to give more room for optimizers. But it seems like there is a clean implementation that is _faster_ while also iterating over keys in insertion order.

Sure, maybe someone will come up with an even better optimization in the future that would break this, but at some point, you have to say, "OK, what we have is good enough, and it gives users a more predictable system."

If you _are_ going to declare insertion order is non-deterministic, you really _should_ make it non-deterministic by doing something like shuffling it. Otherwise, users will just inadvertently rely on whatever deterministic-but- unspecified-order the current implementation happens to provide.

<comment><USER4> For once, C++ got some usability right and created std::map and std::unordered_map which have explicit key ordering behaviour.

Now, back to waiting for my project to compile.....

<comment><USER5> Java as well. Need sorted? TreeMap. High-performance but unordered? HashMap. Preserve insertion order? LinkedHashMap.

<comment><USER6> I would guess it probably is the same way in c++ but I've never spent more than 5 seconds considering which collection to use in Java. They have a decent amount of them but once you are aware of their existence they are incredibly intuitive

</comment></comment></comment></comment></comment><comment><USER7> Here's what Guido wrote about some of the issues that have been raised here:

"""

I've been asked about this. Here's my opinion on the letter of the law in 3.6:

\- keyword args are ordered

\- the namespace passed to a metaclass is ordered by definition order

\- ditto for the class __dict__

A compliant implementation may ensure the above three requirements either by making all dicts ordered, or by providing a custom dict subclass (e.g. OrderedDict) in those three cases.

I'd like to handwave on the ordering of all other dicts. Yes, in CPython 3.6 and in PyPy they are all ordered, but it's an implementation detail. I don't want to _force_ all other implementations to follow suit. I also don't want too many people start depending on this, since their code will break in 3.5. (Code that needs to depend on the ordering of keyword args or class attributes should be relatively uncommon; but people will start to depend on the ordering of all dicts all too easily. I want to remind them that they are taking a risk, and their code won't be backwards compatible.)

"""

[https://mail.python.org/pipermail/python- dev/2016-September/...](https://mail.python.org/pipermail/python- dev/2016-September/146348.html)

<comment><USER8> Put another way, "We're trying out a smaller, faster dict implementation that has the side-effect of being ordered. We would like to be able to change our mind in the future, except for the three cases listed above where we really want to guarantee ordering."

The original proposal was only about improving the implementation [https://mail.python.org/pipermail/python- dev/2012-December/1...](https://mail.python.org/pipermail/python- dev/2012-December/123028.html)

Also, Guido wants people to write Python3 code that doesn't rely on dict ordering so that their code run on both Python3.5 and Python3.6.

<comment><USER9> this is fine, but with PYTHONHASHSEED no longer impacting dictionary ordering, we need a new way to test our applications to ensure they aren't relying on dictionary ordering, without having to replace all dict / {} instances with "myapplication.utils.patchable_dict". What solution has been arrived at for this use case? (there IS a solution, right?)

<comment><USER10> I'm not quite sure what you're worried about. Are you worried someone might accidentally change the interpreter when pushing to production? If so, I'd prefer to fix the testing policy to ensure that all production environments are used as test environments.

If you're worried about making sure your library/application is correct for older versions? If so, test it under Python v3.5 as well.

Or you could shuffle your test data to change the insertion order and run the test again.

<comment><USER9> relying upon the ordering of a dictionary is wrong, even with py3.6. Lots of people test for that by using an explicitly random dictionary ordering per test run via PYTHONHASHSEED (way more feasible than "shuffling test data" since not all dictionary use is that simplistic. sys.modules is a dict, for example, how do you "shuffle" that?) That apparently accidental feature is being removed.

<comment><USER10> > wrong, even with py3.6

If it works, it works. I wouldn't worry until changing the interpreter. Who knows, you might be relying on some bug for correct functionality.

<comment><USER9> it means code will suddenly break when you move it to an interpreter that does not have this implementation detail. This kind of breakage is really easy in the area class instrumentation libraries where order of class attributes affects something. Every non-cPython will implement this anyway, unwitting reliance upon it will be widespread, and there really won't be much of a "problem", other than they really should make this behavior official someday.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> The optimization is awesome but IMHO the key ordering "benefit" in the implementation but not the spec is a so-so move: It can cause some future bugs in the code assuming it is there. Some languages like Go added some key ordering randomization to maps to be sure to avoid people counting on any specific key order.

<comment><USER12> If the ordering of the keys is not in the spec, a programmer should not assume the ordering of the keys. If none of the training material says or implies that the keys will always be ordered, why would a programmer?

The new and improved algorithm happens to preserve ordering. Future algorithms might not. The dictionary data structure does not specify order preservation so that, in the future, a better algorithm that doesn't have this same side effect could be used.

<comment><USER13> why would a programmer? Because the programmer would just run the code and check what different methods return as result. Then if it looks like the ordered keys, said programmer will rely on this behavior.

For instance, I'm writing some javascript recently. I try a little array in the console, if Array.keys() returns the orders keys, I will assume it is, and would check the docs (where?) only if I had a problem. Something unstable should not look stable. I agree with the Golang way, make it look like what it is by the specs.

<comment><USER12> I have trouble understanding a programmer who takes a couple samples of a method's behavior and feels confident enough to trust that as the actual behavior of the function. At least guard you're flippant assumption with a check or something!

<comment><USER13> The problem is not to add some checks (asserts? No, just kidding), the problem is that you're quickly writing a little thing for a demo out an experiment, and faster than you'd expect these ten lines of innocuous code have grown in a gigantic ball of mud upon which many businesses are built.

To me the less worse way to handle this is a softened TDD, where a consequent part of the code is covered (described, checked, structured) by a suite of reasonably atomic automated tests.

</comment></comment></comment></comment></comment><comment><USER14> It needs to be realized that this dict implementation landed literally yesterday. There are space benefits and it simplifies the language in three places where we are adding ordered mapping guarantees ( __kwargs, namespace passed to metaclasses, and cls.__dict__, all of which were planned to be ordered prior to this dict implementation coming into the language).

Before we bake the requirement of dictionaries being ordered into the language spec and require all current and future Python implementations to support it for Python 3.6 onwards -- remember, Python is 26 years old -- we want to live with the dict implementation for a few releases first.

</comment><comment><USER15> Does this mean all dicts are ordered in Python 3.6 onwards?

If so I can see scope for subtle bugs as code written and tested on Python 3.6 will potentially fail on earlier versions due to dict order.

But I guess that's why you test using tox...

<comment><USER16> I am trying to imagine a bug that would happen with an ordered dictionary which would not happen on an unordered dictionary. An unordered dictionary may return it ordered by chance.

<comment><USER17> Really? It's in the freaking name. Code is written that depends on dictionary being ordered. Works in CPython 3.6, fails on earlier CPython and other implementations of Python.

<comment><USER16> Sorry I wrote that back to front. Fixed now.

</comment></comment></comment></comment><comment><USER18> Here is a fun little thing I didn't realize before running into it:

        OrderedDict(a=1, b=2).keys()

Is not guaranteed to return ['a', 'b'].

Of course this makes sense, but is annoying nonetheless.

<comment><USER19> [for k in OrderedDict("a"=1, "b"=2)] should give you what you want, IIRC

<comment><USER20> That's not even valid Python.

<comment><USER21> Well,

      [k for k in OrderedDict(a=1, b=2)]

not that different in valid Python

<comment><USER22> The point OP is making is that none of these statements will guarantee the order of insertion, since OrderedDict must take the variadic kwargs input as a dict, which is inherently unordered. You have to use a list of tuples.

<comment><USER21> Yes, agree, just wanted to give the correct Python for the (still) ill attempt at traversing OrderedDict keys in order.

</comment></comment></comment></comment></comment></comment><comment><USER23> Python should have a "grumpy mode" which causes dict-keyword order to be randomized, and other deliberate attempts to break code where people are doing the wrong thing :P

</comment><comment><USER24> How will they reconcile this?

      In [10]: OrderedDict((('a', 1), ('b', 2))) == OrderedDict((('b', 2), ('a', 1)))
      Out[10]: False
      In [11]: dict((('a', 1), ('b', 2))) == dict((('b', 2), ('a', 1)))
      Out[11]: True

<comment><USER25> The equality test for dict objects will be unchanged. Note that it's not as if they said "Oh gee let's just alias dict() to OrderedDict() and call it a day".

</comment></comment><comment><USER26> With this given, why wouldn't collections.OrderedDict be deprecated as of 3.6?

<comment><USER27> Because this is an implementation detail. The language spec doesn't enforce this.

The real reason they did this was because of the performance gains from the approach - the ordering is just a nice side effect. Its an idea originally from PyPy afaik.

`OrderedDict` is now just a thin wrapper around `dict`.

i.e. if you want your code to be portable among different Python implementations then you should still use `OrderedDict`.

<comment><USER28> > Its an idea originally from PyPy afaik.

No, the idea is from Raymond Hettinger on the Python-Dev ML back in 2012: [https://mail.python.org/pipermail/python- dev/2012-December/1...](https://mail.python.org/pipermail/python- dev/2012-December/123028.html)

PyPy were the first to bother actually implementing it.

<comment><USER27> Ah okay, good to know. I knew PyPy did this so I assumed it came from there.

</comment></comment></comment></comment><comment><USER29> Any benchmarks yet? I'm curious about the cost of the indirection and the 2nd array vs the smaller sparse array (easier cachable), and thinking of doing the same for cperl hashes.

splits also need to realloc now twice, which might have some costs. still the run-time advantage should beat all new costs.

</comment><comment><USER30> What's the point of the compact dict? Does having all the keys together outweigh the extra indirection? That would surprise me. Can someone help explain why that would be the case?

<comment><USER31> It all depends on the underlying technology. Yes, an indirection costs more. But in the same time, the first level array can be much smaller and it even can be that both arrays together are smaller than the old array before, because it had to had gaps. The new compact array does not need to have gaps.

It of course depends on many factors, like how is the filling factor.

But, preserving memory can potentially also preserve transfers between processor and main memory. In old processors, pure clock cycles and the complexity of the opcodes where the main factor when it came to speed. Today, the complexity of opcodes (for example indirection) are less and less interesting. The amount of cache misses and how much memory must be transferred between processor and memory chips are deciding.

</comment></comment><comment><USER32> > "Preserving the order of __kwargs in a function "

"What are you trying to achieve?"

<comment><USER33> There is a motivation segment in the PEP: [https://www.python.org/dev/peps/pep-0468/#motivation](https://www.python.org/dev/peps/pep-0468/#motivation)

I don't quite get it though.

<comment><USER34> Suppose you want to make something like an XML generator helper function:

       def start(tag_, **kwargs):
          write("<" + escape(tag_))
          if kwargs:
              for k, v in kwargs.item():
                 write(" " + escape(k) + "=" + quote_escape(v))
          write(">")

(Apply hand-wavying to get the correct code.) This might be called as:

        start("abc", x="1.0", y="2.0")

but generate the output

        <abc y="2.0" x="1.0">

when you want it to be:

        <abc x="1.0" y="2.0">

The output order depends on the Python hash implementation, which (in modern Pythons) is randomly selected during startup. For an API which preserves order, you must currently either pass in the pairs in iterable order, like:

        start("abc", (("x", "1.0"), ("y", "2.0")))

or switch the API to pass in a dictionary-like object instead of kwargs, then switch to an OrderedDict (which must also be initialized with pairs in iterable order).

In 3.6, there's no need for that -- __kwargs will preserve the keyword parameter order.

<comment><USER33>
        start("abc", x="1.0", y="2.0")
        <abc y="2.0" x="1.0">

Ok, I can imagine people wanting this. Especially people coming form Javascript.

However `<abc y="2.0" x="1.0">` and `<abc x="1.0" y="2.0">` are semantically equivalent in XML, aren't they?

<comment><USER34> They are equivalent. That doesn't mean that all tools will use XML semantics to test for equivalence.

A testing tool might require that the output is byte-for-byte equivalent to a known good output. Python's pseudorandomly determined hash function won't preserve that order across multiple runs.

</comment></comment></comment></comment></comment><comment><USER25> This news has spread and seems to cause a great deal of confusion. I wish the headline had been "Python dict faster [because of some subtle details ... don't look behind the curtain]"

</comment><comment> Pirate-of-SV

        dict_keys(['c', 'd', 'e', 'b', 'a'])   # random order

> random

Maybe I'm nit picky but I find the misuse of that word annoying. My experience of CPython is that dicts are unordered but deterministic. Not random.

<comment><USER33> If your hash function is random (seeded), the order will be random over the seed.

<comment> Pirate-of-SV Across processes perhaps? But hash(a) == hash(a) and hash(b) == hash(b) so a dictionary that with a and b inserted will yield the same order every time.

        d1 = dict()
        d1['a'] = 1
        d1['b'] = 1
        print(d1.keys())

        d2 = dict()
        d2['a'] = 1
        d2['b'] = 1
        print(d2.keys())

<comment><USER35> The order of the keys in a dictionary was merely guaranteed to be consistent for a given instance: that is

        d1 is d2 ⇒ list(d1) == list(d2)

But the order is not guaranteed to be consistent between two equal dictionaries, in that

        d1 == d2 ⇏ list(d1) == list(d2)

This is because the _history_ of the dictionary can affect its order, not just its contents. For example,

        x = {-1: (), -2: ()}
        y = {-2: (), -1: ()}
        list(x) != list(y)

This remains true, but now the particular order produced from a given list of insert and delete operations is well-defined, rather than arbitrary.

It's worth noting that previously the order of two dictionaries with the same history was also the same (but may vary between program runs), but that was not guaranteed.

It's not actually clear if this is still regarded as an implementation detail, but I expect it will be effectively impossible to stop this becoming a key assumption of many libraries, so would expect any attempt to require OrderedDict (except for pre-3.6 compatibility) will fail.

</comment></comment></comment></comment><comment><USER36> So for larger dicts the memory size of the dict would be 5/3 of what it is now? That seems like a big regression unless I'm missing something.

</comment><comment><USER37> If you've disabled the StartCom CA due to concerns about lack of transparency[0] and are therefore unable to view pages like this one, you can always click the "web" link above and then view the cached page on Google.

For convenience, that link is:

[https://webcache.googleusercontent.com/search?q=cache:9Tj0HS...](https://webcache.googleusercontent.com/search?q=cache:9Tj0HSwUl2YJ:https://mail.python.org/pipermail/python- dev/2016-September/146327.html+&cd=1&hl=en&ct=clnk&gl=us)

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

Edit: To be clear to the downvoters, this has nothing to do with Python, other than they're using the StartCom certs. Not a criticism of Python.

<comment><USER37> ...

<comment><USER38> If you care enough to disable one specific CA, then you likely know how caches work and how to find the alternative. Did you plan to post a comment like this on every single HN article which uses StartCom's cert?

<comment><USER37> OK, so I was also raising awareness of the issue, guilty. And no, this was the only time I've mentioned this on HN, and I'll never mention it again here, you have my word. Had no fucking idea it would draw so much ire (most downvoted comment ever here in half a decade). Was trying to be helpful. Sorry for pissing you all off so much.

<comment><USER38> Don't take it personally. I downvoted it, because I think it's irrelevant. I doubt anyone got angry or had any emotions at all about that post.

</comment></comment></comment></comment></comment><comment><USER39> Dude, Python is trying to become PHP. Except with a complicated implementation.</comment>


JXcore – A Node.js Distribution with Multi-threading - <AUTHOR> http://flippinawesome.org/2014/03/03/jxcore-a-node-js-distribution-with-multi-threading/ <comment><USER2> This thing is dead on arrival. Unless I'm mistaken it's not open source, so the main draw of node (unrestrained hackability -- see npm) goes out the window.

The touted benefit is marginally increased parallel performance, but even if you buy this (I don't), the best case scenario is this buys you a slightly decreased server bill for the price of closedness, lock-in, and compatibility headaches. If your code shards horizontally like this then you can already trivially parallelize and shard across servers with first-class node core clustering.

I spend most of my waking hours writing all sorts of crazy things in node, and I still can't think of any scenario in which using this makes sense.

<comment><USER3> I would like to remind some things here;

> Maybe you don't have a case but there are many scenarios can benefit from > multithreading including web hosting.

> The goal is to have a zero compatibility issue and we are almost there with > the next beta.

> I believe that the node developers would enjoy benefiting from load aware > instance monitored processes instead a trivial multi processing. BTW, still > you can combine multithreading with multiple processes in case you want to > keep process is active during v8 is GC'ing on one of the threads.

</comment></comment><comment><USER4> Am I correct in understanding that the __main __benefit is that JXCore allows you to run x number of tasks in parallel where x is the number of CPUs?

The problem is solved by running multiple node processes, which is standard deployment for node (i.e. if a machine has 8 cores then 8 node processes are started).

One issue with running multiple threads is that many developers use fail fast as a best practice when building node applications. In other words, uncaught exceptions cause the node process to fail, die and restart. So, it's perfectly acceptable practice to write your application to be written to accept failure as a given (similar to how Netflix uses Simian Army).

That said, how well is each thread isolated from everything else. Does an uncaught exception kill just the thread and its state, or does it kill the process? More specifically, when is the main process killed and what is contained within the thread?

<comment><USER3> Thanks for the comments. >JXCore allows you to run x number of tasks in parallel where x is the number of CPUs?

You may have a 8 cores but configure JXcore to use 64 threads.

> The problem is solved by running multiple node processes, which is standard > deployment for node

You can still run multiple node process but 2 threads per each. This will improve the responsiveness of each process by balancing the load exactly on the native side. That means, if anything happens on one of the V8 threads (GC etc). the other one will be handling the load.

> That said, how well is each thread isolated from everything else.

Totally isolated. We already started to update native c,c++ modules for isolated multithreading.

>Does an uncaught exception kill just the thread and its state, or does it kill the process?

On this very beta release, it throws into main thread (when it's uncaught by thread) but coming beta (internal monitoring is implemented) will be optionally resetting the sub thread itself.

You may simply consider each thread as a separate node.js host.

<comment><USER4> Thanks for the detailed reply.

A small diagram on the home page showing x cores * y threads would be interesting / helpful. Such a diagram would also highlight that this adds to the multi-process approach (i.e. I don't have to give up my multi-process approach, but get to add multiple threads to it).

Anyway, the solution sounds interesting.

</comment></comment></comment><comment><USER5> I fail to see the advantage that this would give over node-cluster for scaling, as that can scale across multiple processes as well, while still using the regular NodeJS.

</comment><comment><USER6> Either I am just paranoid or something seems wrong. The oldest blog entry is "January 10, 2014" and a whois says it was resisted "05-feb-2014". They mention have Nubisa Inc. copyright, which doesn't seem to be nubis.com (whois again).

Other than that they have huge claims about optimizations that the whole node.js community didn't come up with yet and there are just binaries available.

<comment><USER7> Haha yeah something is fishy alright. The part where they reimplemented JS in llvm and it's already 25% faster than v8? Just a side project. No big deal.

<comment><USER8> I agree - there's no way anyone is going to beat V8 at its own game in a "side project" that was done over a weekend. However, the benchmarks they are showing are primitive types only; it's not hard to believe that perhaps they managed to optimize the hell out of that in order to produce a better result. For now. On an incomplete engine. Seems highly, highly unlikely that the full engine will be anywhere near able to compete with V8.

The multithreaded performance optimizations are really interesting, however - but I'd be much more interested in this making it into mainline Node, rather than using this crazy closed-source fork. You're not going to find me using anything closed-source on my servers if I can help it, least of all something like Node which is hackable to its core.

If the performance improvements really mean something, and mean something outside of contrived for() and fib() loops, I hope the Node core teams have a serious talk with these guys about a merge. Node's cluster module is definitely not the final solution for properly utilizing a server's full capacity, and the team knows it; that module has been at level 1 (experimental) for a long time.

<comment><USER9> Clearly, you don't know what you are talking about. LLVM can beat V8. As far as I understand, he put LLVM frontend intogether to see the results and it's not the part of the project yet.

<comment><USER8> I'm not doubting that it can beat V8, in a mature project with very significant programmer time behind it. But I find it very hard to believe that one weekend of fiddling with an LLVM javascript engine is enough to produce results better than V8, which has had the benefit of years of work from some of the smartest minds in the industry.

<comment><USER3> At what part I said that Its all done over a weekend?

from the post "..Last weekend I could finish the prototype and measure the initial performance of the solution.."

If you still understand that it's all finished over a weekend. No way.. I don't think it is easy to develop a LLVM frontend with those features over a weekend.

If you could have some details on LLVM, you wouldn't accuse me on something you miss read.

Because;

There is no such an LLVM JS engine. LLVM has its own IR and that prototype turns the JS codes into a wrapped LLVM IR.. As a result the final code functions at native level, so it is already fast.

For this reason, 20% or more performance difference because of LLVM actually shows how V8 is fast! It doesn't show the prototype is over a weekend or anything else..

</comment></comment></comment></comment></comment></comment><comment><USER10> ...meanwhile, everyone writing npm packages assumes a single thread.

<comment><USER3> It doesn't change anything for javascript modules. On the other hand, we already embedded most popular c,c++ modules internally (with multithreading in mind) (coming with next beta) Besides, making a native c,c++ module multithread compatible will be mostly changing couple of lines of code. We were working on a wrapper and it will be part of beta 2 also.

</comment></comment><comment><USER11> That's quite interesting. I'd love to have a look at the source! I don't think I'm going to deploy it to production anytime soon though, as I have no idea how secure this is.

Here is where you can download the executable if you want to try it (I found it weird that no link was given in the post): [http://jxcore.com/downloads/](http://jxcore.com/downloads/)

<comment><AUTHOR> Great point. I added a link to the project page at the beginning of the article and a link to the downloads at the end.

</comment></comment><comment><USER12> Great job guys!

But I fail to understand what's the difference between JXcore and native Node clusters. Can you develop this a little bit more?

</comment><comment><USER13> In case people aren't aware there is webworker-threads although this doesn't really solve the same problem.

</comment><comment><USER14> This looks really cool, but 99% of the time I can get by with something simpler like PM2 ([https://github.com/Unitech/pm2](https://github.com/Unitech/pm2)) and continue business as usual.

</comment><comment><USER15> Well, I'm just not going to use it.

I don't know about you guys, but I can't rely on some proprietary blob, if not for the security concerns, because doesn't even have an ARM binary, or even an IA32 binary for RedHat derivatives.

</comment><comment><USER16> So it's basically a closed source and commercial fork of nodejs ?

<comment><USER3> it's not a commercial fork. "For now" it's closed source.

<comment><USER17> So it will be open-source at some point?

</comment></comment></comment><comment><USER18> I thought node's non-blocking I/O implied that threads were unnecessary?

What's the core mechanism that permits node's implicit concurrency?

<comment><USER19> It is, but that also means a Node application will not use all four cores of a quadcore efficiently by default. I think the usual approach in that case is to just rev up four node processes with a load balancer of sorts in front of it.

</comment></comment><comment><USER20> If you want an OSS alternative, you can check out [http://nodyn.io/](http://nodyn.io/)

<comment><USER16> not you need the jvm to run that.And frankly nodyn doesnt run anything yet.

</comment></comment><comment><USER21> Some performance comparisons would be useful... especially since the point of the project is to increase performance.

</comment><comment><USER22> Threads in JavaScript?

Nope.</comment>


Feynman: I am burned out and I'll never accomplish anything - <AUTHOR> http://www.physics.ohio-state.edu/~kilcup/262/feynman.html <comment><USER2> One point that isn't directly mentioned is that he was able to turn the 'wobbling plate equations' into a Nobel Prize because he had such a wide breadth of knowledge to draw from, and probably had a habit of drawing parallels between what he's doing and other things within that breadth of knowledge.

He wouldn't have even thought to make the parallel between the wobble and how electron orbits move in relativity if he didn't already have a good understanding of electron orbits, and it wouldn't lead to the Dirac Equation in electrodynamics without him being familiar with that, then quantum electrodynamics without being familiar with that.

So yes, while play and working on things 'with no importance' can lead to great discoveries, or something of importance later, you need to have that background of knowledge and the habit of connecting two disparate concepts together or else it will always remain something 'with no importance'.

</comment><comment><USER3> Relevant SMBC: [http://www.smbc- comics.com/index.php?db=comics&id=2698](http://www.smbc- comics.com/index.php?db=comics&id=2698)

( Please let me know if this sort of comment is against the rules or common etiquette )

<comment><USER4> The comic explains the problem really well, I think

</comment></comment><comment><USER5> The title quote is badly chosen. It's not about being burned out - but about leaving being burned out behind him and winning the Nobel Prize ...

</comment><comment><USER6> Then one day at my academic progress meeting the dean asked me about my publication record. I had forgotten to publish, but it was ok!

Now that I was unemployed, I had even more time to play with physics!

<comment><USER7> To understand this story it helps to realize that in the olden days there was something called "tenure".

<comment><USER6> Sure,

I was being facetious though. While the story is interesting, it should be considered in the current context.

A huge swathe of senior researchers are burnt out but the wisdom Feynman imparts isn't particularly helpful to them due to the nature of academia today.

<comment><USER8> I think you can still use Feynman-like play in academic work, you just have to pretend to the funding people and the MBAs running the university that you're "totally serious", that your work can be turned into money etc.

I have a few scientific projects that I play around with when I'm stuck on my "totally serious stuff I'm supposed to work with" which give publications at some point, but that's more of a side-effect than anything else.

And of course scientists now bullshit an extraordinary amount when it comes to future applications of their work - they often don't particularly care, the MBAs just want to hear their mantras.

</comment></comment></comment></comment><comment><USER9> This reminds me of a quote that went something like:

"Most children are already physicists. Sadly, our education system beats the curiosity out of them"

Was that Feynman or someone else?

<comment><USER10> The first part sounds like a play on the Picasso quote "All children are artists. The problem is how to remain an artist once he grows up"[1] and the second half sounds like something Ken Robinson said in his TED talk about creativity[2].

What's interesting about the underlying implications of all these quotes to me is that what makes a good physicist, a good artist, or a good anything, is the unabashed curiosity, a willingness to experiment without being stopped by fear of failure, and the state of play that one must be in to unleash creative approaches and new connections.

[1][http://www.brainyquote.com/quotes/quotes/p/pablopicas169744....](http://www.brainyquote.com/quotes/quotes/p/pablopicas169744.html#BdyV1r9X3k6UIFJP.99) [2][https://www.ted.com/talks/ken_robinson_says_schools_kill_cre...](https://www.ted.com/talks/ken_robinson_says_schools_kill_creativity)

</comment></comment><comment><USER11> Hm, coding can be fun when it's like play - how to reconcile this with all the "boring stuff" \- deployment scripts, documentation, unit tests ?

<comment><USER12> Assuming personal projects... Use cheap and simple PAAS integrations. Don't write documentation on a personal project. Only test the complex stuff that touches a lot of your app, and enjoy the new ways it challenges you to conceptualize. 100% test coverage is foolish. Don't "test like the TSA." Actually, don't even write tests if your app is simple.

Code however you want. Don't let programmers who pose as authorities fool you into thinking you're 'doing it wrong', that kills all the joy in programming. As long as you're thinking through things and it works, and especially if you're actually enjoying it, you're most certainly doing it right.

</comment></comment><comment><USER13> He made a career out of playing. (Moral of the story.)

<comment><USER14> I took a very different message from it.

He started out having fun with physics, worked very hard to accomplish tangible things with it, and burned out because that made it stop being fun (to the point where he found it "disgusting"). He started playing again, doing things that were completely useless, and that lead to his greatest discovery.

</comment></comment><comment><USER10> At it's core, creativity is play. Play is how we first learned to be creative, and that's the only state we can be in that achieves it.

</comment><comment><USER15> So am I except for the part where I'm not Feynman.

</comment><comment><USER16> This is a great example of why the TEAM matter more than the IDEA.

<comment><USER17> I do not follow. Are you talking about a degenerate team of one, or what?</comment></comment>


ResourceD – Toolkit for helping DevOps to write automation tools - <AUTHOR> Hi all,
ResourceD is a pair of agent-master daemons that can help you write automation tools. They are written in Go.
There are several events in the past that inspire me to write these:
* Writing SSH based checks is annoying, HTTP checks are a lot quicker to write and there are plenty of tooling around HTTP.
* I want an agent that automatically take care of things based on conditions similar to Monit. But Monit DSL is somewhat limited, I want something more flexible.
* Nagios NRPE starts to show problems beyond 10k checks. I want something that can perform much higher # of checks (100k range) and backward compatible to Nagios Plugins. Caveat: ResourceD feature for alerting is not quite finished yet (almost there).
* I want a fast server facts database with easy-to-remember query DSL.
* I want to be able to export all sorts of server information to any graphing tools.
I hope folks here find this toolkit useful for day-to-day DevOps work.
URL: [resourced.io](http://resourced.io/)
Agent: v2.0.3
Master: v3.0.0 <comment><USER2> link ---> [http://resourced.io/](http://resourced.io/)</comment>


US Broadband Stymied By Stimulus Application and Award Process - <AUTHOR> http://blog.tomevslin.com/2010/02/broadband-stymied.html

<comment><AUTHOR> The author also forwarded this to a few mailing lists about how it might be the case that ISPs are cutting back on broadband deployments in part because they hope to get some stimulus money: FiOS buildout is dying, [http://fastnetnews.com/dslprime/42-d/2637-fios-buildout- is-d...](http://fastnetnews.com/dslprime/42-d/2637-fios-buildout-is-dying)</comment>