China's Vanishing Muslims: Undercover in World's Most Dystopian Place [video] - <AUTHOR> https://www.youtube.com/watch?time_continue=204&v=v7AYyUqrMuQ <comment><USER2> At the end it shows a mass of kids being lead in chants like:

"Are you Chinese?"

"Do you love China?"

"Do you want China to be strong?"

Not sure we can debate this without someone getting upset about some race or religion issue. In the past (in the US anyways) this is the kind of thing wars were fought over to prevent happening across the world.

<comment><USER3> "I pledge allegiance to the Flag of the United States of America, and to the Republic for which it stands, one Nation under God, indivisible, with liberty and justice for all."

<comment><USER4> People who refuse to say that pledge don't get sent off to a concentration camp.

<comment><USER5> No they merely get ousted and punished.

</comment></comment></comment></comment><comment><USER6> Their security must be really bad; no video evidence at all has come out of our own secret camps. It's total information blackout. Our press is either utterly powerless or utterly spineless. Obviously I'm not trying to justify what China is doing, just saying, we need someone to take some _risks_ for fucks sake in both countries and get some footage.

<comment><USER7> We have secret concentration camps?

<comment><USER8> I believe they are referring to the United States' ICE camps for deportees where there have been several notable deaths due to lack of medical care.

</comment></comment></comment><comment><USER9> I wonder if this "policy"/method would have stopped the radicalisation in Iraq/Afghanistan if China was to invade instead of the US.

<comment><USER10> I'm not sure I see the parallels between an oppressive regime implementing it's policies within it's own territories that's also home to significant portion of already loyal citizenry (Han Chinese), and trying to annex a distant land with no shared borders.

<comment><USER9> Both try to change the way of life(beliefs, behaviour etc) for the majority of a specific territory.

US didn't try to annex Iraq or AF.

</comment></comment></comment><comment><USER11> Chilling. Especially the ending.

</comment><comment><USER12> It's a shame that Vice News is getting canceled on HBO.

<comment><USER13> Not really. This is the one video that's been good in a long time. They should've stuck to their roots.</comment></comment>


Cambridge restaurant tech startup E la Carte moves west for Y Combinator - <AUTHOR> http://www.masshightech.com/stories/2010/10/11/daily83-E-la-Carte-goes-west-for-Y-Combinator.html?ana=twt

<comment><USER2> "...and people who dream bigger than people in Boston." Ouch. I'm surprised Mass High Tech gave you press with a mouth like that.</comment>


"I received a free or discounted product in return for an honest review" - <AUTHOR> http://mjg59.dreamwidth.org/44006.html <comment><USER2> The positive reviews are worthless. Study the negative or mixed reviews instead. They are much rarer but they seem to tell the truth, especially if they explain shortcomings in a detailed and reasonable way.</comment>


We Are At War For A Free And Open Internet - <AUTHOR> https://medium.com/@getongab/we-are-at-war-for-a-free-and-open-internet-426629fba4bf <comment><USER3> Seems like a lot of people are right on board with Internet-wide censorship by community standards. I'm very disappointed that so many have chosen to cast the problem only in terms of bad people posting bad things. You've missed the whole point.

I've conducted some research in the past into how to solve this simple problem: how to reliably host potentially offensive content, given the content is legal in the US. I concluded it's currently infeasible. All US hosts are responsive to mobs, and all hosts that market themselves as "pro free speech" are in jurisdictions with a variety of "hate speech" or "anti insult" laws.

I've concluded that the only way forward is probably a P2P web.

Given this is Hacker News, I wish that people wanted to talk about that sort of thing, rather than, as has happened here, bikeshedding about what those global community standards should be in our personal opinions.

<comment><USER4> I've seen a handful of p2p internet solutions pop up, but all seem immature. Is there one in particular that you have hopes for?

<comment><USER3> Not really. It's a commonly proposed application for blockchains, but calling most of those immature would actually be generous. The only one I'm aware of is Substratum, but I honestly don't know whether it's a fly-by-night ICO or not.

</comment></comment></comment><comment><USER5> For those perhaps unfamiliar with the context, this is another example of Andrew Anglin making a base and pointless personal attack against Heather Heyer, the woman killed in the violence surrounding the Charlottesville rally a few weeks ago.

It's interesting to watch Anglin continue to force people in his vicinity to choose between compromising on principle and defending the utterly indefensible. One wonders what he hopes to accomplish, and even more what anyone else might hope to achieve by continuing to tolerate his presence - <USER2> get that quoting Niemoller is somewhat popular in this connection, but I don't see how the situations are parallel when this one revolves around a person who appears to have no greater aim in his public behavior than simply to bring about whatever ruin he can find a way to produce.

I don't know. Perhaps he has a point to make about the tension between freedom of speech and relative oligopoly over the notionally public forum in which such speech can most productively be published. If so, he's picked the worst way in the world to do it, because by making himself a stench in the nostrils of civilization he only adds strength to the argument that the very concept of freedom of speech is one which has outlived its usefulness and merits deprecation in favor of a restricted realm beyond which suppression is the universally acknowledged default. That's the _most_ charitable interpretation of his actions that I'm capable of constructing - but not one in which I especially confide.

<comment><USER6> The _only_ speech that needs protection is the icky speech. Absolutely no one cares to suppress palatable, well meaning, everyone agrees to it speech.

<comment><USER5> It's possible to fail "palatable, well meaning, everyone agrees to it", without also meeting or even approaching the nonpareil standard of general worthlessness to which Anglin seems at such pains to hold himself.

The matter is in any case also, I think primarily, one of pragmatism. Even the most hard-line free speech absolutist can't defend Anglin without being made radioactive by mere association; thus, by his actions, he forces everyone around him to choose between principle and livelihood. It seems to me little wonder that everyone of import chooses the latter.

<comment><USER7> > It seems to me little wonder that everyone of import chooses the latter.

"First they came for the Socialists, and I did not speak out--because I was not a Socialist" and so forth. And no, the irony is not lost on me.

Systems-minded people not blinded by ideology have natural sympathies to those causes, because the same mechanisms used to justify punching Nazis and kicking fascists off the internet _can just as easily_ be turned against things that _we_ care about.

<comment><USER5> Absolutism has the virtue of simplicity, to be sure. The human world, in my experience, has not.

<comment><USER8> _Absolutism has the virtue of simplicity, to be sure. The human world, in my experience, has not._

The judicial system is pragmatically absolutist in its operation. It's quite complicated, it's not perfect, but it does work. The system of rights it's constructed on is necessary to prevent tyranny. Look up and read the history around the Magna Carta and the founding of the United States.

</comment></comment></comment></comment></comment></comment><comment><USER9> Perhaps the solution may be to treat domain registrars as common carriers and bar them from taking down customer domains based on anything that's legal in their country. Similar thing may need to be done for web hosting, since without web hosting and domain registrations a viable (read, independent with free speech) internet presence can't be established nowadays.

<comment><USER10> I've been pointing out that some of the same organizations who have been lobbying for net neutrality as an anti-censorship necessity are leading the charge of censoring reprehensible speech. It seems pretty short-sighted, but luckily for them, the mob tends to have a short memory, so they will probably still be able to cast net neutrality as anti-censorship at the next opportunity, and still exclude themselves from the regulated parties.

</comment></comment><comment><USER11> FWIW, I found the original post on the Wayback Machine and it's pretty gross: [http://i.imgur.com/NYJiQXc.jpg](http://i.imgur.com/NYJiQXc.jpg) (I pixelated the face, was fully in view before)

Taking someone's Tinder picture and sharing it on the internet to mock them is harassment (especially nowadays when software can take a person's face and look up their social media profiles). Say what you will about free speech, but this isn't a hill I particularly care about dying on.

<comment><USER12> End of free speech is just one step a way of ending personal thought and individuality.

<comment><USER13> "Free speech" is freedom from government reprisals. Nothing in the article relates to this, merely that private companies wish not to support Neo- fascists.

You can be upset about this, but please don't confuse it with Freedom of Speech.

<comment><USER14> Freedom of Speech is a basic human right. Like the right to life, liberty, and property. Can SuperMegaCorp, Inc. decide to murder me? They're not the US Federal Government after all, so they aren't infringing on my Freedom of Life.

<comment><USER13> > _Can SuperMegaCorp, Inc. decide to murder me?_

No. But they're free to have terms of service. I don't see how this is relevant.

</comment></comment></comment></comment></comment><comment><USER15> What would it take to avoid this kind of censorship?... One possible route: a new TLD specifically based on free speech principles. That's not a perfect solution either, because you'd have to trust that organization and all its future owners to keep it that way.

<comment><USER16> > What would it take to avoid this kind of censorship?

Decentralization & p2p technologies

<comment><USER17> For anyone wondering, looks like Namecoin and the .bit domain could be a potential solution. It's still a huge barrier for non-technical folk though, and censored content won't show up on search engines.

</comment></comment></comment><comment><USER18> Why are they doing business through some 3rd party registrar and not through the official anguillan registrar?

Not to mention #36 in the FAQ[0], which pretty clearly states they only disallow outright illegal behavior.

[0]: [https://whois.ai/faq.html](https://whois.ai/faq.html)

<comment><USER19> Depends what the complaint the registrar got, but it could well have been a complaint of criminal harassment, given the content.

<comment><USER18> RTA. It was an obscenity complaint. Gab usually tags it NSFW, which they normally do, but in this case they got an existential threat to their business.

It's also not like AsiaRegistry makes things cheaper. Using whois.ai directly you only spend 100 to renew every 2 years, not 200.

</comment></comment></comment><comment><USER20> Title: "We Are At War For A Free And Open Internet" Domain: "medium.com"

Irony meter rating: off charts

<comment><USER21> Why?

</comment></comment><comment><USER22> This post is about AsianRegistry. I use 101domain for my .ai domain. I assume I'm immune from AsianRegistry's influence? Can anyone confirm?

</comment><comment><USER23> From the article:

      The free and open internet as we know it is under attack.

Yes, not only from those agencies listed, but from Doxxers, Spammers, RevengePorners, and various other online trollers.

We will never have a 'free and open internet' until humanity grows up and people like the above evolve into more socially-inclusive human beings.

Unfortunately, I can never see that happening. What will happen is the slow loss of anonymity across the internet, where all new signups require id verification or the use of a 3rd party 'trusted' authentication provider.

On one hand, I think this may be a good thing - regardless of where you do it, you should be liable for any offensive behaviour you do that upsets other people. However on the other hand where do all the whistle blowers and free speech advocates go? It's a tricky balance, but one things for sure, anonymous online trolling is the reason why we can't have nice [internet] things...

<comment><USER24> It's got to the point where "free speech" has become a dog whistle for the alt-right. Taking the concept back from them is going to be hard.

<comment><USER7> > _It 's got to the point where "free speech" has become a dog whistle for the > alt-right._

Because pride parades and Occupy protests don't benefit from free speech at all, right?

It's more concerning to see the meme of "I don't like what these people say so I'm going to add the 'dogwhistle' tag to it so other Right Thinking people will know to avoid/condemn it without engaging properly".

Free speech is critical to the success (such as it is) of the United States today. Deciding to self-cripple because some small groups we don't like are using it is absurd.

<comment><USER24> You're kind of making my point for me. Occupy protestors regularly got assaulted and arrested. To the best of my knowledge, none of them murdered a woman with a car.

As I say, it's not about speech. Speech is just a dog-whistle for what this is really about.

</comment></comment></comment></comment><comment><USER25> Not shocking nazis can take something people might agree with them on and then twist the knife into something super gross, like being an apologist for murder.

</comment><comment><USER26> Here we go with another nazi attempt to lecture us on civil liberties. If they had more political power (and I shudder at the notion), they would be the first ones to clamp down on speech and free expression (it's kinda their thing).

We have more pressing free speech matters at hand right now with authoritarian states and corporate monopolies. Nazis don't get a free ride on the hard work being done just so they can turn the gun around on us when they have power. We recognize racism and sexism for what it is, and don't let it distract us from building a better society for us all.

Do we have to reference the xkcd comic again?

<comment><USER8> Please don't. I think Monroe has fallen down as a speaker of truth. If Free Speech is suppressed through societal pressure, it's just as bad as the government doing it. The mechanisms Monroe trumpets were once used to suppress LGBT people, Jewish people, and Black people. The kind of society he wants is just as authoritarian and socially stifling as Victorian society -- it just fits his particular tastes. XKCD of all people should know better.

<comment><USER26> > If Free Speech is suppressed through societal pressure, it's just as bad as > the government doing it.

You're confusing the market of free ideas with speech. Governments have militaries and police forces. Societies have public opinion. Are you suggesting that societies shouldn't have the ability to guide themselves by rejecting speech that is harmful to itself (i.e. racist/sexist dogma perpetuated by a majority that wants to get rid of its minorities)?

Honestly, this all sounds like nihilism which I know is all the currently all the rage to wealthy and white Silicon Valley, but I'm sure your perspective will be altered if you should ever be unfortunate to have nazis start targeting you.

<comment><USER8> _You 're confusing the market of free ideas with speech...Are you suggesting that societies shouldn't have the ability to guide themselves by rejecting speech that is harmful to itself_

I have seen many things which are touted as part of "the marketplace of ideas" that are really attempts to skew speech in civil society through non- governmental bureaucratic power. This is dishonest. It's not a real "marketplace of ideas" when certain things are placed in an inaccessible part of the store. We've seen this "technically not censorship" thing before. Noam Chomsky helped bring it to the world's attention.

[http://a.co/658KATJ](http://a.co/658KATJ)

 _Honestly, this all sounds like nihilism which I know is all the currently all the rage to wealthy and white Silicon Valley, but I 'm sure your perspective will be altered if you should ever be unfortunate to have nazis start targeting you._

I have been racially targeted by groups of poor whites. My perspective changed when extreme elements on the left started behaving in much the same way. When your "activism" starts depending on the magnitude of horribleness of the enemy for its justification, this is a historical sign that something is out of kilter. No one who says they can do anything, because they're less horrible than some bad guys, gets to wield the special liminal power of activism in my name. Groupthink is groupthink. It feels much the same way, no matter where it is based on the political spectrum. The justified hate of White Supremacists is much the same as hateful ideologues of a different stripe.

I abhor the nihilism of Silicon Valley, however, it's not a white phenomenon, nor is it particular to one ethnic group. Shortly after I moved to the Bay Area, I got to see a drunken self-styled startup nerd spill beer all over the laptop of a cancer-patient female techie who was trying to get her life together, then try to pretend he had nothing to do with it. (Pre-Obamacare, so her life seemed pretty precarious. He thought it was a good idea to dive into his bunk at the hacker hostel I was staying at.) He was proof by counterexample that being white is not at all necessary for entitlement.

The nihilism of Silicon Valley and the Bay Area is mostly derived from the nihilism of the Postmodernist left. We have as much to fear from the radicalism of the left as the radicalism of the extreme Fascist right. Both of those groups have in common collectivist and nihilistic ideologies that reject logic and rationality. You only have to read the writings of the esoteric thought leaders of both groups to see this. Therein lies the real danger. The left-right spectrum is only incidental.

<comment><USER26> Perhaps nihilism was too strong a accusation, but I still fear your position is leaving a loop hole open for nazis. Your case for logic and rationality reads like the status quo should be left alone, which in our current circumstances, tends to benefit whites (thus my remark). Groupthink may be groupthink, but you know how we combat that – we fund public education. We don't need to let nazis to empower themselves to guard against groupthink.

I must comment on this:

> When your "activism" starts depending on the magnitude of horribleness of > the enemy for its justification, this is a historical sign that something is > out of kilter.

To what activism are you referring to? My activism would be related to moving closer to a society where the starting floor hasn't fallen out for others based on class, race, and gender. Nazism, you know, kinda gets in the way of that.

<comment><USER8> _I still fear your position is leaving a loop hole open for nazis._

The free speech loophole _has_ to be left open for _everybody_. The moment we let someone arbitrate speech, we no longer have free speech.

 _We don 't need to let nazis to empower themselves to guard against groupthink._

A right for everyone has to be a right for everyone. If you study what happened in the rise of Fascism in the Weimar Republic, you'll find that it was the left leaning Weimar Republic that put into place the legal framework for Nazi totalitarianism. In almost every law that had to do with human rights, the Weimar Republic put in a "unless necessary for the public good" or "unless a law is passed to the contrary" clause. All the Nazis had to do was to use those clauses.

Free Speech protects society as a whole against groupthink. Any minority, no matter how small or unpopular, is protected. The moment you introduce Weimar Republic style exceptions to those rights, you lose a society that is protected against authoritarianism. Instead, you get a society that's just an incubator for totalitarianism.

 _My activism would be related to moving closer to a society where the starting floor hasn 't fallen out for others based on class, race, and gender. Nazism, you know, kinda gets in the way of that._

Study the Weimar Republic. Explicit activism of the type you mention above (following an ethos of "By Any Means Necessary") was precisely the kind that set the stage for Nazis to come to power. Also, you should note that the "floor" in the US, even for "groups disadvantaged by class, race, and gender" is quite high in absolute terms. As Dinesh D'Souza's friend once observed, "I want to come to a country where the poor people are fat and own VCRs." There are people whose "floors have fallen out," but I don't think the existence of Neo-Nazis has had much affect on them. Can you give me an example where people demonstrating have made poor neighborhoods poorer? I can give you examples where riots have done that, but those were not sparked by Neo-Nazis.

 _Groupthink may be groupthink, but you know how we combat that – we fund public education._

The way to combat groupthink in the long term is to advance groups. One interesting thing that Thomas Sowell brings up in his book _Race and Culture_ , is that Russians, Poles, and Italians started out having IQ score disparities as large as those of US black communities, but caught up over the time span of the 1st half of the 20th century. By 1950, the scores had basically equalized. He also notes a study of black children of GIs growing up in Germany, who showed comparable IQs to other children growing up there. Yes, there is clearly systemic racism in the US. It can be seen in the rising crime rates and decay of communities. (As a black man who was born in North Carolina and went to school in Harlem, Thomas Sowell has an interesting personal take on this.) I think it takes the form of incentives that encourage broken homes and abet poverty. (This can be seen in an increase in the IQs of black children in the early 20th century, which _ended and reversed_ after the introduction of perverse incentives in the 1960's and 70's.) I think it takes the form of politics which protects public schools and keeps market buying power out of the hands of parents who want to help their children to advance. If one studies immigrant groups, one finds a pattern of groups that advance themselves _in spite_ of overt oppression codified into law and sometimes enacted as violence. One also finds a pattern of groups, whose leaders keep their people in cultural isolation in order to maintain their power. Such patterns are found all over the world, and repeat themselves across cultures and in different times. I think it should now be obvious such patterns are at play in the US.

</comment></comment></comment></comment></comment></comment><comment><USER27> "Free and Open Internet"

You mean, the network created by the US government for the use of military and research institutions? The idea of the Internet as an anarchist state is a far more temporary concept than that of the Internet as a regulated environment where people are supposed to act with a sense of decency. Anyone who argues otherwise is too young, or too ignorant, to know what they're talking about ... And it doesn't surprise me that most of these Internet trolls whining about censorship were born in the 1980s and later.

<comment><USER28> That's a bit like saying men should hunt and women must raise children because that what they were doing for a long time and that's what they were 'meant' to do.

Internet is no longer a network for the US government and research institutions.</comment></comment>


Heroku API or GIT issues again? - <AUTHOR>

All our Heroku apps are operating, but on some apps Heroku is rejecting 'git push':
!  Heroku Git error, please try again shortly.
 !  See http://status.heroku.com for current Heroku platform status.
 !  If the problem persists, please contact http://support.heroku.com.
We can push to some apps, not to others.
The status.heroku.com page says all is well, but I'm wondering they failed to get everything cleaned up after the mess the past two days?
Anyone else having trouble with pushing a new build? <comment><USER2> Yes! I have the same error trying to push my blog :-(</comment>


Show HN: xlogs: logfiles for Amazon EC2 cloud - <AUTHOR> http://xlo.gs

<comment><USER2> this is great. thank you!</comment>


Shipito is making containers social with Shipsourcing (forum thread) - <AUTHOR> http://www.shipito.com/14-shipito-services/12703-shipsourcing-new-way-of-shipping

<comment><AUTHOR> I'm a customer of shipito, and found this in their user forums. This could really disrupt the way stuff is being currently shipped worldwide. You won't have to pay an arm and a leg to ship heavy or largish stuff with FedEx or DHL anymore.</comment>


Ask HN: What do you expect from a senior software engineer? - <AUTHOR> When hiring or working with a senior engineer:
What are you expectations?
What skills or concepts should they have mastered?
How quickly should they be able to deliver features or products?
By nature the question is a little amorphous, but I think it beneficial for mid-career developers to understand the expectations of experienced developers, and hiring managers, with regards to senior level positions and work. <comment><USER2> What distinguishes senior practitioners from juniors, in software development and in other crafts, is the number of errors they've already made and the lessons they learned from those errors.

Those mistakes and learnings together inform their judgement when approaching tasks and allow them to ask questions like:

* Is this code robust enough? (They ask because of the many times they pushed code and suddenly everything broke.)

* Should we even be building this? (They ask because of that one time they didn't ask, and wasted weeks of effort on something that was never used.)

* Is approach A the best way to achieve our goal? (They ask because of that one time they tried A, thought it would take one week, but spent two months on it instead.)

* What happens when we're asked to add X feature? (They ask because of that one time they were surprised by a feature request and had to rewrite a bunch of their code.)

</comment><comment><USER3> Wrote a whole post about that:

[http://www.mooreds.com/wordpress/archives/2812](http://www.mooreds.com/wordpress/archives/2812)

Short answer is it is different for each job. I would ask for rubrics from interesting companies (interesting to you) rather than hn at large.

</comment><comment><USER4> Something that I have been working on for my own use, but can be helpful to you:

[https://littleblah.com/post/2019-09-01-senior-engineer- check...](https://littleblah.com/post/2019-09-01-senior-engineer-checklist/)

</comment><comment><USER5> A senior software developer can be given a vague contradictory notion of a a whole application (or part of one) and turn it into a scalable, performant, cost-effective beautiful product using the best set of tools and technologies to fit the job. They will deliver exactly what you had in mind within the estimated range provided before they even started.

In addition, they will do it while abstracting away all of the pain and complexity as part of that process, communicating only to provide accurate updates on progress and asking thoughtful probing questions. They make all of their work seem effortless in the process.

<comment><USER6> That's a lot to ask of someone. If that is senior, what is a principal engineer? That's a whole different level in our vaguely defined informal software engineering world.

<comment><USER7> We have a rough scope and impact for each level on our Standard at [http://levels.fyi/standard](http://levels.fyi/standard)

<comment><USER5> I like these standard definitions, thanks for sharing.

</comment></comment></comment></comment><comment><USER8> In one word, leadership. A senior anything is someone with enough experience to be able to lead a development effort.

They should have a proper understanding of what it takes to build a reliable and robust system end to end.

"How quickly" is the wrong question. It's not about speed of delivery, but quality. A senior engineer would know that and if someone asks them to build something quick, they should be honest about the loss in quality and technical debt that will be incurred due to speed of delivery.

</comment><comment><USER9> Seniors should have demonstrated experience designing systems and libraries that then became reality.

That might sound obvious, but people can end up with senior titles on their resume just by hanging around places doing nothing but maintenance and small additions for long enough, and barely accruing any design chops.

<comment><AUTHOR> There's another comment that makes the same observation about the senior title on the resume. It's almost like the first thing you have to figure out when talking to a senior engineer is: title or talent? (I know talent might not be the best word, but it sounded neat. I also think talent doesn't refer to an inherent ability to do something but a set of skills developed over time to a high degree of efficiency)

</comment></comment><comment><USER10> That they keep a process which lets their team deliver new features without breaking existing features. I can't think of anything else, most things are so context dependent but that one is fairly universal.

<comment><AUTHOR> I think that also highlights that they should care about the big picture enough to even worry about breaking existing things - that and be able to see the big picture at all.

</comment></comment><comment><USER11> I expect such a 'senior software engineer' to be extremely competent with some of the best practices in the industry and to have a very strong portfolio of experience that is worthy of the role.

Some of the typical expectations of what I regard as 'senior' are usually as follows.

Technical Skills:

* A polyglot at many programming languages and has no trouble at learning new ones to a proficient level if required.

* Has useful open-source projects and significant open-source contributions in widely used projects. (Bonus for commit-access) No silly hello-world/test-123/git-push-demo repositories.

* Competent at data-structures and algorithms and must be able to write a proof to help explain some of the time/space complexities of these concepts.

* An understanding of the appropriate tool/library for the scenario, dismisses programmer zealotry and can compare and reason about choosing one tool over another.

* Writes clean documentation, tests (or delegates them to SDETs) and uses continuous integration for changes in the code.

* Expert-level on at least one version-control software, Git/SVN or TFS and conducts code-reviews on patches either in open-source or company-level contributions.

* Knowledge of a development methodology to use for software development and delivery to meet the user/client requirements.

Soft skills:

* Participates or leads in the interviewing process and justifies the questions they ask with the projects that they work on.

(It is really no good, throwing a leet-code problem and then the candidate asks if you use it and you will look rather silly as an interviewer if you don't.)

* Gives both technical and non-technical presentations at conferences or meetings about difficult engineering problems or the like.

* Can communicate towards many teams and or different audiences eloquently and understands different perspectives of the user. Not just engineering teams.

* Mentors junior programmers to adopt the best practices enforced in the company to become better programmers.

In this industry we have self-proclaimed 'senior' engineers that don't know what a AVL-Tree is, can't implement a LRU cache or cannot talk to a non- technical audience about what they do. If these 'engineers' contributed to a large compiler project, then all of these requirements would have been met. Unfortunately in 2019, the title of being 'senior' can be given to literally anyone (even with less than 2 years of experience) in their own organization but elsewhere, they are equivalent to a entry-level coder with a heavily decorated CV.

They may look 'good' on paper, but I think that is not enough to truly find out if they are senior-level. So my approach is more or less of a senior- software-engineering CAPTCHA test.

<comment><AUTHOR> "Unfortunately in 2019, the title of being 'senior' can be given to literally anyone (even with less than 2 years of experience) in their own organization but elsewhere, they are equivalent to a entry-level coder with a heavily decorated CV."

This situation is one of the reasons I asked the question. The title is being overused imo - and assigned by _management_ to developers instead of by peers or an actual technical benchmark.

"So my approach is more or less of a senior-software-engineering CAPTCHA test."

I love this quote, and will use it from now on :D

Personally I think the industry as a whole is fairly bad at judging a developer's skill level at anything past a junior level when it comes to hiring.

<comment><USER8> Correct, this is why we still test senior developers with algo interviews. The reality is no one knows what the hell a senior developer is.</comment></comment></comment>


JIT compiling a subset of Python to x86-64 - <AUTHOR> https://csl.name/post/python-compiler/ <comment><USER2> Oh, very interesting! This is somewhat similar to a hack project I did recently, but more dynamic -- going from bytecode and doing the assembly at runtime amps things up a bit! Mine works from a Python AST and is much more static, but it also supports quite a lot more Python syntax. [http://benhoyt.com/writings/pyast64/](http://benhoyt.com/writings/pyast64/)

<comment><USER3> Indeed I had already linked to your really cool project at the end. Perhaps I should have made it stand out more. The AST approach is more stable, as the Python bytecode can change between any release while the AST changes in a slower, evolutionary pace.

</comment></comment><comment><USER4> The future of this approach is Java 9 Truffle + Graal language compiler.

Already a substantial amount of work has gone into making Ruby, R, node and Python to work.

This is the Python implementation - [https://github.com/securesystemslab/zippy](https://github.com/securesystemslab/zippy)

[http://chrisseaton.com/rubytruffle/jokerconf17/](http://chrisseaton.com/rubytruffle/jokerconf17/)

<comment><USER3> Truffle + Graal looks awesome. I looked at some old ZipPy slides (JIT compiler for Python) here: [http://socalpls.github.io/archive/2013nov/slides/zippy.pdf](http://socalpls.github.io/archive/2013nov/slides/zippy.pdf)

They have an example where this code is compiled:

        def sumitup(n):
            total = 0
            for i in range(n):
                total = total + i
            return total

It was optimized quite well, but still had loops. I know this is a lot to ask, but I would have expected it to be possible to specialize it to a loopless variant:

        def sumitup(n):
            if n < 0:
                return 0
            else:
                return n*(n-1) // 2

Clang 4+ actually finds this optimization, but gcc and icc doesn't seem to: [https://godbolt.org/g/v4zhrm](https://godbolt.org/g/v4zhrm)

That is, the assembly generated by clang seems to be equivalent to

        if n <= 0:
            return 0
        else:
            return ((n-1)*(n-2) >> 1) + (n-1)

which might even run faster on the CPU, due to the speficic code emitted.

<comment><USER4> you should file this bug on the graal vm directly. [https://github.com/graalvm/graal](https://github.com/graalvm/graal)

</comment></comment></comment><comment><USER5> The blog is fun introduction into JIT compiler, but the big thing that is missing and that makes Python a hard problem for JIT is supporting Objects. From [http://blog.kevmod.com/2017/02/personal-thoughts-about- pysto...](http://blog.kevmod.com/2017/02/personal-thoughts-about-pystons- outcome/)

        I'll try to just talk about what makes Python hard to run quickly (especially as compared to less-dynamic languages like JS or Lua).

        The thing I wish people understood about Python performance is that the difficulties come from Python's extremely rich object model, not from anything about its dynamic scopes or dynamic types.  The problem is that every
        operation in Python will typically have multiple points at which the user can override the behavior, and these features are used, often very extensively.  Some examples are inspecting the locals of a frame after the frame
        has exited, mutating functions in-place, or even something as banal as overriding isinstance.  These are all things that we had to support, and are used enough that we have to support efficiently, and don't have analogs in
        less-dynamic languages like JS or Lua.

<comment><USER6> Newer versions of Python have an in-band way of detecting if an object has been overridden. Foreseeably this could have been done completely internal to the VM. Defaulting to closed and requiring an explicit step to override behavior would have made optimizing Python far easier.

</comment></comment><comment><USER7> Related: [https://github.com/Microsoft/Pyjion](https://github.com/Microsoft/Pyjion)

<comment><USER8> Also: [https://www.python.org/dev/peps/pep-0523/](https://www.python.org/dev/peps/pep-0523/)

<comment><USER9> A couple years ago I was toying around with libjit in python, wrote some bindings, traced down (most of) the seqfaults and then got distracted by other things. Was going to dust it off to try to hook into pep-0523 but totally forgot about it until you posted that link.

[https://github.com/eponymous/libjit- python](https://github.com/eponymous/libjit-python)

<comment><USER3> What is your impression of libjit? It looks really nice. I've only tried GNU Lightning, and I made Python bindings for it (although, today I would have used cffi to interface with it instead of my ctypes approach, because of the header files): [https://github.com/cslarsen/lyn](https://github.com/cslarsen/lyn)

I'd love to see a comparison of the various JIT libraries. I guess both give you optimizations and register allocation for free. Of course, the JITting speed is quite important as well.

<comment><USER9> It seemed pretty solid though I didn't do anything too complicated with it.

Mostly what messing around with it did was taught me that I had a _lot_ to learn about compiler construction which is what I've been slowly doing since then.

</comment></comment></comment></comment></comment><comment><USER10> This was a great intro to how just-in-time compilation works, thank you!

</comment><comment><USER11> [https://github.com/Maratyszcza/PeachPy](https://github.com/Maratyszcza/PeachPy)

</comment><comment><USER12> My favorite Python JIT is Numba</comment>


Ecuador Using Copyright To Try To Take Down Leaked Docs About Its Surveillance - <AUTHOR> http://www.techdirt.com/articles/20130627/22382723648/ecuador-using-copyright-to-try-to-take-down-leaked-documents-about-its-surveillance-practices.shtml <comment><USER2> I find it interesting that the entire debate has shifted from US surveillance to be about what is happening to Snowden and whether he is/isn't a traitor and now even about Ecuador and how they do/don't protect their citizens.

Personally, as a non-US citizen outside the US, I feel incredibly uncomfortable that the US govt spies on me and everything I do online as much as it can. As far as I know, Ecuador or any other government doesn't yet exercise such monitoring, I'm pretty sure they don't poke into my facebook messages or worse, can look at my Gmail hosted emails.

I know that the big deal is that US citizens got spied on [because that's illegal .. apparently], but to me, it's equally bad that innocent civilians around the world have their data up for grabs. You never know when and where and how this kind of stuff can be used against you. I don't like the fact that the US can make laws within their borders and get access to my data (which may even practically be hosted outside their borders). So where it's convenient, i.e. US citizens cannot be spied on, the concept of a nation state is invoked, but then non-US citizens basically have no right to privacy, not even the ones their governments give them, because the US can look at anything. Not cool.

Why don't we look at it from the perspective that the US government can pretty much see what any online Ecuadorean is up to. That's a big enough offense in itself, Ecuador is just _working on_ of buying some surveillance stuff, the US has already been doing this for years. Smells like a smear campaign.

Again, I just find it interesting how quickly this became about Snowden this and Ecuador that, etc. rather than the central debate which is on my mind "What about my data ?!!"

The US government can obviously spend a lot of marketing $$$ and basically keep repeating "Snowden = Traitor" until everyone believes it and don't even remember why. It's almost like 1984 ... I'm scared.

<comment><USER3> > So where it's convenient, i.e. US citizens cannot be spied on, the concept > of a nation state is invoked, but then non-US citizens basically have no > right to privacy, not even the ones their governments give them, because the > US can look at anything. Not cool.

Look, when a dog bites the hand of its owner and then bites the neighbor, the greater outrage is that it bit the hand that feeds it.

You're not looking at this from an objective perspective, because you're the neighbor and well, understandably pissed.

Now me? I would put down the dog. But that's just me and it's probably not going to happen.

<comment><USER4> Umm, no. From the perspective of the neighbor and the whole community, and from the perspective of an educated person who knows the limits of his rights, the greater outrage is that it bit the neighbor. It could have bitten the owner for a number of reasons, such as not having been trained well; the neighbor on the other hand had no choice, he never signed up for a dog but he got bit anyway--and further there's little he can do to prevent it from happening again.

What makes you more anxious, when you lose something you owned or when you lose something a friend lent you? When the latter happens, all I wish for is that it were mine (or that it's an item easily replaceable with money.)

It seems the government has long forgotten the good manners it's Founding Fathers taught it. I can only hope the American people at large have a bit more sense.

</comment></comment></comment><comment><USER5> FTA:

> _Are there any places left on earth that actually do respect basic civil > liberties?_

I would really like to know the answer.

<comment><USER6> Switzerland is the closest thing I can think of, and even that country has some of the same surveillance/privacy issues that spawned most of the current discussions. I don't know if we qualify CCTV as a violation of a civil liberty period, or only if abused.

<comment><USER7> If you consider the amount of negative foreign influence that some Swiss corporations have across the globe for their, this statement might not that accurate (I'm thinking Glencore and others)</comment></comment></comment>


Ask HN: Help me choose the best first book for Algorithms - <AUTHOR> I am a programmer and no formal CS knowledge. I have the following books on the topic Algorithms/DataStructures. Can you please help me pick the first one to start so that I am able to get up to the speed. It will be great if you can specify an order as well.<p>* The Algorithm Design Manual
by Steven S Skiena
Link: http://amzn.com/1848000693<p>* Algorithms (4th Edition)
by Robert Sedgewick et al.
Link: http://amzn.com/032157351X<p>* Algorithm Design
by Jon Kleinberg et al.
Link: http://amzn.com/0321295358<p>* Introduction to Algorithms, 3rd Edition
by Thomas H. Cormen et al.
Link: http://amzn.com/0262033844<p>* The Art of Computer Programming, Volumes 1-4A Boxed Set
by Donald E. Knuth
Link: http://amzn.com/0321751043 <comment><USER5> [http://algs4.cs.princeton.edu/home/](http://algs4.cs.princeton.edu/home/) is my favorite. The implementations of the algorithms are really nice (quite a feat, considering the lang is Java :-p) and each section builds on top of a previous one, when needed (e.g. many algorithms require a Symbol Table, which is built in one of the chapters of the first volume). The resulting implementations are incredible terse but at the same time clean and easy to understand!

Cormen's book is a bit more thedious to read and I don't know it that well but I think is a _little_ bit more rigorous with math. Sedgewick's book doesn't mention asymptotic limits or BigO notation, rather talks about the run time / memory requirements in more informal terms, like "run time being proportional to the square of the number of input items", etc. But, there's another book from Sedgewick (and Flajolet!) if you want to go deeper into analysis: (1).

Skienna's book is great to have a wider outline on all sorts of algorithms, including some less widely known and (I think) not covered in either of Sedgewick's or Cormen's book. It is, if I'm allowed the pun, more of a breadth first than a depth first approach to the subject.

1: [http://www.amazon.com/Introduction-Analysis- Algorithms-2nd/d...](http://www.amazon.com/Introduction-Analysis- Algorithms-2nd/dp/032190575X)

<comment><USER6> Agree. Sedgewick's book is great especially because of the implementation. I'd also highly recommend his lectures on Coursera - Algorithms Part I and II. He explains the working of algorithms with animation, which makes it really easy to understand the algorithms.

<comment><USER7> Algo I ended recently, although it is available for a limited time. It will be back in the fall. I am very much looking forward to that and will definitely try to dedicate the time.

FWIW, the Sedgwick textbook is available on Safari.

</comment></comment></comment><comment><USER8> Sedgewick and Kleinberg are both solid introductory books that are well-suited for someone with little CS knowledge. The Algorithm Design Manual is a great book, but seems to focus more on giving a tour of different problem types and their associated algorithms than developing a deeper understanding of the theory behind it all. Cormen's book is fantastic and very thorough, but may be a bit harder to soak in for a beginner. Finally, while TAOCP could probably be considered the most revered texts on CS, they are not well-suited for a beginner trying to get their feet wet.

All in all, I'd say Sedgewick is the best of these options.

<comment><AUTHOR> Are Sedgewick and Kleinberg on the same level? So if I do one can I skip the other and move to say Algorithm Design Manual or CLRS?

From your comment it seems Knuth's book(s) to be the last (and for the mastery.

<comment><USER8> They're on roughly the same level but focus on somewhat different things. Sedgewick spends a lot of time on basic data structures like hash maps and search trees, as well as elementary algorithms like search and sorting, in great detail. Kleinberg instead approaches things more generally by tackling concepts by design technique - greedy, divide-and-conquer, dynamic, etc - <USER2> doesn't focus as much on the very basics. Kleinberg also spends a lot more time on more advanced topics like NP completeness, randomized algorithms, etc, while Sedgewick again keeps his focus on the more elementary topics.

CLRS contains pretty much everything contained in both Kleinberg and Sedgwick, so the two are essentially interchangeable in the sense that Kleinberg+CLRS contains roughly the same breadth of information as Sedgewick+CLRS. Since Sedgewick takes more time to explain the basics thoroughly, I'd say it's probably your best starting point.

Good luck!

</comment></comment></comment><comment><USER9> [https://www.cs.berkeley.edu/~jrs/61b/](https://www.cs.berkeley.edu/~jrs/61b/) this course by Prof. Jonathan Shewchuk is by far the best I have come across. Even the course is in Java, I really like the way he lays out all the basic data structure family.

The youtube videos are the icing on the cake as you can get thru them faster than compared to reading a book, if you are starting off I would highly recommend these youtube tutorials.

</comment><comment><USER10> Start with The Algorithm Design Manual and understand everything it says. Then try some exercises and re-read the entire book again. Use google to study any math in TADM you don't understand up front.

TAOCP isn't for reading from cover to cover and, arguably, neither is CLRS (especially for "first time through" studies).

</comment><comment><AUTHOR> I have some results and there seems to be a consensus for Sedgewick's. There was a course on Coursera mentioned.

Close second is Kleinberg's and Skiena's.

TOACP and CLRS apparently are considered reference reads and not starting material.

I think I know pretty much where to start. Thank you all.

</comment><comment><USER7> Does anyone have any opinions on or experience with the MIT OCW Intro to Algo class? [http://ocw.mit.edu/courses/electrical-engineering-and- comput...](http://ocw.mit.edu/courses/electrical-engineering-and-computer- science/6-006-introduction-to-algorithms-fall-2011/)

</comment><comment><USER11> For learning - <USER3>

For reference - <USER4>

</comment><comment><USER12> CLRS is the way to go.</comment>


"Why do I have difficulty with Wi-Fi when USB 3 devices are attached?" - <AUTHOR> https://support.apple.com/en-us/HT201163#17 <comment><AUTHOR> _> To avoid interference on the 2.4GHz band using Wi-Fi, try using the 5GHz band instead._

This is the 2017 version of "Just avoid holding it in that way."</comment>


No one wants games designed by spotty nerds? Get real - <AUTHOR> http://www.theguardian.com/commentisfree/2015/aug/13/games-industry-nerds-john-cridland-cbi

<comment><USER2> Why phrase the title in such a "woe is me" manner?

<comment><USER3> You should address that question to the headline writer at the Guardian, who snipped the woe-as-me comment from the interview. It does have an attention grabbing wording.

<comment><USER2> Good point. Guardian is like Buzzfeed and HuffingtonPost with their attention grabbing titles.</comment></comment></comment>


Factor: A Practical Stack Languge - <AUTHOR> https://factorcode.org/ <comment><USER2> As someone who built Forth compilers back in the day, I really like this language. There's a nice overview of Factor as a paper here: [https://factorcode.org/slava/dls.pdf](https://factorcode.org/slava/dls.pdf) and a Google tech talk video of Slava Pestov (Factor's creator) showing off the language here: [https://www.youtube.com/watch?v=f_0QlhYlS8g](https://www.youtube.com/watch?v=f_0QlhYlS8g)

<comment><USER3> Unrelated to the main topic, but I watched this video when I was in college and it was one of the factors that inspired me to pursue programming seriously.

</comment></comment><comment><USER4> I have had Factor installed and ready to go on each of my last three personal machines, and never got to the point of having a solid project to attempt.

I absolutely love the idea of concatenative languages, I just haven't gotten my toes in the door, so to speak.

Maybe this year, as I'm back in a coding job.

<comment><USER5> I recommend a 4-function calculator, if you don't mind trying GUI code.

<comment><USER4> GUI handling is actually my biggest gray area, that's a great suggestion.

</comment></comment></comment><comment><USER6> Is there a concise document somewhere that gives reasons why someone who uses an Algol style block structured imperative language (C, C++, C#, Pascal, etc.), or indeed any non-concatenative language, would benefit from switching to Factor?

The older I get the less willing I am to learn languages just because they are interesting.

<comment><USER7> > [why would I] benefit from switching to Factor?

Here's how it usually goes:

It works like this: You try Factor. You stick with its weirdness through one or two small projects. Somewhere in there your brain starts to accept the new way of doing things. Shortly after, you discover there are things you like and things you don't. You refine your opinion as you use the language more.

After a week or so, you will want to use an abstraction from Factor in a project for your day job. Maybe you implement it. You have confidence it will work because you've already seen it in Factor. But maybe you don't implement it for whatever reason. Even then, you have an advantage over your coworkers because you already have mental tools in place to help you reason about the problem.

<comment><USER8> The Sapir-Whorf hypothesis sure seems to hold with programming languages. Some ideas are easier to have in some programming languages than in others, although once you have the idea you can often 'explain' it in a programming language where it's less obvious.

</comment></comment></comment><comment><USER9> > it has powerful metaprogramming capabilities, exceeding even those of LISPs;

The part where it says it even exceeds that of Lisps, is it because it has access to change all prior tokens and later tokens? Basically factor parser words are like full program reader macros?

</comment><comment><USER10> I don't know if it's Baader-Meinhof or what, but I'm seeing concatenative languages all over the place now. Which is great, because now I'm planning to write my own! My gut says that a concatenative language could be ideal for competitive programming, where you want to quickly apply various transformations to your input and immediately see the result.

Here's a talk I watched recently describing some of the neat mathematical properties of concatenative languages: [https://www.youtube.com/watch?v=_IgqJr8jG8M](https://www.youtube.com/watch?v=_IgqJr8jG8M)

<comment><USER11> I implement small Forth-likes quite a lot, for instance [0].

I really like having something to explore 70-80s machines (other than Basic), hardware and systems that have no/bad Repls (like Xamarin). This kind of thing is ideal for that as it takes a really short time to implement, gives full and flexible access and it is fast enough to prototype things with.

[0] [https://gist.github.com/tluyben/16ee2645c4c8aed813005d51488d...](https://gist.github.com/tluyben/16ee2645c4c8aed813005d51488d5c6a)

</comment></comment><comment><USER12> What would this language do better than current languages?

<comment><USER13> It's small and easy to port. It might be useful in some embedded projects. Per Wikipedia the original use case was video game scripting.

A newer concatenative language with a better website: [https://8th- dev.com/](https://8th-dev.com/)

<comment><USER14> Looks fun! It's a shame that it's not open source, but I'm not in the owner's shoes, so there's that.

<comment><USER15> [https://github.com/factor/factor](https://github.com/factor/factor)

<comment><USER16> They were talking about 8th.

<comment><USER15> Ah whoops!</comment></comment></comment></comment></comment></comment>


I'm now a developer, where to go from here if I want more money? - <AUTHOR> I'm 25. I graduated with a master's degree in CS a year ago. I started working as a developer in a big company in Europe, making a decent salary (40K euros) which allows me to live comfortably but makes it hard to spare and invest. My goal is to reach 60K euros in the next couple of years.
I love being a developer, but I feel like it won't get me near my goal fast enough, so I'm looking at the different career evolution options I have.
What your advice? <comment><USER2> I've been earning about $130,000 USD a year as an mobile engineer - which is one of the top paying tops of engineers right now. Before those last 3 years though, I was earning much less. The difference was I started taking on more entrepreneurial opportunities. I started learning design and started being a product owner. I could do more than just engineer, I could solve business needs in a creative way.

So I might suggest looking at startup companies where they need someone who can do more than just be a code monkey. Startups pay very well.

Also, you should consider contract work as well. Maybe 10 hours a week. Someone always needs an engineer. Go to local tech networking events and meet people too.

If you want to earn more than a cubicle programmer would earn, look into other ways you can contribute to a product or company.

That is how I do it at least.

If you are not a mobile developer, I highly recommend you learn it. Knowing iOS development in addition to whatever you already know can add more to your paycheck.

If you need a good starting place on learning iOS: [https://www.udemy.com/ios9-swift/?couponCode=iOSMINER](https://www.udemy.com/ios9-swift/?couponCode=iOSMINER)

This is my personal experience - you can see some of the things I've done on my linked in:

[https://linkedin.com/in/spentak](https://linkedin.com/in/spentak)

<comment><USER3> _" So I might suggest looking at startup companies where they need someone who can do more than just be a code monkey. ... If you want to earn more than a cubicle programmer would earn, look into other ways you can contribute to a product or company."_

By getting promoted up the developer ladder - lead developer, development manager, etc. - you end up in positions where you have more influence on the products the company builds, and that usually comes with a higher salary. The downside, at least for people like me who would rather code than manage, is that it also comes with the responsibility to manage other peoples' work, and eventually to manage personnel issues like hiring and firing.

This is true in all companies, not just startups - every company needs some number of people in leadership roles. A possible advantage of working for a startup is that you might be given broader responsibilities a bit sooner.

 _" Startups pay very well."_

The consensus I observe on HN is that startups pay developers significantly less than large companies like Google or Facebook, but try to convince employees that the tiny percentage of equity they're offered (which is most commonly worthless, since most startups fail) makes up for a decreased salary.</comment></comment>


Tell HN: Please Stop Submitting "An Open Letter to My CEO" - <AUTHOR> It was discussed yesterday, yet there are still tons of submissions being made: https://news.ycombinator.com/item?id=11138086
The CEO did reply to it, and that might be the end of it: https://twitter.com/jeremys/status/701091286325985280
Medium links apparently do not play well with the HN dupe detector since they append an unique identifier at the end of the URL. <comment><USER2> Maybe we should blame the medium rather than the messenger?

</comment><comment><USER3> That last sentence is critical.

I was skeptical when it went through and created a new submission. I should have searched.

</comment><comment><USER4> Can we submit that she is fired? Another classy move by Yelp

<comment><USER5> I'm really struggling to think of a company that _wouldn 't_ fire an employee for writing a widely shared blog personally attacking the CEO for not being more forthcoming with solutions to her own personal finance misjudgements, complete with suggestions that any idiot could get more money working for CVS and she didn't really want to be in customer support anyway.

I mean, I'm sure she's fundamentally right that Yelp isn't particularly high on the list of attractive entry level opportunities in SF and buried beneath the invective _might_ be a couple of genuine issues with their operations. But even as someone whose approach to questioning management decision-making was once described as "approaching my career the way a lemming approaches a cliff" I wouldn't have written a letter like this without intending to be fired for it.

</comment></comment><comment><USER6> Yeah I just posted but saw about 2 more as a scrolled down. Will delete mine now.

</comment><comment> J-dawg Anyone know why Medium do that / what the identifier is for?

<comment><AUTHOR> It is a way to track users without using tracking cookies.</comment></comment>


Hold That Recession: U.S. Indicators Are Trouncing Forecasts - <AUTHOR> https://www.bloomberg.com/news/articles/2019-09-20/hold-that-recession-u-s-indicators-are-trouncing-forecasts <comment><USER2> I see lots of people here talking about recessions and market crashes as though they were the same thing. So let me point out that they aren't. A recession is when GDP goes down and a market crash is when stock prices go down. Either one can happen without the other.

<comment><USER3> I'd say that while the stock crash of 2008 may have subsided, there are still fundamental problems being suffered through across the US from that fall.

<comment><USER4> Just use an accurate word to describe that instead of confusing the economically illiterate

</comment></comment></comment><comment><USER5> I even heard it here that that's it, recession is a sure thing. This or that indicator flipped and it's all over. Heard people talk about it around town. I debated moving my retirement investments around even. But a voice in the back of my head was telling to not bother, since there is always someone saying the big crash is going to happen next week. And eventually it will happen, but probably not next week...

<comment><USER6> yeah, the thing is NOBODY knows. If anybody ever knew the market was going down, they'd keep it a secret and short it. And if they KNEW it was going up they'd keep it secret and buy.

A good thing to keep in mind while the "experts" are bombarding you with their theories.

<comment><USER7> I invited NOBODY to my house yesterday to discuss this very situation. NOBODY told me there is secret and I should listen to NOBODY. So here I am.

</comment></comment></comment><comment><USER8> Stocks are up because there is so much money around these days, and not a lot of places to put them. Bonds aren't paying, so don't put them there. Where else do you put your money?

<comment><USER9> There's also a tremendous amount of stock buy back happening, which means less money is being distributed to investors and more is being used to prop up the prices.

There's plenty of other places to put money though.

<comment><USER10> Stock buybacks _are_ a way of distributing money to investors. It's functionally equivalent to a dividend.

</comment></comment></comment><comment><USER11> The recession talk was mostly media-driven based on a few cherry-picked data points. Sure, they may be right...but they may be wrong. For whatever reason, every media outlet has been running with this lately.

<comment><USER12> I'm going to push back against this "let's blame the evil media for everything" view. The treasury yield curve inversion is one of the best indicators we have of an oncoming recession, even if it's not 100% accurate. To not report on that very important signal would have been negligent.

<comment><USER13> Most recessions are preceded by yield inversion, but a yield inversion may or may not lead to a recession. That's where are the misleading information is coming from.

Edit: Idk why the downvotes. Yield inversions occur much more often than recessions therefore by necessity some yield inversions are preceded by another yield inversion instead of a recession.

<comment><USER14> "All recessions have been preceded by an inversion of the 2-10 year, but not all inversions of the 2-10 year have preceded a recession" is the phrasiology you're looking for.

<comment><USER13> "not all inversions of the 2-10 year have preceded a recession"

Since recessions are cyclical all inversions eventually lead to a recession. There haven't been enough cycles to draw any sort of meaningful conclusions based on temporal proximity of the inversions to the recessions.

<comment><USER15> you seem to be contradicting yourself

> a yield inversion may or may not lead to a recession

> all inversions eventually lead to a recession

</comment></comment></comment></comment></comment></comment><comment><USER16> ClearBridge Recession Risk Dashboard (interactive, you can manually adjust the input metrics to see what effect it has on the overall risk estimate): [https://www.leggmason.com/global/campaigns/clearbridge- aor-r...](https://www.leggmason.com/global/campaigns/clearbridge-aor- recession-indicator-tool.html)

</comment><comment><USER17> US has the strongest economy in the world and it's obvious that it is going to grow since its main competitors (Europe, China, Japan) have declined. (Think market share increase and capital increase, in terms of a company)

The main two problems that faced US economy in the last 60 years - energy and jobs, have been solved by US. For energy, US is now the largest energy producer in the world. For jobs, US has climbed out of the hole of threats from globalization, increased internal labor force and automation, by using tariffs, deportations, border walls, upgraded workforce via increased education, and splitting threat from its main outsourced competitor China.

<comment><USER18> Recessions often tend to be global; they are not a zero-sum competition between countries.

</comment></comment><comment><USER19> Well! Do more of the same! Obviously people are generally experiencing better lives, right? (No, actually they are not (US-focused).)

If the metrics are wrong or only partially focused, their meaning is less or non significant. There is ample recent evidence that only a narrow upper class is improving while the increasing lower class is dropping in terms of cost-of- living-adjusted income.

<comment><USER17> Please do show your evidence. From what I have read, it's the opposite.

white-collar workers have seen their wages grow by nearly 7.5% [https://www.usatoday.com/story/opinion/2019/08/14/blue- colla...](https://www.usatoday.com/story/opinion/2019/08/14/blue-collar- workers-wages-rising-inequality-shrinking-economy-column/1955329001/).

Workers at the lower end of the pay scale finally are getting the most benefit from rising wages [https://www.cnbc.com/2019/03/13/workers-at-lower-end-of- pay-...](https://www.cnbc.com/2019/03/13/workers-at-lower-end-of-pay-scale- getting-most-benefit-from-rising-wages.html)

</comment></comment><comment><USER20> Germany and India are heading towards a recession. China's growth rate is slowing. If there is a global recession, I don't think U.S. can escape it. A lot of U.S. companies sell their products globally. Here is share of foreign revenue of some U.S. companies - Ford - 51%, Bank of America - 20%, Boeing - 41%, Amazon - 45%, McDonald's - 66%. Ford employs 85000 people in U.S. If Ford's global sales declines by 20%, they will close some U.S. plants and lay off employees. Even if just 20% of the companies in S&P 500 start laying off people, that will soon have a cascading effect. People who lost their jobs will stop spending. Even the people who have jobs will be afraid to spend on anything major - new houses, new cars, etc.

</comment><comment><USER21> Sure, we might not hit a recession, there seems a decent chance we won't, but for every slightly positive benchmark cited in this article there's at least one negative, be it trends in car sales (especially new truck sales, which tend to be predictive) or a jobs report that looked positive only because it was propped up by thousands upon thousands of low-paid temporary Census workers. The positive indicators are, well, positive, but "trouncing" just raises the headline to the level of click bait.

</comment><comment><USER22> If you want to get past the paygate to read this article, disable JavaScript for www.bloomberg.com.

> "the message is growth is slower, yes, but the risk of recession is grossly > overstated. As long as the Fed continues to do the right thing" by cutting > rates a couple more times.

Apparently a healthy economy is one the Federal Reserve manipulates by keeping interest rates as low as possible. How long can they keep this up?

<comment><USER23> A long time, if they want.

They can also print money, the second lever at their disposal.

There's a fascinating video about this, from Ray Dalio. Give it a look, it's pretty interesting.

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

<comment><USER2> Printing money and lowering intrest rates are the same lever. When they lower interest rates more people sell bonds. The Fed buys those bonds with printed money. When the Fed prints money they then buy something with it. When they buy bonds it lowers interest rates. They sometimes buy shares but that has the same effect.

</comment></comment></comment><comment><USER24> Economic news about recessions are garbage. It's just a mean reverting process.

<comment><USER25> If I took my money out of the market and braced for a recession every time the media reported economists were forecasting an imminent recession, I'd have missed out on tens of thousands of dollars in gains.

Eventually, the other shoe will drop, I'm sure, but hell, the Dow is floating around 27k. A little couple hundred point dip is just an opportunity to buy in at a discount.

<comment><USER26> I mean, you can tilt toward value or hedge your portfolio with options or something. I wouldn't actually do the latter though, put options are pretty much always overpriced by at least 50% or more. Tilting toward value until the next election would be a reasonable move. Or you could try a 60/40 equity/bond portfolio.

Personally though, I just invest in a 3x leveraged S&P 500 ETF and roll with the punches. Unless there's some cataclysmic event, that 3x leverage will almost always outperform the S&P, even with the volatility drag.

<comment><USER11> You don't "invest" in a 3x leveraged ETF -- they are day-trading instruments.

<comment><USER26> Says who? I hold them long-term at it works out very well. The only problem is the volatility tax you have to pay. Formula for volatility tax is:

actual returns = return - var(r) / 2

If the S&P 500 has a Sharpe ratio of one and say, a 10% mean yearly return and 10% vol, we first need to turn it into single day returns and volatility (since these leveraged products rebalance daily) so we get:

S&P 500 Daily Returns = S&P 500 Daily Vol = 0.1 / sqrt(252) = .006299 or ~6 basis points

Before the volatility tax, thix means that our leveraged product should get 18 basis points of returns and volatility daily. In our annualized we get:

3x S&P 500 Annualized Returns = Annualized Vol = 29.99%

Now we factor in the volatility tax:

actual returns = .2999 - .2999^2 / 2 = 25.49%

Now comparing with actual market data: [https://www.etf.com/UPRO#overview](https://www.etf.com/UPRO#overview)

PERFORMANCE [as of 09/19/19] 1 MONTH 3 MONTHS YTD 1 YEAR 3 YEARS 5 YEARS 10 YEARS UPRO 12.19% 7.41% 64.68% 1.13% 34.64% 22.78% 31.97%

The annualized return of UPRO is 31.97%.

If we look at: [https://www.investopedia.com/ask/answers/042415/what- average...](https://www.investopedia.com/ask/answers/042415/what-average- annual-return-sp-500.asp)

We can see that the S&P 500 3x leveraged is an excellent investment on a non risk-adjusted basis. On a risk-adjusted basis it's worse, the S&P 500 in the example having a Sharpe ratio of 1 while the 3x S&P 500 having a Sharpe ratio of 0.8499. But since you can't eat risk adjusted returns and it's going to be difficult for retail investors to get significant leverage to actually invest in good risk-adjusted portfolios, the 3x daily levered S&P 500 is a fantastic investment.

<comment><USER11> > Says who?

The prospectus of UPRO [1] : "returns over periods other than one day will likely differ in amount and possibly direction from the target return for the same period."

[1] [https://www.proshares.com/funds/upro.html](https://www.proshares.com/funds/upro.html)

<comment><USER26> Clearly. But that's not a problem unless you don't understand it.

</comment></comment></comment></comment></comment></comment></comment><comment><USER27> A recession is not an economic fact that magically happens when some predetermined values for some set of indicators are reached.

A recession will happen when there is a mix of two things: 1) a big financial/economic issue that affects an important sector of the economy (crisis), 2) widespread panic.

There are already multiple candidates for 1), but what hasn't happened is 2).

Why? That's anybody's guess.

My guess is Trump.

For people to panic, there needs to be sustained media coverage and focus. But now whatever Trump says is more important than anything else for the media.

If you look at the media since Trump became president, the most important issues have been all stuff related to his government, and whenever the media has focused on anything for too long, he's come out with some other thing that the media shifts their attention to.

So we've had lots of small panics, which by now have mostly desensitized the public.

If someone like Trump can continuously interrupt the media, they effectively control it through disruption, and then the media cannot focus for long enough on anything for people to fully panic and cause a full blown recession.

<comment><USER28> 2008 and the ensuing recession happened because of an actual event (Lehman) and a credit crisis. I'd say those are 1 in your model. We haven't had anything of that magnitude yet, so I disagree that in today's economy condition 1 is satisfied.

That said, panic is a real component of crises and Trump's ability to shift focus could actually be a real asset, though it will be many years before historians and economists recognize it.

<comment><USER27> > 2008 and the ensuing recession happened because of an actual event (Lehman) > and a credit crisis. I'd say those are 1 in your model.

Yes, and also 2. Without panick and a lot of intensive short selling, Lehman wouldn't have happened.</comment></comment></comment>


Database Unit Testing: It's Tricky - <AUTHOR> http://www.hackinghat.com/index.php/database/database-unit-testing-its-tricky

<comment><USER2> I work in database centric (Oracle) organization and we've never attempted unit testing at the database or even pl/sql level, for many of the reasons mentioned. Additionally:

1\. It's hard to achieve any form of dynamicism in the database. Yes, you can use "execute immediate" in PL/SQL, but that introduces other problems. We have some packages that cobble together long complex queries to be executed via execute immediate, and they're very difficult to understand.

2\. Functionality is often quite dependent on the underlying data. In a dev environment where tables or schemas may be dropped or rebuilt, this can become painful.

3\. Tests tend to be very tightly coupled to the underlying design. Compare testing a java method whose underlying code could be swapped out without failing a test if its functionality remained unchanged with, say, a test that must verify if certain rows have been written to a table. In the case of the latter, changing the data model may also break the test.

4\. Side effects: the database layer tends to be side effect heavy (triggers, child tables, log tables, etc...) Testing for these is painful.

There are some PL/SQL testing frameworks for Oracle, ( [http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks...](http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks#PL.2FSQL) ) but, IMHO, many of them are fairly weak, and/or, suffering from bit rot.

</comment><comment><USER3> If you're on a Java stack, use DbUnit; furthermore, the combo of Spring Test & DbUnit, and staying away from putting too much logic in stored procedures / triggers means you can unit test against the database fairly well -- leaving zero side effects, and with speed/efficiency. I wrote up a blog entry on the technique I use: <http://zenoconsulting.wikidot.com/blog:8></comment>


Interactive map of people killed by the police in the US - <AUTHOR> http://www.theguardian.com/us-news/ng-interactive/2015/jun/01/the-counted-map-us-police-killings

<comment><USER2> I'd like to see this side by side with a map showing police deaths. I'm inclined to believe that in many cases (certainly not all) that police fear and training, as well as firearm availability has lead us here.

</comment><comment> V-2 Obligatory xkcd: [https://xkcd.com/1138/](https://xkcd.com/1138/)</comment>


Why Pi Matters - <AUTHOR> http://www.newyorker.com/tech/elements/pi-day-why-pi-matters?mbid=social_twitter <comment><USER2> It's really only "pi day" for a single country around the world that uses a notation that nobody else can understand (mediumUnit.smallestUnit.largestUnit).

I'm also surprised that US still uses two-digits for years, as in "3.14.15", I though the changes brought by on Y2K had been worldwide.

</comment><comment><USER3> I believe, but correct me, in Pi, there is no repeating pattern known to exist yet. So you can encode information in Pi. No? I heard this from watching Person of Interest...

<comment><USER4> These are unrelated concepts and the latter is unproven but conjectured. Pi's irrationality is sufficient to show that there is no point after which the digits of pi lapse into cycles. However, it's conjuctured that pi is also a normal number[1]. The square root of 2 and e are also conjectured to be normal, though a proof again does not exist. It has been proven however that the vast majority of real numbers are infact normal, but the proof isn't constructive so specific examples largely elude us.

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

<comment><USER5> Specific examples of normal numbers are super easy to construct. Here's one (in base 10): 0.01234567891011121314...

[I am using "normal" to mean normal in a specific base, not necessarily normal in all bases (i.e., not necessarily "absolutely normal"). But this is all that is necessary for the idea of encoding information via the digit expansion of a constant]

</comment></comment></comment><comment><USER6> In San Francisco, the Exploratorium offers free admission for Pi Day tomorrow. Yay, Pi Day!</comment>


99 Bottles of OOP - <AUTHOR> http://www.sandimetz.com/99bottles <comment><USER3> I love Sandi's writing - and how they're giving it away for people who can't afford it:

"Of course we want you to buy it. It's been years of our lives in the making, and we have bills too. However, if you absolutely cannot afford it, we'll make you a deal. Snail-mail us a postcard, and we'll email you a free copy.

A proper postcard, mind you, with a vacation-like scene, and an actual postcard stamp. Hand-drawn postcards are both acceptable and encouraged. The more effort you expend, the better we'll feel about our end of this bargain."

<comment><USER4> Like another commenter I think $49 is a bit high for a digital book. However, now that I know that they are giving it away for people who can't afford it I don't mind as much. I can afford $49 for this book even if I think it's a little high.

I guess this begs the question: if they dropped the price to $25 would more people be able to afford it and then they wouldn't have to give any away? I wonder what the "correct" balance is there.

<comment><USER5> $49 for a lifetime software engineering wisdom? You refactor a single class that you never have to revisit again and you've easily paid for this.

I will never understand programmer's cost/benefit analysis..

<comment><USER6> That's assuming that what's in this book is exceptional (which you can't tell without a preview). I didn't think that Practical Object-Oriented Ruby was incredible, though it is a well-written tutorial of basic OO techniques. You could spend less than $49 on a couple good used copies of OO classics, or many more if you visit the right used bookstore. And it's not even a hard copy so it is competing with the wealth of good free information online about OOP. I might pay $99 for a hard copy of this, but no way I'd pay $49 for a PDF.

<comment><USER7> > I might pay $99 for a hard copy of this, but no way I'd pay $49 for a PDF.

Generally, I like physical books more than electronic ones, and I'd be willing to pay a premium for it. From what you're saying, a PDF of the book would provide you < $49 of benefit, while a hard copy would provide you > $99. In your opinion, what is the difference in value between those? What I mean is, what specifically about the hard copy provides enough benefit that you'd pay over twice as much for it?

IMO, the greatest proportion of value for a book I'd actually buy is in the information it contains and the presentation of that information, rather than the form it's published in. It's not like I don't have several devices that I could use as portable readers, after all.

</comment></comment></comment></comment></comment><comment><USER8> Is it just me, or does $49 seem high for a digital copy? I went to buy it expecting it be somewhere around $20, and then had a bit of sticker shock when I was in the checkout path. I know it took a lot of time and effort and on the author's part, so not saying it isn't worth it, but for a non-physical copy it seems like a pretty steep price. I ended up passing, wonder how many others did the same as me.

<comment><USER9> It's high, but not terribly high, imo. When it comes to professional development, this could be considered quite cheap. A freelancer who charges $100/hr can pay for this in 30 minutes, and if it gives more than 30 minutes of productivity in the future, then it was worth it. (Figure out your rates, and do the math. Odds are that it'll be worth it.) Furthermore, a lot (if not most) companies will be willing to purchase such a book for their employees, because the math is even better for them.

If you're a tech writer like Sandi, you can absolutely get away with $49/copy, or even $99 or $199 per copy. They usually offer extended examples online or what-have-you to justify the $199 price, but it happens all the time.

For professional development books like this, you can't really think of it in the same terms as leisure books, like fiction, where the only benefit is having a good time. There's a benefit that goes beyond entertainment -- benefits that are monetize-able by the reader. If I read this book, and I learn something that allows me to do something in 30 minutes that previously took me an hour, then I've effectively doubled productivity. That means I'm more valuable -- and therefore, the book is more valuable. More valuable = more expensive.

Hope that helps explain why it's the price it is. That said, I'm passing too. I tend to prefer physical books for professional development, or ideally, a physical + digital combo.

<comment><USER10> I just wish there was a sample chapter or something. This sounds extremely interesting and useful, but I'm not willing to shell out close to $50 whether it _is_ interesting and useful. I'm also not going to send a postcard because I _can_ afford it, I'm just not willing to risk $50 on something I have so little information on. If we were in a bookstore I could at least crack it open and see what it looks like inside.

Edit: Ah, found sample pages and chapter 3 at the purchase site[1]. That would be a really good link to put in this announcement.

1: [http://www.informit.com/store/practical-object-oriented- desi...](http://www.informit.com/store/practical-object-oriented-design-in- ruby-an-agile-primer-9780321721334)

<comment><USER11> I believe that's their previous book, not "99 Bottles".

<comment><USER10> You are correct. I arrived there by clicking on the bottle diagram, and wasn't paying attention to the specific book it brought me to as I assumed it was the one the page is about and was excited to see a link to sample content. That's a shame.

</comment></comment></comment></comment></comment><comment><USER12> I'd like to see the first few pages just to see what the style is like, ala Amazon's "Look inside" function.

<comment><USER13> Sandi Metz has another book on what I would guess is a similar topic, Practical Object-Oriented Design in Ruby (colloquially, POODR). I found that book to be highly practical to daily development and I expect this to be no different. You might try googling for info about that book or perhaps try the mailing list if you want to find out more before buying.

<comment><USER14> I'm curious about how the two relate to each other. Is 99B supposed to supplant or complement POODR?

Edit: looks like the later. The Products page has a description of both: [http://www.sandimetz.com/products/](http://www.sandimetz.com/products/)

</comment></comment></comment><comment><USER15> I bought this and regretted it. The writing is nice and friendly, giving clear explanations. They are particularly good at pinpointing and naming problems with design.

However, contrary to the expectations I had from the web page, here, and the introduction, it offers little to anyone with experience. I learned almost nothing I didn't know from a few articles about TDD (I don't practice it) and exposition is slow (no different from most programming books). The chapters currently available also have little to do with the OO part of OOP: several "OOP terms" are mentioned and used, but they apply and are applied without the context of multiple classes.

I also agree with others about the high price. This seems a lot to me for an ebook, and having got through it very quickly the feeling is only confirmed. Two more chapters are due, as it's a beta, but I doubt this will change my view.

I feel it would be a good book for someone new to programming and potentially someone new to TDD. I would still feel obliged to mention value for money to such a person.

<comment><USER16> I agree. This book is for beginners - very disappointed.

</comment></comment><comment><USER17> I think it would be helpful to have a sample chapter.

I haven't read an OOP book in awhile, but when I did they often had a lot of examples that while reasonably easy to follow didn't actually translate into real world usage (`Car extends Vehicle implements Drivable` or whatever).

</comment><comment><USER18> I might be picking this up. Most OOP design books I avoid, as I have little money and I dislike code with Java Syndrome (heavy focus on inheritence and hierarchy, extreme verbosity, IDE focus, boilerplate with no end in sight, patterns to replace your favorite features from Lisp, java.net.org.lang.lang.really.long.reallylong.import.paths.path, IteratorStrategyProviderFactoryFactoryFactory, etc. yes, I'm exaggerating quite a bit, but there's a reason I avoid Java like the plague), but Ruby tends to play home to practicality, and smalltalk refugees. This is good, and means that this book is a far safer bet than, say, flashy OO design book of the week.

Although, I should probably get around to reading Refactoring, and Design Patterns. I've heard those are good...

<comment><USER19> >code with Java Syndrome

You might find that most of the Design Patterns and even some of the Refactoring book are focused on working around limitations in Java/C++-style languages.

>Although, I should probably get around to reading Refactoring, and Design Patterns

I'd been programming for 20 years before reading either.

Both were...entirely unsurprising. Design Patterns at least defined a useful vocabulary for talking about different patterns, so I found it useful in that respect, and at least some of the patterns are useful outside of a Java/C++ language. Refactoring had some good wisdom on OO design, but it was pretty much all stuff I'd picked up elsewhere or come up with on my own.

Wouldn't hurt to read through both at least once to see if there are any surprises for you. Might be safe to just check them out of the library, though. I kept Design Patterns around but gave away my Refactoring copy.

<comment><USER20> Personally I really liked "Head First: Design Patterns" because it's more about the overarching strategies (e.g. composition vs. inheritance) which design patterns are merely examples of. It was more of a top-down approach - <USER2> didn't realize memorize the patterns themselves, but internalized the _justifications_ for them.

<comment><USER18> Than I may look at that: I have long since learned the truism that it's better to know how to think than what to think.

</comment></comment></comment></comment><comment><USER21> The intro sold the book to me but I'm a bit reluctant to buy it because of the fact that it uses Ruby. I've just started working with Java (straight from University last year) and I've come to realise that in comparison to other OO languages which have evolved their syntax (C# & Python) Java hasn't. I doubt it'll help me with Java. I've already invested in a few books and test engines, mainly for my Oracle certifications.

<comment><USER22> Iunno, what's unique to ruby?

I can only think of module mixins. Everything else (blocks, anonymous functions, syntax sugar) can be roughly approximated (i.e. generics), since I strongly doubt the book would use any of the metaprogramming features.

<comment><USER23> Ruby uses messages for methods, allowing cheap delegation; classes can be extended (monkey patched) after definition.

I doubt Ruby OOP code would avoid using all metaprogramming, at the very least attr_accessor!

<comment><USER24> To me, metaprogramming means writing _new_ macros/templates, not just using the "standard" ones.

</comment></comment></comment></comment><comment><USER25> I would have bought a physical copy, but I don't prefer digital copies of books like this.

</comment><comment><USER26> The book seemed rather short for the price. Definitely had useful information that helped me to understand issues I have with code design. It wasn't worth $50 to me, but may be for other people.

<comment><AUTHOR> Sandi really distills knowledge well. I haven't bought this book yet, but after reading POODR, I'd take 20 pages from her over 100 from another author. I think it's easily worth $50, but I realize we're in an age where we're used to $19 ebooks. Again, I'd pay $100 for her material over somebody else's $19 book. (Not compensated or anything, just a fan of not wasting my time and of awesome materials that help me accomplish that goal)

<comment><USER27> This is a very accurate based on my impression of the 99 bottles book.

The information is plainly stated in a way which is so simple it's novel.

</comment></comment></comment><comment><USER28> $49 seems pricy for a digital book, but like said before, it's a small price to pay in the grand scheme of things if you're making a decent salary and if you write much better code after reading it.

That said, the broke college student in me is writing a postcard.

</comment><comment><USER29> Congrats on the release Sandi and Katrina! I am looking forward to reading it! Just purchased and downloaded.

</comment><comment><USER30> Unclear -- is this a physical book, an ebook, or both?

<comment><USER31> Digital – every button on the page says "Buy Digital Book Now"

<comment><USER30> I swear they didn't say that a few minutes ago...anyway, ebook is what I wanted, so I'm happy.

<comment><USER13> The page is definitely undergoing launch changes, there didn't use to be an offer for a physical book on the page either.

</comment></comment></comment></comment><comment><USER32> The author has good presentations on YouTube, too.

</comment><comment><USER33> Does anyone know how ruby specific this gets? Is it more about general software development while simply using ruby as the vehicle or is it something only ruby specialists would get something from?

<comment><USER34> Sandi came and did the training this book is based on with our company, and the iOS/Android devs got a lot out of besides the Ruby peoples... it uses Ruby, but it's not _about_ Ruby.</comment></comment>


How To Make Money With Apps - Turn $1K into a $200K Portfolio - <AUTHOR> http://www.bluecloudsolutions.com/blog/money-apps-turn-1k-200k-portfolio/ <comment><USER2> Q: Could you explain more abou how use famous people? Do you ask any permission?

A: Well, I re-design the games to look like them, name the game to capitalize on search volume, then hope they don't sue me. Then some of them do. That's annoying.

<comment><USER3> Clearly dealing with a fine, upstanding, productive member of society here.

</comment></comment><comment><USER3> AKA - How to spam app stores with crap.

<comment><USER4> As revolting as it is, it is a good article. Most new apps on the various app stores I suspect are reskins/duplicates of old ones.</comment></comment>