Trial by Jury, a Hallowed American Right, Is Vanishing - <AUTHOR> http://www.nytimes.com/2016/08/08/nyregion/jury-trials-vanish-and-justice-is-served-behind-closed-doors.html <comment><USER2> America is unusual in having "charge stacking" (if you break in and steal something you can be convicted of both the break in and the theft, as opposed to simply the more serious of the two) and plea bargains (which are considered a human rights violation in many countries). The combination really tilts the power in favor of the prosecutor and, as the article points out, drives defendants towards conviction under the very low indictment standard of evidence rather than the rigorous one of courtroom proof.

<comment><USER3> Whenever I hear about the American justice system I wonder how it can live in the presence of the 8th amendment. Both life sentences (or multi life sentences) and death penalties are seen as cruel and not permitted in most of Europe.

<comment><USER4> It's because Europe doesn't interpret the 8th Amendment, the US Supreme Court does. And here, there's a really high bar for cruel and unusual. To the point where as long as it takes place in a prison, it seems to be okay. I don't like or agree with it, but the legal meaning of the 8th Amendment is not obvious from its text. That might be the first sign that we're getting it wrong, actually.

<comment><USER5> The _meaning_ is pretty obvious considering that the folks who wrote the damn thing had capital punishment for numerous crimes and still practiced branding, public whipping, etc. as punishments. We just don't like the implications of the real meaning and look for ways around it.

<comment><USER4> The text reads

>Excessive bail shall not be required, nor excessive fines imposed, nor cruel and unusual punishments inflicted.

What you're referring to is the original meaning. There are other principles of interpretation in the US judiciary. The Supreme Court has shifted from the original meaning, given that there are some restrictions on capital punishment (mostly based on age and mental handicap). Most of that development has been from the mid-80's to today.

However, to further address your point, I don't think the meaning is obvious from the text. In particular, the word "cruel" in relationship to "punishment" is not obvious to a layman.

<comment><USER5> If you're reading Darwin's work, you don't look at a 20th century dictionary to figure out what he meant. The question is, what would the phrase "cruel and unusual punishment" have meant to people when those words were written?

<comment><USER6> Do you also take the position that the second amendment applies only to arms that were available at the time?

A constitution is not a codification of objective facts but of principles and processes for resolving disputes between people. To my mind it seems more likely that "cruel and unusual punishment" means "any punishment cruel and unusual according to community standards" than "this specific list of punishments".

<comment><USER5> > Do you also take the position that the second amendment applies only to arms > that were available at the time?

No, but I also don't think a textualist interpretation of the 8th amendment proscribes only a fixed set of punishments that existed in 1789. Words like "arms" and "punishments" denote categories-- _kinds_ of things grouped by shared characteristics. Someone in 1789 would be amazed by the technology of a modern shotgun, but would perceive it shared all the characteristics of what they thought of as "arms."

Likewise, hydraulic presses did not exist in 1789, but someone from the time would have recognized putting a convict's appendages in such a machine as sharing the characteristics of what they thought of as "cruel and unusual punishment."

But the death penalty did exist in 1789, and it wasn't considered a cruel and unusual punishment. So you're not just talking about fitting new things into existing definitions, but _changing the definitions themselves_ to include things that were previously excluded.

<comment><USER7> The ordinary definition of "unusual" refers to frequency in the current environment; there is nothing inconsistent with textualism to understanding that the use of that word in the 8th Amendment _very much_ meant exactly that the frequency of practice of particular punishments in some context (whether global, or among "civilized nations", or whatever) would be relevant in determining whether or not it was "unusual".

Its not a changing definition when the ordinary definition of a word refers to circumstances which are subject to change.

<comment><USER8> This leads to a strange outcome where the government needs to execute X people per year to ensure it retains the right to execute people in the future.

<comment><USER7> Not necessarily. If something is widely accepted, both domestically and globally, as the standard punishment for a particular crime that is itself infrequently encountered, than that punishment for that crime is not unusual, even if the crime itself is unusual.

<comment><USER9> So you're saying that the laws under which Americans are governed shouldn't be up to Americans but should be, at least for some things, up to people who live in other countries?

<comment><USER7> > So you're saying that the laws under which Americans are governed shouldn't > be up to Americans but should be, at least for some things, up to people who > live in other countries?

No, I'm not making any normative statement about what laws _should_ be. I'm pointing out a fairly direct reading of the plain language actually adopted in the 8th Amendment. Which, in any case, was drafted and ratified by Americans, and so, whatever interpretation of it is correct, is not an example of the law under which Americans are governed being up to anyone but Americans.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> The potential for coercion in plea bargains is so high that I think it draws into question the practice as being in any way just. I've heard about drug cases where prosecutors offered 2 year sentencing deals vs. 60 year threats if the case goes to trial. What rational person would ever take that risk?

<comment><USER11> >What rational person would ever take that risk?

A rich person who can afford to hire good lawyers. If the DA is offering 2 years for a case that could go 60 then the case is not strong.

The one area I would fight even if not rich is if I was accused of a sexual crime. In the USA this is a life sentence either way. The choice is between spending your life in jail if found guilty or living under a bridge if you plea.

<comment><USER12> The VAST VAST majority of sexual related crimes are NOT taken to jury because of the stigma associated with those types of crimes. You will most likely NOT get a fair trial in a sexual related case. In a "hand on / aggravated" offense I would agree with you. You have nothing to lose. But in all other cases better to take the deal.

<comment><USER13> You could request a bench trial if you think the public at large would be biased. Unfortunately in the US this requires consent of the prosecutor. The Ghomeshi trial in Canada is an example of using a bench trial in this circumstance.

</comment></comment></comment></comment><comment><USER14> Judges should have the right to look at any plea deal they suspect may be questionable, and bring it to trial with the plea deal overriding only the sentencing portion but not the fact-determining portion of the trial. I suspect that any judge who did that would find factually innocent defendants and uncover major abuses of power.

Is there anything stopping a judge (other than time/resource availability) from doing this unilaterally?

<comment><USER15> >other than time/resource availability

Time and resource availability is the whole reason plea bargains happen to begin with.

Even if you hire more judges and build more courtrooms, going to trial may not help unless defendants get good lawyers who can spend a lot of time on their cases. These are not hallmarks of public defender offices in states with budget woes (i.e. almost all of them).

</comment></comment><comment><USER16> A jury is one of those things that it's the best you have. If you can't perform and function with the juries you select, then there's bigger problems brewing in your community.

I see a considerable amount of apathy towards serving in a jury. Why is it seen as such an inconvenience? I can understand if it causes financial problems, but I've seen jury dodging at all levels.

When it comes down to it, if you were accused of a crime wouldn't you want people who cared on the jury? If so you _must_ serve on the jury and must do it dutifully.

<comment><USER17> > I see a considerable amount of apathy towards serving in a jury. Why is it > seen as such an inconvenience?

Because it's very disruptive to the schedules and finances of those affected with limited assurances of how long those disruptions may last. If you're self employed, should you be expected to forego an income for days, weeks or months to serve on a jury? If you're responsible for children, should you then be expected to find and pay for safe, reliable, ad-hoc childcare for an undetermined period of time? Lst week a friend drove hours to jury duty only to be told once there that his service wasn't needed - nobody's was that day. He's an employee with a salary so he wasn't impacted financially, but something like this could have a very real impact on someone living paycheck to paycheck or someone who is only paid when they work.

I have great appreciation for the legal system and the trial by jury process - I've been called twice, but never selected to sit on a jury. But I believe that the system needs to address the impact that serving on a jury has on the lives of those tasked with serving.

<comment><USER18> Your friend's jury service wasn't needed precisely because of the issue mentioned in the Times article--the cases plead out. That doesn't stop the system from summoning jurors. If trials have declined by 90% or more, so should juror summons. That hasn't been the case.

</comment></comment></comment><comment><USER19> I can see how the average reader would read the headline and article and come to the conclusion that this is evidence of another flaw in the justice system. One problem, however, is the emphasis the article places on federal courts. Federal criminal charges are, by their nature, rare. Big drug investigations, terrorism cases, human trafficking, etc. If the feds are on it, it's likely a more elaborate case requiring many more law enforcement resources, more evidence gathered, multiple defendants, etc. It's no surprise these cases infrequently go to trial, they require longer to investigate and prepare, they are more infrequent, and there's so much evidence and the odds are so against the defendants that most defense lawyers advise their clients to plea out. The federal bench, therefore, is a very different beast from state courts where you see the majority of criminal cases tried.

<comment><USER20> Fair, but it begs the question as to whether State level trials have increased proportionallly

<comment><USER21> I cringe every time I see _begs the question_ in its modern usage. Please don't take this as a personal attack. Just sayin'.

<comment><USER20> I feel your pain, but I also don't know better way to express what I just expressed

<comment><USER22> "Raises the question"

<comment><USER23> "begs" as in "begs an answer to", which is the common usage. The formal logic usage of that term always seemed bizarre to me.

<comment><USER22> I am aware of the common usage. The correct phrase is "raises the question" when used in the common usage way.

If you want to use begs as in "begs an answer to" then use "begs an answer to".

<comment><USER24> Or, if you want to say "assuming the conclusion" say "assuming the conclusion", rather than demanding that the nonsensical common usage of "begs the question" stand aside for your preferred nonsensical usage, based some dubious notion of "correctness".

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER25> I can't say I am a big believer in the whole concept of juries, but that is a minor thing compared to other facets of a terribly flawed system such as the use of forsenic pseudoscience, eyewitness testimonies(which are unreliable), and more.

<comment><USER26> >I can't say I am a big believer in the whole concept of juries

Care to elaborate on your objections? Juries exist so that it limits the ability of the State / prosecutors or defense teams from lobbying or coercing 'professional jurors'. You do not want the people who are determining if a citizen broke a law beholden / under the thumb of the state. I say this even as someone who had a jury rule against myself in a civil case that both sides (defense and plaintiff) thought that a judge would rule in my favor.

"Oh geez you've not been chosen to sit on a jury recently, your paycheck is going to be a bit short this month. Maybe if you agreed more with the prosecutors..."

<comment><USER25> I question the ability of average people to evaluate arguments and think critically.

<comment><USER27> The jury isn't there to interpret the law - plenty of people in the room doing that already. Juries are there to inject mercy. That's why they must be a 'jury of peers' \- so they understand _why_ and can intervene with mercy if necessary.

<comment><USER28> Juries are instructed to determine the facts of the case beyond a reasonable doubt, and thereby determine the verdict. Mercy is not part of jury instructions. A jury would be a pretty blunt instrument in the delivery of mercy, because they don't control sentencing, but only the verdict. All the jury can say is "guilty" or "not guilty" \-- not something like "guilty, but give the guy a merciful sentence because of mitigating factors."

<comment><USER27> Thomas Jefferson said "I consider Trial by Jury as the only anchor yet imagined by man, by which a government can be held to the principles of its constitution".

Juries are allowed to vote "Guilty" or "Not Guilty" regardless of whether they think the accused broke the law. They cannot be punished by the Court. This is all expressly designed to allow Juries to correct inevitable tragedies brought about by too-literal (or too-political) interpretation of the law. I.e., mercy.

<comment><USER28> I suspect you are referring to jury nullification, which, contrary to proponents' beliefs, was never broadly accepted, nor designed intentionally as a feature of juries. It has always been contentious. It was certainly not the original purpose of juries. Furthermore, juries were punished very harshly for it in the past.

</comment></comment></comment></comment></comment></comment></comment><comment><USER29> I have served on a jury and it is a powerful experience. It also made me want to stay far far away from any trouble with the law ("the wheels of justice grind slow, but they grind exceedingly fine").

That said, the judges in this article come across as juvenile and thoughtless, being concerned about how boring work is without trials. How about the poor defendant who takes the plea deal even if they feel they are innocent, just because the stakes are too high? We hear a one mention of such a case, but the rest of the focus is on the poor judges and clerks who are bored or not paid enough ("my kids didn't go to camp"!).

<comment><USER30> Huh? The judges quoted in the article seem to be concerned about the impact on the fairness of the justice system.

\---

> "It's a loss," Judge Kaplan said, "because when one thinks of the American > system of justice, one thinks of justice being administered by juries of our > peers. And to the extent that there's a decline in criminal jury trials, > that is happening less frequently."

\---

> "It's hugely disappointing," said Judge Jed S. Rakoff, a 20-year veteran of > the Manhattan federal bench. "A trial is the one place where the system > really gets tested. Everything else is done behind closed doors."

\---

> Judge Gleeson wrote that because most pleas are negotiated before a > prosecutor prepares a case for trial, the "thin presentation" of evidence > needed for indictment "is hardly ever subjected to closer scrutiny by > prosecutors, defense counsel, judges or juries." "The entire system loses an > edge," he added, "and I have no doubt that the quality of justice in our > courthouses has suffered as a result."

\---

The "my kids didn't go to camp" quote is from a stenographer and was probably chosen by the reporter just to add another angle to the story.

<comment><USER31> The first quote you've referenced doesn't make mention of the fairness of the justice system.

So, there were two quoted judges bemoaning its effects on the fairness of the justice system, two talking about how their jobs are boring without trials (the quotes included below), and four that do not clearly talk about either of those.

\---

> "We'd love to have more trials; most of us enjoy trials," said Judge Alvin > K. Hellerstein, who joined the bench in 1998.

\---

> In April, when Judge Shira A. Scheindlin resigned from the bench after more > than two decades, she said the decrease in trials was one consideration for > her departure. "Trials are way, way down," she said. "The building's quite > dead."

</comment></comment></comment><comment><USER32> This was an odd article that kept saying trial "by jury" is a rare thing, and then made statements about trials generally being rare. It made me wonder how many bench trials occur.

<comment><USER33> You seem to have missed the point. The problem is not too many bench trials; after all defendants may usually choose to have such a trial if they wish. The problem is the vast majority of people in prison because they were intimidated into a plea, not because a jury of their peers convicted them.

<comment><USER32> I did not miss the point. The article repeatedly noted that trials subject the evidence to more scrutiny than plea deals. A bench trial would have the same effect as a jury trial here. The article asserts that trials are valuable. OK. However, throughout it subtly shifts and says there are few trials _by jury_ and asserts this is a big problem.

</comment></comment></comment><comment><USER34> As a jury consultant (AMA) I take issue with some things in this article, the most important of which are:

1\. It is generally accepted as true that the number of trials per year in the U.S. is shrinking (both criminal and civil). However, the data are spotty at best. Most of the data come from the National Center for State Courts, and their data are admittedly incomplete-- to the tune of no data on a number of states at all. Nor are any of the data particularly recent. My crunching of their data puts the decline at a mere ~1.8% per year, although it may well have accelerated since their last report. How much is unknown.

2\. The focus on judges lamenting the decline of trials is on one hand commendable and on the other disingenuous. The fact of the matter is that the vast majority of judges across the country do not like trying cases and put tremendous amounts of pressure on the parties to settle. These tactics range from straightforward admonishments to forcing the parties into endless mediation meetings and mandatory settlement conferences.

I am sensitive to the "piling on" of charges in criminal cases, which strikes me as a patently unfair means of getting multiple bites at the apple. For example, I helped defend a case involving a tragic killing where we succeeded in dodging a first degree murder conviction only to find that during sentencing, the defendant got an extra 20 years simply because the murder was carried out using a gun.

</comment><comment><USER35> I can see them going the way of the grand jury (which has effectively been forgotten or turned in to rubber stamp so much that it doesn't even warrant a mention in this article). The grand jury was the biggest check on prosecutorial power, it prevented the state from racking up insane charges to force a plea deal.

</comment><comment><USER36> Justice in America is available to anyone who can afford it.

</comment><comment><USER37> Most of these problems are created by the attitude of American public to show deep hatred for any group that is convicted of anything. We as Americans are not doing a good job of standing up for the rights of people who we dont like.

The law enforcement always use the words like "we took this horrific sex offender off the street" and people generally cheer up such talk. In reality the guy was merely caught peeing in some bush.

We need to stand up for the rights of drug dealers, sex offenders, suspected terrorists, victims of civil forfeiture and every other criminal because that is the right thing to do. If we start supporting "vigilante" attitude of law enforcement officials sooner or later they are going to come for you and me and no one will help us then.

Currently I see ACLU doing a good job of this at the ground level and Cato Institute doing a fine job at much higher level. But they are far too small. We need to build much bigger organizations that would do this at a larger scale.

Actually we dont have to pursue all cases. Figure out the most tyrannical cities and target their prosecutors heavily. Once you shame few of them publicly and humiliate them everyone else learns the lesson.

</comment><comment><USER38> Plea bargains are pure coercion. The ability of a prosecutor to threaten you with almost arbitrarily severe punishment means that a plea bargain is a much better option than rolling the dice with a jury trial. Whether or not you committed the crime is irrelevant. You are looking at say 5 years with a plea bargain vs. either life or nothing without one, 10 years is simply the rational choice. Once you've accepted the plea bargain, by the way, you can't challenge the sentence if new evidence comes up.

What's perhaps more appalling is confessions made to police and prosecutors without an attorney present. The police and prosecutors can lie about the potential sentence, even threatening the suspect's life (we'll go death penalty!), drawing out a confession, and then be under no obligation to uphold their end of the "bargain".

The bottom line is that 95% of people in our prisons did not have a trial before a jury of their peers. Some of these people are very likely innocent, but because of the nature of plea bargains, they cannot challenge their sentences.

</comment><comment><USER39> In high-school civics class we are taught that trial by jury is part of the American system. Yes, there is a legal right trial by jury and occasional actual trials by jury. So what? The Soviet constitution guaranteed freedom of religion, and indeed there were a very few churches and synagogues running during the Communist period.

</comment><comment><USER40> And yet, every other day, we read about jury trials in complex patent or copyright cases. The vague analogies they use to explain technical stuff to the jurors sound like TV programs explaining theoretical physics to 8 year olds. Jury trials can be a threat to the rule of law.</comment>


Show HN: Slime Simulation - <AUTHOR> https://verbilis.vercel.app/ <comment><USER2> Much better on desktop than on mobile (also does need sound)

</comment><comment><USER3> You should have tell in advance that there is a sound :D</comment>


The Infinite Loop That Wasn't - <AUTHOR> https://mgba.io/2020/01/25/infinite-loop-holy-grail/ <comment><USER2> I love reading these kinds of reverse engineering discovery tales, I find them technically educative, and overall enlightening... they help put my own struggles debugging thorny things into sharp perspective, making me even more appreciative of the level of control I have over my own code and it's runtime environments.

The level of effort put into reverse engineering for emulating classic hardware of all kinds is just remarkable. The Dolphin EMU team has a long history of these kind of blog posts for people looking for more of this kind of writing [https://dolphin-emu.org/blog/](https://dolphin-emu.org/blog/)

</comment><comment><USER3> I've always had the attitude that if can reproduce a bug consistently, I can debug it, and I can fix it. Now here's a nail in the coffin of that theory.

<comment><USER4> In defense of the coffin, I'd say this is not so much about a bug, but about reverse engineering real world effects of undefined behavior (as caused by a bug in software).

<comment><USER5> If the goal of mgba is to reproduce the GBA hardware faithfully, then this is a pure software bug in mgba.

<comment><USER6> That is not the goal of mGBA (or any GBA emulator for that matter), btw. If you wanted to reproduce it faithfully, the emulator would be unusably slow.

[https://emulation.gametechwiki.com/index.php/Emulation_Accur...](https://emulation.gametechwiki.com/index.php/Emulation_Accuracy)

<comment><USER5> s/faithfully/faithfully enough/ Prior to the bug being fixed this was clearly not faithfully enough for at least 2 games.

</comment></comment></comment></comment></comment><comment><USER7> These test ROMs are interesting. Since they are designed to run on real hardware that lacks debugging capabilities, the user must be able to operate the test suite and check the results manually. They aren't like modern software test suites.

According to the nesdev wiki, automation consists of playing back controller input, waiting for the tests to run, taking a screen shot of the results screen, hashing it and comparing the result to the hash of the expected results screen. This method also allows testing real games to check for reproducible bugs.

[https://wiki.nesdev.com/w/index.php/Emulator_tests#Automated...](https://wiki.nesdev.com/w/index.php/Emulator_tests#Automated_testing)

Pretty nice. I expected the test ROM to write the results to some special location in memory and have the emulator report those results.

</comment><comment><USER8> So uh I didn't see it mentioned, but the question of _why_ this code is in the games arises.

Is it buggy code, or something intentional like anti-emulator sneakery?

<comment><USER9> It's pretty likely that it's just buggy code that happened to work on hardware.

<comment><USER10> Definitely just working by chance in this case. This comes up a lot, unfortunately. Small budgets, tight deadlines, games not validated for correctness under software emulation for detecting these types of edge cases prior to shipping.

Another example: there are several GBA games that dereference null pointers, but it works because there is no memory protection fault hardware in the GBA. Since the BIOS is mapped to address 0 and yet locked out from reading post- boot (in a failed anti-copying mechanism), you have to emulate the open bus behavior to run these games correctly as a result.

There are also several anti-emulator routines in the GBA library, such as lying about the type of save memory (flash, EEPROM, or SRAM) that a given game actually has (by including strings in the ROM from the Nintendo SDK used to access them.)

<comment><USER11> Still, in the case of Hello Kitty, there's got to be a reason the developer added that loop at startup, right? They might have not understood the intricacies of how or why it worked, but presumably they were trying to _do_ something.

<comment><USER12> > Then I noticed a difference between my test ROM and Pokémon Emerald when > they hang. There was music playing in Pokémon. There was also music playing > in Sonic Pinball Party. There wasn't music playing in Hello Kitty, but this > gave me an idea.

Maybe there was supposed to be music playing, this was for timing it, and it was removed, broken, or just forgotten about?

</comment></comment></comment></comment></comment><comment><USER13> Interesting story. Goes to show you the falacy of writing fault tolerant systems as opposed to writing noisy systems.

Had the GBA architects made the device halt on invalid memory rather than return the last thing on the bus and hope everything would be ok this entire class of bug wouldn't exist and the authors of that code likely would've found that bug during production.

<comment><USER11> > Had the GBA architects made the device halt on invalid memory rather than > return the last thing on the bus and hope everything would be ok this entire > class of bug wouldn't exist and the authors of that code likely would've > found that bug during production.

Of course, would it matter if these bugs were found? The games ran fine on real hardware.

There's no maintenance burden either, because updating a gba game is literally impossible.

<comment><USER14> >updating a gba game is literally impossible.

Not quite. The Pokémon Ruby/Sapphire Berry Glitch bug was fixed by connecting to games that had a patch program, such as Pokémon Emerald, the 3rd in the Ruby/Sapphire/Emerald series.

[https://bulbapedia.bulbagarden.net/wiki/Berry_glitch](https://bulbapedia.bulbagarden.net/wiki/Berry_glitch)

<comment><USER11> Huh, cool. Does anyone know how this worked? I know the carts themselves are mostly write-once so the bug and patch must have been related to the save portion or some hardware specific to this cartridge, right?

<comment><USER15> I think it just used an arbitrary code execution thing to change the system clock, so that the faulty code was still _there_ , but never failed.

</comment></comment></comment></comment></comment><comment><USER16> Amazing story. Just shows you how complex hardware can truly be.

<comment><USER17> Correct. When you're coding really close to the metal you discover (and perhaps depend upon) all kinds of shenanigans that a higher level language compiler might work around.

The graphics on Atari 2600 had to be fed line-by-line during the vertical blanking interval. Made for some really tricky assembly coding, trying to get enough done to make the interval without wasting VERY limited ROM resources (aka can't cheap with NOP instructions).

<comment><USER18> I'm assuming you meant "horizontal blanking interval" instead of "vertical blanking interval". But I don't think that's entirely correct either. Some games will change the registers while the beam is actively drawing so that, e.g., the left half of the line will be drawn with one set of settings and the right half drawn with another.

</comment></comment></comment><comment><USER19> This reminds me of the wonderful novel "The Bug" by Ellen Ullman. A beautifully-written fictionalized account of the quest for a "Holy Grail" bug.

</comment><comment><USER20> Mental.</comment>


LinkedIn and HiringSolved: Why You Should Care (Even If You're Not in Recruiting) - <AUTHOR> http://recruitingdaily.com/linkedin-hiringsolved-care-even-youre-recruiting/

<comment><USER2> I find really annoying receiving all these uninvited emails from clueless recruiters that pai linkedIn to access my profile.

Learning that other companies are in the business of reaching me through information that LinkedIn makes available for free is even more annoying.

Since a good while I've been considering to shut down my account with them. Maybe it is time to do it now.</comment>


Ask HN: Which is more important/valuable for an internship: what or where? - <AUTHOR>

Given the choice of interning for big-reputable-software company X or for small-startup Y, which one would you suggest? Company X will most probably lead to a full time offer but I may not be working on interesting/challenging projects. On the other hand startup Y will definitely give me difficult problems to solve and I will learn a lot. Comments, opinions, suggestions. <comment><USER2> Interesting work at this stage of your life beats stability any day of the week. Take the startup and run with it. You can always go to work at big- reputable-software company later, but you can't always get an interesting opportunity.

</comment><comment><USER3> I would suggest neither the what nor the where, but the whom.

If your supervisor's background does not intimitate you, and you don't desperately want to become like them, then find someone else.

</comment><comment><USER4> Company size and the interesting-ness of the work are probably orthogonal, unless you are strictly interested in entrepreneurial activities. So pick the interesting project, and later on if the startup goes bust you'll still be able to get a job at a company that values that prior learning experience.

</comment><comment><USER5> I would suggest going with the what. An internship is a great opportunity to discover things about the problem you are working on and about yourself. Given that youre likely starting out your career, make sure its headed in a direction which you find exciting.</comment>


Easiest way to feed data to PRISM - <AUTHOR> http://www.kennberg.com/2013/06/08/easiest-way-to-feed-data-to-prism

<comment><USER2> The leaked document reads: "Collection directly from the servers of these U.S. Service Providers: Microsoft, Yahoo, Google, Facebook, PalTalk, AOL, Skype, YouTube, Apple." [1]

Its been reported that Facebook set up a secure server where the [NSA|FBI] could retrieve data that had been collected as legally required. [2]

A Google Chief Architect has claimed that no special systems have been built internally to support this. [3]

In summation, the likely setup is that someone (legal) vets the ordered request, oks the internal use of OAuth to spoof access to the data, & dumps it in a secure FTP server for the government to collect. To achieve "near real time", just look how they handle Google Product Feed's - every 30 minutes a "diff" of product data is updated.

[1] [http://www.washingtonpost.com/investigations/us- intelligence...](http://www.washingtonpost.com/investigations/us-intelligence- mining-data-from-nine-us-internet-companies-in-broad-secret- program/2013/06/06/3a0c0da8-cebf-11e2-8845-d970ccb04497_story.html)

[2] [http://www.nytimes.com/2013/06/08/technology/tech- companies-...](http://www.nytimes.com/2013/06/08/technology/tech-companies- bristling-concede-to-government-surveillance-efforts.html?_r=1&pagewanted=all)

[3] [https://plus.google.com/u/0/+YonatanZunger/posts/huwQsphBron](https://plus.google.com/u/0/+YonatanZunger/posts/huwQsphBron)

edit: corrected Chief Architect title

<comment><USER3> Zunger is chief architect of Google+, not of Google as a whole. So he has deep knowledge of a single G product, not all G systems.</comment></comment>


Lyft's IPO was a little awkward - <AUTHOR> https://www.bloomberg.com/opinion/articles/2019-05-07/lyft-s-ipo-was-a-little-awkward <comment><USER2> This is a really interesting read! This gives me a much better sense of how investment banks are actually involved in IPOs, and how you can essentially require banks to support certain prices of your IPO using legal agreements.

Also really emphasizes the role of having personal relationships with directors (not just a corporate relationship):

> The first lesson is that the only way for a bank to develop a relationship > with a client is for human bankers to develop a relationship with human > client executives and directors.

</comment><comment><USER3> I still don't understand what Soros and Icahn did. Can someone give me a more basic understand or some kind of metaphor?

<comment><USER4> The loophole that Soros and Icahn used is like being able to say you never cheated on your wife because you did so (cheated on your girlfriend) before the wedding ceremony and not since.

<comment><USER3> I got that part, but I don't understand why Soros bought shorts on a stock that he just bought.

<comment><USER5> One possibility: he didn't care about buying the stock, but instead wanted to get paid for making the transaction happen.

So he buys at 60 knowing he's already sold at 70. Whereas Icahn sells at 60 because he can sell _today_ rather than at whatever price it will be in 6 months.

<comment><USER4> Exactly. And as for why Icahn wants to sell -- well, he's a pre-IPO investor and might not want to stick around to settle for a public market price in 6 months when there is also possibly demand for Uber shares.

</comment></comment></comment></comment></comment><comment><USER6> should be noted, this is an opinion piece not bloomberg per se

<comment><USER7> Levine is Bloomberg's best writer, by far. Most entertaining, at least.</comment></comment>


Why do some communities thrive while others become ghost towns? - <AUTHOR> http://www.communitybuildingguide.com/ <comment><USER2> Thought I'd do a quick read...but the site starts with a pitch for the web site itself, then a bunch of author background, then what looks like a marketing pitch of some sort, then a big download button. Not my kind of site.</comment>


Markdown: The Spec - it's coming and it's full of personalities - <AUTHOR> http://www.rumproarious.com/2012/10/29/markdown-the-spec/ <comment><USER2> As Gruber said:

> If you liked the original, which I created dictatorially, what makes you > think you'd like a sequel from by a committee?

What dictator ever accepted that a group of people could do a better job?

The best thing for this new effort is to now embrace the new name (tentatively Rockdown), create the test suite and move on.

Markdown becomes one of the influencers in the footnotes, and hopefully we all get a highly consistent and implementable syntax and set of parsers that we can use.

My hope is that the "committee" isn't open to anyone joining it, or open to too much external influence. dgreensp (from Meteor) seemed to hope that too, and was reaching out to just the right people who could make a difference and whose views were valuable.

It's a shame Jeff felt the need to create such a spectacle when this could've just been presented fait accompli without having such a distracting spectacle.

dgreensp had it right though, but just didn't account for Jeff's character (although he clearly did account for Gruber's by not CC'ing him originally). Here's hoping that he now ignores both of them and pushes forward anyway.

Consistent tests that lead to consistent and implementable parsers... these are good goals.

If Markdown has to have a 5% change in it's DNA to make this work, then this is also a good thing.

I hope dgreensp isn't feeling too disheartened by the clash of personalities of Gruber and Jeff.

<comment><USER3> I don't think Jeff was trying to create a spectacle, I honestly think he's all about the community and was trying to be inclusive.

What both Jeff and Gruber bring to the party is profile. As the article points out, there are already variants of Markdown that fix many of the problems but it would seem none of them have gained traction.

If you can get the founder of StackOverflow / StackExchange and the original creator of Markdown on-board, there's a good chance that whatever you come up with will get some momentum.

Specifications and test suites are all well and good but if no-one uses them what was the point? I suspect Jeff, as well as being someone with a good track record on making stuff happen, was an attempted solution to that problem.

<comment><USER4> > What both Jeff and Gruber bring to the party is profile. As the article > points out, there are already variants of Markdown that fix many of the > problems but it would seem none of them have gained traction.

Sounds like the market has spoken.

</comment></comment></comment><comment><USER5> Sorry, creator and maintainer of marked here ( <https://github.com/chjj/marked> ). Is a repo for this spec up on github yet? I have a few obscure cases across multiple markdown engines that I've documented over the past year or so. Are only the top dogs (reddit, stack, github, etc) invited to join the development? A spec for markdown should be more than just what features are included (GFM tables, code fences, etc).

I hope development of this spec will be perpetual, similar to the WHATWG's HTML(5), if it happens at all. I've been dealing with markdown edge cases for more than a year now and I'm always finding new things I missed. It's really amazing how markdown is just a giant string of special cases and exceptions (this is probably due to the way it was initially written). The post by Jeff Atwood lead me to believe it's supposed to be geared more toward features as opposed to exact specifications. (I could be wrong about this).

Although I agree Gruber seemed kind of impolite and dismissive here, I think we should take things slow, and not rush into making a "spec" right away. The closest thing there has ever been to a markdown spec was Gruber's original test suite (on top of the markdown docs). It is actually kind of hard to track down since you can't find it on his website (I don't think I saw it mentioned in these articles either). My test suite is based on a fork of it ( <https://github.com/chjj/marked/tree/master/test/tests> ). That test suite covers no where near enough to demonstrate everything. I have a feeling this spec would take a long time to complete, especially if it's including more compex features like GFM tables and whatnot. There will also probably be a ton of arguing over which features should be included.

<comment><AUTHOR> Hi, I wrote the blog post. I haven't been able to find any public discussion about a spec from the parties involved other then Atwood's blog post.

</comment></comment><comment><USER6> Wow. I think that Atwood's proposal was an honest and good move, and a needed one. If Gruber feels like someone is twisting his hands by asking publicly, why not say so in a decent, grown-up manner? "OK, this makes sense, but I would have preferred you to write in private and not force me by writing an open letter."

It's a shame that so many technologies get shaped by egos instead of rational thinking. Good engineers should know better than that. If someone thinks the proposal for a spec plus a test suite is somehow technically flawed, say so and state the reasons. If not, let's put the egos aside, take an extra dose of tolerance and work towards a common goal.

<comment><USER7> The best ideas and software are labors of love, but love is not very rational.

</comment></comment><comment><USER8> The spec. The spectacle. This fall, only on Twitter!

I see the assertion that:

> _MMD has a very clear specification. It also has an openly available test > suite._

But the specification link goes to the help page [1] which as far as I can tell has no _spec_ , just links to descriptions (Gruber's canonical blog post) and examples. Is there an _actual_ spec for MMD, or are they claiming examples _are_ specs?

[1]: <http://fletcherpenney.net/multimarkdown/help/>

<comment><USER9> There is a test suite [1] available, though. Furthermore, the core of MMD is in the PEG grammar [2], which is enough of a specification for me. Compatibility of language subsets is even provable, so specifying a MMD-lite version (which might be the vanilla Markdown features) would be simple. On the other hand, I think its flexibility/sanity is actually a disadvantage for MMD: with the confusion and variability of a spec-free language that is still roughly familiar (i.e. Markdown), people seem more likely to adopt it with their own implementations and customizations.

[1]: <https://github.com/fletcher/MMD-Test-Suite>

[2]: [https://github.com/fletcher/peg- multimarkdown/blob/master/ma...](https://github.com/fletcher/peg- multimarkdown/blob/master/markdown_parser.leg)

<comment><USER10> The grammar is not enough. You also need to specify the output of the HTML transformation.

</comment></comment></comment><comment><USER11> > On Macdrifter Gabe Weatherhead said: > > > Nowhere does he mention MMD and > it seems very unlikely that he does not know about it. > [<http://stackoverflow.com/questions/tagged/multimarkdown>]

Wow. Just because there's a Stack Overflow tag for it doesn't mean that Jeff knows about it. It's a community-driven site.

<comment><USER12> Given, that was a pretty bad citation. Still, it's a good guess that he heard about MultiMarkdown somewhere along the way since he considered and initiated the use of Markdown on Stack Overflow / Exchange; he's been personally involved with it for roughly 4 years now. ([http://www.codinghorror.com/blog/2008/05/is-html-a-humane- ma...](http://www.codinghorror.com/blog/2008/05/is-html-a-humane-markup- language.html)) ([http://www.codinghorror.com/blog/2009/10/treating-user- myopi...](http://www.codinghorror.com/blog/2009/10/treating-user-myopia.html))

</comment></comment><comment><USER13> As usual, Gruber seems like a bit of a prick.

<comment><USER14> It's not terribly hard to see how this whole thing came to be offensive to him. Jeff put Gruber in the public spotlight with a question like "give us permission?"

Gruber says 'Yes': whoop de doo

Gruber says 'No': Well, the person at fault looks like Gruber for being prohibitive of others trying to improve his work.

If his opinion was really to be respected, Jeff should've messaged John behind closed doors to see if he could expect his support or not on this committee, like John had any real say in the matter.

<comment><USER15> Part of the problem is Gruber is incredibly resistant to change. The software he wrote hasn't changed in 8 years, despite a number of bugs.

<comment><USER16> > The software he wrote hasn't changed in 8 years, despite a number of bugs.

That isn't the problem. The problem is that the software hasn't changed despite a number of bugs and the source code asking you to submit bugs.

'Deprecate or maintain' is not an unreasonable request of a public persona in the technology sector.

</comment></comment></comment></comment><comment><USER17> Am I the only one who thinks Jeff Atwood is completely without the necessary credibility to spearhead an effort like this?

To say nothing of the time-tested idiocy of designing a spec by committee? IEEE telco protocols being the canonical example?

The whole effort seems like a terrible idea. Gruber's responses seem to me to be completely appropriate.

<comment><USER18> Are there a lot of things that have been standardized without a committee being involved? I'm not aware of many. Designed, yes. Standardized, no.

<comment><USER19> JSON, sort of. Crockford humorously says he is a standards body because of that.

<comment><USER20> Crockford also developed a standard for JSON [1] and actively participates in maintaining it. [2]

[1] <http://tools.ietf.org/html/rfc4627>

[2] <https://github.com/douglascrockford/JSON-js/commits/master>

</comment></comment></comment></comment><comment><USER21> For those who are saying Jeff Attwood posted this publicly out of nowhere, please read this from 2009:

[http://www.codinghorror.com/blog/2009/12/responsible-open- so...](http://www.codinghorror.com/blog/2009/12/responsible-open-source-code- parenting.html)

Now I don't know if he privately mailed Gruber prior to writing that, but to say it came out of nowhere is to forget several years of Stack's history with wanting Markdown to work like one would expect of a living open-source project.

</comment><comment><USER14> > _Nowhere does he mention MMD and it seems very unlikely that he does not > know about it._

I would hardly expect Jeff to keep track and know of every topic in StackOverflow, let alone one with only 11 questions. Give the man some room to err.

</comment><comment><USER22> Wow, Gruber is kind of a jerk. Or maybe that's a symptom of having conversations in 140 character bursts.

<comment><USER23> Jeff comes along and says, "I'm going to mock you if you don't let me take over your project," and Gruber is the jerk for saying no?

<comment><USER24> Totally agree. Jeff is almost acting like a common bully here. I am surprised people are coming to the opposite conclusion.

</comment></comment></comment><comment><USER25> An ideological debate between _collaborative_ vs _dictatorial_ approaches, misses the point entirely.

Markdown was a good effort, but I've been feeling for a while now can do better. It's rather encouraging, that there are others attempting to design a new standard. Ideally it would be one that's easier to work with, and less idiosyncratic. ('new' of course, does not automatically equate to 'better' in this instance).

Furthermore, developing this should not require anyone to _'be someone'_. While it may help adoption, if it's great, then by it's own merits, it could have a decent chance of succeeding.

</comment><comment><USER26> I still wish reStructuredText was considered - it's solid, adaptable and (for some reason) totally unsexy.

<comment><USER27> Could be because it's hosted on Sourceforge.

</comment></comment><comment><USER28> This post has made me realize how dysfunctional twitter is for real communication. It's nigh impossible to follow or understand.

<comment><USER29> That was the post's fault not Twitter's. I had to stop reading because I got so confused.

Tweets in that post start referencing Gruber's response, but Gruber's response wasn't shared within the post, when it should have been. And authorship of tweets within the post wasn't really clear.

Edit: Looking at it again, Gruber's response is there, but I missed it for the authorship issues.

</comment></comment><comment><USER30> Open letter to Jeff: SO is awesome, but long-in-the-tooth. What it really needs is an open spec for federated, gamified Q&A. What say you? I eagerly await your enthusiastic embrace.

FAQ

 _Are you asking for Jeff to open the SO service?_

No, we only feel that the structure of Q&A and reputation management be federated and openly specified. But we do feel that _StackExchange_ would be the perfect name for the protocol.

 _Are you making an analogy?_

No, though we might be modeling behavior.

<comment><USER31> That's a poor analogy. A service and a way of formatting documents are completely different. Not to mention that most ways of formatting documents have a context-free standard already.

<comment><USER32> Not all analogies have to be identical. It was close enough to demonstrate how you approach people about their projects.

</comment></comment></comment><comment><USER33> I think of the MediaWiki wikitext specification and how that started as a simplification of HTML and was incrementally extended into a barely-computable disaster that, quite literally, put back a Wikipedia visual editor about six years.

</comment><comment><USER34> I'm getting flashbacks here of Dave Winer and the battle over RSS and Atom.

<comment><USER35> Then you might want to re-watch episode 6 of nerd TV: <http://www.pbs.org/cringely/nerdtv/shows/>

</comment></comment><comment><USER36> We all have pandoc, and <3, and we can all choose between RST and Markdown, and we all know RST is a better spec (as in, there is one), but we keep on coming back to MD.

I suspect the reason is that MD does conform to the end-to-end principle. Having a spec is, itself, putting too much intelligence in the pipes. Not having a spec leaves all the intelligence into the ends: The person who's writing (which is very bad at following rules and specs) and the parser program (which can be as elaborate as needed).

That is why no spec (and Gruber's attitude) is a feature.

</comment><comment> loup-vaillant Let's imagine the worst happens: John Gruber explicitely refuses to give up the name "Markdown", and to bless any standardization process. Which would then need another name.

Ideally the name should be clearly different than the original one, and clearly signal the underlying spec is the same, only _better_ (of course, the actual spec better live to that expectation).

"Rockdown" sounds cool, but it doesn't work. Sure, it _rocks_ , but it's doesn't say "you should use me, not my obsolete father".

An obvious choice is "<qualifier> Markdown". For instance, "Clean Markdown", or "Standard Markdown". We may think that's cheating, but we already talk about "<website> flavoured Markdown". There will soon be another one, that explicitly pretends to be _the_ flavour. Better let the name reflect that. As for the actual Markdown, I guess people will start calling it "Original Markdown".

Now there's little chance, but maybe, maybe John Gruber will still shout that his original version is _the_ standard no matter what. If monsters like Stack- overflow, Reddit, and GitHub make a good "std Markdown" anyway, no one will believe him.

Anyway, enough with the name. Let's just write that BNF. A reference implementation in something like MetaII or OMeta will then be a piece of cake. If I ever do that on my own, I'll call it "Strict Markdown". Because I don't like when obvious errors in my Markdown code produce unintended output instead of an error message (major culprits are links and emphases).

<comment><USER4> > Neither the name "Markdown" nor the names of its contributors may be used to > endorse or promote products derived from this software without specific > prior written permission.

<http://daringfireball.net/projects/markdown/license>

<comment><USER37> The license means nothing unless you're copying Gruber's code.

Gruber doesn't have a trademark on the name "Markdown".

<comment> loup-vaillant I don't know about the USA, but here in France, one can have a right to trademark even when it's not officially registered. The main requirement is to show that you have established a _de facto_ brand.

Nevertheless, <http://news.ycombinator.com/item?id=4719809>

</comment></comment></comment></comment><comment><USER38> Did everyone forget about RST? That said, RST is a bit complicated seeming.

<comment><USER39> I did not, but I'm a Python programmer. It seems too few pythonistas participate in this thread to make a difference - RST was mentioned just 3 times. And Textile was mentioned once, although not as an alternative but as an inspiration for Markdown. MediaWiki syntax was mentioned once, but described as crap.

I just felt the need to count something, don't mind me.

</comment></comment><comment><USER40> I'm not 100% convinced that one global Markdown spec is going to be of net benefit. I'd be fine with pockets of specialized Markdown flavours. For example, I don't see how merging whatever is in Fountain (for screenplays) into a common Markdown spec would be useful for general use.

On the other hand, having separate flavours for every different online code repository site, or blog engine, is probably too far in the specialized direction.

I think it might be easier to start with standardizing in small groups (eg: GitHub/StackOverflow/CodingHorror) and slowly globbing other variants into the standard. Perhaps that is the direction this will end up taking. So far I can't see what is going on other than conflict.

<comment> loup-vaillant A possibility is to separate the core from extensions. The idea would be for everybody to observe the core spec, and clearly signal any extension. If an extension makes consensus, it could even be standardized. The most widely used standard extensions could then be merged in the core spec. The other, more specialized extensions, would stay in their separate standard.

</comment></comment><comment><USER41> I have always found Git Flavored Markdown funny. Not in a bad way, really. Just funny. Thinking of the taste of markdown is just interesting, and something we can possibly expand on. So we could perhaps refer to the original as 'vanilla markdown'. Git is of course 'git flavored'. Perhaps we need 'markdown with nuts'. Or from the bagel side, 'everything markdown'. Pandoc would probably be 'everything markdown'.

I know the main thread is a very serious topic and there are passionate opinions. However, let's make sure we keep it light and civil.</comment>


Does the American political system even work anymore? - <AUTHOR> http://www.nytimes.com/2011/11/22/us/politics/disgust-but-no-surprise-at-supercommittee-failure.html <comment><USER2> It works for the paying customers.</comment>


The next generation of Google Docs - <AUTHOR> http://googleblog.blogspot.com/2010/04/next-generation-of-google-docs.html?utm_source=feedburner&utm_medium=email&utm_campaign=Feed%3A+blogspot%2FMKuf+%28Official+Google+Blog%29 <comment><USER2> The improved collaboration capabilities sounded very useful to me, and it's kind of a "killer feature" for us.

We were just today discussing at work whether to use Google Docs because Excel is lacking in that category, and we don't want to use SharePoint (there are deeper problems than that, but well, Google docs would be a start).

<comment><USER3> Yeah that is a killer feature and SharePoint won't give you that type of collaboration.

</comment></comment><comment><USER4> Looking at the video, the simultaneous editing appears to be identical to Wave.</comment>


Oracle Stewartship to increase use of Java? [pdf, survey] - <AUTHOR> http://www.jaspersoft.com/whitehttp://www.jaspersoft.com/sites/default/files/Jaspersoft_Survey-Oracle_Java_White_Paper.pdf

<comment><USER2> Actual link is here;

[http://www.jaspersoft.com/sites/default/files/Jaspersoft_Sur...](http://www.jaspersoft.com/sites/default/files/Jaspersoft_Survey- Oracle_Java_White_Paper.pdf)

<comment><AUTHOR> Thanks, sorry I mucked up the link; I should have checked it. I'll resubmit.</comment></comment>


Give NSA unlimited access to digital data, says federal judge - <AUTHOR> http://www.computerworld.com/article/2855206/give-nsa-unlimited-access-to-digital-data-says-federal-judge.html

<comment><USER2> According to [https://firstlook.org/theintercept/2014/12/08/bad- shameful-d...](https://firstlook.org/theintercept/2014/12/08/bad-shameful- dirty-secrets-u-s-judge-richard-posner-hiding-demand-know/)

Posner argued that reporters and bloggers would snoop more if police activity could be recorded, and that was bad, because privacy was important. For Police.</comment>


Firefox Media Source Extensions Update - <AUTHOR> http://bluishcoder.co.nz/2015/03/03/firefox-media-source-extensions-update.html <comment><USER2> _> Media Source Extensions is still in progress in Firefox and can be tested on Nightly, Aurora and Beta builds. The current plan is to enable support limited to YouTube only in Firefox 37 on Windows and Mac OS X for MP4 videos. Other platforms, video formats and wider site usage will be enabled in future versions as the implementation improves._

So stable Linux support is still some time away.

<comment><USER3> It works well on Linux at the moment but we've been concentrating mostly on Windows - we're enabling that first as that's the platform that has received the most testing.

I use it on YouTube on Linux daily.

<comment><USER2> I tried using it (in Firefox 36). It's working until it gets randomly stuck (mostly in the video while audio continues playing). I.e. pretty unstable at the moment.

Admittedly, I'm using it with gstreamer 0.10, since 1.0 isn't enabled in the stock build yet. May be it's affecting the result.

<comment><USER3> Firefox 36 will have issues, yes. Nightly, Aurora or Beta will do better. You don't need gstreamer for MSE/MP4 support. Just have set to true in about:config the following:

media.fragmented-mp4.ffmpeg.enabled media.fragmented-mp4.exposed media.mediasource.mp4.enabled media.mediasource.enabled

This will use the system install of library libavformat.

If you receive hangs on this configuration with FF 37 or higher, a bug report would be much appreciated. Or contact me directly if you don't want to do the bugzilla dance.

<comment><USER2> I think I have OpenH264 disabled, that's why it's using gstreamer.

I don't mind filing bugs in bugzilla ;)</comment></comment></comment></comment></comment>


Show HN: I built remote.io – Job board for work-at-home / remote careers - <AUTHOR> https://remote.io <comment><USER2> I can't be the only one that gets frustrated at these remote only career sites that don't display salary/day rate. It's such a waste of time for both parties to have to go through the hoops just to find out that the compensation is not worth it.

Stackoverflow does it best - provide a filter for jobs that don't provide compensation info.

<comment><USER3> I get frustrated too, But then I go on glassdoor if I like the job post :P

<comment><AUTHOR> A future goal is to implement salary estimation based on the job role. The hope is to do something similar to Payscale but based on the salaries provided for the listings which contain salary info and geographic location of the companies.

</comment></comment></comment><comment><USER4> Congrats, on launch. But change the logo. It looks pretty similar.

[https://remoteok.io/hire-remotely](https://remoteok.io/hire-remotely)

BTW how are you getting listings?

<comment><AUTHOR> Yeah, we both use the Google font named Pacifico. I may change it but a font change is pretty low on my priorities list.

The listings come from feeds of numerous job sites and applicant tracking systems. I run them through custom filters to pull out the ones that are specifically remote-friendly.

</comment></comment><comment><USER5> This is so similar to remoteok.io I thought it was the same website at first. Even the logo is remarkably similar.

<comment><AUTHOR> Pieter Levels (creator of remoteok) is one of the inspirations for building the site.

Another interesting coincidence is that he has levels.io and I have level.io (I registered it about 4 years prior to him).

To make things even stranger, he posted my exact birthday on a mock ID he created for his blog (Feb 20, 86): [https://levels.io/remote-worker- visa/](https://levels.io/remote-worker-visa/)

<comment><USER6> Congrats on the launch! I'd appreciate it a lot if you'd consider changing the font on your logo since it's so similar to mine on RemoteOK.io and it's confusing since the domain and the contents itself are so similar. And funny coincidences haha :D

<comment><AUTHOR> Hey Pieter, I will update it when I get some time to redo all of my marketing collateral.

<comment><USER6> Awesome, thank you!

</comment></comment></comment></comment></comment><comment><USER7> You know "medical coder" has NOTHING to do with software right?

<comment><AUTHOR> The site is for all types of jobs, not strictly software related ones.

"coder" isn't a great choice of search term. If that's what you searched for, that's what you'll get as the search results are based on the job description, as well as the technology tags.

</comment></comment><comment><USER8> As a former remote worker, showing the salary would be priceless and instantly put you on top. Nothing worse than wasting your time and finding out a position is severely underpaid.

<comment><AUTHOR> I agree and wish everyone did provide a salary. Will add it to the job listing search results, if provided, soon.

</comment></comment><comment><USER9> Kind of related; but can someone give me some advice on what to look for when looking for a remote job? I kind of know what to look for when interviewing with local companies, but how do I know if a company that works remotely is a good fit? How do I know they know how to work remotely effectively?

<comment><USER8> How do they ship code?

How do they make decisions and include remote workers?

How do they do meetings? Daily standups using camera or just a slackbot? No meetings at all? Weekly meetings? Figure out what you like and filter from there.

One thing you must look out for and ask about it remote culture. I've worked at companies where on-premises engineers had more say than remote engineers. If leadership doesn't stomp that behavior out immediately, the company will skew towards that. Leadership must make a conscious effort to create and encourage remote working culture.

</comment></comment><comment><USER10> Hey I went to post a job and got an error: could not find post-job/index.html in your content namespace

Also, I realise this is an MVP, so no issue. Hope it does well.

<comment><AUTHOR> Thanks for the report! I will temporary cut the listing price in half to make up for the trouble.

I believe it may be a cache issue from our original build and you having visited previously. If you could, please hard-refresh (Ctrl+F5) or visit the job portal directly: [https://portal.remote.io/](https://portal.remote.io/)

I'll work on a quick temporary fix as well.

If your issue persists, please contact us with the address of the page that you were on previously when you clicked to post so we can investigate further.

<comment><AUTHOR> Added a redirect and cut listing prices in half.

<comment><USER10> Thanks, will check it out.

</comment></comment></comment></comment><comment><USER11> Hi, I am mostly remote (1 out of 3 clients is onsite). Are you looking for any help on running this site? I am interested in seeing this idea grow to contain more job listings.

<comment><AUTHOR> What's your skill set?

</comment></comment><comment><USER12> The domain is awesome. Did you pay a premium for it?

<comment><AUTHOR> No! I'm actually the original registrant of the domain. I actually have way too many domains and ideas that I'd love to build and this is a great example.

I originally registered it with the intent of building a remote monitoring and management tool or an infrastructure provider company but never got around to doing either venture.

The remote job site came about because I realized I was getting a lot of unintentional traffic from people searching for remote jobs. As it wasn't a terribly difficult venture, I decided to build it out and see how it went and so far, it's done well.

</comment></comment><comment><USER13> Keyword searches match jobs with no keyword matches. Like devops

<comment><AUTHOR> It also searches job descriptions for those keywords. If the keyword is in the job description, the result is returned.

<comment><USER8> Searching for `nim` the language, returns results with words like `animation` or `minimal`.

<comment><AUTHOR> This is a known problem and I'm afraid I don't have an easy solution for that right now.

The problem is that a separate index must first be built to assign all related tags to job listings as some don't have any and others don't have all related ones.

Once that is completed, the search functionality will be reverted to what it was initially with the ability to search by strings and/or tech tags individually.

I've been contemplating how I'm going to achieve this for a couple weeks and have a pretty good model in mind but no ETA on when it will be implemented.

</comment></comment></comment></comment><comment><USER3> Nice domain man!

<comment><AUTHOR> Thanks! It was one of a few really awesome ones that I was able to snag at the launch of the TLD.

</comment></comment><comment><USER14> I think this area has been done to death.

You should make it free to post a job.

There is no traffic on this site

I would post a job for [http://textita.com](http://textita.com) but $300.00 for a zero web traffic website is crazy

<comment><AUTHOR> Zero traffic? It's far from zero traffic. The domain was averaging 1k unique visitors per day before there was even a site from typo's while people were looking for other remote job sites. That's actually what convinced me to finally develop it.

I initially launched it in September but that was more of a soft launch to see if it would be worth my time and the traffic has been increasing. The past 2 days have been a bit higher with this HN post and averaged between 4-5k unique visitors / day.

<comment><USER15> So you decided to launch a site that has almost a carbon copy of remoteok.io's logo to monetize people's mistakes?

<comment><AUTHOR> I wouldn't say using the same font for a part of it is "almost a carbon copy" but yeah, that pretty much sums it up. I'll be updating the text form of the branding soon though.

There's an entire industry around that called Cash Parking. There's at least four different remote job sites with similar domains that I receive traffic (and email) for if you'd like to look those up to make some more pointless comments.

<comment><USER16> Actually...that would be quite interesting.

I recently heard about this racket, did not realise how developed it was. And I find it really amusing. So...please link them too. Not sure why people are so against it? The site you are slightly ripping off is not original.

The activity should be called cheekySEO :)</comment></comment></comment></comment></comment>


Zoom has one key profit driver: engineers in China (2019) - <AUTHOR> https://www.cnbc.com/2019/03/26/zoom-key-profit-driver-ahead-of-ipo-engineers-in-china.html <comment><USER2> how is this different from the off-shoring model employed by companies for ages? How is this newsworthy?</comment>


Housing Is Back, but the American Dream Isn't - <AUTHOR> https://www.bloomberg.com/view/articles/2018-08-21/housing-is-back-but-the-american-dream-isn-t <comment><USER2> Perhaps we should recognize that buying property is not an intrinsic good: [https://affordanything.com/is-renting-better-than-buying- sho...](https://affordanything.com/is-renting-better-than-buying-should-i- rent-or-buy) or an automatically good way to save or invest money.</comment>


NodeJS is now the most popular repository on Github - <AUTHOR> https://github.com/popular/watched

<comment><USER2> Just to show how Github watchers correlate to real-world popularity, my now- defunct programming language Reia is the #3 most watched Erlang project on Github, ahead of projects like Riak and RabbitMQ:

<https://github.com/languages/erlang>

<comment><USER3> Also we can compare with StackOverflow tags followers:

\- C# 22.2K followers

\- NodeJS 2.2K followers

<comment><USER4> I think having 10% as many StackOverflow followers as for C# is a big win for an emerging technology.

<comment><USER5> also, it would make more sense to compare node to ASP.NET.

</comment></comment></comment></comment><comment><USER6> Looking at that listing the more amazing stat is that twitter bootstrap is #3. That was just released a few months ago and is "simply" an html ui framework. I think this highlights that over anything else, what most developers really need is a solid web ui to get started with.

<comment><USER7> It just shows that people hype on everything and follow like sheep - doesn't matter if they need particular project or not. Developers are no exception it seems...

<comment><USER8> At the same time, it also shows that developers or hackers are no different that consultants that keep selling new methodologies.

Our products are new programming languages, new patterns, new programming paradigm.

<comment><USER7> What's the name of last thing you sold?

<comment><USER8> scalable architecture utilizing event-driven non-blocking I/O

<comment><USER7> anything open source? id love to see link to it - ive recently wrote my own cometd server with gevent and im looking for more examples ;-)

</comment></comment></comment></comment></comment></comment><comment><USER5> Call me a cynic, but how is this relevant? Everybody knows that Node is popular. It's like adding "Rihanna scores #1 hit record" as a news item.

<comment><USER8> I find the example fits nicely. Rihanna and Node.

FWIW, I think Node is a great way to teach, explore, and learn JavaScript without the browser. It helps me learn modern JS techniques quickly. But Node powering my web-server? Like Rihanna...

PS: Check out this free online book: <http://eloquentjavascript.net/> big props to the author. He's done a great job teaching modern JS.

<comment><USER9> You are being non sensical. Does Rihanna respond to HTTP verbs?

I like Node insofar as it distracts hate away from the Ruby community, but c'mon now.

<comment><USER8> C'mon what?

No, Rihanna does not respond to HTTP verbs. But then again, that's what young teens/early adults listen these days with less appreciation of music.

Justin Timberlake, Justin Bieber, Rihanna. C'mon now. What has come to the music industry?

I thank Ted Dziuba for knocking the wind out of Node a bit. It puts some perspective and questions to a lot of people's head when it comes to how to use Node.js. Props to him for taking time explaining the important bits.

Rails community was off the chart when it comes to cockiness back then so I suppose it deserves the hate.

<comment><USER9> 1\. Thirty years ago, this dutch novelty pop act charted #1 in the US Billboard charts <http://www.youtube.com/watch?v=5bGQ1-Gmoso> (watching it now is kind of great, actually)

2\. In much the same way I tire of Node people claiming it's The Best Thing Ever because it has the shiniest Cargo[1] I also can't stand people who hate things purely because other people like it. You hate them because they have the shiniest Cargo.

I'm sure it has a purpose and it solves problems. I'd much prefer to discuss its technical merits, though. (Note: this was not an invitation to discuss its technical merits in this thread)

[1] <http://en.wikipedia.org/wiki/Cargo_cult>

<comment><USER8> For the record: I don't hate Node.JS as I am using it to explore JS. I'm glad CommonJS exist to introduce common standards to JS (modularity, OS APIs, etc) so I can write JS outside browser.

I am with you that I'm tired to see people pushing NodeJS. But I suppose am even more tired to see people working on some simple web app using NodeJS and pretend that it's Gold. I prefer to see people get better in fundamental concepts as oppose to keep hack-job and move on to the next thing.

I'm tired to meet with people in my day job that keep pushing for the latest tech.

"For the next project we must use JavaScript and NodeJS" or the "I can cut most of the LoC if we were to use JS". Only to hear that "Yeah, I'm not too sure, I just have a gut feeling that we could do with less LoC" after I drilled them as to "why it'll be less LoC? How can we solve X component with JS and its current libraries? How can we test Y automatically and efficiently?"

I'm tired to interview people that put in their resume "I know NodeJS" but flunk fundamental computer science aptitude.

I'm tired to hear "you know, if we re-wrote this bits with Rails, it'll be _MUCH_ better".

For these people, their Java skill is "decent". Their Ruby skill is "decent". Their JS skill is "hey I just read JS The Good Parts and this is how Crockford sez we should write JS" yet still missing the structure, the discipline, the "write for readability not for meta-programming"

Too many Learn-Yourself-24-Hours Ruby programmers out there. Too many Learn- Yourself-24-hours-me-too JavaScript programmers out there.

Ok, enough rant for Saturday morning :) Good day everybody.

<comment><USER10> What do you consider fundamental computer science aptitude?

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> congrats to nodejs , it is the shiny new thing, but it is still not there yet

rails is lot older and it came to github when forking was the norm , watching came lot later

in terms of forks nodejs is half the popularity of rails, but I wish more contributors for nodejs

<comment><USER12>
      rails is lot older and it came to github when forking
      was the norm , watching came lot later

Aha! So is _that_ why there are so many accounts that just contain forked repositories with no further commits?

(I suppose it was a heavy form of bookmarking something.)

<comment><USER11> Git workflow is evolving, and github in its forefront

If you want to compare on contributors Rails would again beat most open source projects , I remember seeing that number well above 1000

<comment><USER13> Last count: 2155 as per <http://contributors.rubyonrails.org> :)

<comment><USER14> Some of us on that list haven't contributed in a really long time.

My contributions for example were pre rails 1.0 days so my part of that number isn't really meaningful to current popularity.

</comment></comment></comment></comment></comment><comment><USER15> I think this is a little sad. Pragmatically, NodeJS is great. But the only reason it's popular is because browsers only run one (deeply flawed) language.

<comment><USER16> Remind me which existing language(s) aren't deeply flawed?

<comment><USER17> Yeah seriously. The be all end all of languages has yet to arrive. Language and programming is an art, not some maximist metric. The Mona lisa is as flawed as JavaScript and every other language that exist.

</comment></comment></comment><comment><USER18> I wonder how much of the popularity is because popularity was perhaps a goal of some of the NodeJS advocates. Recently I stumbled on <http://nodejs-vs- ror.nodejitsu.com>, which in the source at [https://github.com/mmalecki/nodejs-vs- ror/blob/master/public...](https://github.com/mmalecki/nodejs-vs- ror/blob/master/public/index.html#L24) seems to imply beating Rails follow count was a goal. I'm not sure where I found the link but probably here on HN.

I guess someone in the Rails community could create a similar project and say "OK guys everyone go follow Rails on GitHub."

I have no issue with the technique as businesses do this all the time... encouraging customers to Like them on Facebook, follow them on Twitter, etc. Perhaps this a hacker version of social media marketing... who needs Facebook likes, let's get Github followers.

<comment><USER19> It's my project and it's purpose wasn't to beat Rails follow count, really.

As you can see, it uses knockout.js and this is why I wrote it - I wanted to learn this library and to study whole client-side rendering and templating concept a bit. It's also my first project using bootstrap.css.

It was a fun thing to hack on.

Of course, I'm happy that node.js has more followers than RoR, simply because I like node.js more than RoR. However, lets not make it a big deal. These are just numbers.

</comment></comment><comment><USER20> Silverlight was very popular when it was first released too.

<comment><USER21> Silverlight was popular? When did this happen...</comment></comment>


Upgrading GitHub to Rails 3 with Zero Downtime - <AUTHOR> http://shayfrendt.com/posts/upgrading-github-to-rails-3-with-zero-downtime/

<comment><USER2>
        For those of you keeping score:

        - Yes, Rails 3 was released four years ago
        - Yes, the current stable version is Rails 4.1, which left us
          two major versions behind

        We had work to do in order to live in the modern world again.

Okay, so why didn't aren't they transitioning to Rails 4? I'm not clued in to much more than the version numbers so I suppose there are reasons that go a little deeper than 'the lowest version that works with the gems we want'. They've been working on the transition for six months according to the post, making it recent enough that 4 would be the 'obvious' choice unless there were fears that it wouldn't be stable (IIRC Rails 4 has only been so for a few months).

<comment><USER3> An important lesson I learned while working as a sysadmin was that when you're making operational changes, you do one thing at a time.

Let's say you need to set up a replicated database with failover and monitoring.

First you set up the database (and make sure it works).

Then you set up monitoring (and make sure it works, too).

Followed by replication (which should also work).

And finally, automatic failover (there's a pattern here...)

This sounds obvious, but I've worked with developers that, when given this task, tried to set up the entire thing in one shot. It took them over a month to wrap up, and they didn't have time to properly test it, because they bit off too much in one go.

The same goes for migrations. You work along an incremental plan to move from Point A to Point B, where at every step of the way, the set of things you need to change is small enough to manage, _and_ you have the option of rolling back.

I can't imagine that Github has a tiny codebase, so I could totally believe six months for a zero-downtime Rails 2.x -> 3.0 migration. The next big step (3.0 -> 3.2) will be easier from what they learned in the first step, as will the step after that (my guess is 3.2 -> 4.0).

<comment><USER4> That rule applies to more than just programming languages.

The U.S. Healthcare system has tried to switch to ICD10 standards for a while now, but they keep bumping back the deadline. I think it's EOY 2015 right now.

ICD10 was released in 1992...

</comment></comment></comment><comment><USER5> Am I the only one who read this as: tl;dr - don't get too far behind Rails, it's fucking painful and expensive if you do.

<comment><USER6> Probably any framework is painful to be two major versions behind with.

<comment><USER7> I'm a big fan of Rails, but I think that Rails does not really give a lot of weight to backwards compatibility. The Ruby community in general often feels like it's always charging forward, very often with tons of cool new things, but occasionally leaving broken, incompatible software in its wake.

<comment><USER8> You seem to imply there is something wrong with that.. As long as you bump the version number and support the old version for bug fixes, it ends up being the best way to move the world forward.

<comment><USER9> I am a fan of Rails and am doing some work on it, but it's pretty clear that while Rails is bumping version numbers cleanly, they aren't putting all that much work into supporting older versions. Github has been doing their own work backporting security patches to Rails 2.3 for years.

</comment></comment></comment></comment></comment><comment><USER10> The article describes how they compared them for performance but didn't say which was better, and showed a graph which indicated that Rails 3 was worse for longer times in garbage collection for requests. I'd imagine that Rails 2 in GitHub would have been heavily optimized, but....

Is Rails 3 worse performing than Rails 2? Would some performance loss be okay if they had a better codebase?

</comment><comment><USER11> I'm curious how they handled the differences between the Rails 2 and Rails 3 applications once they enabled dual boot. Surely not all of the changes were compatible. In the Gemfile example, there is some conditional logic that loads different gems depending on whether or not they used RAILS3=true. Was the entire codebase similarly littered with conditionals? That seems like it would be quite a mess.

<comment><USER12> Lots of conditionals, yeah. This isn't really a bad thing, to be honest; it's far better than maintaining two separate branches. We already use similar conditionals when dealing with feature flags, so it's not really something that feels out of the ordinary in our app at all.

What's more, we found that if there was a file that had a ton of complicated, interwoven logic between the two versions of Rails, it was a clear sign we should see if we could instead backport a Rails 3 or 4 component so that we could nix the entire Rails 2.x-style functionality.

<comment> why-el Exactly. I handle API changes the same way at my place (Its an internal API exposed to colleagues only).

</comment></comment></comment><comment><USER13> I think Rails 3 is _already_ security-fix only.

But I understand why they did it. And I sympathize. The Rails treadmill is a harsh regime.

I wonder if they're considering what the heck they are going to do when Rails 5 comes out (target: spring/summer of 2015. Less than 12 months) and Rails 3.x stops even receiving security updates. I mean, clearly they have the resources to backport security updates themselves that's not a problem -- it's just that they're still not quite in 'the modern world', they've just kept from falling even further behind.

<comment><USER14> Rails 3 is already only receiving security updates for "severe" issues, see [http://rubyonrails.org/security/](http://rubyonrails.org/security/)

<comment><USER13> thanks for that link!

While it says `/security`, it's actually the only link I know of with an updated list of how the maintenance policy applies to current versions.

I hadn't been able to find such before, only dated news/blog announcements, which can get out of date really quickly as fast as Rails goes.

</comment></comment></comment><comment><USER15> In the multi-version, how would they handle the different DSLs in things like route mapping?

map.resources :users

vs.

resources :users

<comment><USER16> Rails 3.0 has a legacy routing mapper that lets us continue using the Rails 2.3 routing syntax. The legacy routing mapper is also available as a gem [1] for Rails 3.1 and 3.2.

We plan on gradually upgrading our routes file to use the new syntax now that we're on Rails 3, but as you can imagine it's something that we're going to need to be slow and careful about.

[1]: [https://github.com/pixeltrix/rails_legacy_mapper](https://github.com/pixeltrix/rails_legacy_mapper)

</comment></comment><comment><USER17> Been There, Done That..

yep, I've upgraded a hundreds of thousands of Rails 2 codebase to Rails 3 point or so and it is a real pain. (Not to mention Ruby 1.8.7 to Ruby 1.9.3 conversion, oh boy!)

The good thing about the experience is that I have mastered upgrading Rails 2's codebases to Rails 3 or so and Ruby 1.8's codebases to Ruby 1.9's or so.

<comment><USER18> Hundreds of thousands?

<comment><USER19> I think the phrase "lines of code" is missing in there somewhere :)

</comment></comment></comment><comment><USER20> Very interesting! Just wondering, does GitHub actually have so few dependencies as described?

<comment><USER21> I wish! Nah I just took a snapshot of the Gemfile for brevity.

<comment><USER22> It would be really interesting to see which (public) gems the Github front-end app itself uses. Would it be possible to post that?

</comment></comment></comment><comment><USER23> So are they using Rails LTS or forking Rails 3.0 themselves?

<comment><USER24> They're definitely not forking Rails 3, they're not staying on it either: [https://news.ycombinator.com/item?id=8322826](https://news.ycombinator.com/item?id=8322826)

> We already have the app booting on 3.2; the goal is to try to get to 4.0 and > track master fairly quickly. No one's eager to have to go through this whole > process again in a year. ;)

</comment></comment><comment><USER25> For a large codebase, these upgrades will be a pain, especially on ruby/rails. To scale in the long run, it'd probably be wise to modularize & split the codebase into microservices, and at the same time, port to, say, a scala or java based framework (like Play).

<comment><USER26> I'd be interested in hearing a bit more about how GitHub structure their app. From the sounds of it, they have one big monolithic app. Running the tests can't be pretty on that...

<comment><USER12> Yup; one monolithic app. Tests run in a tad over two minutes.

<comment><USER27> That is insanely fast, for what must be an enormous codebase. Do you mean it runs in two minutes on your Mac, or on distributed CI servers?

<comment><USER16> We use the test-queue gem ([https://github.com/tmm1/test- queue](https://github.com/tmm1/test-queue)) to run our test suite in parallel across 10x 8 core machines.

<comment><USER27> That's awesome! We were using parallel_tests, but we just bought a second test server. I was looking into Kochiku from Square, but that gem looks perfect. Thanks!

</comment></comment></comment></comment></comment></comment><comment><USER28> I feel like the lesson here is not to put mission-critical systems on leading edge software. I'd be porting to Java at this point. GitHub is a big boy company.

<comment><USER29> In 2014, Rails is not leading-edge software.

<comment><USER28> It was when they started.

<comment><USER30> Leading edge is subjective. Rails was already 3-4 years old and already being shipped standard on OSX when GitHub was launched. IMO, that's not excessively leading edge for a small startup, especially if the founders already know the framework.</comment></comment></comment></comment>


Vistaphobia: Dell continues to offer XP systems - <AUTHOR> http://www.channelregister.co.uk/2008/06/30/dell_xp_channel/

<comment><AUTHOR> Is all the Vista fear just hype? I hear more and more how people don't have problems with Vista, at least not any more than they've had with XP.

I thought about getting a Dell laptop just to keep the XP. Are Dell laptops any good? If Vista is nothing to fear, I might get a ThinkPad instead, or a Mac if I can get the software I need to work installed.

<comment><USER2> I have used vista (I run ubuntu on my home PC) and I think its more of the usual afraid-to-change mentality. The only people I know in real life that are vista haters (and windows users for that matter) are the ones who have never actually used it.

Just the fact that some buttons moved is enough to get people avoiding it...

<comment><USER3> Anecdotal evidence is amusing. Of all the vista users I know, only one actually likes it, the rest hate it for being slow, annoying, and getting in the way of their work.</comment></comment></comment>


Think Perl 6 mega book review - <AUTHOR> http://i-programmer.info/bookreviews/116-perl/10946-think-perl-6-how-to-think-like-a-computer-scientist.html <comment><USER2> _Allen Downey_ wrote a Perl 6 book?! Wow. Definitely checking that out. His _Think Python_ is my go-to recommendation for a introductory Python book.

Link to the Perl book: [http://greenteapress.com/wp/think- perl-6/](http://greenteapress.com/wp/think-perl-6/)</comment>


Delegation: Composition and inheritance in object-oriented programming - <AUTHOR> https://www.thedigitalcatonline.com/blog/2020/08/17/delegation-composition-and-inheritance-in-object-oriented-programming/ <comment><USER2> Since you used the word "delegation", I thought I'd mention the specific sense in which that word is used in Objective-C (and now in Swift).

So in Objective-C (which is actually more "Smalltalk" than "Objective"), inheritance, while possible, is not the recommended way to build extensible objects. Instead the idea is for an object to "delegate" some decisions to another, unrelated object. There is no subclassing relationship, the word "delegate" here is used in quite the literal dictionary sense.

Too many this and thats, so let me take an example.

Suppose you have a list of elements you want to display on the screen. iOS provides a framework class called UITableView for this purpose. As the name suggests, it is a "Table" that displays a list of elements.

Now, suppose you want to display a list of recent Hacker News posts. In many other mainstream languages, at this point the standard way to reuse the framework class would be to create our own subclass and override a few methods.

So for example, we could have a

        HackerNewsTableView: UITableView {

           override item(index i: Int) -> TableViewCell {
              // return the row to display the post at index
        ...
        }

Instead, the standard idiom in iOS programming is to have a separate "delegate" object implement the item method. i.e. We don't override the UITableView, but instead becomes it's delegate. Then when the table needs needs the row at some index i, it asks it'll ask us.

This is a small and fairly straightforward thing, but it fundamentally results in a very different sort of programming style (which I personally think is under-appreciated outside of the iOS programming world, and maybe even within it).

At no point does the original object know about who is its delegate, what type or class hierarchy it belongs to. In fact, it is common for a single "controller" object to be the delegate of many objects.

And the core concept has nothing to do with iOS or Objective-C really. It can be done in any language that supports interfaces (they're called protocols in Objective-C, though in the general programming world the more common term is an interface, e.g. a Java interface).

When you write a class, say Foo, you also write an associated interface, say FooDelegate. Then whoever wants to extend Foo can just implement the methods in FooDelegate, and at runtime set itself as the delegate of an instance of Foo. When foo needs something, it'll ask its delegate.

This might seem backward/more work to you at first glance, but in practice it ends up being much simpler. And conceptually it is much closer to the Smalltalk philosophy, of there just being objects talking to each other.

        Foo ==> hey FooDelegate, do this for me ==> FooDelegate

Apologies in case you already know this. But I felt that in your article, you focused on two ways of doing delegation: inheritance and composition. But there is a third way, "delegation" itself. It seems too simple, but it works, it is the core organizing principle of iOS apps (or at least used to be, that's changing with the new SwiftUI framework).

<comment><USER3> Thanks! Sorry for the late reply but I am not the OP, I just found your comment. This is interesting, I will look into it a bit more, as I'm not that familiar with Obj-C any more (I last used it on a NeXT 20 years ago). I think I put into the broad category of composition everything that works through interfaces, but it might be useful to discuss this particular implementation. Thanks again!</comment></comment>


Edward McCluskey has died - <AUTHOR> http://news.stanford.edu/news/2016/february/ed-mccluskey-obit-022516.html <comment><USER2> Should be McCluskey in the title. He's one half of the Quine-McCluskey algorithm, an efficient algorithm that basically does what a Karnaugh map can do (minimization of boolean functions).

<comment><USER3> > an efficient algorithm that basically does what a Karnaugh map can do

i was under the impression that BDD's are the current state of the art for minimization of boolean-functions. no ?

<comment><USER4> Ah good, I didn't know about them [https://en.wikipedia.org/wiki/Binary_decision_diagram](https://en.wikipedia.org/wiki/Binary_decision_diagram)

It seems the issue is that BDDs are more modern and more easily computed automatically

(Funnily enough neither Karnaugh maps or the QMC page point to BDDs except in an external link)

<comment><USER3> don-knuth (yes *that guy) has a fascicle here: [http://www-cs- faculty.stanford.edu/~uno/fasc1b.ps.gz](http://www-cs- faculty.stanford.edu/~uno/fasc1b.ps.gz)

</comment></comment></comment></comment><comment><USER5> Rest in peace Edward McCluskey. It can't be overstated how much of breakthrough the Quine-McCluskey algorithm was for building computers. Logic synthesis programs used to design a computer's circuits would never have gotten off the ground without it.</comment>


Ask HN: Opensource webpage performance testing tool? - <AUTHOR> There are tools like pingdom which test the page performance.<p>Is there something which i can invoke from CLI? <comment><USER2> Are you looking for something like this -[https://github.com/GoogleChrome/lighthouse](https://github.com/GoogleChrome/lighthouse)? The GitHub page mentions CLI options. I've only ever used Lighthouse via Chrome DevTools so I can't really comment on the CLI</comment>


Visdom: A tool to create and organize live visualizations for Torch and Numpy - <AUTHOR> https://github.com/facebookresearch/visdom <comment><USER2> We're excited to announce Visdom, a new tool for interactive data visualization in Torch, PyTorch, and NumPy. We've been using Visdom internally for quite some time now, and I have found it to be extremely helpful in doing research.

<comment><USER3> Nice work! Does it support a dynamic graph of PyTorch?

<comment><USER4> It supports numpy, and conversion from PyTorch tensors to numpy arrays is a matter of calling the numpy() method.</comment></comment></comment>