Show HN: landing pages for iOS apps with interactive, usable demos - <AUTHOR> http://kickfolio.com <comment><USER2> Very interesting, but one big flaw is that the app look like a video, with the Play button on it. I clicked on it and was waiting for the video to play and then I realized that I was supposed to interact with it with my mouse. I would consider changing the icon, or having a bubble that pops up and tells you that you can interact with it like an app.

<comment><USER3> Good feedback, thanks mate. I'm just wondering what kind of an icon we could implement - maybe a small iPhone-shaped watermark, perhaps even with a play button or cursor pointer inside of it?

</comment></comment><comment><USER4> My portfolio looks different when I'm logged in vs. when I open up the URL in incognito window. That's ok (HN does it too) but you should give me some way of previewing the guest-view. E.g. <https://kickfolio.com/chirag?preview> or something.

Bug: When I'm logged in, <https://kickfolio.com/chirag/tip-of-my-tongue> and <https://kickfolio.com/chirag/ktype> show "We're sorry, but something went wrong."

Also, is there any way for someone to claim their own app? I test added 'Angry Birds' to my portfolio and it worked. What if someone else adds my app?

<comment><AUTHOR> Thanks for the feedback! I've just spotted your error in the logs so will work to fix it today.

Preview view is a good idea - will see about how we can implement it.

We're planning on adding a dispute resolution process for apps. One of the use cases we've identified is that a business might want to feature an app as a marketing tool, while the freelancer who made it might want it as a portfolio tool. Automatic verification doesn't seem possible, so we're currently building a manual dispute resolution process.

<comment><USER5> Maybe there's some way for you to generate a special key/phrase that the app owner can embed in their app store listing to prove that they own the app.

<comment><AUTHOR> That gave me an idea - to resolve disputes, we could simply send a link to the iTunes-listed support email and have people verify through that.

Don't want to make it mandatory, but in cases where it becomes an issue, it could work well.

Thanks!

<comment><USER4> Email to support would be a great idea. Maybe you can show a confirmed/verified icon for apps that have been verified in this manner.

</comment></comment></comment></comment></comment><comment><USER6> You do a much better job that app.net at demoing your service. I can't even see what an app.net site looks like, whereas I've seen your service and am already really excited about it.

</comment><comment><USER7> This is more of a Pieceable comment/question rather than kickfolio.

One concern I would have would be that apps are now usable outside of the device. If you have a paid app are you opening the door to free usage? Say you have a specialized calculator of some sort. Now anyone can use it for free through a browser.

I realize that there's a cost associated with the number of simultaneous users. Maybe that's the limiting mechanism.

Also:

<https://www.pieceable.com/facebook>

"We will be winding down the Pieceable service at the end of the year so we can focus on the new challenges and opportunities at Facebook. Facebook is not acquiring the company, technology, or customer data. We know many of you have come to rely on the Pieceable service, and we want to make sure that you can continue to do so even after we shut down our hosted service on December 31, 2012. In a few months, we'll be releasing an open source version of Pieceable Viewer that you'll be able to run on your own Mac hardware - we'll have more details on that soon."

Which is potentially good news long-term.

<comment><USER3> We limit the app demos to a 1 minute maximum, then the simulator resets. We figure this is probably enough to prevent people from abusing the free time. Also, if the developer has a data-driven app that could be exploited in under a minute, they don't necessarily need to upload a demo and could just stick with the screenshots to showcase their app. Do you think that's a good solution?

We've been in close touch with the Pieceable guys. We've been talking to them about how we can continue to run with the technology beyond the end of the year and we don't foresee any issues with continuing that integration or providing something similar. Good pick-up!

<comment><USER7> Sounds good. How about sound? This is particularly important for games. We are on track to publish several games. Without sound the demos would not be appealing at all. For example, there are times when the player would hear a spoken prompt. Without it he/she would not know what to do.

</comment></comment></comment><comment><USER8> it looks nice and not expensive but i did not understand the "demo" part, where are they? also what are the main differeces with other similar services? i rember seeing one some time ago that so a lot similar, something like app.net but i am not sure, but another example is limelightapp.com

good job anyway it looks really nice!

Oh one last thing, will the bar be always stick to the top of my page? that's something i would prefer not to be on my app's page. Users do not know i use your service and i think it might be confusing. I can understand if it might stay there with the free plan but with the paid ones it must go away IMHO. that said, Good Luck. ;)

<comment><AUTHOR> The demo's are an optional extra. You can check out a demo here: <http://www.edwarddowling.com/victorian-opera>

or here: <http://kickfolio.com/examples/modest>

Just click play twice and away you go!

(Tech is from the great guys at Pieceable).

The bar is only there if you are logged in, so users won't see it.

</comment></comment><comment><USER9> Hey guys, great use of Pieceable to innovate the app feedback piece. I like your templates too!

How are you guarding against other upstarts in this space like ooomf (<http://ooomf.com>) that are also bringing great design to mobile app landing pages (where launchrock et. al. don't shine as much?)

Also, any hope to solve the app preview problem in a way that doesn't use Flash so that it can run on Mobile Safarai?

<comment><AUTHOR> Thanks. We'd love to have the demos not require Flash but it is how Pieceable works. With the team moving to Facebook, we have a few options to explore about the future of the tech.

Thanks for pointing out ooomf. I hadn't seen them before. I like to think every new service in this space is great validation for us. I think there is enough room in this niche for several players to exist to cater to different needs.

<comment><USER9> I agree. You guys are definitely onto something. App discovery sucks right now. I can't wait to see it fixed!

</comment></comment></comment><comment><USER10> Extremely impressive right off the bat. Signed up right after seeing the positive app reviews be fetched. But how do I sort the apps once I've added them? See here: <http://kickfolio.com/epaga> I'd like to have EmptyInbox be the one at the top.

<comment><AUTHOR> At the moment it sorted by most recent. Would love to have them jiggle like the home screen so you could move them around! Would be a fun bit of jQuery.

</comment></comment><comment><USER11> Just a small comment from me. Checked out one of the folios and noticed clicking on a demo says it requires flash. Disappointing as I am on an iPad. Surely many potential app users will. E browsing on their iOS devices? Did I miss something?

</comment><comment><USER12> I don't think white apple products can be used according to the marketing guideline.

</comment><comment><USER13> I've just posted a couple of projects and love the way it looks. As for the live-demo part, I haven't uploaded the apps yet, wondering if you'll be streaming audio, as my apps are sound-centric (Sonic Wire Sculptor, Numby)

Great job!

<comment><USER3> We don't stream sound at the moment but it's a good idea. We're looking at ways we can extend the tech to incorporate sound, thanks for your feedback! <http://kickfolio.com/apitaru>

</comment></comment><comment><USER14> Great idea! I can really see this taking over this growing "marketplace" space. How do you render these demos/simulations on the browser

<comment><USER3> Thanks, much appreciated. We've integrated the live apps via Pieceable, who run an iOS simulator in the cloud and stream video back to the browser.

</comment></comment><comment><USER15> I enjoy the concept and the snappiness of the app previws. But, to me, the layout's use of subtlepatterns.com seems a bit gratuitous.

<comment><AUTHOR> Fair comment. Custom CSS is available for pro and unlimited plans, so you can customise how it looks. Ultimately, we'd love to have several themes and templates available.

</comment></comment><comment><USER16> Please consider adding Android as well as Mac apps. I'd sign up for an unlimited account today if you handled Mac apps.

<comment><AUTHOR> Great to hear! Definitely coming soon - if you have signed up for a free account, you'll be the first to know when we add it.

</comment></comment><comment><USER17> Kickfolio is an awesome product. Can't wait for a gem/api so we can incorporate kickfolio's into Dragonfly.

</comment><comment><USER18> just trying to understand how is this different from app.net? which also helps in creating app micro sites.

<comment><USER3> Two things:

1\. We focus on the folio element, so you build a profile rather than marketing one app at a time. You can also explore other developers' work: <http://kickfolio.com/explore>

2\. You can run live, interactive demos: <http://kickfolio.com/examples/modest>

Thanks for your feedback - it's a good reminder that we need to keep clear differentiators.

</comment></comment><comment><USER19> very impressed. a couple of questions:

is it possible to change the url of the app? for example my app title was pretty long and would be nice if the url was shorter.

how often do you check for updates on the screenshots and description, etc? i have an update releasing in the next week or so.

android???

<comment><AUTHOR> Not yet possible to change app url. Definitely coming soon, along with Android.

We don't check for updates to screenshots and reviews yet - you can remove the app and add it again. We don't like the idea of updating someone else's website if they don't want us to, but being able to opt-in to auto-update is probably the way forward.

</comment></comment><comment><USER20> "Get a great looking, reponsive website with zero effort." typo found

<comment><AUTHOR> Thanks! I'll fix it now and push it later today.

</comment></comment><comment><USER21> Is this using the same type of tech as Pieceable?

(Just saw the other comment: Yes)

</comment><comment><USER22> This is really good!

do you have a personal email i can contact you on?

<comment><USER8> email@example.com ?

<comment><AUTHOR> Yep - thats the best one.

</comment></comment></comment><comment><USER23> looks good, but how is this better than App.net (what I used most recently)?

<comment><AUTHOR> I touched on this with this reply: <http://news.ycombinator.com/item?id=4196850>

In short, we're focusing on a folio element and also the interactive app demos, allowing visitors to actually try and app before the download it.

</comment></comment><comment><USER24> Looks awesome

</comment><comment><USER3> Love it!

</comment><comment><USER25> I liked it until I clicked the Modest demo and it said my iPad needs Flash installed :(

Wouldn't that be a not-so-great idea for an iOS centric audience?

<comment><USER3> We're trying to find a non-Flash solution for this. Might fall back to the screenshots for iOS for now. Good pick-up, thanks.

We are putting a big emphasis on responsive design and we want to do the best job possible of displaying apps on the iPhone and iPad.</comment></comment>


SPIDR Today – News aggregator - <AUTHOR> http://spidr.today/ <comment><USER2> I've been looking for a google news replacement and this looks really promising. It would be useful to have a little bit more info/transparency on where the data is sourced from and how it's ranked. Also many terms don't yield results (e.g. searching for terms like Linux, Google, AI or very common terms returns nothing when there are obviously a lot of news every day).

<comment><USER2> nitpicking, but switching off images gives a lot of errors in the browser console due to invalid html:

      XML Parsing Error: mismatched tag. Expected: </img>.
      Location: http://spidr.today/c/d739b08923d798d62c2e5fe8ff17a76d</comment></comment>


Ask HN: Best time of the day to schedule meeting? - <AUTHOR> Hi guys, wondering in your experience what is best time of the day to schedule internal and external meetings. <comment><USER2> Depends on the purpose. Research suggests that people are both less persuadable and poorer decision makers when hungry. But post-prandial coma isn't great for meetings that require thought and focus either. Engineers often prefer their afternoons uninterrupted by meetings.

I try to schedule thoughtful meetings and meetings with engineers for right after standup so people aren't yet starving for lunch and aren't breaking flow. Right after lunch is good for quick status updates or outgoing sales calls. Meetings with the sales team or CEO go wherever there's a free half hour slot on their calendars.

And my boss will talk your ear off on useless tangents, given the chance, so I try to schedule meetings with him for first thing in the morning if I need to make sure we don't run out of time; just before he has a meeting, if I'm having a busy day; or at the end of the day if I know he has to be somewhere and I don't.

</comment><comment><USER3> Internal meetings: Early in the day to get them out of the way. Clears the mind and stops the nagging "Don't forget the meeting!" thoughts. If they are regular, have them at the same time so people can settle into a routine.

External meetings: When it is convenient for the external party. Travel time is 3 hours? A meeting at 8 a.m. would suck because the party has to get ready at 4 a.m.

</comment><comment><USER4> Mid morningish sometime before lunch, people are awake at this point and focused on the daily tasks.

</comment><comment><USER5> Well it depends heavily on if you are dealing with multiple time zones or not.

For east coat to west coast, 1pm est is 10am pst, and works pretty well</comment>


The Twitter Revolution That Wasn't - <AUTHOR> http://www.foreignpolicy.com/articles/2010/06/07/the_twitter_revolution_that_wasnt

<comment><USER2> Being a resident of a developing country caught in political turmoil, I can identify with this story. Western media often has inaccurate perception of things going on in other parts of the world. I have found that, at times, seemingly trivial events are blown out of proportion while imperative issues go entirely unnoticed. It might not be a premeditated or deliberate exercise, but it certainly is a big failure in part of western media in grasping the ground issues.

There can be no gainsaying that Twitter did a great job of spreading the news about Iranian protests around the world, but it's very much plausible that Twitter was largely of no consequence within Iran.

<comment><USER3> I do believe that you underestimate the effect of what has happened.

It may not have lead to changes inside Iran yet, but it did show the world that Iran isn't just another country full of towelheads and sandniggers intend on killing us, giving hope to a peaceful solution to the nuclear crisis.

And that is going to impact Iran.

*Use of racist slurs are for effect only and does not indicate agreement.

<comment><USER2> And you misread my comments.

I am not implying (nor the linked FP article) that Twitter was insignificant in spreading the news around the world. It sure did one hell of a job and undoubtedly helped get the world's attention to the Iranian's ordeal. I am just downplaying the role of Twitter in facilitating the Iranians in physically organizing the protest (It contrast to the popular perception that Twitter played a critical role especially in this regard). Twitter was nearly non-existent in the streets of Tehran. That's what the FP article is suggesting.

</comment></comment></comment><comment><USER4> It was always clear to me at the time that Twitter's claim to fame was in letting information about Iran events out of the country, when traditional media such as CNN appeared to some a little slow to react -- and this is another debate entirely, a more interesting one but one that the article does not address at all.

Perhaps a few articles implied that Twitter was used _for_ organizing resistance, as this article wants to refute, but that exaggeration, if it was one, does not seem widespread to me. I never encountered this claim before I read the foreignpolicy.com article.

</comment><comment><USER5> _The Western media certainly never tired of claiming that Iranians used Twitter to organize and coordinate their protests following President Mahmoud Ahmadinejad's apparent theft of last June's elections._

Seriously? I guess that's the Western media for you. My impression at the time was that the Iranians that were using Twitter were largely using it to inform the rest of the world of their situation. It's not surprising the Western media would gloss over this, because that essentially means Iranians were using Twitter to do the Western media's job for them.

</comment><comment><USER6> One thing to note about this article is that it's about Twitter. There was - and still is - a pretty huge Green Movement presence on Facebook. The Green Movement is plenty internet-based, certainly. I don't know what purpose it serves to point out that there wasn't much of that going on specifically on Twitter, but I guess it's more interesting for us geeks to note.

Anyway, my sense is that the planning for protests usually happened on Facebook pages, not on Twitter accounts. Make of that what you will.

</comment><comment><USER7> tweets in English and not in Farsi, viva Silicon Valley! ;-)</comment>


Ask HN: What do you do for fun? start-up company outings? Hobbies? Games? etc - <AUTHOR>

ASK HN: What do you do for fun? start-up company outings? Hobbies? Games? etc <comment><USER2> Volunteer! Volunteering is awesome. You and your company can go out and do something together with a purpose. It's good to get away from work for a bit, but even better if you're all helping the community out with your time and effort.

I'd highly recommend it. It's so much fun and very rewarding. Many times it is also very humbling.

<comment><USER3> Habitat for Humanity has a great program for businesses to get involved as volunteers. You essentially can help build a house with your team, no matter of skills. Giving back + team building = win

</comment></comment><comment><USER4> I'd recommend doing sports. For me it is endurance like (road-)bike, mountainbike and running, but I guess everything else that gets your body in motion is a good contrast/antidote to sitting in the office in front of a Computer.

</comment><comment><USER5> I sneak into abandoned industrial buildings and look around.</comment>


Show HN: App to enable social distancing in stores, contributions welcome - <AUTHOR> https://github.com/truethat-labs/social-distance-covid19 <comment><AUTHOR> Everyone wants store owners/customers to follow social distancing, we built an app to help them. In this stressful time, waiting at a grocery store for your essential needs is not what a person looks for. Neither do store owners want a large number of people gathering at their store. We build a platform to solve this issue -

The app helps customers to see the nearby stores, how many people are allowed at the store at a given time and the number of people currently at the store.

The app allows a store owner to maintain social distancing at their shop by updating the number of people at the store at a particular time.</comment>


Facebook outage. - <AUTHOR> http://www.facebook.com/common/error.html

<comment><USER2> Linking to an error page will typically result in the same error no?

</comment><comment><USER3> Fail whale.</comment>


How to make wifi work at tech conferences - <AUTHOR> http://www.nonblocking.io/2011/05/how-to-make-wifi-work-at-tech.html

<comment><USER2> Overall a good article, although the claim that "WiFi has 11 channels and can give you 220Mbit in the air" is just wrong. You'll never deploy on all 11 channels without causing massive adjacent channel interference. 802.11 likes 25 MHz per AP, and the 2.4GHz channels are only 5 MHz apart. Deploying on anything other than 1, 6 or 11 will cause more problems than it will solve.

Additionally, dismissing the 5 GHz channels by claiming "those have lots of issues with many devices" is a facile argument. Deploying 5GHz channels (of which there are many more than 2.4GHz) is an excellent strategy in many cases - it enables you to offload 5GHz-capable clients (laptops, tables) from the 2.4GHz radios, freeing them up for 2.4GHz-only systems (smartphones, old laptops).

Anybody looking to deploy WiFi at a large conference needs to read Aruba Networks' High-Density Validated Design Guide, regardless of the hardware vendor you choose:

[http://www.arubanetworks.com/pdf/technology/DG_HighDensity_V...](http://www.arubanetworks.com/pdf/technology/DG_HighDensity_VRD.pdf)

Appendix B and C contain some excellent information on planning and theory.

<comment><AUTHOR> I might have been a little harsh on the 5GHz. There is currently a pretty widespread active problem (might depend on AP hardware/software) with some Apple hardware that is pretty much impossible to debug on a large scale, so that the only option we found was to disable it.

<comment><USER3> Don't dismiss a technology because of one hardware vendor's poor implementation.

<comment><AUTHOR> You're right I changed the language. Actually we did use 5Ghz for the purpose you described extensively in previous years.

</comment></comment></comment></comment><comment><USER4> I don't know about this conference, since I wasn't there. But speaking as someone who has helped organize conferences attended by a few thousand people, there are two points I would like to respectfully make:

1\. Sometimes, the conference is about PEOPLE and the content of the sessions. I confess that at more than a few of the events I helped organize, it was no accident that the WiFi was wonky or non-existent. Yes, some people bitched and moaned, but the overall effect was that that attendees and speakers felt engaged with each other because everyone put their laptops away and actually paid attention to one another. In conversations and after-event surveys, the #1 bit of positive feedback was, "Hurray for having an event where the WiFi was turned off."

Yes, we all know that a lot of people attend events and use Social Media to bring in a larger audience from those who could not attend (I do), but all too often, I see people sitting there with laptops open to work e-mail. They're not there to add anything to the discussion, and really, what's the point of even being there?

Of course, a good conference organizer has already worked to insure that the speakers are well-prepared, moderators are trained and will actually do their job, and the content is valuable (not a sales pitch). It pains me to no end when I attend an event that waste my time by not having those three items checked off.

2\. "Now you booked a venue and they say that they can handle the WIFI for you. Chances are, they are lying."

Respectfully, there's no conspiracy here. If your event is taking place at a hotel or conference center, then more times than not, WiFi is an expensive add-on (all things are expensive add-ons in the hospitality industry, but that's a subject for a much longer post). You have no control over it, and in fact, if you try to rig up a few routers and roll your own hotspot, you're often in violation of your facility's contract which means fines or blacklisting from future events.

Just my two cents from my own experience. Yours may differ, so we may disagree, but no flames, please.

</comment><comment><USER5> "Deploying on anything other than 1, 6 or 11 will cause more problems than it will solve,"

This is a fundamental mistake. You are correct that the transmit mask of WiFi allows for 3 'non-overlapping' channels in the 2.4GHz band, but the receivers won't allow simultaneous operation on these three channels since the advent of 802.11g (and 802.11n made the situation worse.)

The receivers don't have enough adjacent channel rejection (ACR) to deal with a strong (i.e. closer or high-EIRP) signal on an ajacent channel.

At 6Mbps, the IEEE standard requires 16 dB of adjacent channel rejection. The amount of ACR required by the standard is lower as the modulation rate increases. At 18Mbps the IEEE standard requires 11dB of ACR. At 54Mbps, the ACR required by the standard is -1dB. While some chipsets perform above these requirements one has to assume that the clients perform at the minimum, since there is no way to control what client will wander into the room next.

Nobody wants to believe it, but the way to make 2.4GHz WiFi work for large conferences is to run all the APs on the same channel (in any given 'band')

</comment><comment><USER6> I think the most interesting bit here is "At JSConf we introduced social traffic which links all traffic to Twitter identities."[0][1] That is pretty... epic.

Hey @BandwidthHog stop hogging all the intertubes. You making puppies cry!

[0]<http://social-traffic.streamie.org/preso/static/#slide17>

[1]<https://github.com/cramforce/social-traffic>

<comment><USER7> Clever? Yes. Epic? No.

<http://www.thebestpageintheuniverse.net/c.cgi?u=epic>

Pardon the title.

<comment><USER8> Interestingly, this downvoted link resulted in 63 hits to Maddox's page from this referer. <http://maddox.xmission.com/statistics/statistics.html>

</comment></comment></comment><comment><USER9> The problem is that if your event only has 100 people, that means that every attendee has to be willing to pay an extra $50 in order to have someone guarantee that the WiFi will work. That's why most event organizers just take their chances.

</comment><comment><USER10> How many attendees were there? I tried to find some numbers real quick and couldn't manage to find them. For conferences (or any high density user environment), the density of users has a massive impact on how the network needs to be designed (omni vs. directional antennas, output power, individual channel selection, switching infrastructure, etc.). There reaches a point where the device density is so high that even narrow beam antennas at the lowest power setting can easily be hitting max associations. Really the only way to provide good coverage at any sort of event is to plan ahead (months in advance, especially for tech-heavy conferences) and not trust that the IT department of the venue will know how to properly set up the access.

<comment><AUTHOR> At the last JSConf, 370 attendees, ~1000 devices online. You are absolutely right. At a certain density all bets are off. We were pretty close to this point at several points in time. The problem gets much harder with more people.

The blog post is very much not about technical details. Having people who actually care is what really counts. This is all, of course, presented in term of not-for-profit-conf where paying people to get it right is usually not an option.

<comment><USER10> Yeah, that's definitely in the "too small to pay a company but big enough to have real problems to solve" range. I completely agree that just having people who care (and plan ahead) goes the furthest.

At a previous employer, the number of "Oh, we have a conference going on and the internet access sucks, please fix it" or "Yeah, we have a conference this weekend with <ABSURD NUMBER OF ATTENDEES>, can you get it built out for us?" calls we got were absolutely insane.

</comment></comment></comment><comment><USER11> I wish the conferences I go to could have a team of network ninjas like this.

</comment><comment><USER12> Another solution is to use your own hardware, a la Pirate Box: <http://wiki.daviddarts.com/PirateBox>

</comment><comment><USER13> Is it really wise to suggest "Don't use encryption." ?

Even your grandmother can steal sessions with Firecookie these days.

<comment><USER14> Most conferences that have encrypted WiFi will use PSK. Given the pre-shared key and observation of the handshake, you can calculate the session key and decrypt all traffic between a user and the access point. Compiling aircrack is no longer "grandmother" territory, but it is certainly "average linux geek" territory. Aircrack creates a virtual network interface, so you can even use it with Firesheep with no extra modification.

So turning off encryption is really not that bad when you consider that all it did was hog CPU and give people a false sense of security.

<comment><USER13> These are good points. (And indeed, I intended to write 'Firesheep' and not 'Firecookie').

</comment></comment></comment><comment><USER15> At the risk of sounding like a plug... Xirrus can do this. They kept up at interop just fine this year.

</comment><comment><USER16> q: i've never attended such a conference. when the users move from room to room they would have to reconnect to another SSID ? or did you setup something like a mesh setup ?

<comment><AUTHOR> No Mesh magic involved. Just set them all to the same SSID and it will magically work.

<comment><USER16> this would only work if you aren't using encryption, like in your case ? (or encryption won't change a thing, except a lot heavier on CPU and there goes all down the drain)

<comment><AUTHOR> Also works with encryption.

</comment></comment></comment></comment><comment><USER17> heres a link to the slides: <http://social- traffic.streamie.org/preso/static/#slide1>

</comment><comment><USER18> Would love to know the hardware they were running and their monitor software.

<comment><AUTHOR> Hardware: <http://www.ubnt.com/unifi> Monitor software: tail -f

</comment></comment><comment><USER19> Can anyone link to some good 101 info on wifi networks like this?

</comment><comment><USER16> yep. what hardware you guys used ?

<comment><AUTHOR> <http://www.ubnt.com/unifi>

<comment><USER20> Upvoting. I realize this is a single vendor link, but I recently spent a long time redesigning my home network and settled on the same unifi system.

It's really worth looking at commercial grade access points if you are looking for a more robust networking solution, even at home. There are other good manufacturers besides ubnt, but their 3 unit unifi price point is pretty good. 2.4 ghz only however.

<comment><USER21> All around, Ubiquiti makes some pretty decent stuff for the prices they charge.

</comment></comment></comment></comment><comment><USER22> Good article. Hardcore.</comment>


Towards the end of poverty - <AUTHOR> http://www.economist.com/news/leaders/21578665-nearly-1-billion-people-have-been-taken-out-extreme-poverty-20-years-world-should-aim?fsrc=scn/gp/wl/pe/towardsendofpoverty

<comment><USER2> Loved this article. There's so much doom and gloom out there, and yeah, there's plenty more we could be doing and need to fix. That said, it's nice to stop every now and then and realize what's really going on here: we're living in the god damn golden age.

<comment><USER3> The HN crowd is. Most Americans? Not exactly moving forward:

The United States now ranks lowest or close to lowest among advanced "affluent" nations in connection with inequality (21st out of 21), poverty (21st out of 21), life expectancy (21st out of 21), infant mortality (21st out of 21), mental health (18th out of 20), obesity (18th out of 18), public spending on social programs as a percentage of GDP (19th out of 21), maternity leave (21st out of 21), paid annual leave (20th out of 20), the "material well-being of children" (19th out of 21), and overall environmental performance (21st out of 21).

Add in low scores for student performance in math (17th out of 21), one of the highest school dropout rates (14th out of 16), the second-highest per capita carbon dioxide emissions (2nd out of 21), and the third-highest ecological footprint (3rd out of 20).

[http://www.nationalmemo.com/weekend-reader-what-then-must- we...](http://www.nationalmemo.com/weekend-reader-what-then-must-we-do- straight-talk-about-the-next-american-revolution/#.UatMuNzMQHI.reddit)

Not US bashing, EU is taking a different but essentially equal direction.

<comment><USER4> Comparing the US with other countries doesn't tell you if you're moving forward or not. You need to compare it to its own past. How do those metrics compare with the US of the 1950s? Or of the 1980s?

<comment><USER3> Agreed. But I think it is rather obvious the US did not always rank so low. Here is some more data on poverty in the US (dating back 50 years):

WASHINGTON — The ranks of America's poor are on track to climb to levels unseen in nearly half a century, erasing gains from the war on poverty in the 1960s amid a weak economy and fraying government safety net. The _official poverty rate_ will rise from 15.1 percent in 2010, climbing as high as 15.7 percent. Several predicted a more modest gain, but even a 0.1 percentage point increase would put poverty at the highest level since 1965. [http://www.huffingtonpost.com/2012/07/22/us-poverty- level-19...](http://www.huffingtonpost.com/2012/07/22/us-poverty- level-1960s_n_1692744.html)

</comment></comment></comment></comment><comment><USER5> Is the "poverty" line not a moving target? i.e.: isn't $1.25 and abitrary snapshot in time? As any nation starts up the curve of development, people will make more, as the line simultaneously moves up. To put it another way - more people may make more than $x.x dollars per d/m/y --- but are they individually any better off? And is the society any better off for all of its "development?"

<comment><USER6> The line is of course somewhat arbitrary, but it's meant to be at a level where people can barely feed themselves. While this varies from country to country, it's striking that it doesn't vary that much. It's also easier to market one (if arbitrary) poverty line than individual ones for each country.

You might find this article [1] interesting. It mentions your point as well:

"But even in quite poor countries, a different concept of poverty also seems to creep in, the authors argue. It begins to matter whether a person is poor relative to his countrymen; whether he can appear in public without shame, as Adam Smith put it."

[1] <http://www.economist.com/node/11409401>

</comment></comment><comment><USER7> As rural/developing country poverty decreases, urban economically split poverty increases.

The amount of poverty in the US (and many other "developed" countries) is quite astonishing.

From: <http://en.wikipedia.org/wiki/Poverty_in_the_United_States>

> 16% of Americans lived in poverty in 2011

</comment><comment><USER8> No mystery here. Of course most of the "progress" came from China.

Meanwhile middle class wages in the U.S have been stagnant for decades, structural unemployment has taken hold in the U.S. and other Western nations, social program and welfare dependency is on the rise, and corporate profits are at an all time high.

We have simply unplugged the middle class in the U.S. and plugged in people who can be paid relative dirt wages, yet still see it as progress because they were so utterly poor before. This is no great economic mystery or capitalist achievement.

It is good that there are fewer people in extreme poverty, but there has also been a heavy cost. The western world and America in particular have long been addicted to free or cheap labor and this is now simply coming at the expense of those whose forebears built this country right up until the last decades.

True democratic capitalism is long overdue.

<comment><USER6> You make it out like this is a zero-sum game. As if lifting people out of poverty means other people (Americans and Europeans) will necessarily be worse off. I don't believe this is the case. More people with money also means a bigger market for western products.

I'm frankly a little bit put off by the scare quotes you put around "progress". As if giving a billion people a better life is somehow not something to aspire to.

<comment><USER9> Most of the time, capitalism works as a zero-sum game - profits can be extracted more easily from moving resources than from creating them and therefore moving will be prefered to making.

We must admit there is something wrong when unemployment is rising together with corporate profits and economic inequality. It's not only the average rising - standard deviation is also increasing. The social tissue can only stretch that much before it ruptures and nobody likes to be near the rupture.

<comment><USER10> >Most of the time, capitalism works as a zero-sum game - profits can be extracted more easily from moving resources than from creating them and therefore moving will be prefered to making.

This isn't true. At the heart of capitalism is any economic exchange- trading sheep for wheat, trading dollars for an xbox, etc. For any trade to occur, each party in the trade has to believe that they will gain from the exchange, i.e. get increased utility/value from it. By that means, any economic exchange where both parties are acting freely is most likely to be positive-sum, in terms of value received. Where jobs have moved to poorer countries, real wages have increased- this is indicative of the fact that they are now able to produce goods and services that their trading counter-parties perceive to be more valuable. This doesn't make rich countries as much worse off as you think it does- the majority of the increased production of poorer countries goes to meet local needs, overall having a relatively small effect on the price of global labor.

On your other point, I will agree with ya that our current income inequality is pretty bad.

<comment><USER11> > trading sheep for wheat

Amusing example, since it is zero sum even if the two parties don't perceive it as such.

</comment></comment></comment></comment></comment><comment><USER12> This article is about the US $1.25 a day poverty line. This [1] article indicates that diminishing returns will make it much harder to move the remaining billion over that line.

1\. [http://www.economist.com/news/briefing/21578643-world-has- as...](http://www.economist.com/news/briefing/21578643-world-has-astonishing- chance-take-billion-people-out-extreme-poverty-2030-not)

</comment><comment><USER13> An excellent sentiment, but it must be noted that this is a very transient time, both technologically and socioeconomically. The current situation in Europe is a canary in the coal mine for the developed world, as technology fiercely marches on and makes plebs of the middle class and rulers of the lucky few who can capitalize on this technological upheaval.

I'm far more interested in conversations regarding where we are headed, rather than from whence we've came [1].

1\. [http://krugman.blogs.nytimes.com/2012/12/08/rise-of-the- robo...](http://krugman.blogs.nytimes.com/2012/12/08/rise-of-the-robots/)

<comment><USER14> _I'm far more interested in conversations regarding where we are headed, rather than from whence we've came_

Can you have the former without the latter?

</comment></comment><comment><USER15> The end of idiotic journalism is not in sight, obviously.

<comment><USER9> If you have criticism, please, be more detailed. Point the flaws you found in the article and share with us.</comment></comment>


First half of 2016 hit record-setting global warmth - <AUTHOR> http://arstechnica.com/science/2016/07/first-half-of-2016-hit-record-setting-global-warmth/ <comment><USER2> As far as I understand it the El Niño event has nothing to do with global warming, did I understand correctly?</comment>


Please code review whoarder, my first (tiny) Python module - <AUTHOR>

Hi, I'm an Industrial Engineer-turning-developer. Over the last years my role was half-functional/half-development, but I've heard I'm able at technical stuff (and I LOVE IT) so I want to dig deeper that direction. So far I worked on VB, web dev, and C#/Java enterpriseware.
I've been playing with Python for a while, which I love and would like to target professionally, and am lucky enough to take a work break to train myself and hope to land a Python job. I read a few books (Clean Code, Dive Into Python 2+3) and the last two days I built https://github.com/ronjouch/whoarder
Being on my own I'm probably doing some things horribly wrong, so I'd like some feedback from experienced people. Anything will do! Advice on unit tests, general coding practices, python-specific features I use well or misuse, advice on books, tools, etc. I have a few questions, too:
1. test.py: I used unittest to get used to standard stuff. What would I gain by using nose? Do you always use it, or is unittest fine for small projects?
2. whoarder.py: The if block in is ugly but is the only workaround I found for relative imports in py3. Could I restructure my app to avoid the issue?
3.1. My app could fit in a single .py, but I made a module anyway, because I'm happy to drink the "It will help you structure and better SRP your code" kool-aid. Right?
3.2. ... but I put several classes in a single .py because I felt it worthwhile to bring them closer. Is that ok or frowned upon?
4. clippings.py:ClippingsIterator: I abstracted input parsing through a custom iterator, while I could just have split by separator. That way I don't read all upfront and can interrupt if something goes wrong. Good or overkill?
5. clippings.py:detect_encoding: any idea why chardet2 doesn't tell me about the BOM?
6. template.html/web: anything worth mentioning; I'm very much doing things 'by hand', maybe the wrong way and would appreciate general feedback.
Thanks for your help. <comment><USER2> 1) I use unittest since I ship code to others and I want fewer dependencies. I think if I was doing this only for myself I might look to nose. But I've been using unittest long enough that I know how to get what I want from it, so I haven't bothered to learn nose.

2) I don't know about Py3 issues like that.

3.1) I am not much of a believer about "SRP". What's your public/published API? Is it useful? It is understandable? Does your exposed module structure give a domain view or an internal organizational view that might change after refactoring. Behind the scenes you're more free to design as you wish.

3.2) In a small package like this, I would have everything in a single file.

4) I don't like the "import re" and other class attributes in ClippingsIterator. I prefer them as global variables, and prefix with a "_" as a hint that they aren't meant as part of the API. I believe this preference is the standard consensus.

5) don't know.

6) I'm not knowledgeable enough to judge, but it looks fine to me.

Minor points:

        for c in clippings:
            self.clippings.append(c)

is more idiomatically written

        self.clippings.extend(c)

"(clipping['book'],clipping['author'])" should have a space after the comma.

In general it's best to have things like "import os" done once, at the top of the module. "os" is a builtin, is always present, and the "import os" has almost no overhead.

The jinja2 import is a bit more special. Do you want the code to work even if jinja2 isn't installed? In which case, what you have is good. I would add a comment, on the same line as "from jinja2 import ...", saying "available from <url>". This gives an additional clue should a failure occur.

But if your code doesn't make sense without jinja2 then I would put the import at the top of the module, to occur at import time. This is more like what people expect, so would be easier to diagnose should a failure occur.

It doesn't look like "import_clippings" is part of the exposed API, since it takes no parameters and always sets an instance variable that looks like it should only be set once. In that case, prefix it with a "_" to indicate that it shouldn't be called directly.

I would write ClippingsIterator() as a function rather than a class, in this rough form:

        def read_clippings(source):
            detected_encoding = _detect_encoding(source)
            with open(source, mode='r', encoding=detected_encoding) as source_file:
                while 1:
                    clipping_buffer = []
                    count = 1
                    while True:
                        if count > 5:
                            raise InvalidFormatException("Input file doesn't seem to be a clippings file, separators are missing or damaged")
                        line = self.source_file.readline()

                        if not line:
                            return   # end of input
                        elif line != self.clipping_separator:
             ...
                yield line_dict

where "_detect_encoding" is your current method, but written as a module function. (One hint that a method isn't actually method is if it never uses the "self" variable. In those cases, I nearly always write them as module functions.)

<comment><AUTHOR> Great, and cool that you touched imports, that's also something I'm hesitating on. I'll be doing your suggested refactors, and am considering consolidating into a single .py. Thanks!</comment></comment>


Videos from the Julia tutorial at MIT - <AUTHOR> http://julialang.org/blog/2013/03/julia-tutorial-MIT/

<comment><USER2> Couple more suggestions:

1\. In the REPL, highlighting of matching parenthesis/brackets (like in CLISP) would be good.

2\. In the top-level Makefile, add a target "make distclean" to mean "make cleanall". distclean is the "GNU standard" [1]. Similarly "make mostlyclean" could clean everything except major dependencies.

[1] [http://www.gnu.org/software/make/manual/html_node/Standard-T...](http://www.gnu.org/software/make/manual/html_node/Standard- Targets.html)

<comment><AUTHOR> These are both good points.

We did use to have a distclean, but seems to have been lost in various build system updates.

Matching parentheses/brackets in the REPL would be really nice too. Can one do this with readline? It would be great if you could file an issue - just trying to nudge you into joining the fun. :-)

<comment><USER2> I created a GitHub account just for Julia, and the issue 2738 is here: <https://github.com/JuliaLang/julia/issues/2738>

</comment></comment></comment><comment><USER3> Julia is a huge step forward in practical programming languages. I was super impressed when I saw it at Strange Loop last year, and they've made strides since then.

</comment><comment><USER2> I just saw that you have a run() command for invoking the shell. Would be cool to just use ! (like Matlab) or %%! (like IPython).

BTW, the lightning round is awesome. Thanks विराळ् :)

<comment><USER4> The ! operator already has a meaning, which is negation. There are also many different ways to run pipelines: `run` just runs it, letting output pass through to stdout/stderr and returning nothing, but raising an error if the process fails; `success` suppresses process output and returns true or false based on the return status of the pipeline; there are also various ways of reading from and writing to pipelines, or starting pipelines asynchronously and letting them run in the background. So using ! for just one of these many ways of running external programs seems short-sighted.

<comment><AUTHOR> Within `run`, you still can use nice syntactic sugar such as `|` for pipes. BTW, almost correct rendering of my name in Devanagari! :-)

</comment></comment></comment><comment><USER5> Julia looks a bit like Lua.

<comment><USER4> There are superficial similarities. The main things that make Julia different than other dynamic languages are:

      1. The expressive, sophisticated type system
      2. Using multiple dispatch as its core paradigm
      3. Extreme interoperability with C libraries
      4. C-like performance

Of course, LuaJIT gets great performance too, so that's actually rather similar to Lua. Lua also isn't nearly as naturally suited to scientific programming.

<comment><USER6> Those 4 bullet points all sound a lot like Dylan (<http://opendylan.org/>).

I'd have said Common Lisp as well, but some might argue point #1 with respect to that.

It is nice to see others (re-)discovering the joy of full on multiple dispatch though!

<comment><USER7> Reading the new Dylan documentation makes me wonder how if would have turned out if Apple invested more strongly in the language.

An expressive dynamic language with repl and native code compilers. quite nice.

The one thing so far that I don't like is <> around identifiers.

<comment><USER8> < > is a naming convention for types (e.g., classes) only.

<comment><USER7> I know, but still makes the code ugly to my liking.</comment></comment></comment></comment></comment></comment>


Our first blog post for hackers: the technology behind wishli.st - <AUTHOR> http://blog.wishli.st/the-technologies-that-power-wishli-st/

<comment><USER2> r.e. moving from SVN to HG - I've had success with the various tools [1] in converting entire histories to mercurial [2] (it was about 400 change sets) and also have been maintaining an SVN/HG dual repository for a wordpress plugin.

1\. <http://mercurial.selenic.com/wiki/WorkingWithSubversion> 2\. <http://hg.errant.me.uk/eventscripts-xa/changesets>

<comment><AUTHOR> We looked into porting our history across but decided we were unlikely to regress beyond our current version (we do still maintain our SVN copy for reference).

Good to know it's possible though - thanks for the links!

<comment><USER2> The only gripe I have with mercurial is the fact that hg copy doesn't move the file history too. It's annoying because I went to all that effort to convert the SVN repository into mercurial so as to keep the file history.. then reorganized the folders and "lost" it (on a per file basis) :)

Bah.

<comment><AUTHOR> Didn't know that - thanks for the tip. Haven't been bitten by it yet...

</comment></comment></comment></comment><comment><USER3> What does wishli.st do? Couldn't tell from their website, didn't want to add facebook app without knowing what it does.

<comment><AUTHOR> It's a buyer focussed wishlist app. You invite the people you buy presents for to create wishlists then receive reminders before their birthdays.</comment></comment>


Ask YC: How to Find Problems to Solve? - <AUTHOR>

Recently, on my blog, I have compiled a short list of resources which help startups find problems to solve. The link to the post is: http://tinyurl.com/4n9uw2
The resources include researching Twitter conversations via Summize and Twistori, creating Google alerts for the term 'survey', researching on Yahoo Answers, etc.
I am wondering what resources/methods do you use to find problems to solve? <comment><USER3> Problems find me. And, unless you're a very lucky person, I bet they find you as well, so just pick the one that annoys you the most.

</comment><comment><USER4> solve your own problems, you will be surprised at the number of people that have the same problem that you do.

<comment><USER5> And the key there is being able to look at your everyday life and get annoyed by things that aren't as easy or as good as they should be. It takes a certain combination of imagination, creativity, a tendency for thoughts to wander off the task at hand, and persistent dissatisfaction with regular habits and with the way things are.

</comment></comment><comment><USER6> Get a job.

They'll give you plenty of problems to solve.

Many of which you can build a business around.

<comment><USER7> Agreed.

The project I'm working on right now is to build online tools to make contract nurses lives easier. It comes from my working as a contract nurse for 10 years, and knowing what problems that niche market has.

I have a bunch of other ideas/problems in need of solving on the back burner if this one doesn't work out. Most of them are issues that I've come across and said, "I'd love it if I had something that would help me do X, Y or Z..."

</comment></comment><comment><USER8> Experience, open-mindedness, open eyes, serendipity.

Using Twitter, Google Alerts & co. is just another way of having your eyes open (really wide, in this case), but they are hardly enough.

Do your thing, follow your bliss, and problems will find you - <USER2> searching for one is like searching for a girlfriend at a party.

</comment><comment><USER9> Read: WSJ

economist

inc

Check what current businesses are trying to solve. Don't use techcrunch... instead go right to the source. See what the VC's are investing in by looking at their portfolios on their website. Explore those startups... you'll probably see something that says "you can do better"

also: irc #startup

</comment><comment><USER10> Use products/services that you think are solving a problem and observe what their doing right and what their doing wrong, come up with your own twist on the problem you want to solve and apply good design in your effort to solve that problem.

</comment><comment><USER11> Start working as a freelancer and you will see a lot of ideas floating around.

</comment><comment><USER12> observe</comment>


Robert Scoble rages over Google Events spam - <AUTHOR> http://uncrunched.com/2012/06/30/the-epic-video-robert-scoble-rages-over-google-events-spam/

<comment><USER3> Top comment on Youtube:

"Robert Scoble, you asked for it. Under Calendar Settings>General Automatically add invitations to my calendar: \- Yes - Yes, but don't send event reminders unless I have responded "Yes" or "Maybe" \- No, only show invitations to which I have responded Check the settings, dumbfuck. "

<comment><USER4> The default was set to the first option, which (as much as I hate to say it), still gives his argument some grounds. Google should've set it as opt-in instead of opt-out.

But, man, talk about being over the top. It's Google's products that he's using _for free_. They don't owe anything to him. His rant does more damage to his character than to Google's profits, IMO.

EDIT: It goes without saying that I prefer Will Wheaton's post much more than Scoble's. And he's not 'freaking out' as Scoble claims.

<comment><AUTHOR> They actually do owe him something, like being the evangelist for their platform. Scoble did do free marketing for G+ (on every place he is/was - <USER2> know this from Quora, for example).

At least Google could have asked the top users on G+ before releasing this. Is that hard to do? You suppose not to alienate your users, especially when something you are competing against (Facebook) is already established and you want those users.

<comment><USER4> Ah true, I take back that part of my argument then. Maybe Google does owe him something.

I still think he was being childish and over the top, though.

</comment></comment></comment></comment><comment><USER5> IBM didn't get the PC, so they lost relevance. Microsoft didn't get the web, so they lost relevance. Both are still huge companies, grossing billions a year (but hit on their valuation by the public market). Maybe in 10 years we'll be saying "google didn't get social", so they lost their relevance. Would that be the case? Only time will tell.

</comment><comment><USER6> i hate to agree with scoble but he's 100% right -- google gives you no control over who can invite you to an event, and that's bad usability. i was also really sort of shocked to find that a user can't control who can invite them to an event. honestly over the past year every time that google tries to "improve" the quality of the service goes down...

<comment><AUTHOR> I agree with him too. Google doesn't get social (we thought they finally did)...it's being said and this one proves it yet again.

</comment></comment><comment> john-n Seems this will be fixed in some manner. From Wil Wheatons post on the same topic -

+Vic Gundotra says "We are doing exactly what you requested. We should have contemplated and anticipated how people would abuse this and how painful this could be for celebrities with large followings.

We have pushed a number of fixes yesterday (some were bug fixes that showed up at scale). Expect more fixes today. Sorry for the trouble Will."

[https://plus.google.com/108176814619778619437/posts/BC8NZR8b...](https://plus.google.com/108176814619778619437/posts/BC8NZR8bTAW)

<comment><AUTHOR> It's very "hard" to anticipate this, what can I say...very "hard".

</comment></comment><comment><USER7> Scoble is one of those people who sound really funny when they swear. He sounds really out a character and despite his point having merit, he sounds like a whiny little nerd.

<comment><USER8> He swears a fair amount in real life even though I've only met him briefly on a few occasions.

</comment></comment><comment><USER9> I invited him to come watch the sunset in Bernal Heights. My bad Robert!

</comment><comment><USER10> like, i understand why he's frustrated but.. really? is that all it takes for scoble to get that upset?

<comment><USER11> People really hate uncontrolable spams. Think of the email spams we have to deal with over the decade.

</comment></comment><comment><USER12> _coughs_ first world problem _coughs_</comment>


Ask HN: Can't Access 1Password Without Apple ID? - <AUTHOR> So this has never happened before. I tried Googling around and couldn't confirm this has happened to anyone else.
I tried to launch 1Password on my Mac (as I always do). I was prompted to log in with my Apple ID by the App Store. Something about 1Password was purchased using a different computer so they needed to verify my Apple ID to ensure I made the purchase (I bought this a long time ago so wonder why this is coming up now). Oddly enough, this never happened before. The request is fine and all since I did buy it through the App Store originally except for one giant problem...
All my passwords are random insanely long passwords auto-generated by 1Password. I don't memorize that stuff (including my Apple ID) and that's the whole point of using 1Password in the first place. The very thing that has all my passwords is inaccessible because the stupid App Store requires Apple ID verification before proceeding (a catch-22). If I don't verify and log-in, the application effectively never launches.
Thankfully I have 1Password access on my other devices and was able to login and verify, but I can already imagine a scenario where this could have been blocked on everything.
Anyone else encounter anything like this? <comment><USER2> Today, this happened to me, too. Very weird and very annoying indeed.

Authenticating to a service such as the App Store via password without using a password manager feels very anachronistic and insecure.

This always makes me think that there has to be a better solution than passwords for authentication. Password managers such as 1Password are great but they still are a work-around for an essentially broken system. Plus as long as there's no close OS integration we'll always run into situations like this.

</comment><comment><USER3> Could it be some malware? I remember some phishing attempt recently with an apple iCloud prompt. Have to search to find the story. Couldn't find at first try. Will update here once found.

<comment><AUTHOR> I initially thought the same thing (although never had any malware I knew of on any of my Macs ever) so I tried entering false passwords which came back as failed log-ins. It was only after entering the correct one later did it verify and the application finally launched so unless they had a way to authenticate actual Apple ID accounts as well, highly unlikely to be malware.

<comment><USER4> Well, if you want to go down that route, there's no reason they couldn't just submit the login form at [https://appleid.apple.com/](https://appleid.apple.com/) to test your credentials.

</comment></comment></comment><comment><USER5> Are you sure it wasn't asking you to log in to your iCloud account if you where using iCloud to share your password data?

<comment><AUTHOR> 100% positive. I don't use iCloud to sync my password data.

</comment></comment><comment><USER6> Yes, but with BBEdit, not 1Password. It happened tonight.

<comment><AUTHOR> First time it happened to you too? I wonder if this will be a norm.

<comment><USER6> It looks like this is the reason: "All Mac Store Apps Stopped Working Due To Expired Security Certificate" [http://techcrunch.com/2015/11/12/all-mac-store- apps-stopped-...](http://techcrunch.com/2015/11/12/all-mac-store-apps-stopped- working-due-to-expired-security-certificate/) [https://news.ycombinator.com/item?id=10554700](https://news.ycombinator.com/item?id=10554700)

<comment><AUTHOR> Thanks!

</comment></comment></comment></comment><comment><USER7> I got same for 'Download Shuttle'</comment>


What's coming next for Ubuntu Linux? - <AUTHOR> http://www.itworld.com/software/274000/whats-coming-next-ubuntu-linux

<comment><USER2> Look mom, no monitor!</comment>


What Is WebRTC and How Does It Work? - <AUTHOR> https://medium.com/innoarchitech-innovation-architecture-technology/what-is-webrtc-and-how-does-it-work-a9100a74b7e2?utm_source=hackernews&utm_medium=urlsubmit&utm_content=submitlink&utm_campaign=promote

<comment><USER2> Way too many buzzwords: "leverage", "highly disruptive".</comment>


Ask HN: How can we make the ubuntu edge campaign achieve its target? - <AUTHOR>

With only 66 hours left and 20+ million to be raised, can we somehow make the campaign achieve the target? <comment><USER2> Nope. And why would you want to? Even if they deliver on time (which is highly unlikely) there will be comparable phones available. Other phone companies will have seen the campaign and will be aiming to produce competing handsets.

So all you're paying for is exclusivity, which is incredibly shallow.

Technology should be open and equally available to as many as possible. Not an elite hipster club.

EDIT: I just noticed the incredible irony of Canonical making an exclusive platform, wow. Monetise your product with a physical handset sure, great. We understand you need to earn a living off Ubuntu somehow. But don't completely reverse your company philosophy to do it.

<comment><USER3> Can you explain what your edit means? I can't for the life of me figure out how this is a reversal of Canonical's philosophy.

(As near as I can tell, you're either upset that they plan to manufacture a limited number of phones, which makes sense as they are not intending to get into the hardware business long-term and intend this to drive innovation, or because they're using an OS that so far is not on other phones, which is how you enter a market. Neither one seems like some calculated evil to me.)

</comment></comment><comment><USER4> I don't think its going to happen, just too much money in too little time. I think if they really believed in their cause they would have created the phone and just started selling it. Relying on people to pay a large amount of money for a phone they can't have RIGHT NOW seems pretty much set to fail.

</comment><comment><USER5> I'm not a genius but I think the answer to your question is a simple, "contribute $21M".

</comment><comment><USER6> I think the best thing you can to support open source phones do is to get a Firefox OS device. Edge is a nice gimmick, but will likely be a dud, even if its funding goes through.</comment>


U.S. Tells Russia It Won't Torture or Kill Snowden - <AUTHOR> http://www.nytimes.com/2013/07/27/world/europe/edward-snowden.html?_r=0 <comment><USER3> We live in an era where the United States government has to make promises that it won't torture or kill extradited persons.

Let that sink in.

<comment><USER4> Also, solitary and waterboarding aren't considered torture. By the US government.

<comment><USER5> They used to be though. Japanese soldiers were actually hanged for waterboarding Americans in WWII ([http://www.cbsnews.com/stories/2007/11/29/politics/main35546...](http://www.cbsnews.com/stories/2007/11/29/politics/main3554687.shtml)).

</comment></comment></comment><comment><USER6> This would probably be a more valuable reassurance if the US didn't have a very well-known recent history of: 1\. Committing acts widely accepted as being torture within the definition of international agreements to which the US while denying that they are "torture", and 2\. Farming out torture/murder of persons under control of the US to third party states, and 3\. Being caught red-handed misrepresenting everything it thinks it can get away with about the Snowden case.

All of which makes it so that, taken together, no reasonable party could trust: 1\. Any statement made by the US regarding Snowden that comes without external confirmation or securities. 2\. Any commitment of the US not to torture to have any substantive meaning, insofar the US has demonstrated that it has no problem _redefining_ torture to exclude whatever it does. 3\. Any commitment of the US not to torture or kill someone delivered into its power to mean that the US will not cause them to be tortured or killed, insofar as the US has demonstrated that it has no reluctance to render persons under its control for torturing and killing.

That's not to say that I think the US government would torture or kill Snowden, because I don't think that that is likely (for reasons unrelated to any guarantees provided by the US government.) But I do think that the US government's _word_ on that matter, given recent history, is absolutely worthless.

</comment><comment><USER7> They didn't say that he _wouldn 't_ be killed or tortured however. Just that they wouldn't be doing it. Sounds like another case of "least untruthful".

<comment><USER8> Manning wasn't tortured either. Waking someone up every 2 hours with bright light and loud music to check if they are "okay" and alive is not a torture. Having them sleep naked for years without a blanket to cover is not a torture either; they were just worry that he may hang himself.

(I was sarcastic btw)

</comment></comment><comment><USER9> I like how Holder says "Despite the revocation of his passport... Snowden remains a citizen" Holder revoked his passport without trial and yet the U.S. still considers Snowden a citizen [1]? How is this so?

[1]: [http://answers.usa.gov/system/selfservice/selfservice.contro...](http://answers.usa.gov/system/selfservice/selfservice.controller?PARTITION_ID=1&USERTYPE=1&LANGUAGE=en&COUNTRY=us&CONFIGURATION=1012&CMD=VIEW_ARTICLE&ARTICLE_ID=4463)

<comment><USER10> Passports are not the same as citizenship. Many Americans are full citizens and never bothered to apply for a passport in their lives. You were probably passportless until you applied for a passport.

It is really hard for the US government to take away citizenship - <USER2> that only happens to naturalized persons who blatantly lied on their citizenship application. For example, Nazi concentration camp guards in WW2 who hid the role they played there.

<comment><USER4> Taking away your ability to freely move outside your country of citizenship (i.e. your passport) should be just as hard to revoke as your citizenship.

The Supreme Court has upheld the freedom to move state to state [1]; the freedom to move through other countries outside of the US (if you're a US citizen) is an inalienable right as well (with the permission of the hosting countries of course).

[1] [http://en.wikipedia.org/wiki/United_States_v._Guest](http://en.wikipedia.org/wiki/United_States_v._Guest)

<comment><USER10> Passport revocation is pretty routine for suspects facing serious charges though:

[http://travel.state.gov/passport/ppi/info/info_870.html](http://travel.state.gov/passport/ppi/info/info_870.html)

A federal, state or local law enforcement agency may request the denial or revocation of a passport on several regulatory grounds set forth in 22 C.F.R. §§ 51.60, 51.61, and 51.62. The principal law enforcement reasons for passport denial or revocation are an unsealed federal, state, or local felony arrest warrant, a federal or state criminal court order or a condition of parole or probation forbidding departure from the United States (or the jurisdiction of the court), or a request for extradition to or from the United States. Any such request needs to include a copy of the arrest warrant or criminal court order. Please also be advised that all passport applicants are run through various law enforcement and other databases.

<comment><USER9> Thank you for the information. What you have explained is not as clearly stated in the three bullets in the reasons for passport revocations on the site I linked to.

</comment></comment></comment></comment></comment><comment><USER11> Of course not. US doesn't torture. They contract that out to friendly totalitarian regimes. Just a rendition away.

<comment><USER12> 'Enhanced interrogation' is not torture. We would never torture. At dusk. On a Wednesday.

<comment><USER13> Like "terrorism", it's only "torture" when the other guys do it, while we introduce a fresh new euphemism to describe our own actions. The definitions of the words change each time the US acts.

</comment></comment></comment><comment><USER14> Does force feeding count? Solitary confinement and deprivation of sleep? Years of "indefinite detention" until trial?

<comment><USER15> Exactly my first thought on the subject. USA are so good at playing with words and their meanings this days.

</comment></comment><comment><USER16> And so what if they did anyways? What would Russia (or anyone else) do about it? I mean, the US government already blatantly lies to their own citizenry with zero consequence, and our foreign relations can't get much worse than they already are. I highly doubt Russia of all countries has any trust in us in the first place.

They're already torturing people in Gitmo, and Bradley Manning, and nothing is being done about that. Whether or not they said they wouldn't beforehand doesn't make any of that any better.

</comment><comment><USER17> I read the most sinister part of this letter to be:

"We believe these assurances eliminate these asserted grounds for Mr. Snowden's claim that he should be treated as a refugee or granted asylum, temporary or otherwise,"

This seems to be the US setting themselves up to challenge Snowden's standing under international law. Not that we recognize international law, but still.

It seems very sinister to me. "We won't hurt him too bad, therefor his fears aren't legitimate, therefor all you other nations should just send him on home now."

</comment><comment><USER18> What about using brain washing techniques/mind control drugs on him?

</comment><comment><USER19> Unfortunately they haven't said that he'd be tried in the jurisdiction the case should be brought in, Hawaii. That's almost as important as the no death penalty and no torture promise.

Trying him in Virginia, the home of the IC community, is pretty much a guaranteed conviction with the most extreme sentence. It's like trying a patent case in East Texas. Any trial in Virginia is just going to be a kangaroo court.

</comment><comment><USER20> If you take the (possibly extreme) position that I do; namely that the act of violating the oath to support the constitution is an act of treason as well as evidence of deceit, why in the world would anyone give credence to Holder and the administration that supports him? My guess is that if Snowden is foolish enough to leave the highly visible airport surroundings, he will shortly disappear, possibly forever.

</comment><comment><USER21> Oh, that's SUPER reassuring.

Keep Snowden safe, Russia. The US government can't be trusted to do pretty much anything they say.

</comment><comment><USER15> And everyone and his mother already knows that force feeding is not torture.

</comment><comment><USER22> Does not seeking the death penalty preclude death by drone?

</comment><comment><USER23> Define Torture.

<comment><USER24> Jail in the US.

</comment></comment><comment><USER25> ... right away.</comment>


ISIS supporters send death threats to Twitter staff, co-founder Jack Dorsey - <AUTHOR> http://www.theverge.com/2015/3/2/8133133/isis-twitter-death-threats-jack-dorsey

<comment><USER2> This is an old threat that Twitter staff are aware of. Buzzfeed and the sites that link to them are doing Isis' jobs for them by broadcasting the command.

<comment><USER3> You're absolutely correct. _News source uses ISIS uses news source..._ : the former spreads propaganda, the latter finds new stuff to fill the holes between commercials.

We also know that many people have joined ISIS because of such stories of bravado. _theverge_ should know better.

<comment><USER4> That is called media echo-chamber. It is hard work to verify and validate the story and the sources, but its too easy to just refer the other guy in small font and link.

</comment></comment></comment><comment><USER3> Their institution takes _Quran literalism_ to a whole new level, yet ISIS is very hypocritical. Any food, clothes, house, weapon, computer they use/consume is made by their enemy. They're spoiled children who play their worst instincts off as a deeper belief.

<comment><USER5> In all likelihood, they use russian weapons, chinese computers, indian clothes and local food.

Are you expressing the inaccurate belief that everything in the world is made in your country?

What Daesh does is not wrong because of the Quran. Saying it is implicitly allows what they do if they weren't religious fundamentalists.

The biggest victims of Daesh are the countless members of the local population. This ordeal is not about America, and so it does not make Daesh hypocritical; just brutal, gruesome and totalitarian.

<comment><USER6> "Are you expressing the inaccurate belief that everything in the world is made in your country?"

This is a little passive aggressive, don't you think? ISIS' enemy is anyone that embraces western culture. I don't think Red_Tarsius was referring to any single country.

<comment><USER7> Additionally, they make extensive use of Twitter itself.

</comment></comment></comment></comment><comment><USER8> I just cant imagine what sort of upbringing could lead to a mass of people who think that murder and war are the first and best options. This is a religious war but their religion isnt islam, its violence.

<comment><USER9> The religion started in the atmosphere of war. That vibe leaks out into the minds of Muslims of all kinds from moderate to the extremist even if it's indirect.

I recall being taught about the victories of Islamic conquests through the ages starting with the Muslim-Quraysh wars. In Islam, war is seen as a reality of human existence, and as a valid means to deal with perceived injustice, oppression, etc. Finally, martyrdom in Islam guarantees one into paradise...

The problem with Islam is that it's extremely malleable. You can pick and choose your sources, scholars and books and have an Islam of your own. Each one has their side, and accuses the other of taking things out of context, or having an incorrect understanding. Some Muslims make heavy use of the No true Scotsman fallacy.

The former allows one Muslim to basically slide on the scale, from a nominal Muslim to an member of ISIS. You just need someone convincing enough to show you a few prophetic traditions, sound charismatic enough and revive your faith in the religion.

<comment><USER10> >The problem with Islam is that it's extremely malleable. You can pick and choose your sources, scholars and books and have an Islam of your own. Each one has their side, and accuses the other of taking things out of context, or having an incorrect understanding. Some Muslims make heavy use of the No true Scotsman fallacy.

What religions don't have this issue? Using the most popular religion in the US, Christianity has hundreds, if not thousands, of branches that all say they have the "right" version of things, and everyone else is at least slightly wrong.

I'd say it's an argument against any/all religion, really. They can all be devolved into a message of hate and violence.

<comment><USER11> with the small print that according to their respective writings, muslim apostates or non-muslims are to be killed, while christian apostates are to be met with love and kindness (bless thy enemies, turn the other cheek, love thy neighbour, etc)

</comment></comment></comment></comment><comment><USER12> This is the first example I can remember of a "War on a Service". But likely not the last.

</comment><comment><USER13> I would seriously be worried if I were in their shoes after the attacks in Paris.

<comment><USER14> I would not. The Charlie Hebdo attacks were other beer. Plotting an attack on a isolated continent is much harder than in country in which you have 10% of the population willing to at least listen to you.

To organize attack on US soil you need to traffic people trough the border, make them get supplies inside US and deal with the generally more aggressive corp sec in US than in EU.

<comment><USER15> > The Charlie Hebdo attacks were other beer.

Is "other beer" an expression in some language?</comment></comment></comment>


Darma: Sit smart for a healthy body and mind - <AUTHOR> https://www.kickstarter.com/projects/junhao/darma-sit-smart-for-a-healthy-body-and-mind

<comment><USER2> Cool product. Grabbed one at $99.</comment>


PostgreSQL publishes first real benchmark (as fast or faster than MySQL, almost as fast as Oracle) - <AUTHOR> http://blogs.ittoolbox.com/database/soup/archives/postgresql-publishes-first-real-benchmark-17470?ref=

<comment> patrickg-zill About time Postgres gets some more attention. I actively discourage my clients from using MySQL in favor of Postgres.

<comment><USER2> I actively encourage my clients not to engage in database dogma. I recommend MySQL for high-replication and high-connection work and Postgres for reporting systems and financial data. I always offer to buy them copies of both out of my own pocket.

I also recommend using more than one language when it makes sense. In my experience the damage of choosing one technology over all others always seems to be worse than the overhead incurred in using more than one.

<comment> patrickg-zill It is not a question of database dogma, more (for me) that clients depend on my recommendations.

Since it never occurs to them that a database could lose their data, they are not familiar with all the dangers to your data that are "out there".

Foreign key constraints and subselects that work properly, readers never waiting for writers, etc. are all things that most clients don't understand but expect you to.

Do you have clients that hold you responsible for multiple years' worth of content or other data?

Concerning languages, both MySQL and Postgres try to adhere to the same language - SQL.

<comment><USER2> You're basically repeating the standard line in every respect about how Postgres is a "real" database and no one could ever do anything serious with MySQL. That's dogmatic thinking.

I was speaking of using multiple programming languages, when it makes sense. You probably also insist on one "serious" programming language above all, right?

<comment> patrickg-zill Why does it bother you that I recommend Postgres over MySQL?

All else being equal, for new development, Postgres is the better answer - that is not dogma, it is based on experience gained over 8 years and not without a few late nights of fixing something. My clients with an existing code base run whatever they are currently running.

I don't have an opinion on the use of multiple programming languages, the purpose of a database is to reliably _store_ data that (usually) some other programming language uses or produces. It's the reliable storage part that matters.

If you want a cartoon caricature of me, replace "Unix" and "computer" with "Postgres" : <http://static.tabo.aureal.com.pe/pub/img/dilbert-unix.png>

<comment><USER2> _"All else being equal, for new development, Postgres is the better answer..."_

That's very thinly disguised dogma. Whatever the question, Postgres is the answer.

It doesn't bother me though, I'm used to seeing people choose one camp over the other. I just wanted to point out that I use both for different things and it's served me very well. The MySQL vs Postgres discussion itself is unbelievably boring.

</comment></comment></comment></comment></comment></comment><comment><USER3> The article would be better if it included links to the MySQL and Oracle benchmark results.

<comment><USER3> [http://www.spec.org/jAppServer2004/results/jAppServer2004.ht...](http://www.spec.org/jAppServer2004/results/jAppServer2004.html)</comment></comment>


We reviewed over 60 studies about what makes for a dream job - <AUTHOR> https://80000hours.org/career-guide/job-satisfaction/ <comment><USER2> I'm one of the authors of this piece, which was produced by a YC-backed non- profit trying to revolutionise careers advice (80,000 Hours). AMA!

<comment><USER3> I think this is an important area of research and it's great to see you trying to summarize the research in a digestible manner for people to apply but my impression from this article and other material I've read is that there's still a lot more work to do to tease out correlation and causation and translate the research into actionable advice.

For example, assuming that 'Work that helps others' is actually causative (and not that happier people tend to choose that work), what are the identifying characteristics of that type of work? What makes midwifery (from the article) more satisfying than say serving in a restaurant? Both appear to help others. Is it the magnitude of the help? The degree of personal engagement?

How can someone better identify 'Work you're good at'? Again, assuming it is causative (and not that happier people rate their own competency higher), how can someone effectively identify their comparative advantage? Presumably for career choice there is a strong effect of demand vs. supply in skills - I can be 'good' at snowboarding by most people's standards but have no chance of making a career at it. The advice on its own is not very actionable.

The article makes a common conflation of high achieving individuals with work satisfaction and yet the two do not necessarily match up (do we know that Steve Jobs and Einstein were more satisfied with their lives than average?) and these two examples from the article seem to not fit the 'Work that's engaging' criteria of 'Clear tasks, with a clearly defined start and end.' or 'Feedback, so you know how well you're doing.', at least in the short to medium term.

Like I say, I think this type of research is valuable but I find little that is clearly actionable in my own life, with the exception of simple things like 'avoid long commutes' and from elsewhere in the happiness literature 'spend on experiences rather than things'.

<comment><USER4> I'm the lead author of the piece and I agree there's a lot more work to do on these issues. That's why we set up 80,000 Hours.

We address one of your questions in a later article: how to work out what you're good at [https://80000hours.org/career-guide/personal- fit/](https://80000hours.org/career-guide/personal-fit/) (And beyond this, you need to make predictions - I think the book superforecasters is good on what to do there)

</comment></comment></comment><comment><USER5> ObXKCD: [http://xkcd.com/1346/](http://xkcd.com/1346/)

</comment><comment><USER6> I applied for 80k hours for a front-end job (first time I've really applied for a job). Didn't get it but now I see this:

> [http://i.imgur.com/2988oNg.png](http://i.imgur.com/2988oNg.png)

<comment><USER2> OK I think I've fixed this now!

<comment><USER6> Great. Now that I see the full thing, I _am_ using an ad-blocker as you can see in the screenshot (fully loaded and "max security"). However it doesn't hide the pop-up by default. If you actually want to allow for that, maybe you should add the class _advertising_ , _ads_ or similar (:

</comment></comment></comment><comment><USER7> You have to take such studies with a grain of salt.

The most important one that put hacker news on the map was "Working for yourself" is missing from the list. Paul graham in the early days of hacker news wrote great things about miracles happening when people worked for themselves in small teams.

That kind of philosopher leadership has been missing in tech community as a whole. Look at comments and topics discussed on hacker news. These aspiring engineers are talking about how some one else should pay them basic income so they could innovate and many other lame excuses. very sad.

<comment><USER2> Working for yourself will often be fulfilling, because it can provide many of the six things we list that matter:

* Work you're good at * Work that helps others * Engaging work that lets you enter a state of flow (freedom, variety, clear tasks, feedback) * Supportive colleagues * A job that meets your basic needs, like fair pay, short commute and reasonable hours * A job that fits your personal life.

<comment><USER7> Disagree. Working for yourself would provide none of these but allows you to create all/many of these out of your sheer will. These things are not a pre- condition.

<comment><USER2> It doesn't necessarily provide those things certainly. But inasmuch as it makes people fulfilled, it will mostly be because working for yourself is providing those things. :)

<comment><USER7> or there is a simpler explanation. Those 60 studies made assumptions about what a job is and that definition would have excluded working for yourself.

The study would still make perfect sense if you look at job as an employment working for some other employer.

</comment></comment></comment></comment></comment><comment><USER8> Findings unsurprising, and a rather annoying, popup-in-your-face website.

<comment><USER2> No pop-ups --> 10% as many people join our newsletter --> we can't track whether we are having any impact --> no donations --> website disappears.

I don't find the results that surprising, but many people do.

<comment><USER9> Regardless of whether your argument is correct [0], I can't imagine your target audience is more likely to sign up (vs. bounce) when hit with a _second_ pop-up before reading half an article.

[0] e.g. pop-ups --> less tech savy users 'dismiss' popup by signing up --> newsletter unread and/or marked as spam --> can't {accurately} track whether you're having any impact --> etc

<comment><USER2> Yeah you are right, we may be over-doing it. Think we should drop the all- screen one from the first page view when we add a special appeal because of a HN spike? I'll bring that up with the team. :)</comment></comment></comment></comment>


Key-Value Observing Considered Harmful - <AUTHOR> http://khanlou.com/2013/12/kvo-considered-harmful/

<comment><USER3> _> KVO all comes through one method_

Yes, and it's annoying to have a long list of if statements. However, there's a blocks based alternative since iOS4/10.6, and a number of third-party variations.[1]

 _> KVO is string-ly typed_

That's a big reason why libextobjc's @keypath() macro is so popular.[2]

 _> KVO requires you to handle superclasses yourself_

That's a feature, not a bug. If you use observeValueForKeyPath:ofObject:change:context: then you need to call super _just like overriding any other method._ This also gives you the flexibility to selectively decide to override behavior of your own superclasses.

 _> KVO can crash when deregistering_

Only if you deregister twice. And yes, it really sucks that you can accidentally deregister the same key path that a superclass deregisters, resulting in a crash. Much has been written about this issue, and third party libraries address it.[3]

 _> KVO is a pit of failure_

That's a strong and subjective statement. Yes KVO can be frustrating for new developers - no argument there. But it does have its place.

 _> KVO is implicit_

Woah, no one (including Apple) is suggesting that apps use KVO for all of their message passing and dependencies. It has its place, especially for monitoring changes to Apple's APIs or when multiple observers need to monitor the same object (again, that's a feature not a bug).

 _> KVO can cause infinite loops_

Your handler should always avoid triggering the same event that triggered it. That's not unique to KVO.

 _> KVO is the old way_

I remember when Apple introduced it, so I guess that makes me even older! Actually, Apple's KVO is responsible for some of the newest JS libraries. SproutCore borrowed many of KVO's ideas,[4] and you may be familiar with one of SproutCore's notable forks: Ember.js

 _> When is it okay to use KVO?_

Agreed that these are great use cases for KVO. But doesn't this counter the title of the post? It's certainly not "harmful" to use KVO for these.

[1] [https://github.com/search?l=Objective-C&q=kvo&source=cc&type...](https://github.com/search?l=Objective-C&q=kvo&source=cc&type=Repositories&s=stars)

[2] [https://github.com/jspahrsummers/libextobjc/blob/master/exto...](https://github.com/jspahrsummers/libextobjc/blob/master/extobjc/EXTKeyPathCoding.h)

[3] [http://www.mikeash.com/pyblog/friday-qa-2012-03-02-key- value...](http://www.mikeash.com/pyblog/friday-qa-2012-03-02-key-value- observing-done-right-take-2.html)

[4] [http://guides.sproutcore.com/core_concepts_kvo.html](http://guides.sproutcore.com/core_concepts_kvo.html)

</comment><comment><USER4> I disagree with a few points in this article, and can provide clarification on a few others. The clarifications first:

Bindings don't exist in Cocoa Touch because they're either slow (e.g. computed properties like @sum) because they're mostly stateless, or memory intensive because... well, dig into the internals of KVO sometime - there are a huge number of caches to try to keep things fast. It's not because KVO is a bad API. Heck, the KVO side of bindings is never exposed at all.

On the topic of infinite loops, yes, you have to be careful not to change an affecting property within an -observeValue... but it's hardly unknowable what changes will cause a KVO notification. Indeed, it's an isomorphic problem to breaking retain cycles, something every Obj-C programmer has to worry about every day, yes, even with ARC. The information is just stored in a different place, namely +keyPathsForValuesAffecting<Key> methods, rather than in property or ivar declarations. One can create a "weak" notification by removing oneself as an observer in the -observeValue, optionally adding oneself back at the end.

As for disagreements: KVO is not the old way. NSNotificationCenter and the delegate pattern predate KVO. Callback blocks don't, and indeed where possible I'd recommend all of the above over KVO, but it's hardly ancient, and certainly not "the old way". It's just a different way that allows you to watch for changes that doesn't require the designers of an API to have provided hooks for you to do so explicitly.

On its implicitness, I can't agree that it's any more implicit than delegates. The same criticism that you can't command-click in Xcode to follow the code flow applies. Same thing with NSNotifications for that matter. That's kind of the point. If it was all explicit, we wouldn't have the dynamism that all of these mechanisms provide.

Re: "An important thing to note is that KVO will throw an exception and crash our app if we try to remove the same observer twice." This is simply untrue. KVO will throw an exception and crash the app if you try to remove the same _observance_ twice, but an observance is created each time you call -addObserver:.... That is, like retain and release, -addObserver: and -removeObserver: calls need to be balanced. Additionally, the author actually misses a part where KVO really is broken: "[Using a static context pointer per observation] helps to make sure that none of our super- or subclasses can deregister us from being an observer." doesn't actually work. Using -removeObserver:forKeyPath: will happily remove the first observance it comes across (the first that was registered, AFAICT, though this isn't documented), regardless of its context; it's not just a convenience method for -removeObserver:forKeyPath:context: that passes NULL for the last parameter.

Lastly, it seems quite silly to have a unique context for each object and key path per class. If they're going to unique the contexts, you don't need to check objects and key paths. Or, you only need one context per class, and then only if your inheritance tree does include multiple observing classes. On a related note, I think the complaint about having to call super if the superclass implements -observeValue... is ridiculous. This is how any method that might be implemented at multiple levels of an inheritance tree must be called. Same thing with a delegate whose superclass also conforms to that delegate protocol. Or -init. Or -dealloc. Or...

.

All that said, I still generally agree with the conclusions about when to use KVO, although is #3 is just a subset of #1, and I wouldn't have phrased it as the author did (see the first paragraph of disagreement). I'd also add #4: Use KVO when you need the old values as well as the new values of the objects, and/or need to be notified prior to the value changing. NSNotificationCenter and delegates can do the same thing, but at the cost of double the number of methods that need to be written, and you'll have to store the state yourself if you need the old value at the same time as the new value. That's a lot of code that gets abstracted away by KVO, particularly if you're observing multiple key paths on the same object and need all their old and new values. Code you don't have to write is code you don't have to debug.

</comment><comment><USER5> "When trying to be informed of changes on a class that you don't own, such as one of Apple's classes. A classic case of this is observing the contentSize of a table view. This information can't be gotten in any other way."

I never like this - platform holders ramming their crap down your throat basically...

A broader version of this applies to Objective-C as a whole for me... I have to use it to interact with iOS or OS X in the intended way. There is no other reason for me to want to use it - the language features are not helpful for me, the ref counting is dangerous and the performance is horrendous (that last one is a design tradeoff to be fair - but I don't want to pay for what I don't use).

<comment><USER6> "the ref counting is dangerous"

hmm?

<comment><USER5> i consider it dangerous because it requires more manual (and error-prone) work than just doing allocations/deallocations yourself.

i can see the theoretical justification but I am yet to use a system where:

* i do not need to decrement ref counts manually in various situations or by default

* i do not get memory leaks resulting from the above ambiguity

* its easy to debug a leak (because I need to hunt for the right place to decrement the reference count, not just slap it in wherever i want)

coupled with the performance overhead of refcounting i see no benefit to it in practice - as nice as the theoretical idea is. this could be personal experience though - i can easily say that i've had more memory leaks from not understanding a ref counted library than when i manage my own memory - <USER2> that might not be the general case.

<comment><USER6> yeah, the problem with these kinds of discussions is that each of us has had their opinion coloured by their different experiences of software.

Overall, my experience of ref counting as implemented by the Apple frameworks has been very positive indeed.

My experience of ref counting in other contexts/frameworks has been patchy, usually depending upon the quality of the developers responsible for it.

The thing I really do like about ref counting is that it is deterministic, unlike other approaches, ie garbage collection.

</comment></comment></comment></comment><comment><USER7> Just use Reactive Cocoa.</comment>


Gabe Newell invests in bizarre cooking startup, has cameo in ad - <AUTHOR> http://www.eurogamer.net/articles/2015-11-25-gabe-newell-invests-bizarre-new-cooking-startup-stealth-half-life-article <comment><USER2> I'm not sure Sous Vide counts as bizarre, it's pretty common in very high end cooking because you can have totally predictable results and everything kept perfectly cooked in windows of hours rather than minutes.</comment>