Why I Turned In My iPhone and Went Android - <AUTHOR> http://blog.louisgray.com/2010/07/why-i-turned-in-my-iphone-and-went.html <comment><USER3> Something along the lines of, "Choice only matters if _your_ choice is one of the choices," applies. Apple wasn't offering him his choice so he bought an Android. Yet he still acknowledges that the iPhone 4 may be a better phone.

His four main points are: openness, momentum, cloud, and capability. Android is definitely more open than iOS but Android's power depends on non-open software/services (Google). Android definitely has momentum but at their current rate it will still take years to match the iPhone's share of the market. Also, the Android app economy appears to be much weaker due to a cultural issue (rather than critical-mass issue). Cloud is a bit misleading as you can integrate Google's services with an iPhone almost as well as Android and iOS/MobileMe probably matches Android/Google albeit with a increase in cost and perhaps privacy. Capability is balanced by lack of usability.

I still think people are excusing flaws in Android due to frustration with Apple, hoping for "open" to win, etc.

I recently tried to switch to the Nokia N900 (Maemo OS, soon MeeGo OS) but found its capability did not balance its lack of usability.

<comment><USER4> >His four main points are: openness...

Actually, openness is not one of his points. He mentions it in passing only.

>Android definitely has momentum but at their current rate it will still take years to match the iPhone's share of the market.

From February to May of this year, Android went from 9% to 13% of the market. In that same time, the iPhone went from 25.4% to 24.4%. At that rate, it will take about six months for Android to match the iPhone. Google is seeing almost 5 million activations a month, and growing exponentially.

<comment><USER5> This is why statistics are always dangerous in the hands of, well, anyone :)

Don't forget that Feb-May is the maximum time from a new iPhone release. This quarter saw an actual release so I wouldn't be surprised to see them snatch back the 1%. More importantly you can't extrapolate from just the one quarters figures :) Android sales could trail off or people could end up sending them back in high numbers after a few months etc.

Also, Android is offered on a wider array of phones; so it is reasonable that as it gains popularity it will enroach into the smartphone market. It will be interesting to see this quarters figures; I suspect Android will grow but so will Apple.

As pointed out, the more important metric is profitability; and currently Apple have that in bucket loads.

(not that Android is doing badly, but it is a bit further behind, say 18 months, than people tend to suggest)

<comment><USER4> There are also a lot of high-end Android phones that have come out in the last two months, and coming out soon. In the end, this discussion doesn't really matter. Obviously, nobody knows the future.

I also realize that these numbers only represent one quarter, but if you look at the previous quarters, you'll see that Android is experiencing steady growth. I have no doubt that the iPhone 4 will be a boon to Apple's numbers. We only have to wait another three months to find out! :)

</comment></comment></comment></comment><comment><USER5> The one thing that still keeps me from Android is that the iPhone, in my experience (and I have used both extensively), is a better phone. As in for actual calls and texts :)

I predominately use my phone for that (calls, texts, email, internet) and apps are only a minor benefit (I use them infrequently).

At some time in the next 2 or 3 years I will change to an Android handset - the OS is improving no end and once the phone functionality is better it will be a no brainer.

EDIT: just to reiterate (for the downvoter...) _I_ think the iPhone is a better phone functionality. I know others prefer Android - it's a personal thing.

<comment><USER6> I'd say just for the network alone the Android is a better _phone_. Texting capabilities seem about the same with my old iPhone and my Droid. I haven't tried iOS4.

<comment><USER5> Ah, yeh; one advantage to living in the UK is that the iPhone is on alternative networks.

If I were in the states I expect I would be on Android already!

</comment></comment></comment><comment><USER7> The big problem Android has is leaving people behind. It turns out v1.6 is required just to use Kobo's eBook reading software. What of all those v1.5 devices still out there? SOL! Some people can say, eh, this is the early adopter problem, except these are phones being sold to everyday people, not techies.

<comment><USER8> There are still 1.5 devices out there? Like what?

<comment><USER7> I don't keep track of Android, so I can only cite the two I've come across in my own experience. First, the Archos 7 Home Tablet. Second -- and this is a major hurt -- the Motorola i1 phone, which is on Sprint and prepay Boost Mobile. That's a phone being pushed hard to everyday people and can disappoint them if they want Kobo, for example.

</comment></comment></comment><comment><USER9> Wow, same stuff here: [http://ifesdjeen.tumblr.com/post/393020309/why-i- prefer-andr...](http://ifesdjeen.tumblr.com/post/393020309/why-i-prefer- android-over-iphone-updated-froyo)

</comment><comment><USER10> I know a few people who did that primarily on principle. They all regret it today, android just isn't anywhere close in the long run( their words not mine)

I have both iPhone and android before you go all fanboy on me.

<comment><USER11> Count me in the opposite camp, then. I don't regret my Nexus One at all - it's far superior to iPhone for my use case.

<comment><USER10> In what perspective is it superior? I have a nexus one too I really fail to see what is better about it.

<comment><USER12> Disclaimer: This is for my experience only:

\- Tethering. I fly frequently, so sitting in the airport with a free wifi connection is nice.

\- Navigation. Nav is just that much nicer than directions.

\- GVoice integration. I'm a big fan free texts and transcribed voicemails.

\- Cost. My total bill, including insurance, is $75/month, with 5 numbers of unlimited calls. I probably make 600-800 minutes worth of calls/month. I only call 4 people with any regularity, so T-Mobile's plan really works well for me.

\- Webserver. I found a built-in webserver, so I can pull photos/etc. off my phone even if I don't have my USB. There are other ways to do this, but it suits me particularly well.

\- Locale. Changes my call, wifi, ringer, and 10 other things based on my location, time of day, and other pieces of context.

\- Swype. Best smartphone keyboard I've seen (admittedly beta, so not freely available)

Again, these are all things I enjoy, not objective arguments for the superiority of Android. But, I can't get them on iPhone, and the list of things that would be relevant to me on iPhone is somewhat smaller.

<comment><USER13> > Webserver. I found a built-in webserver, so I can pull photos/etc. off my > phone even if I don't have my USB. There are other ways to do this, but it > suits me particularly well.

I had no idea this kind of functionality existed. As an iPhone owner, I'm envious.

I'm curious about your experience with Swype. I've read a little about it and I'm wondering: do you think Swype obsoletes the traditional advantage hardware keyboards have over software ones?

<comment><USER12> I love Swype. It's unclear to me that I'm actually faster at this point, but I downloaded a speed test app -- I clocked myself at 47 wpm in one run, 100% accuracy. Cherry-picking the best number, to be sure, but still.

More importantly, it felt like the switch from button-mashing to T9. Swype is the way typing on a touchscreen should work: gestures that know what you want. So many of the brilliant idioms popularized by the iPhone (pinch zoom, left/right swipe to get between screens) are, in my opinion, why touch screens work at all for a phone. Buttons are unsatisfying due to the lack of tactile feedback; gestures feel natural and expressive. Given all that, making gestures the way you enter text makes me that much happier using the phone for typing at all.

To answer your question: Swype is in no way a replacement for a traditional keyboard. It's a language entry tool, and it's as useless as the stock iPhone/Android keyboard for things like keyboard shortcuts and arbitrary strings. As far as I can tell, I'll never move to a touchscreen keyboard for regular work because it's such an efficient interaction tool (if you live in tools like emacs/vim/command line like me). Swype actually limits the overall universe of your input[1], but it makes the common mode of language very easy.

Short answer: no, Swype doesn't try or succeed in replacing hardware keyboards.

Now that you've got me thinking about it, though, a full-sized Swype keyboard set up with better modified key support and a dictionary that included keyboard shortcuts in the app you were working in would be pretty great. Take vim: all those 2-4 letter combinations you type all the time would be available to you, and you could apply heuristics based on your document to help fill in more free-form keys like find-replace strings. You could even find ways to structure the shortcuts around easy directions, essentially re- inventing keyboard shortcuts as well-placed single swipes of a finger. Somebody with more time than I have now could work that into a neat proof of concept.

[1]I mean, you can still use it like the stock keyboard, but that's not the kind of interaction I'm talking about.

<comment><USER14> Also thought I would mention SlideIT, which is a replacement keyboard similar to Swype and is available already for Windows Mobile Symbian and Android as a free trial and a paid app. <http://www.youtube.com/watch?v=WRkRaoIw8Io>

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> His fundamental argument is logically flawed on a very basic level. It's simply insane to think that an ecosystem that has been operating in a certain manner for its entire existence will suddenly change directions and begin operating in a massively different manner. It's not going to happen. Betting on a platform that may in the future become awesome instead of voting on a phone that you admittedly think might be the best phone on the market is as crazy as betting on a horse that looks like it has the potential to win instead of the horse that is winning. It just doesn't make any sense.

There are many legitimate reasons to switch from iPhone to Android. He hasn't convinced me this is one of them.

<comment><USER13> > It's simply insane to think that an ecosystem that has been operating in a > certain manner for its entire existence will suddenly change directions and > begin operating in a massively different manner.

Are you talking about the future of the Android market?Continued growth is hardly operating in a "massively different manner." Expecting something as fluid as a marketplace not to change is far more unreasonable than expecting change.

> Betting on a platform that may in the future become awesome instead of > voting on a phone that you admittedly think might be the best phone on the > market is as crazy as betting on a horse that looks like it has the > potential to win instead of the horse that is winning.

The author thinks that the iPhone might be the best "overall", but that Android is a better fit for him personally. Your horse analogy doesn't make a whole lot of sense, either.

Consider the next two years (typical smartphone lifespan) a horse race. Right now, Apple's horse is ahead, but Google's horse, while taking longer to accelerate, is now moving faster than Apple's horse. Which horse do you bet on?

</comment></comment><comment><USER16> tl;dr the same story as all the other iphone -> android stories.

</comment><comment><USER8> Maybe this is unfair, but it reminds me of the people who boycott buying gas from local BP stations to protest the oil spill.

<comment><USER11> I think you really need to explain that. There is simultaneously nothing wrong with boycotting BP (even though it should lead to lower gas prices for those who don't boycott, those who do boycott may sleep better at night) - <USER2> similarly nothing wrong with believing that Android has more momentum than Apple presently, so that it's worth betting on.

And even with nothing wrong with either actions, I don't see the connection. The man isn't boycotting Apple because he thinks Apple is hurting the planet.

<comment><USER17> Apparently BP sold the rights to their name to local gas stations, thus boycotting them really does nothing to hurt BP.

<comment><USER18> They also have a contract to buy their gasoline, which is part of the reason they are currently bailing out those local gas stations.

[http://www.cnbc.com/id/38000963/BP_to_Bail_Out_Own_Brand_Nam...](http://www.cnbc.com/id/38000963/BP_to_Bail_Out_Own_Brand_Name_Gas_Stations)</comment></comment></comment></comment>


Show HN: a social site designed to manage multiple groups - <AUTHOR> http://www.circleriot.com/signup/hackernews

<comment><AUTHOR> About a month ago, there was a post here on hacker news about how Google was potentially working on a social networking site based around your circles. Turns out that it was just a rumor and that Google has no intention on working on such a site. I really liked the idea and it was something that i had personally been waiting for. Since Google had abandoned circles (or the idea of it at least) i then entertained the thought of rolling one out for me and my friends. So I started digging around on the subject and found Paul Adam's presentation "The real life social network" [http://www.slideshare.net/padday/the-real-life-social- networ...](http://www.slideshare.net/padday/the-real-life-social-network-v2) and became fully inspired to create CircleRiot. One fun month later of just coding; i rolled out CircleRiot for me and my friends to enjoy. Needless to say they loved it. So now I thought i'd share this with hacker news hoping that you guys will enjoy it as well as we did. So enjoy! Feel free to leave feedback. I'm anxious to hear what you guys think of this.

Btw: this site is invites only. If you'd like to invite your friends, please send them the invite link that is created with your account. Thank you!

<comment><USER3> I wanted to sign up but my name was rejected as invalid ("Barrère") - <USER2> likely because of the accent in it; you may want to fix that :)

<comment><AUTHOR> I'll look into it :)

</comment></comment></comment><comment><USER4> I checked it out, and didn't end up signing up because I have no idea what it actually does.

I know you say it allows you to put people into circle, but how does it do that? Does it work with existing social networks, or is it an entirely new one that I would have to get my friends to use in order to take advantage of the circles?

It would probably be more useful at first to integrate with existing social networks because the only my techie friends would signup for a site like this. So in a way it's self organizing.

</comment><comment><USER5> I agree with earlier comments that some more info before signing up would be good. I finally found the "About" link, that's a start. The same sparse info is given if you click on an invitation link.

I think the idea is promising but there are still many usability issues (or bugs). I managed to create a circle, invited a "friend" and added said friend to the circle. No idea, how said friend is supposed to know of that circle or if it is only implicit, i.e. people would never know why they receive a certain status update from somebody? I could not find out because after I finally found the "Logout" link I had forgotten my password, and there seems to be no password recovery option.

After logging out, direct to Login page, not Signup page?

It seems circleriot offers very little at this point and to use what's there you need way too many clicks. I don't think this is a MVP yet but I know many people who are not comfortable using facebook or twitter because they don't want to share everything with everybody (or even want to be discoverd by random people) so I think your idea has potential. Good luck!

</comment><comment><USER6> I didn't sign up, but I'll give you feedback.

Your main competitor in my eyes is Facebook. The "circles" you promote seem similar to "friend lists," an underemphasized but existant feature on FB. I can publish content to only certain lists with a few clicks. It's kludgy but doable. I manage only one list on Facebook because that's all the granularity of privacy I need. Most people care less than I do, so I don't see a significant need.

Cool design, but the text on the infographic seems off (perhaps it should be actual text and not part of the image). Your about us page is not terribly long yet still wrought with syntax, grammar, and word usage mistakes.

</comment><comment><USER7> Site needs to introduce itself with a 30 second elevator pitch. Better yet, a 10 second one.

And as others mentioned, screenshots please.

<comment><AUTHOR> Sure a screenshot I can do. And update will come shortly :)

</comment></comment><comment><USER8> Screenshots please.

<comment><AUTHOR> I'll make and update today to include screenshots on the sign up page.

</comment></comment><comment><USER9> The graphic on the about page is not correct because parts of groups can overlap as well. For example, some of my surfing buddies can be my closest friends.

<comment><AUTHOR> Overlapping circles is a feature in the works ;)

</comment></comment><comment><USER10> I wanted to give some positive feedback since the comments thus far seem negative. The design is fantastic, and I even bookmarked it under examples for my future designs. The logo is incredibly clever and meaningful, something you don't usually see. As a detailed suggestion, I'd keep the font in the text fields consistent with the rest of the site, e.g. use Arial like everywhere else instead of Lucida Grande. I'm guessing you're using the Blueprint CSS framework because it forces the styling of text fields to Lucida despite body font declaration.

<comment><AUTHOR> Thanks, though some of the comments here are negative, they are still very helpful. Also, the CSS framework did start with blueprint but as the application progresses, so did the CSS and markup.

</comment></comment><comment><USER11> Design is very sleek. I question though why "add friends" is located on the top nav bar; seems better suited to the side panel.

</comment><comment><USER12> I signed up. It's looks well. I'm not in any rush to use it though since Facebook offers this exact functionality.

</comment><comment><USER13> Love the idea, but how is this different than Facebook Lists (Other than the fact that no one uses them)?

<comment><AUTHOR> Thank you. Creating lists in Facebook only let's you filter news feed but doesn't allow you to post to them. With circles, not only can you filter out to just see friends in that circle but you can also post updates that will only be seen by them.

<comment><USER14> Not true:

<http://min.us/lnx0gs> is me posting a status update that can only be seen by a list of people that I've created.

<comment><AUTHOR> Actually, I have tested this myself and have found that changing the privacy settings (like the screenshot you've provided) does not in fact apply towards the list. It's for all wall posts. For circleriot, all that you would need to do is add friends into your circles and that would be the end of it as far as maintaining your circles. Anything that you share within a circle will ONLY be viewed by the users who you choose.

<comment><USER14> I'm not modifying a list there, I'm modifying the privacy settings of a wall post I'm in the process of making. When making a wall post, there's a little padlock and from selecting the customize option, you can target an update to a list. In this specific case, See Everything is a list I've created. Adding people to that list after this update has already been posted does exactly what you describe, it allows me to maintain just that list and they sell all previous and future things that I limit to it. While I don't use this much for status updates, I use it heavily for restricting photo albums.

It's also not for all wall posts unless you check the box at the bottom of that dialog setting it as the default.

</comment></comment></comment></comment></comment><comment><USER15> It was difficult to find the logout link. It needs to be more prominent.

</comment><comment><USER16> The link doesn't work anymore - says "invalid invite id"?

</comment><comment><USER17> screenshots!!! ,screenshots!! Did i say screenshots!!!!...Because right now i dont know how the F the site works.</comment>


The Honest $10,000 SPAM - <AUTHOR> http://www.swiss-miss.com/2009/12/mother-trucker.html

<comment><USER2> This is such a terrible idea.

If this gets any sort of publicity at all, people will be even more likely to hop at e-mail scams than they already are.

The really frustrating part is that there's no good way to fight it; raise hell, and they get publicity, thus making the problem worse. Ugh.

<comment><USER3> FYI, this is know as the Streisand effect ( <http://en.wikipedia.org/wiki/Streisand_effect> )

</comment></comment><comment><USER4> I bet this is a viral marketing campaign for Forward Nigeria.</comment>


Real Dev – a CLI based way to hire engineers - <AUTHOR> https://real.dev <comment><USER2> In the light of recent topics about interviews, I do think this website can be a positive effort towards the right direction.

A lot of the challenges here is really close to what we do as developers.

</comment><comment><AUTHOR> As an engineer, instead of preparing and solving algorithm puzzles. I really like this way of recruiting.</comment>


8 Alternatives to College - I wish I had done these - <AUTHOR> http://www.jamesaltucher.com/2011/01/8-alternatives-to-college/

<comment><USER2> Disagree. When did people lose faith in education? I learned significantly during college in many aspects - sciences, math, politics, philosophy. This occurred both in classes and outside - but usually within the college environment (So I attribute that learning to college itself). Does going to college preclude writing a book or travelling the world? Fuck no. In fact I believe it encourages it. When smart people congregate great things happen.

Maybe the poor taste for college comes from the fact that some people don't use the experience to it's fullest - but guess what? They wouldn't have done that with any of those other techniques either.

<comment><USER3> > _Disagree. When did people lose faith in education?_

Seeing people use the single word "disagree" as sentence is nearly enough to make anyone lose faith!

Seriously, though, the entire article is about education. It's a common mistake to confuse schooling for education, but the two aren't as correlated as some would like to assume. I don't say this as a bitter person who never went. On the contrary, I went twice. First at a very young age, majoring in mathematics, and then again at the normal age majoring in a foreign language. Both times I was able to learn some, but neither were as productive as self study had been outside of schooling.

I regularly meet people who have spent many years formally studying a foreign language and yet struggle to understand television in that language. It's also not that uncommon to find skilled programmers, artists or writers who have not studied their field at a university.

Another common argument for schooling is that it makes well rounded people who have a basic competence in all the most fundamental fields. Sadly, this isn't true either. Most college grads are still pretty shaky on high school math. The same is true for writing.

I'm not saying that schooling is useless. It _can_ be an excellent tool for education, particularly in some fields. However, it isn't the _only_ way of education.</comment></comment>


Ask HN: Should a back end Engineer be able to answer what makes an API RESTful? - <AUTHOR> I've been asking this very simple question to many people I've interviewed for a backend position. In my mind this is a warm up question and I never expect the full definition, I'm happy if they just tell me about http verbs and say the keyword "stateless". Unfortunately so many times I had people not being able to tell me anything about it, do you think I should reconsider this question, or is it a fare one? <comment><USER2> Of course they should. Back-end developers usually build APIs. Hell, I'm a front-end developer and I can easily answer that question. The only thing I can think of is that the people you are interviewing do not have web experience. Are they fresh out of university? I've met plenty of CS students who know all the algorithms and everything about C / C++ but nothing about the web.

<comment><AUTHOR> That is understandable and I'm not a back end Engineer either. But I had an interview with a back end Engineer with like six years of experience. And I really thought that a simple question like this would make them feel at ease because they would know it right away.

<comment><USER3> What types of responses do you get?

<comment><AUTHOR> \- what do you mean? \- CRUD? \- GET, POST, PUT, DELETE

(Question marks are part of the answers, now with the third answer I'm usually fairly happy to begin with and I go into other questions, but that should be the bare minimum).

I've been asked this question as well when interviewing for a frontend position and I just mentioned a few key points and they were very happy about it. But if you're applying for a backend position shouldn't you know more?

</comment></comment></comment></comment><comment><USER4> According to the person that invented the term "REST", APIs must be hypermedia driven. It goes without saying his definition should outweigh anyone else's. [http://roy.gbiv.com/untangled/2008/rest-apis-must-be- hyperte...](http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext- driven)

Anyone that says CRUD or lists HTTP verbs is simply wrong. The term is often abused, and I find that rather disappointing.

<comment><AUTHOR> Your disappointment is absolutely legitimate. I feel like this term has then be abused a lot, in many write ups as well. I guess from me too. Thanks for pointing it out, I'll make sure to use a different approach in the future that can lead to a better conversation with the interviewee.

</comment></comment><comment><USER5> I'm an embedded hardware/software developer with only a lightweight exposure to web programming, and I feel that I could answer that question adequately.

I'd be curious to hear the types of responses you're actually getting. I've had to do a lot of interviewing in my career and I've encountered "simple" questions that throw nervous candidates off of their game simply because of a misunderstanding. Sometimes the simplest questions can be the worst because the candidates expect something harder and overthink it. So, you might play with the phrasing a bit, or have different ways of asking it in case they seem to freeze up. For example, "could you name and describe some of the defining properties of a REST API?" or "could you tell me what makes a REST API different from a [SOAP, etc.--pick your favorite alternative] API?"

That said, I would expect a reasonably bright, experienced candidate to understand what you're asking fairly quickly. If you have to re-phrase it 3 times and they're still stuck, they're probably not a good fit.

<comment><AUTHOR> Thanks for your great input! Multiple times the only answer I got was "CRUD", without any explanation. Which from a certain perspective it relates to REST but from an experienced engineer is expected a little more, nothing specific just anything really.

<comment><USER5> I think people in this thread are getting a little hung up on the fact that there might not be a clear-cut or widely-accepted definition of "REST". And, sure, if you're only passing people who happen to mention the exact keywords you have in mind, then I'd say your interviewing methodology is flawed.

But I don't think that's what you're doing. I think you're hoping to spark a conversation about what REST is and you've given us a few keywords here as examples of what you might expect to come up in this conversation. And this seems perfectly reasonable to me. I would expect that an engineer with relevant experience and an inkling of insightfulness and professional curiosity would be able to hold such a conversation.

</comment></comment></comment><comment><USER6> I've seen so many arguments over what is and isn't really REST, I could see this feeling like a minefield type question.

I can see that making it hard to answer.

Quick Google hits on the matter:

[https://api2cart.com/api-technology/what-rest-api-really- is](https://api2cart.com/api-technology/what-rest-api-really-is)

[https://www.infoq.com/news/2016/07/microsoft-rest- api/](https://www.infoq.com/news/2016/07/microsoft-rest-api/)

[https://stackoverflow.com/questions/3408191/is-the- twitter-a...](https://stackoverflow.com/questions/3408191/is-the-twitter-api- really-restful)

<comment><USER7> It's CORBA but with limited verbs.

Corba, soap, soa, micro services, rest, ejb's. It's amazing how many times the industry can reinvent RPCs.

</comment></comment><comment><USER8> No. Anything that can be gleaned from a wiki search, but adds little value to product delivery is useless.

Maybe you can ask the benefits of statelessness, and if the candidates know get and put, which one they'd choose and why.

<comment><AUTHOR> That's great input thank you, I like your approach much better and it still provides freedom in the answer.

</comment></comment><comment><USER9> But, REST is a protocol agnostic architecture hat has nothing to do with HTTP verbs, so if your minimum standard is mentioning HTTP verbs, there's a problem...

<comment><AUTHOR> I see your point. My intention is mostly to spark a conversation but I'm guessing this approach might not be the best. What would you think is a decent question that allows enough freedom in the answer? Unfortunately there's seems to be a lot of confusion about what an answer to my question should be like, not only in this thread but on the web in general. It almost feels like the definition of REST or its idea has been re formulated over the years from the original thesis work. Thanks again for your input!

<comment><USER9> I don't think asking about REST is a bad question and it's definitely a good inroads to conversation; you should just be aware of both the original work and the variety of different understandings so that you can make good use of that conversation and recognize that skilled candidates are likely to have differing ideas about REST.

<comment><AUTHOR> I agree with you but my concern is coming from the fact that a lot of people don't have an opinion or idea about it. I understand that there could be different visions, especially different from mine. I'm ok with any opinion in Regards of REST but I guess what I'm trying to understand from this thread is if a backend engineer should have a minimal formulated idea about REST ( which can align with any of the visions we can find with a simple web search), or if it doesn't matter at all. Is it fair to ask this question and expect some sort of vision about REST from an experienced engineer, or should I try to make a more specific question to avoid this confusion altogether?

No matter what, if you're an experienced back end Engineer shouldn't you be able to go over this question without too much trouble or hesitation? Shouldn't you have explored this topic before? Is this a flawed or wrong assumption?

Sorry for the long comment, I'm really appreciating you helping me making this more clear.

</comment></comment></comment></comment><comment><USER10> If you ask 20 'experts' what REST is you will get 20 different answers with surprisingly little overlap.

You are basically asking them to tell you what your personal definition of REST is. You trying to hire psychics?

<comment><AUTHOR> It's not a personal definition I'm looking for, I'm pretty sure all of those experts would mention at least once "stateless". And to be honest I would be happy with that, I would just like to get any answer and if it makes sense I'd be ok with that. I'd like to get something reasonable I'm not asking for the Stars.

<comment><USER6> Have a look at the three links in my comment below. Despite one being entitled "what-rest-api-really-is", pressing Control-F and typing "stateless" doesn't give you a hit.</comment></comment></comment>


Asterisk 17 - <AUTHOR> https://email@example.com/msg00745.html <comment><USER3> It's funny to me to see "was cool" and "amazing this is still alive", because I absolutely love Asterisk. I cut my teeth building Freepbx boxes at a small/mid business voip provider in college before moving on to a different field.

To give an idea why I think it is so cool, my podcast offers neat things to folks who call in to leave a voicemail. You can listen to entire podcast episodes, explore a crude phone sound "museum", and if you're a subscriber to the podcast you are given the password to our party line, where you can talk to our hosts and other subscribers. I'm also building a choose your own adventure type game on our phone system using IVRs and things for our top tier subscribers to play.

We're not a phone-centric podcast, but it's super easy supplemental content to provide folks for cheap. It's also currently running in the raspberrypi specific release [http://www.raspberry-asterisk.org/](http://www.raspberry- asterisk.org/)

There are other folks who absolutely rely on Asterisk for their shows, some that have been around forever, like the Phone Losers of America Snow Plow Show.

<comment><USER4> I use Asterisk to tie a bunch of my shit together. I even have little burner phones that can do all sorts of cool things thanks to modern SIMs and VoIP tech.

What's your podcast? I'll bookmark it for later.

<comment><USER3> That's awesome. I've been toying with the idea of setting up things like that. My next little project is setting up sms support so folks can text in.

My podcast is Accidentally Fasting. Again, not related to tech at all, but I get to play around with this stuff since it's such an open format. Thanks for checking us out!

[https://podcasts.apple.com/us/podcast/accidentally- fasting/i...](https://podcasts.apple.com/us/podcast/accidentally- fasting/id1448616485) [https://www.stitcher.com/podcast/accidentally- fasting](https://www.stitcher.com/podcast/accidentally-fasting)

</comment></comment></comment><comment><USER5> It's amazing this project is still alive and kicking. Back in the day, early 2000s, I was employed by Takeaway.com to automate a large part of their outbound callcenter work (after faxing an order for a Pizza, sometimes an error occurred due to paper jam etc and our callcenter had to verify the order arrived).

As this was way before the day of Twilio, Asterisk allowed us to completely automate that process, thus reducing the work of our callcenter tremendously. I can only assume they use a service like Twilio for this nowadays, but they were fun times, it allowed us to save incredible amounts of money, and is a good example of how opensource software helps small businesses in their early phase.

<comment><USER6> > It's amazing this project is still alive and kicking.

It's not really amazing. It's the OpenWRT of phone systems. There are lots of commercial PABX systems out there that are Asterisk with a skin. VOIP providers often use if for instance.

It's "dial plan", which I guess was originally a list of phone number patterns mapping to instructions one how to handle them, grew into a fully fledged but absolutely horrid language, complete with function calls, variables, and macros and threads of execution. The addition of IAX, which is effectively a protocol that lets a dial plan running in one copy of Asterisk invoke functions in another dial plan running in another copy let you build distributed PABX's.

From a computer science language design perspective the this conglomerate of organically added features is truly ghastly. But that doesn't matter. What matters is it does allow you to build amazingly complex that can deliver any feature you care to name. I've built systems that with over 20 instances of Asterisk, most with no external SIP lines of their own, that to the users functions like a single PABX in the cloud. All the calls are logged to a central place so the organisation can track who is doing what. None of this requires stepping outside of Asterisk provides in the box.

When you have a system that powerful and flexible, and yet bloody horrible to configure, it's not surprising lots of 3rd parties base their own products on it. I have absolutely no doubt those 3rd parties would not let Asterisk die. They must know, understand and appreciate the power of the open source model, so if the current project died some of them would stand up and fork a replacement.

</comment></comment><comment><USER7> Like many of the commenters I heavily used asterisk 10 years ago. Seeing comments like "can't believe it's still around" leads me to believe something better came along. Did something better come along? I'd like to play around with something new. Ps - still running my home PBX on Asterisk/FreePBX.

<comment><USER8> Phones have evolved to the point where we no longer have to make phone calls, we can instead use them to send tiny letters to each other.

Nobody I know, and maybe this is self-selection, _likes_ making phone calls. Nobody I know likes receiving phone calls. In fact, at home I never even though about hooking up a phone when I moved 5 years ago. At work, when we moved offices 3 years ago, we never even hooked up the PBX.

The number one voice use I have for my cell phone is the kids' school: 3-4 times a week, one of their computers calls and usually leaves me a voicemail, which Google (badly, but good enough) translates to text. In short: They are sending me voice SMSes. :-)

I loved Asterisk 20 years ago. It was insanely cool stuff. But I mostly live in a different world now.

<comment><USER9> I think this is definitely a bit of self-selection.

I find phone calls are still better for conducting _complex_ business - <USER2> everything can (or should) be scripted using a form, and a phone call sometimes is much more efficient than chat or email.

Video chat would be even better in some cases, but there's no standardized infrastructure for this. And even then, outside a corporate environment that has dedicated video conferencing rooms on both ends of the call, a phone call is often simpler.

</comment></comment></comment><comment><USER10> If anyone wants to play around with VoIP, FreePBX is a Linux distro that has packaged things up nicely for this purpose:

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

The guy who runs Crosstalk Solutions has a good YT channel on VoIP (not affiliated), amongst other tech-y stuff:

* [https://www.youtube.com/channel/UCVS6ejD9NLZvjsvhcbiDzjw](https://www.youtube.com/channel/UCVS6ejD9NLZvjsvhcbiDzjw)

<comment><USER11> +1 for FreePBX. No affiliation, just a happy user.

Fantastically easy to set up a PBX at home in under an hour, with no prior Asterisk experience.

<comment><USER12> Definitely. FreePBX was an amazing way to get a fully featured PBX with very little time investment.

When I finally wanted to ditch the GUI and get to a bare-bones Asterisk years later, the concepts carried over. The hardest part was tuning the very full- featured default config down to only the features I needed for a simple home PBX! I probably only retained 5% of the modules and config files that were default enabled

</comment></comment></comment><comment><USER13> Asterisk 17 is not an LTS release, which means it won't receive backported security fixes when 18 is out. The latest LTS release is Asterisk 16.

</comment><comment><USER14> Asterisk was amazing fun, in one place we had it hooked up to a big chunk of Python -- everything driven by a program connected to the manager API, with events percolating through to a pre-websocket, pre-AJAX ColdFusion app (we used long polling, I think) that put up a popup with the customer's info as your extension rang. The preferred extension to ring was pulled out of the customer's call history, so they'd always get the same agent if possible.

For another customer it was a similar deal, only this time it was to glue an old school call center PBX system to Asterisk for reasons I can no longer remember. The PBX had its own management interface, so again a Python app connected to both interfaces and figured out call identities on both sides, which were dumped into a MySQL database for (I think) the web app used by the call center staff.

I talked to those guys a few years later and it was all still running. He told me it reliably hung once a week but he never bothered to report it because a shell script automatically restarted it in that case. Resourceful sysadmins! Good times

</comment><comment><USER15> Brings back memories of debugging by making a phone call to hit my breakpoints.

</comment><comment><USER16> So weird to see these comments, aye. My gig uses Asterisk heavily, and Astricon just happened in Atlanta (went there).

It's quite alive.

</comment><comment><USER17> AstriCon was last week in Atlanta, and had 300+ attendees. Fred Posner wrote about it in [https://www.fredposner.com/2243/astricon-2019-thoughts/](https://www.fredposner.com/2243/astricon-2019-thoughts/)

</comment><comment><USER18> I never did it, but many years ago had an idea to run an Asterix box with extensions for everyone in the extended family, spread over cities/countries.

Not sure how easy/practical it is/was, but always thought it'd be a good experiment.

I wonder if anyone ever did something similar.

<comment><USER3> It wouldn't be extremely difficult to configure, but I think security would be a hassle.

</comment></comment><comment><USER19> I just brought up a fresh version of Asterisk. There is definitely a lot of terms to get use to but for someone who has some background it isn't too bad to pick up.

However I can see how confusing the world of telephony can be with all the crazy acronyms.

</comment><comment><USER20> Every few years I hear about Asterisk and think to myself that it would be neat to set up at home, but I never got around to trying it out.

Is anyone running it at home? What is your setup like?

</comment><comment><USER21> I read this as Asterix and got excited about a new book. Alas it's not.

<comment><USER22> There is a new Asterix book too - [https://www.theguardian.com/books/2019/oct/24/meet- adrenalin...](https://www.theguardian.com/books/2019/oct/24/meet-adrenaline- asterix-gets-first-female-hero-in-60-year-history)

<comment><USER21> Awesome!

<comment><USER23> Be careful, new Astérix are not as good as the old ones. The one with the Swarzenegger Superman is even awful.

</comment></comment></comment></comment><comment><USER24> AllStarLink ([https://www.allstarlink.org/about/about.php](https://www.allstarlink.org/about/about.php)) is software for linking ham radio repeaters that's based on Asterisk.</comment>


Some 2010 iMacs/MBPs broken with Mountain Lion -- Apple evades - <AUTHOR> https://discussions.apple.com/thread/3199218?start=360&tstart=0

<comment><AUTHOR> Been struggling with this issue, lost 10's if not 100's of hours of productivity time... Just wanted to let others know.</comment>


Java on GNU Emacs 24. - <AUTHOR>

If someone is still writing Java on emacs, can they  share tips/tricks on setting up a good development environment. Currently I'm using GNU Emacs 24.1.1 and auto-complete-config. I tried JDEE but was very painful to setup. What I am missing is that even though auto-complete can complete words, it does not know about functions/methods in a class, etc. Thanks. <comment><USER2> There's also a set of packages named CEDET/Semantic that may help, where CEDET is the "project" part and Semantic handles the auto-complete part. I only tried Semantic and it seemed to work fine, although I found I used it less and less so I got rid of it. I did not find any simple solution for auto-imports.

</comment><comment><USER3> It sounds like you need to setup ctags.

When ctags is properly setup all the functions in your java classes will be indexed and available to emacs.

Also, ECB may help with code navigation.</comment>


Right balance between technical and pragmatic: does it exist? - <AUTHOR> http://blog.sacaluta.com/2012/02/right-balance-between-technical-and.html

<comment><USER2> Thanks for sharing. I'm having the same struggle and can really relate. I feel very lonely as a consultant trying to show a whole project how to be pragmatic and not only care about making better hashtables, but to actually care about the customer and the product as a whole. The funny thing is that some companies (generally younger and smaller ones) can be so very professional, while bigger ones house teams which are really stagnant and have a completely unrealistic view on software development. I suppose it's logical considering the "do or die" situation that most startups are in, but its sad to see these money black- holes thrive within large organisations.

</comment><comment><USER3> The right balance between technical and pragmatic is project specific. Here are a couple of heuristics I use to find it.

1) Minimize the overall time investment required to have an acceptable solution to the problem. Time investment includes maintenance and debugging.

2) Make sure the marginal benefit to additional time spent in one area of the project exceeds the opportunity cost of focusing on other areas. E.g. It's good to spend a lot of time on getting the overall architecture right but it matters far less to optimize the business logic (for one thing it tends to change more often and for another it's hardly ever the performance bottleneck).

</comment><comment><USER4> I just stumbled upon this xkcd and thought it was somewhat on topic: <http://xkcd.com/974/>

</comment><comment><USER5> I'm not sure if it should be being technical vs. being pragmatic.

It's not a black or white issue like pregnancy.

It's possible to be pragmatically technical, and technically pragmatic.

It involves building discipline, from being burnt from over-engineering or trivializing matters. That's all us, no one else.

<comment><USER6> Perhaps "technical" and "pragmatic" are the wrong terms to use, and the conflict is about being detail-oriented versus focusing on the broader scope.</comment></comment>


Why Gen Z Are Breaking Up with Social Media - <AUTHOR> https://medium.com/wom-protocol/why-gen-z-are-breaking-up-with-social-media-5ebc1755a744 <comment><USER2> We are just playing with definitions here: also yes I'm gen z and don't use

<comment><USER2> >I'm gen z and don't use

Never used it not because it's a trend but because of being a social outcast</comment></comment>


Russian trolls pushed divisive content over vaccines, researchers say - <AUTHOR> https://www.nbcnews.com/tech/tech-news/russian-trolls-pushed-divisive-content-over-vaccines-researchers-say-n903286 <comment><USER2> It's kind of funny that the bots were arguing both sides of the issue. Whole bunch of people from both sides were mostly arguing with Russian bots. If the results weren't so grave, this would be really funny.

</comment><comment><USER3> previously: [https://news.ycombinator.com/item?id=17833728](https://news.ycombinator.com/item?id=17833728)</comment>


How we improved the SEO performance of WW.com, a mini how-to - <AUTHOR> http://jacquesmattheij.com/How+we+improved+the+SEO+performance+of+WW.com%2C+a+mini+how-to <comment><USER2> Whenever I read these SEO articles, I get a little depressed at how people try to game the search engines.

This article, was a nice contrast. Good to see some solid, basic tips, with no crap / gaming.

<comment><USER3> Completely agree with you, but unfortunately since Google is already so strongly gamed sometimes the only way to survive is to game it yourself.

<comment><USER2> Agreed. I guess that's the next advancements that search engines need to make.

<comment><USER4> It's a continuous process. People find ways to exploit the ranking algorithms, other people improve the algorithms, and so on, ad infinitum.

<comment><USER5> So, in a way, google should be thankful for these people?

<comment><USER6> Google would (probably) never have become so successful if it wasn't for SEOs and spammers

<comment><USER7> That's largely true because the SEOs and spammers were _so_ successful at gaming Google's competition that the other search engines were all but useless when Google hit the scene.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Thank you so much for the followup. SEO can be hard to learn (beyond the basic checklist google provides) since every expert is just trying to sell you their black box of services. It's enlightening to learn specifically what another site's problems were and how you addressed them- it's much more honest than anything I'd find by googling. Thanks so much for sharing!

<comment><USER9> Melissa, there are a ton of SEO resources on the web. SEOmoz's Ranking Factors is a great place to start: <http://www.seomoz.org/article/search-ranking- factors>

SEOmoz.org(and seobook.com) also has free tools and other resources.

</comment></comment><comment><USER10> This might have been posted here before but posting it again - [http://www.google.com/webmasters/docs/search-engine- optimiza...](http://www.google.com/webmasters/docs/search-engine-optimization- starter-guide.pdf) . I found this a very good read for SEO.

</comment><comment><USER11> the basic practice of SEO is "search engine compatibility".

many sites do things with sessions, frames, javascript and such that are effectively a "romulan cloaking device" so far as Google is concerned. Then they wonder why they don't show up in the search engines.

now, there's a whole world things to think about once you're getting crawled, but there are a lot of good sites by good people that are entirely uncrawlable -- all because of ignorance of the "unwritten standards" of the web.

</comment><comment><USER12> > Analytics Analytics Analytics!

What metrics are you looking at in your Google Analytics data to find areas for improvement?

<comment><USER6> Obviously looking at top landing pages and keywords is a big part of it, but the Analytics data is really the most useful when you have have another set of data to cross reference it with, e.g. if you know that you're ranking at number 11 for a keyword that gets 1,000,000 searches a month then that keyword is probably worth targeting. But you'd only get one of those 3 bits of information from GA, the rest you'd have to get elsewhere

<comment><USER10> Does google analytics tell you your ranking for a particular key word? If not is there any tool out there which does this?

<comment><USER13> Google Webmaster Tools does (well, for Google search anyway).

<comment><USER10> Thanks. Any other good tools for SEO?

<comment><AUTHOR> Patricks 'greatest hits' collection is a good start:

<http://www.kalzumeus.com/greatest-hits/>

</comment></comment></comment></comment></comment></comment><comment><USER14> Sorry if you posted this earlier, but by how much did you improve the SEO performance? Any numbers?

<comment><AUTHOR> Concretely, 100K more pages indexed (the effect of which remains to be seen), the cumulative changes to the site have increased in a tripling of the signup rate.

So colour me very happy so far.

<comment><USER13> My bet is that you'll receive more referals from Google, so congratulations on everything you've done. But be careful about number of pages indexed, it's deceptive: I had one site where this number decreased on Google over time (from ~60k to ~4k in about a year) and my number of visitors coming from Google has NOT changed much.

But my site was heavily SEO optimized back then, and still is. I guess somehow Google has decided the other 56k pages aren't even worth to index anymore :p, none was searching for the stuff on these pages and/or the remaining 4k pages from my site were already sufficient to appear on SERPs for a given query.

Factor in that I haven't updated much this particular website in the last 18 months, and my guess is that Google also think these pages aren't worth to index. Which doesn't mean they are not crawled, just that Google (for the speculated reasons above) has decided not to store it and/or show on SERPs.

Ahhhhh, talking about Google... so much guessing...

<comment><USER15> there's really not that much guessing necessary. Google knows the click through rate of all SERPs, so after a year, if they see that 95% of your pages are never visited, they have no reason to hang on to them.

Because those pages weren't bringing traffic anyways, your stats don't change

</comment></comment></comment></comment><comment><USER16> Why didn't you link to ww.com from that post?

<comment><AUTHOR> Because even though we try very hard I can't guarantee that the homepage is always SFW. All it takes is one jackass and some HN'er could be out of a job.

I never realized how sensitive that is and after being corrected I've become more careful.

<comment><USER17> Off-topic, but maybe mention that in your initial posting too. I never think twice about copying/pasting if there isn't a URL in the main posting (but I'm in a home office and don't have the work office issues you're trying to help people avoid). If I didn't already know who you are and what ww.com is, I wouldn't have any way to know that it might be NSFW.

<comment><AUTHOR> Ok, I've added a little pre-amble to that effect.</comment></comment></comment></comment>


Why Why Functional Programming Matters Matters - <AUTHOR> http://weblog.raganwald.com/2007/03/why-why-functional-programming-matters.html <comment><USER2> The best C hacker I've ever met (probably the best programmer, period) swears by Haskell and functional programming. So does the second best.

In my time here at my full-time job I've mentored a lot of kids straight out of school. So often I hear things like "I can't wait to start programming in a real language with pointers" after they've been doing support scripting in python or tcl or whatever. Unfortunately, people like to feel like they are controlling the computer.. because they want to show how well they know how it works. They love the HOW of programming, because it makes them feel smart.

But Great Programmers want to solve problems quickly. They want to do what first, how later.

</comment><comment><USER3> This article made me smile. Perhaps more importantly, it made me reread WhyFP, and the pastiche WhyHaskell. I'm a member of the choir, of course, but it's often good to read over a classic text to glean fresh understanding, and perhaps most importantly to see how "timeless wisdom" applies to your current adventures. (It's for that reason that I'm rereading The Mythical Man-Month.)

<comment><USER4> Thank you.

</comment></comment><comment><USER5> Ahh SOC what's a Java monkey to do?</comment>


Paul Graham is Hurting the Children - <AUTHOR> http://buzzboston.wordpress.com/2007/04/17/paul-graham-is-recruiting-the-children/ <comment><USER2> This guy has not thought things through. Sure, hundreds of people apply to YC every cycle, but we only develop a relationship with the few we fund. In fact the thing I like least of all about YC is that it's effectively a machine for making hundreds of smart hackers dislike us, or at least feel somewhat hurt, every six months.

Also, like nearly everyone (including, fortunately, most imitators) he's stuck on this idea that we like to fund undergrads. In fact the median founder is around 25; it's harder to get funded as an undergrad than not.

<comment><USER3> Yeah, not so clear what he means. It's not as if your fundees work for you after all, they merely trade a bit of equity for your connections and mentoring. Not really sure where this guy is going.

And besides, I don't think anyone dislikes you when you can't fund them. They just get really determined to prove you wrong. :)

<comment><USER4> Haha that is so true. The dream of hundreds of Hackers is to wag their finger at PG and say. "I told you so!"

<comment><USER5> A few get inspired and work hard because they were accepted and the rest get inspired and work hard because they were rejected.

</comment></comment></comment></comment><comment><USER6> As opposed to Random Big Company, who would otherwise be getting this $1million+ talent and paying them $50-60K?

</comment><comment><USER7> _'... Microsoft is shooting at you, and it's just cover fire so that they can move forward and you can't, because this is how the game is played ...'_ [0]

Why are readers worried about articles like this? More to the point why are you reading them at all? They lack irony, humour and certainly lack a coherent message. Here's mine. You don't read this site & pg's articles just to get funded do you? If you do your missing the point. You are going for the egg instead of the goose. [1] [2]

Don't play the game, move forward.

Reference

[0] Joel On Software, 'Fire And Motion'

<http://www.joelonsoftware.com/articles/fog0000000339.html>

[1] Khosla, Vinod, _'... Khosla met staffer Andreas Bechtolsheim, a workstation designer and research scientist at the Stanford University network. Bechtolsheim had built a computer workstation and had begun licensing his creation to companies for $10,000. Khosla talked his new colleague into ceasing the licensing game in favor of manufacturing the workstations themselves. "I want the goose that laid the golden egg, and I don't want the golden egg," ...'_

<http://tinyurl.com/37hve4>

[2] If you still don't get it, "It's the information", not the lottery of yc. Reading through pg's articles a clearer path is created in which you can avoid the ugly trolls and other unexpected obstacles, in the maze of twisty little passages creating startups.

</comment><comment><USER8> PG, Since the piece was mostly tongue in cheek I agree, not much thought went into it. But it would only make sense that some of the team members not making the cut ended up on a team that did. Also, it is common knowledge and confirmed by large companies such as Google and Microsoft that they sometimes buy companies for the value of the team rather than the product. So in the general sense, the logic works.

After reading some threads in your news-YC section, I did find that some of the companies not making the grade were ticked off. But, this can be handled by setting expectations and delivering the rejection in the proper manner. We all know that we desire what we cant have. Put it this way. I am sure that a recruiter that had access to the list of contacts amassed through your funding contests could show a fine ROI on your investment. No doubt there is value in that network of contacts.

BTW the article is Titled: Paul Graham is Selling our children

<comment><USER9> YC did set expectations and delivered the rejection in a manner that's hard to beat. Have you seen the rejection letter? Have you seen the numerous places where pg enumerates what things make a successful startup?

<comment><USER8> No to both. I was responding to PG saying people did not like YC after they were rejected. So, you are proving the point that there is a network and relationship created, even after they dont make the cut. And that is the value I am speaking about. You dont need to defend YC. I am all for it. I am only pointing out that there is value in the people that participate, maybe even more than the ideas.

<comment><USER9> What I'm saying is that YC did all it could to keep rejected applicants from being ticked off, but that was not enough. Did you read the "Two kinds of judgement" comments?

I was rejected and am not ticked off, but I'm more stubborn and thick-skinned than most. I don't think I'm representative.

<comment><USER10> I agree. The whole point of the "Two Judgments" essay was probably PG's way of soothing any hurt feelings among those YC rejected.

</comment></comment></comment></comment></comment><comment><AUTHOR> Please, somebody think of the children!

<comment><USER11> If you won't, who will?!</comment></comment>


Every Dumb Startup Ever - <AUTHOR> https://www.youtube.com/watch?v=pJ8HVWAOTEk <comment><USER2> My favorite parody video, Punchr[1], was turned into a real app in China[2]. And honestly, I've seen pretty much this same idea several times, although with shoes instead of bowls.

[1] [https://www.youtube.com/watch?v=8doxdoQTCkQ](https://www.youtube.com/watch?v=8doxdoQTCkQ)

[2] [https://www.vice.com/sv/article/ppxydn/a-new-chinese- phone-a...](https://www.vice.com/sv/article/ppxydn/a-new-chinese-phone-app- lets-you-hire-thugs-and-get-them-to-beat-people-up-for-you-904)

</comment><comment><USER3> Adult Swim did a critical parody two years ago which still nails the hidden motives of many startups.

[https://www.youtube.com/watch?v=DJklHwoYgBQ](https://www.youtube.com/watch?v=DJklHwoYgBQ)

</comment><comment><USER4> The best part is how this isn't even a little bit hyperbole:

[https://www.youtube.com/watch?v=wxBm43nkJLg](https://www.youtube.com/watch?v=wxBm43nkJLg) (probably nsfw)

</comment><comment><USER5> I got more of a Jonathan Ive speaks about courage vibe than that of a startup.</comment>


Fujitsu Switches Horses for Post-K Supercomputer, Will Ride ARM into Exascale - <AUTHOR> https://www.top500.org/news/fujitsu-switches-horses-for-post-k-supercomputer-will-ride-arm-into-exascale/ <comment><USER2> > Designing a manycore CPU, which the Post-K processor will almost certainly > be, with a simpler RISC core as its base, is inherently more efficient than > trying to do that with a more complex architecture like SPARC64.

Honestly, ARM is a very complex architecture these days. There's somewhere in the neighborhood of a thousand instructions. It's very close to x86 in complexity. Tons of cruft built up over the past thirty years too (although it was a cleaner architecture than x86 to start off with so it has that going for it).

<comment><USER3> While the conversion from x86 to Intel's internal microcode obviously adds complexity, internally Intel has been a RISC load/store architecture since 2006. Since ARM moved to ARMv8, I groaningly refer to v8 as "x86 v2" with most implementations with ridiculous pipelines and OoO execution. The only actually good ARMv8 implementation I've seen doesn't actually implement ARMv8 at all internally... NVIDIA's (now basically dead) Denver architecture does Transmeta style codemorphing to support ARMv8 instructions while having a much simpler (and efficient) internal architecture.

<comment><USER4> Denver isn't close to dead. I work in the Denver team at NVIDIA. If you mean market adoption, yes - Nexus 9 is the only major device to have shipped with Denver cores as of today. But development is still very active internally.

<comment><USER5> Somewhat off topic, but I wish NVIDIA published more information about Denver's DBO and the reasoning behind some design decisions. For example the company line is to just generate 'decent code' and let the DBO take care of it [0], but that clearly doesn't always work in practice [1], which requires a lot of trial & error and some reverse engineering to generate good code for it. Also, the decision to always invalidate the translation when writing to an executable page (or whatever other super slow operation is done in that case) seems odd (and affects the performance of some JIT approaches) since ARM software is expected to explicitly flush the caches when modifying code anyway.

[0] [https://www.youtube.com/watch?v=oEuXA0_9feM](https://www.youtube.com/watch?v=oEuXA0_9feM)

[1] [https://github.com/ssvb/tinymembench/wiki/Nexus-9-(Tegra- TK1...](https://github.com/ssvb/tinymembench/wiki/Nexus-9-\(Tegra-TK1-T132--- Denver\))

</comment></comment></comment></comment><comment><USER6> In the general space of computing, what kinds of alternatives to the Xeon Phi are there that want to do their own mini-supercomputer tasks? (very subjective on task definition, but for now let's suppose things that are hard to do on a GPU effectively).

It seems like the Parallella tried to get close, but did not succeed in breaking into the market. (On Amazon, looks to be marketed more for a high powered raspberry pi alternative...)

Which seems to be more useful? The power to compile same code with alternate flags (Xeon Phi style); cross-compile to other arch's (x86 host -> ARM binary); JIT bytecode, LLVM bitcode, or Intermediate-Representation formats?

What kind of access patterns would be most common for a hobbyist or an enterprise to cater to? For example, one issue the Xeon Phi has is memory controller contention, which makes it less optimal for less structured relational analysis.

</comment><comment><USER7> I don't get why people keep reporting this as ARM unseating x86 when in this specific case its ARM replacing SPARC. Is there a perspective I am missing?

<comment><USER8> interesting, to say the least, choice for Fujitsu, i mean they do have SPARC/RISC experience and given that the current top dog in the world is Alpha/RISC based [https://en.wikipedia.org/wiki/Sunway_TaihuLight](https://en.wikipedia.org/wiki/Sunway_TaihuLight) , it seem strange to make such a huge bet on completely new architecture - Top500 has no ARM systems at least at the top of the list.

Beside big picture, there are such pesky details as "Fortran for ARM" HPC compiler. All these bearded and not so guys who walked Sun hallways for years ... The Intel HPC compilers also well established. What is available for ARM in that department?

<comment><USER9> I think you're missing the big picture here. Looks like Cray has been looking at ARM for awhile for Fast Forward 2 (US DoE I think, announced 2014: [http://investors.cray.com/phoenix.zhtml?c=98390&p=irol- newsA...](http://investors.cray.com/phoenix.zhtml?c=98390&p=irol- newsArticle&ID=1990117)). Looks like Barcelona Supercomputing Center also deployed ARM based test systems quite awhile ago ([http://nvidianews.nvidia.com/news/barcelona- supercomputing-c...](http://nvidianews.nvidia.com/news/barcelona- supercomputing-center-to-deploy-world-s-first-arm-based-cpu-gpu-hybrid- supercomputer), [http://gizmodo.com/5898633/can-an-arm-based-supercomputer- be...](http://gizmodo.com/5898633/can-an-arm-based-supercomputer-become-the- worlds-fastest)).

<comment><USER10> For what it's worth, there's current ARM propaganda [huge PDF!] at [http://emit.tech/EMiT2016/Adeniyi-Jones- EMiT2016-Barcelona.p...](http://emit.tech/EMiT2016/Adeniyi-Jones- EMiT2016-Barcelona.pdf) (and incidentally something related to a more interesting sort of ARM-based system from the same meeting: [http://emit.tech/EMiT2016/Navaridas- EMiT2016-Barcelona.pdf](http://emit.tech/EMiT2016/Navaridas- EMiT2016-Barcelona.pdf)). That may not be terribly relevant to Fujitsu, though.</comment></comment></comment></comment>


Microsoft: Move from Traditional Asp.net to 'Core' Requires 'Heavy Lifting' - <AUTHOR> https://visualstudiomagazine.com/articles/2020/01/22/aspnet-core-migration.aspx <comment><AUTHOR> The heavier the lifting required to make the move, the more managers and teams will consider alternatives like Node, Rails, Django, etc. ASPNET MVC is far better than webforms but the messaging here is sub-par even for Microsoft.</comment>


Accepting the consequences of a life without quick-saves - <AUTHOR> http://arstechnica.com/gaming/news/2010/09/accepting-the-consequences-of-a-life-without-quick-saves.ars

<comment><USER2> 20 years ago a game's aim was to prevent you from advancing to the next level. It was frustrating sometimes, but the reward was bigger (= telling your friends you reached a certain level). Now most games do everything to help you proceed. Meh. Boring. I'd rather have a challenge.

I remember when I beat the track record on the (totally unforgiving) F355-racing arcade machine once.. People were actually applauding.

<comment><USER3> I think this is why difficulty settings like "nightmare", "veteran", "legendary", and just plain hard exist.

Someone has to make a game in which the hardest difficulty setting is so extreme you _always_ die in the first ten seconds from a headshot.

<comment><USER4> I wish more games had some kind of machine learning decide what was hard enough. There's nothing that feels quite is weak as picking one far from the hardest setting and still getting annihilated!

</comment></comment></comment><comment><USER5> I love the game Jagged Alliance 2. It's a really _really_ deep tactical strategy game... but it is absolutely _ruined_ by quick-save. Many people play it with their finger on the save/load keys, saving after each turn, and loading if anything goes wrong, even to the point of reloading after a _missed shot_. What would be a really tense and strategically demanding game turns into a totally unrealistic situation where the "good guys" totally steamroll the enemy without a hitch.

I fell for it, and I played that way until the game became unenjoyable. Now I've been playing Fargoal and Demon's Souls, and various multiplayer games where you can't even pause, and it's a much more rewarding challenge.

</comment><comment><USER6> This is a great discussion of challenge by perfection (few saves/retries), as I pointed out here: <http://news.ycombinator.com/item?id=1725036>

Some people like that. It might not be a suitable challenge for casual gamers with little time on their hands, although that can be greatly mitigated by allowing save-quit.

I first saw someone use the save-quit approach on the Gameboy Advanced for Dragon Warrior: you quit the game, saving your progress, and when you come in again, it restores you perfectly and deletes your save.

I am not sure how something like that would work for a game like Galaga. It might be too disruptive.

<comment> m-photonic While the save-quit approach would be a fairly pointless way of playing Galaga, save states could still be legitimately useful as a means of making it more convenient to practice playing the higher levels.

</comment></comment><comment><USER7> This is something I recently (re-)discovered for me as well. Grabbed Mount & Blade Warband when it was a bargain on Steam and chose, mostly out of curiosity, that the game saves on its own, everytime, everything. I see my brother game the game world. Running around, encounter, ooops, this is too hard/reduces my standing with X: Load a save game. Boring. For me it was a much more realistic (and - rich) experience. Every action influences the outcome. Oops, I just accidently (seriously) proposed to the character. Now what?

I'm hooked again to this way of enjoying a game and really enjoyed the article (and the reminder of "Heavy Rain". Awesome game).

</comment><comment><USER8> not really a new concept; one of the defining features of roguelike games has always been permadeath. I do agree with the article in that the risks of bad decisions makes games way more engrossing; if you can't make a bad decision it'll feel boring and railroad-y.

<comment><AUTHOR> I was surprised that games designed with savegames in mind are actually more compelling when played without using that feature. I'm sure the _Dead Rising 2_ developers didn't expect most players to play through without using savegames to do better in the game.

<comment><USER9> Dead Rising, as far as I know, does not have quick saves. It is developed in Japan, and Japanese developers notoriously have an old-school mentality towards saving: discrete save points with no quick saves.</comment></comment></comment>


Show HN: Build Your Own Tetris Playing Program - <AUTHOR> https://github.com/mbrenman/TetrisPlayground?a=a <comment><AUTHOR> I built this Tetris Playground for a class, and I built a few bots to play against it. I'd love to see what other people could build to play on it. The goal was to make it work in a way that building new bots would be very straightforward and not involve understanding or writing Tetris game code.

I'd love any feedback on the system, and pull requests are absolutely welcome! Thanks for looking!

<comment><USER2> Huge thumbs up for making the effort to share a simulated environment.

Having these kinds of "toy" environments can result in more research into some interesting problems.

Over the course of years I taught or helped teach several classes and I implemented a bunch of one-off systems for evaluating AI agents.

Feedback on the system:

       * Implementation:
         * I encourage a more modern use of C++, certain choices
             unnecessarily complicate the code and make it less
             flexible.
         * Example:

      	Piece *p = new Piece(curPiece->getPieceID());
            ...
            delete p;

          * (use unique_ptr instead)

         * Example 2:
           in game/Piece.h you do not advertise constness on
           simpler getter accessors.

         * Example 3:
           * the constants in game/Constants.h make
             experimentation in Runtime not flexible enough.
             There's no reason why most if not all of these
             constants should not be configuration parameters
             for a game.

         * Example 4:
           * Instead of documenting some errors with cerr,
             consider using exceptions.

       * Include a proper build file. I recommend CMake as it is
         available for all popular platforms and easy to read for
         simple projects like this. Otherwise a simple Makefile
         will do.

     * Features:
       * Provide a way to automatically evaluate:
         * A single agent performance using one or more proposed
           scores.
         * Agents against each others using the ELO system
       * Simulate all nuances of the Tetris game
       * Compare agent performance to that of human players
       * Provide bindings to other languages that are fun to hack
         in, such as Python and Lua. Extra credits to make the
         bindings accessible to languages that do not share the
         same machine model, such as JVM-based Scala/Java/Clojure
         or functional languages such as Haskell or O'Caml.
         ... maybe Arc or Racket bindings as well? ;))

</comment></comment><comment><USER3> This is cool. One more note along the lines of creating interfaces for more languages--it might be useful to create a client/server architecture so an AI application written in any language could interface. Still, this is something I would like to experiment with as a C++ programmer.

Edit: I also think it's great that you include your paper as a write-up.

</comment><comment><USER4> Which Tetris engine does this follow? The newer engine found in most recent releases of the game or is it off the basic GB/NES engine?</comment>


5 Technologies That Will Change the World - <AUTHOR> http://www.jasonkolb.com/5-disruptive-technologies-that-will-change-the-world/

<comment><USER2> I don't know if the governments of the world can do anything about this, but they're going to want to try. If they don't know how much money I have, then they can't know how much I should pay in taxes.

<comment><USER3> I think we're already starting to see this play out with Anonymous. They're trying to crack down, but having difficulty.

</comment></comment><comment><USER4> I'm interested in seeing how crowdfunding might work for projects traditionally funded by taxation. One example: [http://neighbor.ly](http://neighbor.ly)

<comment><USER5> Or science funding: [https://experiment.com/](https://experiment.com/) (formerly mycroryza.com)

</comment></comment><comment><USER6> Interesting to think about how beacons intersect with other interesting things. I see a flash mob app in the near future.

<comment><USER7> I like the idea of automatically recognizing a quorum based on sensors. Will make auctions and voting interesting.</comment></comment>


Steve Jobs' Yacht 'Venus' Launched in the Netherlands - <AUTHOR> http://www.macrumors.com/2012/10/28/steve-jobs-yacht-venus-launched-in-the-netherlands/

<comment><USER2> Looks an iYacht to me. Will Ballmer have to copy it?</comment>


The Power Of Words - <AUTHOR> http://www.videomomo.com/10868/the-power-of-words/

<comment><USER2> Same video posted yesterday: <http://news.ycombinator.com/item?id=2571158>

<comment><AUTHOR> how do we perform search to check duplicate post?</comment></comment>


Caesars Palace casino, others to ban Google Glass - <AUTHOR> http://www.theglobeandmail.com/report-on-business/top-business-stories/caesars-palace-casino-others-to-ban-google-glass/article11778105/ <comment><USER2> While this isn't surprising, it's not enough. Small cameras will continue to exist and improve with or without Google Glass. I'm not sure how, but casinos are going to have to do better than simply banning the most commercially popular cameras.</comment>


GNU screen root exploit - <AUTHOR> https://lists.gnu.org/archive/html/screen-devel/2017-01/msg00025.html <comment><USER2> What are the usecases for having screen with setuid?

EDIT: Found it. It is used for session sharing, although most distros disable it or make it setgid utmp instead.

</comment><comment><USER3> POC I came across on reddit.

[https://github.com/XiphosResearch/exploits/blob/master/scree...](https://github.com/XiphosResearch/exploits/blob/master/screen2root/screenroot.sh)</comment>


Makes every website a porn site - <AUTHOR> http://www.hornify.it/

<comment><USER2> Creative name. Not interested.</comment>


Isaac Asimov's Advice for Being Creative (Hint: Don't Brainstorm) - <AUTHOR> http://calnewport.com/blog/2015/03/27/isaac-asimovs-advice-for-being-creative-hint-dont-brainstorm/

<comment><USER2> Creativity is just a word. It means different things in different situations. Asimov wanted to find something profound. He was pursuing growth of knowledge for the sake of it. Brainstorming is more suitable for situations that have a corporate character. In that case creativity is simply a name given to an instrument that maximizes (any sort of) profits rather efficiently. It's more of a heuristic to identify a good-enough goal-oriented decision so that you can move on quickly.</comment>


The Connective, a citizen-owned internet. - <AUTHOR> http://www.theconnective.net/

<comment><USER2> No actual information about how they're going to do it. Or, for that matter, what they're going to do (something involving community-owned last-mile infrastructure?). On the other hand, a very large number of buzzwords.</comment>


Countering Trusting Trust Through Diverse Double-Compiling (DDC) - <AUTHOR> http://www.dwheeler.com/trusting-trust/

<comment><USER2> I'm having trouble understanding this bit:

> In the DDC technique, source code is compiled twice: once with a second > (trusted) compiler (using the source code of the compiler's parent), and > then the compiler source code is compiled using the result of the first > compilation. If the result is bit-for-bit identical with the untrusted > executable, then the source code accurately represents the executable.

Can someone explain this step by step? Which compiler compiles which source?

<comment><USER3> So you have your (possibly tainted at the binary level, see "Reflections on trusting trust") compiler, let's call it [A].

You take source code to a compiler [GCCsource], which for the purposes of this we'll say we can trust (because at least we can read the source, IOCCC notwithstanding).

The problem is that if you Compile [GCCsource] with [A] to make [GCCWithA], [GCCWithA] may be tainted if [A] is tainted.

The fix is to make GCC produce reproducible builds.

Then you compile [A]([GCCsource]) -> [GCCWithA] and the critical step is this:

[GCCWithA]([GCCsource]) -> [GCCWithAWithA].

If [GCCWithA] makes reproducible builds, then [GCCWithX] should make bit- identical outputs with [GCCWithA]. If it doesn't, then you can tell that there are shenanigans going on.

So you do

[A]([GCCsource]) -> [GCCWithA]; [GCCWithA]([GCCsource]) -> [GCCWithAWithA]

And then

[B]([GCCsource]) -> [GCCWithB]; [GCCWithB]([GCCsource]) -> [GCCWithBWithB]

You compare [GCCWithAWithA] with [GCCWithBWithB].

Now you've upped the bar. Not only does an attacker have to put a backdoor in the GCC binary, but now they have to do it to Intel's compiler, and any other compiler capable of compiling [GCCsource]. If the attacker doesn't catch all of these compilers them in exactly the same way, then it will result in a difference to the output.

<comment><USER2> Thanks, I understand now.

</comment></comment></comment><comment><USER3> Reflections on Trusting Trust is a classic lecture by Ken Thompson, which is well worth a read.

[http://www.ece.cmu.edu/~ganger/712.fall02/papers/p761-thomps...](http://www.ece.cmu.edu/~ganger/712.fall02/papers/p761-thompson.pdf)

I always thought that needing to trust a large binary blob (your bootstrapping compiler) was a fundamental limitation with computers that would be impossible to overcome. It is delightful to hear of a solution to it. It's one of those things which is almost obvious in hindsight but takes a leap of imagination to discover, I think.

</comment><comment><USER4> "source code is compiled twice: once with a second (trusted) compiler"

Here I stopped reading.

<comment><USER5> Well, if you are unsure if you can trust the second compiler (e.g. you didn't write it, audit it, bootstrap it yourself) you can just add a third (slightly more trustedworthy) compiler.

After that the infinite stack of turtles will take over and make sure it is asymptotically trustworthy.</comment></comment>


Type-Driven Program Synthesis [video] - <AUTHOR> https://www.youtube.com/watch?v=HnOix9TFy1A <comment><USER2> UCSD does a lot of cool type system stuff. Also check out Liquid Haskell (another UCSD project), a refinement type system added to Haskell.

A good book to read to learn more about the crazy things you can do with a dependent type system is the Idris O'reilly book as well.

If you're like me and think modern software practices are scarily inadequate at proving correctness, but you still need high performance, take a look at Rust. It also has a very nice type system with ADTs, and it's being improved all the time. Unlike Haskell and Idris, it's not geared towards research and has no GC, so it has near C/C++ performance.

</comment><comment><USER3> Another good talk about using types to guide your programming—instead of merely checking it for errors—is "Is a type a lifebuoy or a lamp?" by Conor McBride [https://skillsmatter.com/skillscasts/8893-is-a-type-a- lifebu...](https://skillsmatter.com/skillscasts/8893-is-a-type-a-lifebuoy-or- a-lamp) It is best approached with some knowledge about how the Haskell typeclass mechanism works.

The second part of the talk (from 25:50) is about how to expand the traditional Haskell Hindley-Milner type system (which is very centered on avoiding the need for explicit type annotations, using type inference) to allow the user to provide more explicit type information, which pays off by automating the generation of parts of the term-level code.

<comment><USER4> Is there an alternative source for this? I'd like to watch it at higher speed, and vimeo doesn't seem to be providing a way to speed it up, or to download it independent of my skills matter login.

</comment></comment><comment><AUTHOR> Type-driven development, meta languages, specs, provably correct code, and automatic code generation were some of the big overlapping themes at Strange Loop [1] this year. All the talks posted online this week [2], and I've posted links to some of the related videos below [3].

It's a good indicator that the time has come for an idea when multiple lines of research and projects from disparate domains begin converging on the same idea from different directions.

Several facets of the puzzle I've been working the last few years have converged towards this area so it's good to see that it's not just me, maybe that means we're all on the right track. But as 'pron and those who have been working in this area have pointed out [4], this part of the puzzle is not yet solved, and one of the primary open issues is how to scale it to the system level (beyond provably correct programs to provably correct systems).

One of the questions I've been pondering is how can we combine provably correct software specs with hardware specs identified for any given system to find the optimal data structures and algorithms given the constraints of that architecture.

Does something similar already exist? What's the best software currently out there for simulating ideal data flow for a given hardware configuration and a given set of system constraints?

[1] Strange Loop [https://www.thestrangeloop.com](https://www.thestrangeloop.com)

[2] Strange Loop 2018 talks (80 videos) [https://www.youtube.com/playlist?list=PLcGKfGEEONaBUdko326yL...](https://www.youtube.com/playlist?list=PLcGKfGEEONaBUdko326yL6ags8C_SYgqH)

[3] Related videos...

* Vellvm - Verifying the LLVM, by Steve Zdancewic [https://www.youtube.com/watch?v=q6gSC3OxB_8](https://www.youtube.com/watch?v=q6gSC3OxB_8)

* All the Languages Together, by Amal Ahmed [https://www.youtube.com/watch?v=3yVc5t-g-VU](https://www.youtube.com/watch?v=3yVc5t-g-VU)

* Towards Language Support for Distributed Systems, by Heather Miller [https://www.youtube.com/watch?v=IeBbiQZYmuY](https://www.youtube.com/watch?v=IeBbiQZYmuY)

* Data Driven UIs, Incrementally, by Yaron Minsky [https://www.youtube.com/watch?v=R3xX37RGJKE](https://www.youtube.com/watch?v=R3xX37RGJKE)

* Proof Theory Impressionism: Blurring the Curry-Howard Line, by Dan Pittman [https://www.youtube.com/watch?v=jrVPB-Ad5Gc](https://www.youtube.com/watch?v=jrVPB-Ad5Gc)

* A Little Taste of Dependent Types, by David Christiansen [https://www.youtube.com/watch?v=VxINoKFm-S4](https://www.youtube.com/watch?v=VxINoKFm-S4)

* You are a Program Synthesizer, by James Koppel [https://www.youtube.com/watch?v=ldkF-4WNZqA](https://www.youtube.com/watch?v=ldkF-4WNZqA)

[4] open issue is how to scale it to the system level [https://news.ycombinator.com/item?id=18253680](https://news.ycombinator.com/item?id=18253680)

</comment><comment><USER5> Wow this was such an awesome viewing. I have found amazing work from the refinement typing folks at USCD. The book by Ranjit Dhalla is a gold mine!

[http://goto.ucsd.edu/~rjhala/lh-book- draft.pdf](http://goto.ucsd.edu/~rjhala/lh-book-draft.pdf)

One question I had was can this be extended to type-drive "type" synthesis to derive new types and _then_ use that to synthesize programs?</comment>


184.108.40.206 The most famous public IP address - <AUTHOR> http://www.tummy.com/Community/Articles/famous-dns-server/

<comment><USER2> I'd say 184.108.40.206 is more famous now (Tummy doesn't date their articles so I can't say when their article is from).</comment>