Dual-Pivot Binary Search - <AUTHOR> http://vkostyukov.ru/posts/dual-pivot-binary-search/ <comment><USER2> A few mistakes in this post IMO:

1\. Note that a 3 way pivoting (partitioning or decision) is EXACTLY the same as doing two consecutive 2-way pivoting. Check both functions. They have the exact same # of comparisons and index calculations.

2\. Note that Quicksort and Quickselect (QS) and Binarysearch (BS) are very very similar. Quicksort recurses on BOTH partitions whereas QS and BS only recurse on ONE. This is important! You don't care if your pivot in Quicksearch is a little of. You still have to do the work anyways. For QS/BS you do care a lot since the other part gets immediately discarded!

3\. Where 2) implies: Quicksort is harder to get non-recursive implementation. You still have to maintain some sort of stack even for the iterative part. Whereas for QS and BS it is very very easy to do an iterative version.

Now notice how you actually _worsened_ the runtime complexity with your new approach:

1\. A standard BS discards _exactly_ half the array. Thus, after two iterations you discarded 3/4.

2\. Your new algorithm's one iteration is the same as the default BS two iterations but you only remove 2/3.

Conclusion: It makes little sense (other than having fun) to apply this to BS/QS. Though, I like the complexity analysis and the overall post.

<comment><AUTHOR> I'm quite disappointed in people saying that I should have replaced recursion with iteration. That wasn't my goal - to tune a binary search algorithm. I've know the exact result of this research before writing post. I've already known that it gives you literally nothing in terms of performance. The only question I had is why is so? And I wanted to show how to combine math and complexity analysis in order to figure this out.

it's not about tuning something and getting gain (in business, in performance). It's about digging into the challenging problems and finding answers (and of course - having fun).

Think about why we split the input array into two equals parts? There is a nice question in Skiena's algorithms book: what would be with time complexity and algorithm itself if we split the array in two parts: 1/3 and 2/3\. The best answer is for sure: "Dr. Skiena, are you simply stupid asking these questions? Just rewrite it with iterations instead and relax."

</comment></comment><comment><USER3> Uh, wouldn't that be called a _ternary_ search?

Saying "double-pivot binary search" is kinda like saying "three-wheeled bicycle".

<comment><USER4> Both I and my wife have a tendency to call her tricycle a "bike" or "bicycle", and to ride on roads expressly marked as bicycle lanes.

<comment><USER5> Are you married to a toddler? Do adults ride tricycles?

<comment><USER6> Many physically disabled people ride tricycles. Don't know about the GP's wife but it's a good thing to keep in mind. Could prevent you from possibly making some painfully unfunny jokes.

<comment><USER4> She bought it because she likes it over a regular bicycle.

Just to add, there can also be commercial reasons for a tricycle. In my neighborhood growing up in Miami, there was an ice cream vendor and a knife grinder who went around on trikes. In the latter case, the chain was switched over to the grinding stone to provide power.

</comment></comment></comment></comment></comment><comment><USER7> It is trivial to write a binary sort using a single iterating loop instead of using recursion. This is not true for quicksort which needs to maintain a bit of state generally on the stack via recursion. Basically it is a false start to try to optimize binary search's recursion since it is so easy to remove completely.

</comment><comment><USER8> Maybe I misunderstand something, but I thought the whole point of selecting two pivots in Quicksort was to reduce impact of particularly bad pivot selection.

In this case, I don't know.. Unlike in Quicksort, there is no huge cost after selecting the pivot depending on it's value.

I guess it could be useful if you could expect you're searching for items with a different random distributions than are the items in the list, e.g. you search for uniformly distributed elements in a list with non-uniform distribution (like a highly skewed one).

<comment><AUTHOR> Having two pivots in Quicksort reduces the number of swaps (# of comparisons is the same).

</comment></comment><comment><USER9> I wrote a test program in C, using the same functions as OP wrote.

Compiled with maximum optimizations, the binarysearch() was 33% faster over the more complicated dualPivotBinarysearch(). I tested every element of the array, with array sizes from 100000 to 10000000 elements in steps of 100000.

An different iterative version of binary search was 6.5% faster than binarysearch() using the same test.

</comment><comment><USER10> Why stop at two pivots? At what point does adding pivots reduce speed? Is there an easy to compute heuristic to determine how many pivots makes sense?

These would be my follow up questions.

<comment><AUTHOR> These are very good questions. The thing is we actually stopped at two pivots. But you can try to obtain the recurrent relation for three pivots by you own using the steps provided in the post.

</comment></comment><comment><USER11> Unfortunate that the testing only covers the performance impact of the recursive calls used by the main implementation - a tuned binary search function would probably not recurse and simply maintain a tiny stack of indices. The increased number of comparisons would probably matter a lot more in that case.

<comment><USER12> > a tuned binary search function would probably not recurse and simply > maintain a tiny stack of indices.

You don't even need a stack. Binary search is an iterative process:

        int binarysearch(int a[], int k, int lo, int hi) {
          while (lo < hi) {
            int p = lo + (hi - lo) / 2;

            if (k < a[p]) {
              hi = p;
            } else if (k == a[p]) {
              return p;
            } else if (k > a[p]) {
              lo = p + 1;
            }
          }

          return -1;
        }

<comment><USER13> Quite. I am puzzled by the article. As even the author points out, binary search is tail-recursive, and therefore trivially transformed to an iterative form. So why on earth profile a recursive implementation?

<comment><USER12> That was the big WTF for me too. Before you start microbenchmarking and talking about the machine instructions for a function call, _get rid of the damn function call_.

<comment><USER14> And if we're talking about the cost in cycles of the operations for jump versus compare, shouldn't we also then consider the cost of the calculation of the pivot points?

I haven't done assembly language in a couple of decades, but it seems to me that the cost of calculating the traditional pivot point will be rather cheaper than that for the dual pivots.

At least back in the day, a division by two was a trivial operation (arithmetic shift right by 1), whereas the division by three would require an actual calculation: not a _big_ deal, but more expensive than the ASR.

<comment><USER9> If your range is not too big( < 32768 ) and the divisor is constant you can do it with a single multiplication and a shift.

More complicated method: [http://www.hackersdelight.org/divcMore.pdf](http://www.hackersdelight.org/divcMore.pdf)

But the compiler will( should, look at generated code ) optimize the constant division anyway.

\---

Behold, division by three using only addition and shifting( works up to 32767 ):

      unsigned int div3upto32767( unsigned int n )
      {
         return ( ( n << 13 )+( n << 11 )+( n << 9 )+( n << 7 )+( n << 5 )+( n << 3 )+( n << 1 )+n ) >> 15 ;
      }

\---

This one works up to 32767, and then produces a wrong result every ~32767 numbers or so. The result is of by one. When you get over a million, every number is of by a couple of digits.

      uint64_t div3almost( uint64_t n )
      {
         n -= ( n >> 15 ) ;
         return ( ( n << 13 )+( n << 11 )+( n << 9 )+( n << 7 )+( n << 5 )+( n << 3 )+( n << 1 )+n ) >> 15 ;
      }

I don't think the additions are worth it.

</comment></comment></comment></comment></comment></comment><comment><USER15> I think applying a newton-raphson approach instead of just choosing a fixed pivot could result in fewer comparisons.

On the other hand, a comparison is a dirty cheap operation, even using bit masks and shifts I doubt it will have a big performance impact, unless we're dealing with very very big arrays.

</comment><comment><USER16> Idea is nice in principle, but as you increase number of pivots it boils down to hashtable.

In my humble opinion main difference between quicksort and binary search is that one sorts numbers quickly, second is efficient in chasing down pointers. Ideally you want to avoid chasing pointers down at all, thus hashtable.

</comment><comment><USER17> I am curious about the run time analysis. O(log_3 n)

If you have two comparisons per call to your quicksort recursive function instead of just one comparison, are you reducing the complexity at all?

The benefit of this method is less recursive calls, therefore, less overhead of recursion.

<comment><USER18> You actually increase the complexity.

2 compares with dual-pivot reduces your search space by 2/3

2 compares with single pivot reduces your search space by 3/4

Furthermore binary search can be done iteratively unlike quicksort, so reducing recursion overhead is useless.

</comment></comment><comment><USER19> If you want to go below nlog(n) during generic sorting you need to choose high information gain algorithm, its easy. This is no way.</comment>


I'm done changing my passwords - <AUTHOR> https://medium.com/privacy-security-policy/cc7c13b6639a Screw it <comment><USER2> "Make me choose a new password next time I login. Quick and easy."

If your l/p was leaked, that means it could be changed by someone malicious first (especially if it's a service you don't log into regularly). Email w/ a token in the URL sounds like a safer option to me--I understand he doesn't care about these accounts.

I do wonder why there isn't more onus (legally) on the website for dealing with more of this. Especially with Heartbleed, there were a lot of third-party tools to find out if a website you use was affected, but only a handful of websites actually alerted users and suggested they change their password.

I also agree that many people overvalue a lot of these online accounts.</comment>


Why I Would Raise Chickens - <AUTHOR> https://www.gatesnotes.com/Development/Why-I-Would-Raise-Chickens <comment><USER3> My parents live in a village in Eastern Europe with less than $2 a day (I also chip in to financially help them), and they do indeed raise chickens, they've being doing that for the last 15 years or so, since they moved out to the countryside.

Bill Gates is correct in his assessment, it's way more profitable to raise chickens than, say, cows. You need to have a bigger barn for cows, you need to do all the hay thing, which is very time consuming and demands a lot of extra work just for feeding said cows, you need to pay someone to take care of the cows when they go out to eat in the summer on the communal field. It's easier to just barter your chickens' eggs for some milk or cheese, that's at least what my mom does.

It's also quite profitable to grow beans and cabbage. They preserve well over winter well into spring and you can also use them for bartering.

<comment><USER4> > it's way more profitable to raise chickens than, say, cows. You need to have > a bigger barn for cows, you need to do all the hay thing, which is very time > consuming and demands a lot of extra work just for feeding said cows, you > need to pay someone to take care of the cows when they go out to eat in the > summer on the communal field.

This is surprising to me. Of course a cow should be more work to raise than a chicken. But it has so many times more meat on it than a chicken, and is more energy efficient per calorie consumed too.

Similarly with beans and cabbage. They might be easier to grow, but in terms of calories they seem much less efficient than, say, potatoes.

If this was addressed in the article, sorry. It's just a blank page on my browser.

<comment><USER3> > They might be easier to grow, but in terms of calories they seem much less > efficient than, say, potatoes

I agree about potatoes, but that only works for relatively cooler climates, i.e. places like Poland or Ireland. It can easily get to 35-37 degrees Celsius in the summer at the place where my parents live (not to mention places like the Indian subcontinent or Africa), at which point storing potatoes becomes a challenge.

> But it has so many times more meat on it than a chicken, and is more energy > efficient per calorie consumed too.

It's all about the return on investment. Raising cows only becomes financially viable once you pass a certain number threshold (meaning big farms), otherwise you're pretty much doing voluntary work. It's a lot of work in order to feed a cow, I mean, lots and lots of work, and said work is pretty effective in burning calories. A lot of farmers in the European Union who are in the cow- raising business (I'd say most) wouldn't make it without financial help from the EU and from their governments.

I'd say that goats are a lot better option if you really need meat. They feed practically on everything (cows are a lot more picky) and they're smaller, so they're easier to "store" and protect at night. This is why I think they're so widespread in the poorer regions of the world.

<comment><USER5> Goat are great ... funnily enough was just at a small sheep/goat farm yesterday. The goat's milk is salty (great for keto) and my lactose-intolerant gut can stand a glass or two. Plus the cheese is way tastier, milk has more fat etc.

[http://www.self-reliance.com/2015/12/why-not-add-a-dairy- goa...](http://www.self-reliance.com/2015/12/why-not-add-a-dairy-goat-to-your- homestead/)

<comment><USER6> Why is salty milk better for keto?

<comment><USER7> I think in keto, the kidneys flush sodium instead of retains it. If you're interested, The Art and Science of Low Carbohydrate Performance by Volek and Phinney is a good read.

<comment><USER6> Thanks for the recommendation!

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Re: many people wondering why this hasn't happened organically, it is easy to underestimate how much cultural attitudes can affect common practice.

As an anecdote, when I visited rural China a couple of years back I asked my friends who grew up there why, if most people had one chicken, they didn't simply grow a few more?

The response was "you don't know what it was like back then. In the Mao attitude people would say ... 'who are you to have two chickens when everyone else only has one' " ... which was enough social pressure to keep everyone to one chicken, no matter how much that contributed to malnourishment.

I'm not proposing the same social attitudes are at play in these regions, but there may be other non-obvious contexts discouraging people from getting started with a flock.

For some scenarios I could imagine an initiative like this helping to break through inertia and change norms.

<comment><USER9> This seems very accurate. When I was younger it was a social taboo for middle class families in rural area to raise animals in out country. Then the government started blasting propaganda about how farming fish and raising chickens/goats was a noble "entrepreneur" like thing, and now it does not seem like that much of a taboo any more.

<comment><USER10> There is a campaign in West Africa right now to grow 'grasscutter', aka greater cane rat, as an entrepreneurial alternative to bush meat and as a noble poverty reduction measure.

The biggest argument for micro livestock in extreme poverty areas is the barrier to entry. You can run a large chicken, rabbit, cuy, or grasscutter farm for less than it costs to own a single pair of cattle, and nobody in the area has high amounts of saved wealth.

[http://www.nap.edu/read/1831/chapter/1#xv](http://www.nap.edu/read/1831/chapter/1#xv) is an attempt to explore the options for getting the world's subsistence farmers (mostly growing crops that have already been heavily automated) into livestock production (which still require lots of human care).

</comment></comment></comment><comment><USER11> > If you read this article, watch the video above, and answer one question > below, I will donate—on your behalf via Heifer—a flock of chickens to a > family in poverty.

Giving a flock of chickens to desperately poor families sounds like a great idea that will pay dividends for many years. However, I can't help but be reminded of the many charitable programs that sound great but end up having very unusual unintended consequences that often defeat the purpose or make it worse. Anyone care to speculate as to some unintended consequences this project may have?

<comment><USER12> In order of severity:

1\. Family ends up homeless because there is no legal framework to raise small anymals in urban environments, and the flock is framed as "unruly pets" by abusive landlord/neighbours. Family ends up worse than how they started without help.

2\. Family receives the flock, but not any training/resources to tend them properly. Chickens die of illness, malnourishment, or get killed by urban predators (i.e. semi-feral cats). Purpose of the program is defeated.

3\. Family just eats the chickens right away, which would be a relief from their situation, but still defeats the purpose of the program.

[Edit: I posted this prior reading the article, and assumed this would be about helping the urban American poor, not the Global poor. I simply could not imagine rural poor people in 3rd world countries _not knowing_ chickens are a good source of income/food. They may still forego the option if they lack other resources to raise the chickens.

So, you may say I stand corrected. Thanks for your polite feedback]

<comment><USER13> You forgot risk of salmonella and other diseases from not properly handling chicken products (meat, eggs, cleaning up after handling them, etc.), and subsequent lack of medical help because of lack of money and/or lack of insurance.

That said, you have to break some eggs to make an omelette (ok, I guess the pun was intended). These are things you can help educate about in the process and shouldn't stop something like this from being rolled out.

<comment><USER14> As I understand it, salmonella and other food-borne illnesses are quite rare in non-factory-farmed chickens. The biggest contributor in the US is water chilling (as opposed to air chilling), which causes one infected carcass to infect the rest.

</comment></comment></comment></comment><comment><USER15> Anybody else surprised by how much a chicken costs in Africa?

$5 is £3.45[1] and I can buy a (dead, plucked, gutted, packaged, delivered to my door) chicken in the UK for £2.95[2].

I realise the local supply's much lower because my Sainsbury's chicken is grown in a cage in a factory somewhere, but nonetheless, I didn't expect that.

[1] I presume USD is the currency in the video, since 5 of the local currency is £0.006

[2] [http://www.sainsburys.co.uk/shop/gb/groceries/chicken/sainsb...](http://www.sainsburys.co.uk/shop/gb/groceries/chicken/sainsburys- british-whole-chicken--small-135kg-%28serves-2---3%29)

edit: looks like I left the page open for longer than I thought - <USER2> discussion happened elsewhere hours ago. Apologies.

<comment><USER16> Chickens weren't sold that way until pretty recently in history in rich countries.

Like cows, chickens provide ongoing sustenance. That $5 chicken may yield $50 in eggs. When the bird gets old, you make some soup.

<comment><USER17> $5 seems to be the price for a carcass. In the video, dead chickens are tied together and draped over a bike for transport to wherever they are being sold.

<comment><AUTHOR> I'm pretty sure the chickens tied together on the bike are alive. I imagine it's just a lot easier to transport a bunch of them with a bike when they're tied together like that.

[https://youtu.be/MwZxBPYqiLg?t=17s](https://youtu.be/MwZxBPYqiLg?t=17s)

<comment><USER17> Yeah, giving it a second look, you are right.

</comment></comment></comment></comment></comment><comment><USER18> I started raising chickens 2 years ago. A few things I have learned: If you have a yard that they can run free in, they don't need a coop. Chickens will happily roost in the trees. I live in southern Arizona, so the winters are mild, but I know of people that do the same thing in much colder climates. Chickens are tough. An added benefit is they are actually safer, if they are locked in a coop, and a predator gets in, it's going to kill them all. Outside, they can hide (good luck finding a scared chicken, they are really good at bolting to a hideaway) or fight. Chickens make all kinds of commotion if there's a predator around. They will make their nests in secluded shady spots and unlike a coop, they do not poop in their nests so the eggs are very clean. I supplement their foraging with chicken feed, but it's not necessary, there's enough critters and plants, they often just ignore the feed. What they really want is your compost, no need to separate out what they eat and don't eat, they do that. The rest attracts their favourite food of all: bugs. Going coop-less also removes the chore of cleaning the coop. In AZ their poop dries up very quickly and if they are free range it's not really noticeable since it's so spread out.

They need lots of water and shade, so make a continuous drip somewhere in the shade.

Domestic cats don't mess with full grown chickens, and in my experience they leave the chicks alone too if they are fully feathered and about pigeon size. The cats eat pigons on a regular basis, but they let the chicks run around and seem to enjoy them. In the daytime it's common to see the cats and chickens laying around in the shade within a foot of each other. Racoons like chicken, and they are good climbers, but the chickens just make lots of noise and fly off if one gets too close. By then I have my paintball gun out and the Racoons learn quickly to get dinner elsewhere. I'm constantly surprised about how smart they are, if they know they are not allowed in a spot they will wait for you to go away and then rush over. If you catch them in the act, they freak out and run off back to their allotted area. I find small firecrackers a good way to tell them "stay away". They learn quickly.

Most of my chickens are good flyers, they can easily jump up to a perch 5ft above the ground and then into a tree from there. They could also easily fly over my fence and exit the yard, but they _never_ do.

I wish I had started years ago, the eggs are fantastic.

<comment><USER19> I have seen a similar setting in Brazil with small Bantam chickens.

Some breeds are more self-sufficient l than others. What chicken breed do you raise?

<comment><USER18> I have 2 Yellow Brahma (big bids, very nice temperament, cant fly far so they need a way to get to their perch, one is still too young to lay), 1 New Hampshire Red (she's the alpha, pretty good at flying too), 2 Leghorn (well one might be a Blue Maran), one grey/blue one white (smaller, really fast, great flyers, practically impossible to catch), 1 New Hampshire (still growing and not laying yet, super sweet temperament) and 1 Belgian Bantam (also not laying yet). They hang out in groups by age.

The Bantam/Leghorn/Maran hens have a celebration every time they lay an egg which can be a bit annoying if it's 7am, but usually it's mid morning.

Other random tips, to pick them up, especially fast chicks, place your hand under their belly and let the legs hang down, don't come at them from behind or above or too fast. Laying chickens often will assume a mating pose if you go to pick them up which makes it easier and you can just grab them with 2 hands around the folded wings. They like being pet under their chins, but generally not on top of the head. Be sure to wash your hands even though they look perfectly clean.

They are all pretty spoiled, if it was a harsher situation I would stick to the small fast breeds.

Also, I give them the eggshells back, they love em and need the calcium anyway. Some folks say that encourages them to eat the eggs but I have never seen that. It's only when one gets broken by accident.

</comment></comment></comment><comment><USER20> I don't get it. As mentioned in the article, chickens are incredibly easy to bootstrap (ie, it's not like they require a huge capital outlay to get started, and they literally pay dividends in further chickens), and have been present in the area for centuries. What has been the obstacle that has kept them from already being common enough to drive the expected benefit of further investment to ~0? And how is that obstacle going to be overcome?

<comment><USER21> They're giving away _vaccinated_ chicks. I suspect that the vaccines are the main problem they're addressing. It's certainly possible that it's easier and cheaper to give away vaccinated chicks than it is to give away vaccinations.

<comment><USER11> The author mentioned the low cost of vaccines (the one that prevents the deadly Newcastle disease costs less than 20 cents). I suspect the reason that this is not already being done by the locals is that there are some other costs or factors that are specific to the local market that outsiders have no way of assessing.

<comment><USER22> It sounds like in order to get money you need to be raising and selling on the order of 100-300 chickens per year. So we're talking $20-40 year. To put that in perspective for a contract software developer making $100k+/year, that's like spending $20k/year on software licenses.

<comment><USER23> $.20 cost of vaccination per $5.00 chicken is 4 percent cost. You're quoting 20 percent cost comparison. Am I missing something?

<comment><USER22> I was comparing against the farmers' current income estimated at $2/day, not the income post-chickens. Though presumably their income is substantially less than $5/chicken.

</comment></comment></comment></comment></comment></comment><comment><USER24> I know a older couple that have spent the last year or so traveling around Africa doing 'chicken projects' where they help build chicken coops and teach poor families how to raise chickens (pretty simple to do, actually, but there are little strategies one can use to increase profits- hardest part is keeping predators from eating them!) Cool stuff, glad to see Bill Gates onboard!

<comment><USER25> Sounds cool! Do they have a webpage/fb page where they are sharing their journey?

<comment><USER24> The wife posts on her personal facebook page periodically, but nothing generally public :(

</comment></comment></comment><comment><USER26> Some idiot in my neighborhood tried raising chickens, and they got loose. Some days I've had 16 chickens in my front yard. There are at least two roosters, so the flock is self-sustaining. They hide in the creek gully where they're hard to catch. This has been going on for two years now.

<comment><USER27> > Some idiot in my neighborhood tried raising chickens, and they got loose.

Sounds like some philanthropist has kindly provided you with all the chicken you can eat — if you catch it.

</comment></comment><comment><USER28> It is not specified what they mean by "chicken" (age and breed and sex) but $5 seems like really expensive.

I know that you can buy baby chicks from an incubator for egg laying purposes for like 3 euro or less in rural western Europe. Breeds meant to be harvested for their meat cost even less.

<comment><USER21> I get the impression that's for a fully grown chicken sold for meat. I have no idea how big those chickens are. In North America live chickens sell for between 30 and 50 cents a pound. The chickens in the video look like small roasters, definitely under 10 pounds.

<comment><USER29> how am I able to buy a rotisserie chicken from the grocery store for $5?

seems like I've getting pretty much everything that's economically viable from the chicken, plus a fair amount of labor put into the chicken

<comment><USER30> Rotisserie chickens are often a loss leader for grocery stores[0].

0- [http://debtblag.com/why-rotisserie-chickens-so- cheap/](http://debtblag.com/why-rotisserie-chickens-so-cheap/)

</comment></comment></comment></comment><comment><USER31> Raising chicken is a recession-proof investment which made robust by 'cloning' <\- you put initial capital, got divident of its type; type can be money, chicken, plant, whatever; multiply base by cloning.

I plant kangkong. Initial capital is 1usd, about 300 stems. harvesting biweekly, i get 2600% roi. That's divident part.

I can clone the kangkong by cutting and replant cut stems. It's multiplying the capital part.

Similarly with chicken, one can eat dividend (eggs) and multiplying base (breeding/'cloning')

with cash only, i cannot get good dividend (say, by buying bond); much less luck with cloning cash legally.

Extrapolating to basic income, observe that poverty is lifted fast if the cash is invested in high roi activities (like entrepreneurship) that grow and scale fast.

It's the type of activity that matters more than the cash.

</comment><comment><USER32> If you want to raise backyard chicks, double check your local chicken ordinances! Unfortunately, even when they are allowed, it can be the source of tension between neighbors:

[http://articles.latimes.com/2012/nov/27/nation/la-na-nn- back...](http://articles.latimes.com/2012/nov/27/nation/la-na-nn-backyard- chicken-farmers-arizona-20121127)

<comment><USER33> We have 6 in our backyard and you hardly notice them. They are generally very quiet. The only times ours makes noise is if one chases another.

The birds in the tree make a lot more noise.

<comment><USER34> I find the same thing. My neighbors and I have chickens on ~5000 sq ft fenced lots and you barely notice them, especially when compared with the local bird and insect population. My neighbor has a rooster and even that isn't a large bother.

</comment></comment></comment><comment><USER35> Pretty much all research has shown that the best way to improve poverty is to give people money, and not some sort of good that you've decided is better (goats, chickens, cows, whatever). Unfortunately, giving away money just doesn't sell. :(

<comment><USER36> I'm not sure that it's as cut and dried as you describe.

If I understand correctly, GiveDirectly is uncertain about the effectiveness of their programs outside of their current "pilot" countries.

[there are lots of factors: the poor in Kenya & Uganda are very poor - and the marginal dollar to them is very effective, replacing thatched roofs, etc; Kenya has good support for transferring money]

Besides, it's a good thing to experiment to see how effective different methods are. It seems naive to settle on one method and decide all other methods are "stupid," especially when contributing to one doesn't necessarily detract from the other [the Gates foundation has enough money to saturate any one charity].

It's always so surprising to me to see people unhappy about the good work others are doing.

</comment></comment><comment><USER37> If six times as many people raise chickens, won't the sale price of chickens go down and negate (part of) the effect of providing all the chickens in the first place?

Shouldn't the number of people raising chickens have already reached a market equilibrium?

<comment><USER38> Probably not because:

1) Farming chickens requires capital investment that might not be available to poorer families. Equilibrium can only be reached if the would-be-chicken- farmers have easy access to credit.

2) Chickens have inherent value; you can consume the eggs yourself as a substitute for other goods you were going to buy, and the meat as well.

</comment></comment><comment><USER39> Any threat that by increasing the # of chickens around humans' living quarters in the third world we might be increasing the chances of developing avian diseases that jump onto surrounding humans, creating new epidemics?

</comment><comment><USER40> I am not poor, but did recently raise chickens for about a year, and did the math on how they fared as an investment. I would disagree they are "easy and inexpensive", though in a 3rd world setting with some luck it may vary. Here's a rough summary from my experience:

-1 x Coop (self-made from scavenged wood, home store bought wood, wire, and hinges) ~$400 -5 x laying chickens ~$100 (Chicks are cheaper, but you pay to feed them for N months before they lay, and they need special care. Even then, some died or got sick and quit laying)

So let's call it a $500 initial investment. Mine laid roughly 12 eggs a week. Near me, we pay $5 for a dozen farm-fresh eggs. So it would take ~100 weeks to pay off my investment, not taking into account the ~20/mo for feed, bedding(hay), wormer, and time spent fooling with them. Time-wise, in addition to building the coop, etc. I had to let them in/out daily and feed and water them.

They were fun. I like fresh eggs and I'll probably do it again sometime. But a good investment they were not.

<comment><USER41> I think this is way out of line. (I also keep chickens, though not with the tractor I'm about to list):

Here's a $300 chicken tractor, complete package: [https://www.aosom.com/pawhut-96-wooden-backyard-hen-house- ch...](https://www.aosom.com/pawhut-96-wooden-backyard-hen-house-chicken- coop.html)

Depending on your situation, you might not need much of a coop. I would expect you could get away with $100 in supplies, in the US--not using scavenged wood --if you didn't need an enclosure etc, and just a small coop with nesting boxes.

Chicks are $2 and less, so it seems absurd to pay $20 for a laying hen. In my area I think hens are worth about $6-$8.

Your 12 eggs/week (for 5 hens) was a bit low, but of course that can vary greatly by variety. Many hens can lay for 4-5 years, though, and slow down as they go. I'd expect near the end you'd get 12/week. FWIW I had 9 chickens and was getting 3doz+/week. If it was winter, you might have needed a light in the coop to extend 'daylight' hours. They lay more slowly in the winter.

My feed runs about $12/month in the winter, $3/month right now. I seriously can't see how you could feed 5 chickens $20/month worth of feed. Around here 50lb bags of layer pellets go for $10-$12. Plus I throw them scraps from the table, which would be waste anyway. I bought one thing of straw that is going to last about 2 years for $12 at TSC. I don't count my time--and actually, these days my six year old does nearly all of the work to take care of the chickens (releasing, feeding, locking up at night). The straw need not be purchased, though--plenty of substitutes could be had for free or cheap. Shredded newspaper would probably work.

For your $500 + $20/month I think you should have been able to handle about 15-20 hens and therefore triple your production, or make your money back in about 30 weeks. Even at 100 weeks, it's not a bad investment, IMO, given that it just generates money forever after that.

<comment><USER40> Re selling chickens, that means a rooster, who when I had one ate a ton (and laid not one egg ;). Then the hens don't always get "broody", so you buy an incubator...shots for the chicks... I'm sure in 3rd world they make it work, but the cost is non-0.

I have no doubt my coop was over engineered and way more expensive than it should be.(I'm a software developer ;) The biggest cost was wire, and also includes wire fence for a run, feeder/waterer hay bedding (we changed every week to keep down disease!?), etc.

I'm sure there were other wastes in my operation that could have made things more efficient. But learning those things takes time, money, and effort too. I'm sure if my life depended on it it would be different.

<comment><USER41> I'm a developer, too! I probably have a smaller coop than you.

In truth, mine was already on the property, but I've looked at a lot of them. I dislike the one I have and want to rebuild it. Someday.

I'm also blessed with a small creek for watering them, and they have plenty of room to range and therefore mostly feed themselves.

I chose breeds that are known to be broody, and I typically have at least one broody hen at all times. Right now, I have two. I'm not letting them hatch anything out, though. In truth it seems to be just two particular hens that get broody off and on, so perhaps I was just lucky. I'm fairly new to this game, myself.

</comment></comment></comment></comment><comment><USER42> > _They empower women._ Because chickens are small and typically stay close to > home, many cultures regard them as a woman's animal, in contrast to larger > livestock like goats or cows. Women who sell chickens are likely to reinvest > the profits in their families.

Uh... this is empowering???

EDIT:

> If you read this article, watch the video above, and answer one question > below, I will donate—on your behalf via Heifer—a flock of chickens to a > family in poverty.

OMG, it's finally happened for real. Anyone remember this?

"Hello everybody,

My name is Bill Gates. I have just written up an e-mail tracing program that traces everyone to whom this message is forwarded to. I am experimenting with this and I need your help. Forward this to everyone you know and if it reaches 1000 people everyone on the list will receive $1000 at my expense. Enjoy.

Your friend, Bill Gates"

<comment><USER43> In cultures where it is "considered woman's animal" the chickens provided by Heifer will most likely be raised by them. These woman will help bring in money for their families. That is what is empowering.

<comment><USER42> I get what the words say. What I am remarking on is that engaging in domestic, socially-acceptable and conventionally female work around the household for the economic benefit of ones family (as opposed to oneself) is a highly strained interpretation of "empowering."

Yes, if the alternative is wallowing in penury and being completely economically dependent, it is certainly better. But empowering?

<comment><USER44> Why is it _not_ empowering to give women more economic independence, in way that's sustainable in their societies?

Suffragettes in Europe had to fight for more economic rights for fifty years _after_ getting the right to vote, and it was messy, protracted battle. (Until the 1970s, German husbands could dictate whether their wife were allowed to work or not, and kept control over their earnings for even longer.)

<comment><USER42> It's "empowering" in that sense for anyone to get more money. It's "empowering women" to give them opportunities, including economic opportunities, which they don't already have or to which there are barriers.

What I'm saying is that chickens are not "empowering women" in societies where it is and always has been acceptable, status quo, and already conventional for women to raise chickens; a "woman's animal," small and "close to home," for domestic purposes. They already have that opportunity!

Empowering would be raising goats and challenging the notion of a "woman's animal." Or maybe, you know, getting some education and having a life beyond subsistence farming.

</comment></comment></comment></comment></comment><comment><USER45> I used to spend majority of my Summer each year (when I was a pre-teen) in a very poor South Indian village where my extended family lived. Our family owned a large flock of chicken. I enjoyed feeding the chicken, feed like rice, maize, wheat, etc., though for the most part, the chicken did not expect to be fed anything. They would just graze on whatever they found. Now that I look back, interestingly, every family (even the poorest) in that village owned a flock of chicken. It was as though the flock of chicken was one common thread that ran through every household in the village. At the time though I didn't have the sagacity to realize the economic incentives of owning a flock of chicken.

</comment><comment><USER46> > A farmer who sells 250 chickens a year can bring in $1,250, versus the > extreme-poverty line of about $700 a year.

(That's the comment when you answer the quiz correctly.)

What a simplification. I'm all for the chickens, but the quiz and this quiz- answer-comment make it seem a little _too_ easy.

If you want to sell 250 chickens a year you a) need quite a few more than that, b) you need SPACE - and it should provide plenty of free food for hundreds of chickens (so, LOTS of space), and c) the more chickens the higher the risk of disease, and several hundred chickens is <i>a lot</i> of chickens for a poor guy, d) if you don't have LOTS of space you will need to get food from somewhere (and pay for it?).

<comment><USER24> 250 chickens a year wouldn't be that hard. 8-12 weeks from birth to butchering weight would mean you need a substantially smaller flock than 250 birds. If they scrounging for most of their diet, it may take a bit longer to get to butcher weight. Also, if they are scrounging you need more space- and your success will depend on keeping predators out. But you won't need 'several hundred' chickens at any one time to reach that goal.

</comment></comment><comment><USER5> Joel Salatin of Polyface farms might be an interesting read. He also has a lot of videos on youtube. Here is one [1] but I recall seeing an interesting video where he runs larger ruminants (cows) and then chickens (coop on wheels) and then plants the area (the chickens aerate the soil). He also wrote an article "Everything I want to do is illegal" and has several books on the mess of agricultural bureaucracy.

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

</comment><comment><USER47> "Watch the video to get +100 Pts"

What is this, some sort of gamification to get people to read and watch more content on the gates website?

<comment><USER48> Might be a strategy to get the public to become more active on social issues. I know I'd use gamification as one method if it were up to me.

</comment></comment><comment><USER49> Meta: Almost 10,000 lines of code for that web page (I have NoScript on by default, I check source to see what I am missing when I get blank pages).

But back to the main point: When my wife and I moved up to this very rural area of coastal Northern California, we took over dad's chickens. He had been keeping them penned, but we let them out, and the eggs became drastically better tasting. More protein, I assume.

It has also taught me that chicken-based epithets carry some weight, they are not the brightest of creatures.

We are considering adding a few more this year, we have avoided roosters, so we do not have the risk of fertilized eggs. The trade off is we pay for the odd hen or two, once every couple of years or so.

We now enjoy more traditional recipes that use uncooked eggs or lightly cooked - I hadn't realized what I had been missing.

I have definitely learned quite a bit, but so much more to go.

</comment><comment><USER50> According to this table, raising ducks is more interesting than growing chickens:

[https://www.tyrantfarms.com/wp- content/uploads/2013/09/duck-...](https://www.tyrantfarms.com/wp- content/uploads/2013/09/duck-vs-chicken.png)

<comment><USER18> My neighbour keeps suggesting I add some ducks, seems like a good excuse to make one of these natural pools. Also, in town where I am, you cant have a rooster (thank god), but male ducks are aok.

</comment></comment><comment><USER51> Impractical to raise chickens in cities where it's illegal to butcher them. The egg laying tapers off at 3 years, but they'll live to ~10 years. That's a pet, or a freeloading chicken you have to feed but don't get eggs from. So...? Yeah, not terribly practical unfortunately.

<comment><USER52> The inability to butcher the animal is definitely a problem. I'm not well versed in this area, is it typical to butcher a chicken after the egg laying tapers off, or does it typically happen before/much after?

If you're doing this for convenience, it may be worth making a trip out of the city to have someone butcher them when the time is right. If you're doing this to save money, it's likely you don't have an easy means of transportation for something like that.

<comment><USER51> If it's a male, typically butchered young, 40-50ish days. You only need so many roosters, and they're loud once they get old enough to crow. In most U.S. cities, crowing roosters are illegal, but mainly that's because it pisses off the neighbors.

Butchering elsewhere might work. Seems like a pain. And seems like there could be a limit on how many you can butcher rather than making it illegal. E.g. Denver, I think you can only have eight chickens at a time anyway.

Age wise, eating chickens are always young, less than 50 days. Some people might butcher the egg laying chicken at first molt when it'll stop laying eggs for 1-3 months. Others do it at 2-3 years when it tapers off. These are tougher meat chickens but they stew fine.

</comment></comment></comment><comment><USER53> I would raise iguanas

[https://learnenglish.britishcouncil.org/ar/magazine- articles...](https://learnenglish.britishcouncil.org/ar/magazine- articles/iguana-farming)

</comment><comment><USER54> This isn't the first program of this type, so he's not going into it blind. See this for one example: [http://www.cityfarmer.info/2013/11/15/gaza-urban- rabbit-rais...](http://www.cityfarmer.info/2013/11/15/gaza-urban-rabbit- raising-intervention/)

I also remember reading about a rabbit raising program in the Philippines several years back, but I can't find a reference to it.

</comment><comment><USER55> If they're so great, why do they need to be promoted?

<comment><USER56> Same reason condoms and vaccines do. It's hard to change behaviors.

</comment></comment><comment><USER57> This sounds like a fantastic idea.

However, if he really gives a flock of chickens to a bunch of families in need, won't that reduce their monetary value over time?

If every family has chickens, the monetary incentive isn't there for others to purchase them, or the higher supply will squash demand and drive the price down.

There's still the health benefit and it's obviously a great initiative.

</comment><comment><USER58> I find it a bit odd that he doesn't mention actually eating the chicken itself at any point. He mentions selling the chickens for more nutritious food than just eggs... But isn't chicken meat alone pretty nutritious?

</comment><comment><USER59> A touch of humor, a clip from Harmony Korine's brilliant Mister Lonely:

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

</comment><comment><USER60> I wish a local person could give us their perspective on this initiative.

</comment><comment><USER61> What is the ratio of female hens to male roosters? Quick googling tells me 10 to 1 but I'm not sure if that is correct.

Is there any other species that has a similar extremely lopsided number of one sex?

<comment><USER62> The natural sex ratio of chickens is 50/50\. Chicks are sexed when a few days old and excess males are disposed of.

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

There is strong evolutionary pressure that keep sex ratios at close to 50/50 in the vast majority of species. Some species (e.g. clown fish) have environments and traits which push this equilibrium away from 50/50\. Fisher's explanation for this phenomenon is widely accepted: [https://en.wikipedia.org/wiki/Fisher%27s_principle](https://en.wikipedia.org/wiki/Fisher%27s_principle)

<comment><USER63> Right, and just in case anyone is in doubt, the ratio for cattle is also 50/50\. There is no sexing that I am aware of, but if someone is a vegetarian and drinks milk, they are still supporting the schnitzel industry.

</comment></comment></comment><comment><USER64> Please note Bill's address to the community about his charitable donations contingent upon our participation. I like how he is engaging the community to spread a good idea.

</comment><comment><USER65> maybe I'm missing something, what will the chickens eat? "whatever they find on the ground" is not exactly a strategy for growth, especially if everybody is raising chickens, you can pretty much expect the availability of edible stuff to reach zero in villages. not saying this doesnt work, but it's still an energy in/out problem right, where is the new source of energy?

<comment><USER66> Chickens can eat bugs, plants and food waste that people wouldn't touch. This would work fine assuming at least a temperate climate (ideally tropical) and small villages with a fairly low density.

<comment><USER67> If chicken can freely walk around, there immediately occurs the problem of people stealing others' chicken. I grew up in a Soviet village and it happened a lot, so I'd imagine it would be even worse in poorer countries.

<comment><USER66> In a larger, more populated village, this is definitely a potential concern. In the smaller, less dense villages where this program is likely targeted, everyone knows everyone, and chickens usually have sufficiently distinct markings that if you have a small flock you could probably identify your stolen bird without too much trouble.

Just for reference, I've seen roaming chickens in small villages in the Philippines/Caribbean, it is very common. I even saw it in some decently sized towns, though it was less common. In cities everyone kept their chickens in pens, so I never saw them (though they woke me up every damned day, so I know there were plenty of them).

</comment></comment></comment></comment><comment><USER68> The significant problems we have cannot be solved at the same level of thinking with which we created them.

</comment><comment><USER69> Lots of people keep backyard chickens even in developed countries. Most of the local schools have chicken coops.

</comment><comment><USER70> What about the chicken feces? Wouldn't it be terrible for your health to live in a small house full of feces?

</comment><comment><USER71> This makes no financial sense. You would be better to eat the chicken feed yourself (corn/grains) and get x50 more caloric value for your money.

</comment><comment><USER72> (Useless blank page without JS enabled. Whine. Complain.)

</comment><comment><USER73> The way chickens are raised today, you'd be insane to raise chickens.

Chickens of the old, roamed the grass, picking little shits that no one could find or eat, growing slowly but steadily, surviving and mating.

Today, they gorge on soybean-B12 juice that was raised on ex-rainforest area.

It's highly unsustainable and ridiculously bad investment.

Bill Gates has previously written about meat and its sustainability and has shown serious lack of understanding of how it all works on a global scale.

Yes, chickens being raised on a field filled with little nutrients only chickens can see is exactly the same as cows being raised in an environment where grass grows around them and climate is pretty stable.

That's not the way Africa or India will get its dosage of meat, and it cannot be done in any way other than massive soybean way (the best source of protein and growth for all living animals).

When we get Africans or Indians on the luxurious flesh, we'll never get them off the bandwagon and the unsustainability of the process will ruin more rainforests, more oceans, more living species and more life.

Absolutely disappointed with Bill.

I guess he's totally oblivious to the dead oceans zones that are caused primarily by animal agriculture.

Or that 90% of the rainforest is being cut primarily for soybean, that is primarily given to the animals in the animal agriculture.

Can't believe a guy was solving a problem this huge and he seems to still be on the meat bandwagon.

<comment><USER74> This is a clear troll. Absolutely nothing said by this poster has anything to do with the actual article. Additionally, the user account is only 13 days old. Moderators, please kill this account and postings.

<comment><USER75> I don't see the troll on it. He expressed his points of view, related to the article. I agree that meat isn't a long lasting solution (I eat meat, by the way). I think plants agriculture is. Chickens for short term? Yes.

</comment></comment></comment><comment><USER76> Reading the comments on that post make me weep for the future of mankind. It's like Youtube but worse - because at least on Youtube everybody knows they're being idiots.

</comment><comment><USER77> When he says stuff like this does it affect the commodities market?

Edit: just more unintended consequences if so, and it is things like this that make me aspire to be a good neighbor instead of a Manager.

</comment><comment><USER68> Bill Gates should live in a 3rd world village for 6 months to really understand the nuances of poverty; [https://en.wikipedia.org/wiki/Untouchability](https://en.wikipedia.org/wiki/Untouchability) and [https://en.wikipedia.org/wiki/Maslow%27s_hierarchy_of_needs](https://en.wikipedia.org/wiki/Maslow%27s_hierarchy_of_needs)

<comment><USER78> [https://en.wikipedia.org/wiki/Ad_hominem](https://en.wikipedia.org/wiki/Ad_hominem)

</comment></comment><comment><USER79> "Relative surplus value is produced through the reduction of the value of labor power (variable capital) by means of improvements in the production of goods (effectively the appropriation of productivity gains by the capitalist class)." -Marxist definition

In other words, they will no longer need a wage that also represents the value of eggs, so: -the wage will ultimately be reduced -the portion of their unwaged labor (raising chickens) will increase

People who raise their own chickens _can_ work for less than those who don't.

tldr: A service they could once afford will become unaffordable.</comment>


Onyx is violating the Linux kernel's license, refuses to release source code - <AUTHOR> https://old.reddit.com/r/Onyx_Boox/comments/hk7d5v/onyx_is_violating_the_linux_kernels_license/ <comment><USER2> This is not unusual, there are _many_ cases of GPL violations out there and if someone puts energy into them they are solved. Harald Welte and gpl- violations.org [1] have been doing good work for many, many years in this regard.

From their about page:

 _" By June 2006, the project has hit the magic "100 cases finished" mark, at an exciting equal "100% legal success" mark. Every GPL infringement that we started to enforce was resolved in a legal success, either in-court or out of court."_

gpl-violations.org is in an extraordinary good position to help when it comes to GPL violations in the Linux kernel, because they work closely with some kernel developers that _" [..] have transferred their rights in a fiduciary license agreement to enable the successful gpl-violations.org project [..]"_

Their website looks a little bit outdated but from what I understood from a talk that Harald Welte gave last year[2], they are still active. If someone wants to report the Onyx case you can do it at _license-violation@gpl- violations.org_ but be prepared to provide solid information[2].

[1] [https://gpl-violations.org](https://gpl-violations.org)

[2] [https://www.luga.de/static/LIT-2019/events/84.html](https://www.luga.de/static/LIT-2019/events/84.html)

[3] [https://gpl-violations.org/helping/](https://gpl- violations.org/helping/).

</comment><comment><USER3> This was a problem with Creality in the 3d printing world two years back. They used Marlin - a program for the embedded micros used in them - which is licensed under the GNU GPLv3+. Creality refused to release their contributions until they were convinced by Naomi Wu (Sexy Cyborg) that the community would actually refuse to purchase from them unless they did, which they probably would've.

[https://hackaday.com/2018/08/27/gpl-violations-cost- creality...](https://hackaday.com/2018/08/27/gpl-violations-cost-creality-a- us-distributor/)

<comment><USER4> I seriously can't believe how short sighted people can be. That's bad business.

I worked at a big bank too, you'd think they would understand about investment? No. They simply leeched off open source in the same way.

<comment><USER5> I worked at a bank too. There is a list of software and libraries approved for usage. GPL cannot make it to the list because the license is the first thing that's verified when requesting to add a new library.

I always wondered what would happen if some developers used some GPL lib and shipped to customers and it was noticed and caused the company to be sued. Would all the developers be fired on the spot and the software undone?

<comment><USER6> I would guess no unless someone stepped in from above. Unless it ended in the complete source code of all their systems, perhaps.

In a lot of commercial code there is almost literally nothing worth protecting, just sunk-cost. If a finite element package got open sourced, that would be a minor disaster (although even then you're paying for the UX and support not the code) but things like firmware are barely worth the electrons on the drive.

The point being the business impact would probably be fairly minor for most projects.

<comment><USER7> "A bank" contains multitudes, though. The big banks all have investment arms, which in turn have in-house algorithmic-trading subsidiaries. Now imagine that someone snuck some _Affero GPLed_ code into the trading engine...

(It is at this point that I realize that maybe one of the reason that HFT people like arcane formal-proof languages so much—besides just verifying that they won't lose money—is that the ecosystems of unusual languages are _smaller_ , so it's _less_ likely that any problem _has_ a solution involving third-party code, and therefore there's less concern about IP contamination.)

</comment></comment></comment></comment></comment><comment><USER8> This kind of behavior is one of the things that kills me about grsecurity. They're completely abusing the spirit of the GPLv2 license but are probably following the letter of it.

If you choose to exercise your GPLv2 rights, your contract with them is terminated and you will receive no further security updates (considering this is a security product, it makes it pretty useless to you). You are then blacklisted from doing business with them ever again.

<comment><USER9> Bruce Perens argues[1] that this is a penalty for exercising your rights under the GPL and therefore violates section 6[2]: "You may not impose any further restrictions on the recipients' exercise of the rights granted herein"

[1] [https://perens.com/2017/06/28/warning-grsecurity- potential-c...](https://perens.com/2017/06/28/warning-grsecurity-potential- contributory-infringement-risk-for-customers/)

[2] [https://www.gnu.org/licenses/old- licenses/gpl-2.0.html](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html)

<comment><USER10> He argues contributory infringement and breach of contract, but he really only goes into the breach of contract theory.

I'm more curious about the contributory infringement theory. You cannot have contributory infringement without there being a direct infringement by someone else for the contributory infringer to have contributed to. I don't see offhand who would be the direct infringer whose infringement Grsecurity is contributing to.

<comment><USER11> The way I'm readying it, his point is that a Grsecurity customer, who is not infringing Linux copyright (because they're not distributing kernels) would still be on the hook for contributory infringement because they contributed to Grsecurity's infringement.

</comment></comment></comment></comment><comment><USER12> Unfortunately this has been going at least as long as I've been aware of Onyx Boox products. E.g. [https://www.mobileread.com/forums/showthread.php?t=277431](https://www.mobileread.com/forums/showthread.php?t=277431). It's by no means an isolated incident.

</comment><comment><USER13> I've said this elsewhere. But I genuinely don't think that they know what the gpl means. Maybe someone could approach them in Chinese preferably directly to the company instead of the forum minion. The forum minion always responds with the same answer to any question that is asked. That person gives the same answer to a quick switch option between the notes and library app.

Usually what happens in the onyx customer forum is that a person asks for something. The forum minion says it's been forwarded and being worked on and then the cycle repeats until one of the customers gets pissed and starts threats.

<comment><USER14> They know what it means. It means a copyright holder of the Linux kernel would have to sue them in China. Good luck with that.

<comment><USER15> Could users of the product also be sued by a Linux contributor?

If you can't go after them, going after their customers would kill their business.

But this approach seems too cute to be feasible even on the long shot that the GPL would allow it.

<comment><USER16> no, since they don't have access to source, they can't modify it and gpl does not apply to them

<comment><USER17> It's rather that they're not distributing it (either source or binary) so the GPL doesn't apply to them. Not having access to the source doesn't exempt you from the GPL.

<comment><USER18> But they are getting an unlicensed product. IMNAL, but if they are made aware of the fact and continue to use the product, wouldn't it be willful misconduct?

</comment></comment></comment></comment></comment></comment><comment><USER19> I tend to license my stuff MIT. That's mostly because I don't want to deal with legal agita. It helps to avoid people suing me because the hammer they stole from me bends their screws.

We basically live in a digital kleptocracy. Everyone steals from everyone. I tend not to, but that's because I'm a complete control freak, and have a hard time letting go.

I think that decompilers are so good, these days, and the use of intermediate steps like LLVM, mean that people won't have much difficulty figuring out what's going on, under the hood. With the financial incentives, it is quite possible to hire top-notch folks to implement, and even improve the work.

Also, I don't think anything I do is so great that I want to hide how I do it. In fact, I see people do stuff in more clever fashion all the time. My own advantage is in _how_ I do stuff, and it would be great if folks copied it. I don't think many would. It's a pain, and is only efficient once it becomes habit.

Go ahead and steal my stuff. Get rich. I doubt my stuff will be the "secret" to your success. My only hope is that, if you do use it, there might be a tiny piece of high-quality software in there. I do feel as if we should all strive to do the best quality work possible, and take some personal pride in our craft.

I don't mind that going viral, and I don't think a license will affect that.

<comment><USER20> It's not about you, it's about the user.

<comment><USER19> Yup. That's what I said. The user can benefit from my work.

Seriously. Why was what I wrote bad?

I just put enough legal fig leaf on to make sure I don't get sued for anything, do the very best work I can, and put it out there, for all to use.

I literally wrote a post, encouraging people to open-source their software, and I led by example; not decree, which is usually the best way to proceed.

Is the MIT license a bad license? If so, why?

I have found that if I make it GPL, then a lot of folks won't use it. I want people to use my stuff. I think it's good stuff, and can benefit users, by being a high-quality component.

I think I do have one GPL project; an ffmpeg wrapper that uses the GPL H.264 codec. I could probably get away with not licensing it GPL, but why bother? It's not gonna save the world. I suspect no one will have much of a use for it, anyway.

<comment><USER6> The users that can't use the GPL are often commercial in my experience. In that case I'd rather dual license than change to MIT (or similar).

You want it for free, give something back. (Is my thinking)

<comment><USER21> I try not to use GPL software out of principle, but it's hard not to use Linux and GNU coreutils. I wish OpenBSD was as popular as Linux.

<comment><USER6> Well, you have a completely different perspective on software to me then.

</comment></comment></comment></comment></comment></comment><comment><USER22> Seeing how this is a company in China, how would the legalities work?

<comment><USER23> [https://heathermeeker.com/2018/04/30/first-gpl-case-in- china...](https://heathermeeker.com/2018/04/30/first-gpl-case-in-china-or-is- it/)

As the link warns, this is a secondhand translation, and my summary is thirdhand. Do your own reading, especially in the original language, if able.

The general point here is that the Chinese legal system declared that the GPL legalese is OK, but that judges have the power to evaluate it in context of the case and retain the authority to override the legalese when it results in inappropriate outcomes.

In this specific ruling, the judges ruled that bundling ('aggregation') of GPLv3 and unlicensed code did not infect the unlicensed code with the GPLv3, resulting in a loss for the defendant.

If Onyx is bundling GPLv3 code with non-GPLv3 code, based on this single case, they are not required to disclose the source of the non-GPLv3 code that is aggregated with the GPLv3 code. If they have also/instead modified GPLv3 code, then they would probably be required to publish the source for the works derived from GPLv3 code.

The usual arguments here are that modifying a bundle of GPLv3 code to include non-GPLv3 code is itself a 'derivative work' of GPLv3 code, or that the GPLv3 specifies that such bundling shall result in the bundled code being forcibly licensed under GPLv3. The Chinese court apparently did not accept this line of reasoning.

YMMV, IANYL

<comment><USER24> I think you have a few details wrong.

Firstly (a minor detail) I don't think GPL requires you to "publish" source code per se. Just make sure that every recipient of a binary copy can also receive the source code.

But more importantly, the license doesn't "infect" things. In no way can you be forced to license your code according GPL. Failure to comply with the GPL simply means the license isn't applicable and the situation reverts back to normal copyright rules.

<comment><USER25> > _But more importantly, the license doesn't "infect" things._

[I'm not your lawyer and this is not legal advice.]

It can have that effect. My understanding is that if you include GPL code in your software[1] and distribute it without sharing your source code, you are committing an ongoing contract/copyright violation that can be remedied either by recalling and destroying the offending products, complying with license terms by releasing your source code, or settling with the original copyright owner (effectively, paying a license).

As for a court forcing you to release the code, that is in fact what the GPL contract requires so the court is within its rights to require specific performance instead of monetary damages. Even though common law courts strongly prefer monetary damages, they will turn to specific performance if they think it's appropriate.

All of this is going to turn on some questions about when you can bring copyright infringement vs. contract actions. It's not an area I'm super familiar with, but see my response below about at least one case that suggests you could sustain a contract action for a GPL violation in some circumstances.

[1] In the way that requires you to release your own software under the GPL. Of course, there are ways to use GPL software that don't implicate that. I'm not talking about those.

<comment><USER26> > they will turn to specific performance if they think it's appropriate

Do you know of any cases with the GPL where a court has in fact done so? I'm not aware of any outcomes where code has been forcefully licensed as a penalty. Absent strange outside circumstances (like a signed contract) I'd instinctively (but without legal training) think that that a court would treat the violator as "acting without a license" rather than "had specifically agreed to the terms of a contract and then broken it".

<comment><USER25> It was a live issue in the _Artifex_ case. The parties ultimately settled so we don't have a final answer, but the district court was going along with the contract theory. The availability of specific performance remains an open question too. But if you can in fact enforce the GPL as a contract, then it's not a big step to some plaintiff getting specific performance, which is going to turn on case-specific things like the adequacy of monetary damages.

[https://www.synopsys.com/blogs/software-security/breach- gpl-...](https://www.synopsys.com/blogs/software-security/breach-gpl-license- breach-contract/) [https://www.omm.com/resources/alerts-and- publications/alerts...](https://www.omm.com/resources/alerts-and- publications/alerts/client-alert-court-upholds-enforceability-of-open-source- licenses/) [https://www.natlawreview.com/article/important-open- source-r...](https://www.natlawreview.com/article/important-open-source- ruling-confirms-enforceability-dual-licensing-and-breach-gpl)

<comment><USER26> Thanks, this is a great answer! I'll try to look at these links later.

</comment></comment></comment></comment></comment></comment></comment><comment><USER27> I have just updated their Wikipedia page with a mention of the incident. Let's see how long it will take for someone to take it down [https://en.wikipedia.org/w/index.php?title=Onyx_Boox&action=...](https://en.wikipedia.org/w/index.php?title=Onyx_Boox&action=history)

<comment><USER28> It was removed because you apparently didn't quote/provide a reliable source... Looks like you quoted a reddit comment?

</comment></comment><comment> c-c-c-c-c They release their firmware updates on their page, packaged with upx. Someone could enjoy decompressing it [https://onyxboox.com/firmware](https://onyxboox.com/firmware)

<comment><USER29> Their is no source code there. Decompress wont bring it back to soirce code state

<comment> c-c-c-c-c Download it, unpack it, patch it to enable ssh, ssh into the machine, monitor internet traffic and see if its doing anything fishy.

<comment><USER30> While this is certainly a method that could be used to tell if it's doing anything it shouldn't, it still skips over the fact that this is a violation of the GPL. That being said, this is apparently a Chinese company, and I have no idea if the GPL even has teeth in this scenario.

</comment></comment></comment></comment><comment><USER31> Not sure what Onyx is but my first though was about the System76 system [https://system76.com/laptops/oryx](https://system76.com/laptops/oryx)

Turns out that one is called Oryx

<comment><USER32> Onyx makes eInk tablets. I was actually thinking of buying one earlier this year, but not after this.

</comment></comment><comment><USER33> So, wtf is Onyx and how does it violate GPLv2?

<comment><USER34> To answer the second part of your question, if you modify code released under GPL, you need a way to provide a machine-readable copy of your modifications to your users.

So, it doesn't need to be publicly available (as in, you and me are not Onyx users, therefore we don't need to have access to it), just to its users. Screenshot shows their user requesting it and being denied the request, hence, GPL violation.

[https://www.gnu.org/licenses/gpl- faq.en.html#GPLRequireSourc...](https://www.gnu.org/licenses/gpl- faq.en.html#GPLRequireSourcePostedPublic)

<comment><USER35> >if you modify code released under GPL

_and distribute it_

Running it server-side is fine. That's what the AGPL addresses.

If you modify GPL code and only use it yourself without distributing it, you never have to give anyone else access to the modifications.

<comment><USER36> Indeed - I amended the show waves filter in ffmpeg to create square wave forms for, but my C is terrible and I'm far too embarrassed to commit to a public code forum. As the binary goes no further than my own machines there's no issue.

</comment></comment></comment></comment><comment><USER37> That is where MIT license is largely superior to GPL, you know what you are buying for... ;) GPL put enforcement without the cops to maintain it ;) With MIT, everyone is free to do whatever they want. In a way GPL recreate (unnecessary) bureaucraty, where MIT generate pure liberty.

<comment><USER38> Ah, the freedom of business to exploit free labor! How do we long for that!</comment></comment>


HTML5/JS 909 rhythm composer - <AUTHOR> http://html909.com/ <comment><USER2> Couldn't get it to work on the latest Chrome? Or am I simply missing something trivial here?</comment>


Atbash – Ancient Hebrew Cryptography - <AUTHOR> https://en.wikipedia.org/wiki/Atbash <comment><USER2> This wikipedia article doesn't describe its _History_ nor its _Use_ at all!

Its widely described in cryptography literature not as a security device but as a literary one.

Atbash mostly survives in Jewish Kabbalahs, mystic and allegorical writings. Two atbash phrases are used in just three places in one book of the bible (Jeremiah), and these were probably added early on but not in there originally (as they don't occur in the Septuagint, for example).

Here's The Code Book (Simon Singh) description:

"Atbash and other similar biblical ciphers where probably intended only to add mystery, rather than conceal meaning"

<comment><USER3> Often Atbash is used to "hide" a meaning - or refer to something that is hidden.

An example of this additional meaning is the word "Mitzvah" is (mem-tzadi-vav- heh) is usually translated commandment. The name of God is Yud-heh-vav-heh. The atbash for mem is yud and atbash for tzadi is heh. So if you replace the first two letters of "mitzvah" with the atbash conversion, you have the name of God. This is an allusion that doing a mitzvah reveals God in the world, though in a somewhat hidden way.

</comment></comment><comment><USER4> Funny - I'd noticed long ago that my NIV has a note for Jer. 25:26, saying that "Sheshach is a cryptogram for Babylon". I've wondered how they came to that conclusion - now I know. Very interesting.

</comment><comment><USER5> This would be my favorite ancient cipher: [https://en.wikipedia.org/wiki/Scytale](https://en.wikipedia.org/wiki/Scytale)

</comment><comment><USER6> Rot13 please :3

<comment><USER7> Although also substitution cipher like Rot13, this one was used in the Bible! See smithkl42's comment.

Knowing how Bible poorly got the other science bits wrong, that's a significant thing. The writers used at least a real substitution cipher (even if it's a kind-of-simplest we know of today).</comment></comment>


Tired of looking up lyrics? Genius Lyrics ext for Chrome - <AUTHOR> https://chrome.google.com/webstore/detail/genius-lyrics/lenchgmjhcfepbgpcidcpmoapckcfhop

<comment><AUTHOR> After repeated request about their API and no replies at Genius (formlery known as RapGenius) i decided to make a Chrome extension that uses it. When viewing a video on YouTube it automatically looks up lyrics for in on Genius and adds an extra "Lyrics" tab to the UI.

</comment><comment><USER2> Cool, tried it and actually works pretty smooth. Even some obscure rap vids ;)

<comment><AUTHOR> Thanks, that's what i love about (rap)genius. Always some fan that does the lyrics!</comment></comment>


Carmakers Plot a Future Without Google and Apple - happy-go-lucky http://www.forbes.com/sites/bertelschmitt/2016/11/17/carmakers-plot-a-future-without-google-and-apple/#540d4c631079 <comment><AUTHOR> I've always imagined how this industry would play out is that Google would supply the "android for car" autonomous tech and they'd eventually take ~70% of the market while others like Tesla use their own in-house tech. This is the first article I've come across that posits otherwise and it is an interesting proposition.

Maybe there will be more categories of tech for the autonomous car than we think. Maybe the automakers do agree upon a standard which would allow an interface to certain high-level data (ie not the raw sensor data but the predicted path of the car) to a "guest OS". So the automakers would have their own linux-based proprietary OS running for autonomy. Then the automaker decides which user-interaction operating system they want to provide with the car. This OS would run maybe in a container of sorts. So Apple & Google could offer up their Car OS to provide the user experience. Really this is sort of what we're already seeing with Apple's car play which I assume is also likely "sandboxed" away from the actual car's "operations OS". Maybe, then, there's also a sound OS provided by Bose, human interface OS provided by Microsoft's Kinect or Amazon's Alexa, etc.

Obviously the idea of a single, tightly-integrated car OS seems more likely due to the players in this space wanting to retain as much control as possible but maybe we're wrong- maybe the automakers see a future where their bare- metal operational OS will remain throughout the life of the vehicle but customers can upgrade every other facet such as the "user-interaction" OS.

Picture this: I buy a 2019 Toyota Sedan, while at the dealership the salesmen tell me to launch the Apple Car app bundled on my phone to scan a qr code on the car's display. The app then let's me choose between multiple tiers of Car subscriptions, I choose one and the car display shows "Configuring Apple Car Premium Over The Air...". However, I could've performed all those steps with Google Android as well to choose Android as my Car OS.

The likely way this plays out is that automakers will try their best to provide a great UI OS and they'll all fall-short of the customer's expectations for what makes great software usability. Then one automaker will give choice to the consumers and a chance for Apple/Android to showcase their OS's and if they provide a better experience the rest of the market will follow suit.</comment>


Facebook Won't Honor Do-Not-Track Browser Setting - <AUTHOR> http://adage.com/article/digital/facebook-web-browsing-history-ad-targeting/293656/

<comment><USER2> No one of significance will honor the Do-Not-Track setting.

<comment><USER3> From the article: "Social-media competitors Twitter and Pinterest do honor the setting."

<comment><USER2> Or at least they claim to.</comment></comment></comment>


Plant Me a Tree - <AUTHOR> http://plantmeatree.org <comment><USER2> Are you just fronting [https://teamtrees.org/](https://teamtrees.org/) or [https://www.nationalforests.org/](https://www.nationalforests.org/)

I ask because they seem to plant a tree for a single dollar (what you state as your cost to plant a tree).

You then divide the remaining $4 between you and the "influencer"?

That seems like an inappropriate markup to me.

As a consumer, why would I pay you $5 to plant 1 tree when some other service will plant 5 for me?

Additionally, those other services are 501s and contributions are tax deductible. Is your company a 501? If not, are you planning on just keeping the tax deductions you would get from then using some other service to plant your trees?

</comment><comment><USER3> > _For Example, Mike wants to plant a tree for you, it cost $5, we plant a > tree on your behalf. (operational cost 1 dollar)._

This part is very confusing. I had to read it like 3 times to understand it. What costs $5?

You are mixing here a donation to the content author and a donation to plant a tree. In the "buy me a coffee/beer" links, after removing any fixed and proportional fee, all the money goes to the content author, and nobody verifies that the money is used to buy a coffee/beer.

> _Young, healthy forests can help suppress future wildfires and reduce the > impact of smoke on public health._

Unless you cut and remove the old trees, the new trees will be in another area and will not suppress the wildfires.

</comment><comment><AUTHOR> Hello world,

We just launched the waitlist for Plant Me a Tree.

The context :

Plantmeatree is a simple way to help the planet through your creative work. As easy as "Buy Me a Coffee" for Creatives — An easy way to make a positive impact by Giving back — Your fans are going to love it.

Your followers choose to support you AND to plant a tree for you, we use one dollar to plant a tree, we give you 95% of the amount we keep 5% for the platform fee.

For Example, Mike wants to plant a tree for you, it cost $5, we plant a tree on your behalf. (operational cost 1 dollar).

We (your supporter) give you then $3.8 to support your creative work (95%) , we keep $0.2 to maintain the platform.

We make supporting ethical and easy.

In just a couple of clicks, your fans can make the payment (buy you a tree) and leave a message. They don't even have to create an account.

plantmeatree.org</comment>


HTML5 Peeks, Pokes and Pointers - <AUTHOR> http://diveintohtml5.org/peeks-pokes-and-pointers.html

<comment><USER2> FYI: Article has nothing to do with memory pointers or linked list peeks, and everything to do with DOM attributes of HTML5 elements and attributes.

<comment><USER3> Yes, my mind was blown for a second and then I was slightly disappointed. ("Poke" and "peek" are also commands to write to and read from a given memory address, respectively.)

It's presumably a reference to old time tables of "peeks" and "pokes" showing what each memory address controlled, or somesuch.

<comment><USER4> Here's the story about the name: I wrote <http://diveintomark.org/archives/2010/01/29/tinkerers-sunset> earlier this year, decrying the lack of "tinkerability" of the iPad and similar closed devices. "There won't ever be a MacsBug for the iPad. There won't be a ResEdit, or a Copy ][+ sector editor, or an iPad Peeks & Pokes Chart."

One of the common refrains in the comments was that the iPad includes top-of- the-line support for a perfectly open, tinkerable platform: the web. Thus, the "HTML5 Peeks, Pokes and Pointers" chart was born.

Also, I just purchased a real live physical original Beagle Bros "Peeks, Pokes and Pointers" chart to hang up in my mancave^Woffice. Next to my Apple //es. Plural. So there's that.

</comment></comment></comment><comment><USER5> Fond memories of the Beagle Bros. poster that hung on the wall next to the Apple ][ 's in my high school's computer lab.

</comment><comment><USER6> Is this a chart of individual tests for "HTML5" feature support, so that you could start using them today (providing graceful degradation)? Why, yes it is.

Does it say so anywhere on the chart? Let me check…

</comment><comment><USER7> What I want to see is a drop-in JavaScript library that makes many of the new HTML5 elements, attributes, etc. backwards-compatible with all common browsers starting with IE6.

E.g., I want to say <input type="text" placeholder="What is your username?" /> and have a script that detects if the browser supports the placeholder attributes, and if not, simulates it transparently.

I'd happily understand/accept if this script was limited, so long as it had good clean documentation of what it supported (like placeholder).

<comment><USER8> Modernizr (<http://www.modernizr.com/>) is as close as you're going to get at the moment. It's pretty solid.

<comment><USER7> This is actually specifically NOT want I want:

"Modernizr does not add missing functionality to browsers; instead, it detects native availability of features and offers you a way to maintain a fine level of control over your site regardless of a browser's capabilities."

I understand that not all HTML5 features can be reproduced in JS, but for the ones that can (such as "placeholder"), I don't want to have to think about reimplementing it for older browsers when it could be done automatically.

</comment></comment></comment><comment><USER9> Everyone's so hyped up about HTML5. And yet I am slowly coming to the realization that the W3C has made a very, very, grave error in not going ahead with XHTML2.

<comment><USER9> HTML5 basically takes HTML4 and adds 3 tags: audio, video, canvas. These solve very specific issues, sound, movies, and drawing. HTML5 does not address some larger scoped problems related to HTML -- the biggest being that HTML sucks. It has always sucked, and it needs to go. It needs to be replaced with flexible, programmable XML.

<comment><USER10> There is much more to HTML5 (or to HTML4 for that matter) than three _elements_ (those are elements, not tags).

You can have your XML with XHTML or HTML5 XML serialization. Oh, but that does not solve the "flexible" part, right? Well, you have to choose there — either flexibility or interoparatibility. HTML5 focuses a lot on the latter.

What do you want? To have any arbitrary element in your markup? Ok, you get your <foobar>barbaz</foobar>. And then what? What should it mean to everyone else beside you? What do you gain by that?

<comment><USER9> "What do you want? To have any arbitrary element in your markup? Ok, you get your <foobar>barbaz</foobar>"

Yeah I want my own elements that do anything I want, and I'm working on a solution to it. And this project is what led me to the conclusion that beyond adding 3 tags HTML5 really doesn't address any of the bigger issues. I think it's really silly how much hype HTML5 is receiving when it's a patch job at best.

<comment><USER10> Well, the sooner you have your solution ready, the sooner you will understand that you were solving the wrong problem.

By the way some of the new elements in HTML5 (and there are not three but almost thirty new elements) are in fact supposed to save web developers from the need to invent theri own way to express some common semantics in HTML, e.g. section, artcile, nav, header, footer. There are alos a buch on new API, much richer inputs collection for forms, etc.</comment></comment></comment></comment></comment>


BBC Website is Down - <AUTHOR> https://twitter.com/anthonyrose/status/503600016108564481

<comment><USER2> It's good to flag "Foo Is Down" posts unless there's something especially interesting about Foo being down.

</comment><comment><USER3> For some background on that image: [https://en.wikipedia.org/wiki/Test_Card_F](https://en.wikipedia.org/wiki/Test_Card_F)

</comment><comment><USER4> Works here.

Why does everyone assume society is collapsing the momemnt a 500 error appears somewhere. Something just went "snap".</comment>


Vault 7 – Cherry Blossom - <AUTHOR> https://wikileaks.org/vault7/#Cherry%20Blossom <comment><USER2> Why this isn't on the front page of Hacker News is NOT a mystery. Whoever posted this first gave the story an awful headline! Now nobody can repost the story with a good headline because Hacker News' doesn't allow reposts... WTF?

<comment><AUTHOR> HN does allow reposts if there is a substantial time period between each listing. Not sure the exact time period, but I usually give it a few weeks before I can post it again.

[https://hn.algolia.com/?query=%23Cherry%2520Blossom&sort=byD...](https://hn.algolia.com/?query=%23Cherry%2520Blossom&sort=byDate&dateRange=all&type=story&storyText=false&prefix&page=0)</comment></comment>


Ask HN: How do you normally dispose of your unused domains? - <AUTHOR> I decided not to pursue my idea for Memeing.com and started a 7-day auction with no reserve at GoDaddy to raise urgently needed funds for a different project. However, I am now risking losing the domain for no real gain if not enough potential bidders see it.<p>How do you normally dispose of your unused domains? <comment><USER2> Mostly I just decide not to pay for em any more...</comment>


Application for Startup School NY - <AUTHOR>

Is anyone else getting a blank page after submitting the application to the startup school? I hope it was submitted, but no confirmation email, or at least some confirmation after submitting the application makes me a bit worried, as I would really like to go to the event. Thanks. <comment><USER2> You're in the system as having applied. But we'll look into why that might be happening. Thanks for the heads up.

<comment><AUTHOR> Awesome, thanks a lot. If it is of any help, I was using Chrome (Version 34.0.1847.116) on OS X Mavericks.

So now I just need to hope I get the invitation :)

</comment></comment><comment><USER3> I'm looking into this now. Sorry for the trouble!

Edit: Fixed!</comment>


Google hero to browse safely for kids - <AUTHOR> https://www.kisa.link/Maa6 <comment><USER2> And maybe tracking them</comment>


Twitter says they fixed the Memcache calcification problem. Dormando disagrees. - <AUTHOR> https://github.com/twitter/twemcache/issues/2 <comment><USER2> Just to clarify things since I helped write the initial blog post about twemcache... in our original post, we had an error regarding the slab calcification problem we mentioned, this problem ONLY applied to our v1.4.4 fork of memcached. After speaking with the upstream maintainers, we learned that recent memcached versions have addressed some of these problems. These are the type of conversations we want to have.

At the time we adopted memcached, that's the version we went with and made sure it worked well in our production environment as we scaled as a company. We also open sourced twemproxy [<https://github.com/twitter/twemproxy>] which is a lightweight proxy for memcached which has worked well for us in combination with twemcache and may work well for others too.

We just want to reiterate that twemcache has worked well for our unique environment and any teams evaluating memcached should try all their try all their options, just like any other piece of software you adopt in your stack.

One of the reasons of open sourcing our work was to share our ideas with the memcached community to see what worked well for us and help everyone. For example, this is also how we treat our work with our MySQL fork [<https://github.com/twitter/mysql>] which we maintain in the open and have signed an OCA with Oracle to help get work pushed upstream so everyone benefits in the long run.

</comment><comment><USER3> I enjoyed the jab at twitter's "we are the only website on the planet to have scaling issues" holier than thou attitude. Rails is still trying to get over the character assassination by twitter when they failed to scale it. I know first hand that rails can scale very well. Do bad carpenters blame their tools?

<comment><USER4> Twitter's attitude is laughable. Yes, you have a decent amount of traffic but you're also only dealing with ~160 uncompressed bytes (plus whatever overhead) per event. The hurdles you've overcame aren't that particularly amazing nor challenging.

<comment><USER5> What does content size matter? The challenge is that every single page of content except for each individual tweet is utterly unique for every user. That defeats the vast majority of straightforward caching implementations. You can't cache fully rendered pages ever because the chance that one random timeline view at a given time will be identical to any other view (even by the same person at a different time) is pretty much as close to zero as possible. Every view is dynamically generated content from up to several hundred or thousand different streams of data and needs to be put in order and have all of the per-user metadata set correctly.

Once you start looking into the actual mathematical constraints of the problem of twitter you realize that it's a scaling nightmare. Hundreds of millions of updates per day and tens of thousands of views _per second_ (billions per day). There's only a few people in the world who have the right to look down on stats like that.

<comment><USER6> Again, as the parent poster also posted, I think you have never worked on large data. Twitter is like a big mailbox, only that every mail only has 160 bytes. This has been solved 10 years ago.

<comment><USER5> If you treat twitter like a big mailbox, things will work "ok". It's not the worst approach ever, that's for certain. But end-user perceptible performance would be a fraction of what twitter has today.

P.S. How many images does twitter serve up per day at present? That's a tad more than 160 characters of data.

<comment><USER7> Another key difference is that email users generally contribute directly to their provider's infrastructure costs in providing email as a service. Email infrastructure (and the user experience) is fragmented, and global funding generally scales with global load.

Instead twitter must monetize via advertising of some form, and so the percentage of folks who do not respond to ads acts as a really strong factor in your cost calculations. In this sense, email software has it easy, and can be extremely wasteful in the resources it consumes.

It's not just that the availability expectations of twitter are higher than email, it's also that the economic base of the infrastructure is far more sparse.

<comment><USER5> And yet another key difference is that there are few email server installations that support half a billion users. Saying that the scaling problem is "solved" because all you have to do is copy, say, gmail, is kind of silly.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> tl;dr your memcache branch fragments my consulting clients, you should use my memcache branch instead

</comment><comment><USER9> Apparently another Twitter engineer says it's doing 23M/s

"23 million queries per second with zero fucks given"

<https://twitter.com/timtrueman/status/222793786345013248>

</comment><comment><USER10> That response from manjuraj was kind of evil

<comment><USER11> Has open source changed? I remember when people didn't fork projects, rebadge them as there own and then promote them over the original.

Now don't get me wrong, I think its amazing that Twitter are opening up these enhancements to the community, but it feels like a kick in the teeth to the memcached folks to slap a twitter badge on it, why isn't this a collaboration that benefits the whole community? you know, like open source used to work.

I know at 34 I'm a dinosaur in this industry but I do try to keep up with the new way of doing things... This just feels wrong to me.

<comment><USER2> I think open source has changed a bit with the rise of the GitHub era. IMHO, I think @mikeal did a good post regarding this change "Apache considered harmful" [http://www.mikealrogers.com/posts/apache-considered- harmful....](http://www.mikealrogers.com/posts/apache-considered-harmful.html)

Even in the old days, it's easier to fork than work with upstream. I think these days it's just easier share those forks with services like GitHub. It should help spread ideas and improved solutions IMHO so downstream consumers actually benefit.

In Twitter's case, they are planning to do what works for them at the moment: "While we initially focused on the challenging goal of making Memcached work extremely well within the Twitter infrastructure, we look forward to sharing our code and ideas with the Memcached community in the long term."</comment></comment></comment>


TinyCmd - the command string shortening service - <AUTHOR> http://tinycmd.org/

<comment><USER2> Convenient but also _very_ dangerous from a security perspective.</comment>


Does Microsoft Forces Updates/Throttling Your PC? - <AUTHOR> Does anyone else noticed that when you disable "Windows Update" (I'm using Windows 10) few days later this thing is "Running" again? If your laptop's fan is working like crazy without any apparent reason, go to Computer Management and disable the "Windows Update" option. Few days later, week tops, this will be back on... Previously after I disabled that option, it stayed like that until I decided to update my system and turn it back on. This looks like famous Apple throttling case... <comment><USER2> i've never had this issue on any Windows 10 Pro machine. If i disable the Group Policy for updates and all that it never resets itself.</comment>


People's Bank of China started advanced testing of digital currency - <AUTHOR> https://www.forbes.com/sites/biserdimitrov/2020/04/16/these-chinese-blockchain-platforms-are-launching-soon-here-is-why/ <comment><AUTHOR> It is mentioned in the article that the digital currency supports offline transactions. How can this be done with blockchain, which required up-to-date information to validate transactions?

<comment><USER2> One way to implement it would be to defer validation until nodes come back online, and if double-spending is detected at that point, well, that's fraud and it comes with cryptographic proof of guilt. The rest can be handled by the legal system.</comment></comment>


Soda cans and satellites - bmir-alum-007 http://www.ballaerospace.com/

<comment> bmir-alum-007 The primary corp site [http://www.ball.com](http://www.ball.com) is currently down. [https://web.archive.org/web/20150721173555/http://www.ball.c...](https://web.archive.org/web/20150721173555/http://www.ball.com/)</comment>


Questions for Telecom Engineers/techs - <AUTHOR> For all of the telecom engineers and techs out there; do any of you currently work as an independent contractor? If the answer is no, do you have the time or bandwidth (no pun intended) to potentially take on work as an independent contractor?<p>I am building out talent pools of independent contractors on WorkMarket.com for a few of my customers and if you answered yes, I would like to brainstorm with you further on what the talent pools will look like and how we can get you more work. My initial idea is that the talent pools will be broken down by technology generation, OEM, region, and type of work. Open to other ideas and feedback as well. <comment><USER2> I am currently working as independent contractor for a telecom related project and I am interesting in your idea. Can you give more details of the projects and technologies your customers will need help?

<comment><AUTHOR> Thanks for the comment. The projects will be spanning wireless network decomissioning and maintenance projects for 3G sites nation wide. Other projects will be wireline networks needing rack and stack, patch panel repair, swapping out of PBX phones for IP phones, and data center consolidations.</comment></comment>


Superpowers the extensible, collaborative HTML5 2D+3D game maker - <AUTHOR> http://sparklinlabs.com/

<comment><USER2> Hey, thanks for submitting our (upcoming) tool. I'm 1/3rd of the team behind Superpowers, some of you might recognize me from CraftStudio. If you have any technical questions or otherwise, I'll be happy to answer :)

The devlog on TIGSource is worth checking out, too: [http://forums.tigsource.com/index.php?topic=46317](http://forums.tigsource.com/index.php?topic=46317)</comment>