It's Time For a Hard Bitcoin Fork - <AUTHOR> http://hackingdistributed.com/2014/06/13/time-for-a-hard-bitcoin-fork/ <comment><USER2> The article makes a pretty interesting point: Bitcoin's version of proof of work can be delegated, which makes mining pools possible. An alternative design could ensure that the task to solve is designed so that miners and pool could not trust each other, thus ensuring that pools do not exist.

It seems like this is a pretty big flaw in how Bitcoin is designed, as its security relies on miners remaining independent.

<comment><USER3> It's pretty easy to break delegation, but the cure is worse than the illness— to reduce mining variance there you must use hosted mining, where miners have even less control (absent more fixes…). GHash.IO is substantially hosted mining in any case.

Really the more important point to note is that pooling for variance reduction has absolutely nothing to do with delegating control. Running a outbound only bitcoin full node, past initial syncup uses less than 20kbit/sec bandwith and a fraction of a percent of cpu... it's not costly to do, purposefully so.

It's perfectly possible to individually run your own consensus decisions but agree with others to, in a provable way, pool your payments. This is what P2Pool does.

Unfortunately many Bitcoin miners don't have a rigorous mathematical understanding of how mining works— they erroneously believe it to be a race where the fastest wins disproportionally— something entirely untrue (absent some proposed attacks which are not happening in practice)... just keeping yourself from getting scammed by the many scammy hardware companies is basically a full time job itself. Then you have various technically unsophisticated Bitcoin pundits claiming that hashpower consolidations in pools isn't something to worry about... not a great mix.

Fortunately, the reasons for the current behavior are mostly inertia— if P2Pool had been invented first the symmetry would have broken differently. It's still possible that there might be a massive swing (say if GHash.io decides to steal a bunch of coins from their miners and makes a runner).

<comment><USER4> >to reduce mining variance there you must use hosted mining

Why should people [miners] be able to reduce variance at all? That's not a necessary feature of the system, and it doesn't seem like a goal worth pursuing. Security is paramount; mining variance is "first-world-problems".

>say if GHash.io decides to steal a bunch of coins from their miners

It seems far more likely that GHash would try to be sneaky about theft, rather than overt. This would allow them to keep getting away with it (that "long term revenue stream").

I know this sounds sort of unlikely, but consider e.g. GHash functionality to identify and subtly interfere with the operation of automated tools (e.g. ZeroCoin) that make lots of bitcoin transactions. The less likely that human eyes will see a transaction, the easier it will probably be to subvert.

<comment><USER5> Reducing variance of a return allows the entry of smaller-scale and more risk- averse participants into the market.

</comment></comment></comment></comment><comment><USER6> This is the same panic-prone author (@el33th4xor) who, in early November 2013 with Bitcoin at about $220, wrote "@el33th4xor: You heard it here first: now is a good time to sell your Bitcoins" ([https://twitter.com/el33th4xor/status/397219415025934336](https://twitter.com/el33th4xor/status/397219415025934336))

This was just before releasing some research that he thought would cause a confidence collapse. (That is, his prediction was almost self-consciously attempting market-manipulation.) In fact, the paper just formalized some concerns discussed in the mining community for years.

So then, rather than collapsing, Bitcoin went on an epic rally, and hasn't been below $339 since the same week of that doomsaying prediction.

There is certainly danger in one entity controlling 51% of the hashing power. But everyone's known this risk, as one of the design assumptions of the system, from the beginning... and also seen the tipping point approach/recede/approach repeatedly. And also, the "Bitcoin lunatic fringe", who this author mocks, has so far been right about the pool(s) attaining such power refraining from taking destructive (and self-bankrupting) next steps.

So: focused concern, yes. But @el33th4xor-style panic, no.

Further, any 'hard fork' (or forks) that were to remedy pool issues, using the "well-known" techniques referenced, would almost certainly retain some continuity with prior key balances. That is: imagine the most destructive transition possible. A total civil war between mining pools. Irreconcilable dissension in the core team (or offshoots thereof). Collapse of the Bitcoin price to values of 1-2 years ago. Still, at the end of that process, there are one or more "offshoot" chains, adopting the Bitcoin history as their own, patched and stronger than before, with pre-crisis Bitcoin balances intact.

(That is: a 51% cartel may not be actually "good" news... but it is survivable and perhaps even necessary.)

So if you like to try to trade in and out of predicted market panics, like @el33th4xor, maybe there are some trading plays here. But if you just like cryptocurrency for the long haul, keep your Bitcoin private keys (end eyes) safe & dry, and trust evolution. There are enough smart, well-funded, and relatively cool heads involved that @el33th4xor's predictions are just a car alarm going off in the night, whether the car is actually at risk or not.

<comment> emin-gun-sirer Nice ad hominems you've got there.

>In fact, the paper just formalized some concerns discussed in the mining community for years.

This is false. Discussed here: [http://hackingdistributed.com/2013/11/09/no- you-dint/](http://hackingdistributed.com/2013/11/09/no-you-dint/)

>the "Bitcoin lunatic fringe" this author mocks has been right about the pool(s) having such power refraining from destructive (and self-bankrupting) next steps.

No. The Bitcoin lunatic fringe was adamant that no pool would willingly cross the 50% boundary.

That just happened. Models and reasoning based on "no rational miner would do X" are clearly flawed, partly because the miners may not be rational, or partly because they are rational within a time-frame not modeled. In any case, people who reasoned like you have now been shown conclusively to have the model wrong.

This is an opportunity to fix the protocol, not shill for the price, and certainly not to engage in ad hominems.

Cheers.

<comment><USER6> I think your track record of alarmism and disrespect to non-academics is relevant, but even if you classify it 'ad hominem', you've earned it with your own prolific slurs of critics.

I've addressed your continued "no-you-dint" willful-blindness about earlier analysis elsewhere... including on your own blog at ([http://hackingdistributed.com/2013/11/14/response-to- feedbac...](http://hackingdistributed.com/2013/11/14/response-to-feedback-on- selfish-mining/?utm_source=disqus-dashboard#comment-1125375004)). You failed to discover (and thus footnote) prior community work, from years earlier, that did everything except for your more-rigorous boundary formalizations. So again, nice write-up, but exaggerated novelty. The interested can follow the links and decide for themselves.

I'm sure _someone_ said no pool would ever even try to get 51%. Others simply said a pool in such a position wouldn't self-destruct the entire ecosystem, against their own interests. (Instead, they behave like the 'stationary bandit' of Mancur Olson's political-economy. Not ideal, and not what Bitcoin intended, and worthy of attempted-fixes... but also not an instant and unsurvivable crisis.) It's this latter prediction, of stability even in the presence of explicit (or secret) 51% cartels, that is still, so far, outperforming your own. For now they have the same claim to "I told you so!" as you do.

<comment> emin-gun-sirer To the contrary, we've been far more respectful and accommodating to the Bitcoin fringe than merited, and certainly far more than the other way around. After all, we took a fair amount of abuse for simply pointing out an objective weakness that is part of the protocol. This, despite the fact that we proposed a fix for it.

Perhaps you've not read our final paper. It doesn't just footnote, but actually cites the prior discussion.

And anyone who reads the previous discussion can see that our paper:

* shows a more extensive attack than the one described there, one that works,

* performs a full analysis of the revenue to be obtained from that attack, and characterizes that revenue as a function of attacking pool size and attacking pool's ability to control information flow in the network,

* shows that Bitcoin is not incentive-compatible,

* shows that, even under the best of circumstances (i.e. the attacker has terrible network connectivity, no Sybils, no control over information propagation and loses to the honest miners every single time), defending against the attacker requires at least 2/3rds of the network to be honest.

Perhaps the biggest giveaway that we did something differently is that THE BITCOIN TALK FORUMS CONCLUDED THAT THEIR ATTACK WOULD NOT WORK, WHEREAS WE SHOWED THAT OURS WOULD.

You're making things up when you imply that we're claiming that 51% is an "unsurvivable crisis." To the contrary, the article very clearly says that the Bitcoin economy remains unaffected, and that the Bitcoin price is also unaffected.

We have been trying to improve the Bitcoin system since day 1. I realize that you're part of the original brigade, and that also explains your ad hominems here. I urge you to elevate the discussion.

<comment><USER6> It's nice to hear that in your final paper you acknowledge the earlier discussions. You should link that final version from your author homepages. (The latest versions linked from you and your coauthors' pages, at arXiv [1] and Cornell [2], still have no mention of the earlier discussion.) If the FC14 version [3] is final, it's better, but I still think you're unfairly summarizing the key thread [4].

Every key aspect of selfish strategy is described there, from manipulating 'gamma' via network-tricks, to releasing the minimum number of 'secret' blocks, after each external-block, to maximize the cartel's expected return. ByteCoin's simulations show advantages, and breakeven thresholds with regard to 'override success' ('gamma'), very similar to your paper's calculations. That's why I credit your paper for rigorously describing the situation, under your specific assumptions, but _not_ with the discovery of a previously- unknown less-than-51% attack.

Also, your final paper is simply lying when it says the thread "does not suggest a solution to the problem". It's almost as if your disdain of these 'fringe' Bitcoin fanatics has blinded you to the actual words of the thread.

Two commenters in the December 2010 thread (btchris and RHorning) suggest that preferencing accurate-seeming timestamps can disadvantage cartel-delayed blocks. That countermeasure is likely stronger than your paper's proposed random-choice-between-ties. (Randomization, by pushing gamma to 1/2, could make things worse if, on the real network, the effective gamma for late- releasers was already closer to 0. Preferring realistic timestamps, meanwhile, almost always helps 'honest' blocks, which don't have to guess a future time when they'll be released.)

Note that the last bullet of supposed novelty in your paper – "defending against the attacker requires at least 2/3rds of the network to be honest" – is the _exact same best-case threshold_ as reported by ByteCoin in thread message #36, 2010-12-14. He states: "a cartel with no preferential network access can be profitable with 33% of the generating power"[5]. Same result, 3 years earlier. How can you allege ByteCoin was simulating some other strategy? Wouldn't the _slightest_ difference in block-release-rules result in a different best-case threshold?

Finally, the Bitcoin Talk forums hadn't "CONCLUDED" anything. They're not a deliberative body. Some people were convinced, others weren't. The relevant actors – mining insiders – knew what they needed to know, to either try the attack, or detect it in orphan rates and weird timestamps... and to try countermeasures based on disadvantaging cartel blocks if ever necessary. Meni Rosenfeld also referred back to the matter as a known concern, in an answer on the Bitcoin StackExchange, in October 2011 [6]. So he knew it was an issue, and lots of people trust him about mining matters.

There's no "brigade" out to trash you led by some "failed academic" "Singaporean" "ringleader". Your critics are not the heads of some unified hydra, that you can disregard altogether as the "Bitcoin lunatic fringe" based on a few quotes from particular yahoos. You've made specific claims of novelty, or doom, that were either never true, or disproven by later events. These will be pointed out when you claim to enjoy a "we told you so" record of authoritative insights.

[1] [http://arxiv.org/pdf/1311.0243v5.pdf](http://arxiv.org/pdf/1311.0243v5.pdf)

[2] [http://www.cs.cornell.edu/~ie53/publications/btcProcArXiv.pd...](http://www.cs.cornell.edu/~ie53/publications/btcProcArXiv.pdf)

[3] [http://fc14.ifca.ai/papers/fc14_submission_82.pdf](http://fc14.ifca.ai/papers/fc14_submission_82.pdf)

[4] [https://bitcointalk.org/index.php?topic=2227.0;all](https://bitcointalk.org/index.php?topic=2227.0;all)

[5] [https://bitcointalk.org/index.php?topic=2227.msg30138#msg301...](https://bitcointalk.org/index.php?topic=2227.msg30138#msg30138)

[6] [http://bitcoin.stackexchange.com/questions/1475/can- someone-...](http://bitcoin.stackexchange.com/questions/1475/can-someone- with-51-computing-power-earn-more-than-he-deserves/1601#1601)

</comment></comment></comment></comment></comment><comment><USER7> If you really want to scare some people you should point out that this is happening as we get ready for the US Marshal BTC auction, and could be related. I would be very reluctant to put 1.5M into BTC right now.

</comment><comment><USER8> Like IPv4, the "experiment" has grown so large that it may be impossible to get consensus on any non-backwards-compatible change.

<comment><USER9> I'm not sure this is true, regardless of how large Bitcoin grows to be. If a significant enough problem were discovered, wouldn't it be in everyone's best interest to protect the value of their wallets by accepting a forked blockchain?

<comment><USER10> Wouldn't GHash be able to pivot their existing mining power to take 51% of that new blockchain?

<comment><USER11> Yes, the extrapolation being missed by the article, is that the rich will control bitcoin, and nothing can ever stop that from happening. It goes to the very core of how bitcoin is designed that allows for it to be dominated by a large rich entity with enough processing power. Inherently the 'little guy' will be priced out of bitcoin, it was always going to be that way. Whether it's one or ten entities in question doesn't matter, bitcoin will be dominated by rich, powerful companies or persons, and that powerful position will only increase in fortification with time.

This principle pops the utopian fantasy of bitcoin that some cling to, but only a different approach to digital currencies will get you around the issue.

Money & power always consolidates down to the hands of a few that will possess dramatic influence compared to the rest of the market participants. See: JP Morgan, pre-Fed.

<comment><USER8> _the rich will control bitcoin, and nothing can ever stop that from happening._

But should the rich have control in proportion to their richness or out of proportion to it? That's the key issue that I see behind this article (and the previous selfish mining work).

</comment></comment></comment></comment></comment><comment><USER12> I was under the impression that the mining percentage would give you the same percentage chance to cook the books. 51% means you are more likely to succeed than fail in an attempt. Much like buying 51 percent of lottery tickets gives you a slightly better than even chance of winning the big prize.

in that respect, wouldn't 51% be only marginally different to 49%. Both would be a bit of a concern, but neither would be the "position to exercise complete control over which transactions appear on the blockchain" that this article refers to.

Is there some mechanism I'm missing that makes 51% be vastly more powerful than 49%?

<comment><USER13> From the bitcoin wiki:

An attacker that controls more than 50% of the network's computing power can, for the time that he is in control, exclude and modify the ordering of transactions. This allows him to:

        Reverse transactions that he sends while he's in control. This has the potential to double-spend transactions that previously had already been seen in the block chain.
        Prevent some or all transactions from gaining any confirmations
        Prevent some or all other miners from mining any valid blocks

The attacker can't:

        Reverse other people's transactions
        Prevent transactions from being sent at all (they'll show as 0/unconfirmed)
        Change the number of coins generated per block
        Create coins out of thin air
        Send coins that never belonged to him

<comment><USER14> You could theoretically mine your own chain from the genesis block right?

<comment><USER8> That won't work due to checkpoints and even if it did work it would be the equivalent of nuking the entire Bitcoin ecosystem.

It would be more profitable to do something like extending the current blockchain but charge 1% transaction fees.

<comment><USER14> Interesting. For the benefit of others unfamiliar with this.

There is a hardcoded list of checkpoint blocks in the Bitcoin client. Any new chain starting before the last checkpoint will be rejected.

[https://bitcoin.stackexchange.com/questions/1061/can-a-51-at...](https://bitcoin.stackexchange.com/questions/1061/can-a-51-attack- be-detected-and-dealt-with/1065#1065) [https://bitcoin.stackexchange.com/questions/3114/which- block...](https://bitcoin.stackexchange.com/questions/3114/which-blocks-get- to-be-checkpoints)

<comment><USER15> So in other words if a 51% attack were to mine starting before a checkpoint block, it would end up "just" hard-forking Bitcoin.

</comment></comment></comment></comment></comment></comment><comment><USER16> And down it goes again: [https://bitcoinity.org/markets](https://bitcoinity.org/markets)

In the previous crisis it was all based on trust ("it was just a bad player, trust will return to the market"). Now we've a doomsday scenario and what seems a serious flaw in Bitcoin.

Feels like a chapter out of The Foundation books.

<comment><USER17> or it's because the silk road bitcoins being auctioned

<comment><USER18> Or a combination of both factors.

Relatively speaking, this is a pretty small dip, though.

</comment></comment></comment><comment><USER19> A hash pool at 51% is big news. If this isn't corrected soon, BTC is doomed to fail.

<comment><USER13> You're assuming that someone with a significant investment in the space would act dishonestly. That's the only reason BTC fails as the result of something like this. Seem like MAD to me, if they were to act dishonestly they would destroy their own investment and profit potential.

<comment><USER19> Then why are you using BTC in the first place? The US Fed and US Government has no reason to act dishonestly. The value of the dollar relies on us trusting the US Government / US Fed to protect it.

If switching over to BTC means "trusting GHash.io"... then nothing has changed.

<comment><USER20> The difference is that if GHash.io launches an attack, miners have the choice to move to another pool. If the US government inflates the currency (yet again) there is nothing to do.

<comment><USER19> If GHash.io launches a "no one else can mine" attack, then there won't be any other pools to move to.

[https://en.bitcoin.it/wiki/Weaknesses#Attacker_has_a_lot_of_...](https://en.bitcoin.it/wiki/Weaknesses#Attacker_has_a_lot_of_computing_power) * Prevent some or all other miners from mining any valid blocks

<comment><USER21> Unless we hard fork...

</comment></comment></comment></comment></comment></comment><comment><USER22> You can't stop pool mining, even with a hard fork.

Let's say you implement a restriction like "5 blocks in a row max for a given pool". GHash can split into GhashA and GhashB, and keep going.

<comment> emin-gun-sirer That's not the kind of restriction that stops pool mining. The trick is to enable the pool members to steal the blocks they discover. Andrew Miller, a grad student at UMD, has an ingenious scheme for doing this. I am pretty sure I put the link in the article, under the first bullet in the "What to Do Now" section.

<comment><USER23> Wouldn't pool participants that use this extension to steal rewards be exposed to the pool simply due to their work being consistently challenged and thus lost?

i.e: The pool would notice that certain participants contributions are conflicting with other discoveries, and ban such participants?

<comment> Tuna-Fish > The pool would notice that certain participants contributions are > conflicting with other discoveries, and ban such participants?

How? Or, you ban me, I sign up again under a different alias.

<comment><USER24> The pool can use a 2% fee for old accounts and a 20% fee for new accounts (for example, with less than 1 month or less than 10^x hashes calculated.)

<comment> Tuna-Fish Fees cost almost nothing to hostile miners. With a 20% fee, they get 100% of their hashrate through the theft, and 80% from the pool. So long as you pay anything at all to new miners doing this attack is beneficial.

</comment></comment></comment></comment></comment></comment><comment><USER25> A hard fork would be just as devastating as a 51% attack. The author is way over-reacting here. In fact, it looks like GHash is down to 45% and dropping — BitFury just left, and Petamine is considering leaving too: [http://www.coindesk.com/bitfury-pulls-power-ghash- community-...](http://www.coindesk.com/bitfury-pulls-power-ghash-community- uproar/)

<comment><USER26> Why do BitFury and Petamine use a pool at all? At their scale, wouldn't they have low enough variance through solo mining? Or perhaps P2Pool?

</comment></comment><comment><USER27> Another solution: assuming as the article claims that GHash grew to it's current size because it had 0% fees. Other pools can respond by lowering their fees or introduce negative ones. I.e. they pay miners to join the pool. Or have fees but introduce a lottery system that randomly overpays members.

</comment><comment><USER28> IANABME[1], but it seems that a solution already exists to this problem, which is to use a decentralized mining pool. The unfortunate fact is that we're in a time window right now where large miners have not yet transitioned to this ideal solution.

However, any miner in the long run would prefer to join a mining pool that does not require trusting some pool operator over one that does, all other things being equal.

Yes, the current situation is dangerous for the health of bitcoin, but I don't see any solution besides waiting for distributed, trustless pool technology to catch up in terms of usability with the centralized pools.

This problem isn't going to be solved by a hard fork, as any "fixes" done this way are untested, incomplete, and risky.

[1] I am not a bitcoin mining expert

<comment><USER8> As long as large centralized pools charge no fees and use less bandwidth than p2pool, people will have no incentive to adopt p2pool.

<comment><USER28> Presumably large pools aren't charities, so the lack of fees can remain indefinitely.

Bandwidth is certainly a problem though... are there any good numbers on the bandwidth difference?

</comment></comment></comment><comment><USER29> Their Bitcoin is broken argument doesn't really seem to work. I agree that something needs to be done to stop huge amounts of pooling but this seems to be too alarmist. The initial Bitcoin is Broken post is at [http://hackingdistributed.com/2013/11/04/bitcoin-is- broken/](http://hackingdistributed.com/2013/11/04/bitcoin-is-broken/) and a counterpoint is at [https://freedom-to-tinker.com/blog/felten/bitcoin-isnt-so- br...](https://freedom-to-tinker.com/blog/felten/bitcoin-isnt-so-broken-after- all/) .

<comment><USER30> The argument in that counterpoint seems to be as follows:

1\. Assume that selfish mining doesn't work.

2\. Because selfish mining doesn't work there will be fair weather miners who will only mine on whichever chain is furthest ahead, defaulting to the public chain in the case of a tie.

3\. Since the selfish mining pool won't be ahead all the time nobody will mine for it.

4\. Therefore selfish mining doesn't work.

It's not what I'd term a strong rebuttal.

<comment><USER29> I think that the "selfish mining" in your first point isn't truly selfish mining. The idea is that the particular method of selfish mining being discussed would be defeated by a truly selfish mining method. No matter what you want to act selfishly and the debate is whether or not their is an optimal selfish strategy that is bad for the overall bitcoin infrastructure. Since little to no incentive exists to stick with a mining pool that is selfishly mining it is my understanding that that the attack using a mining pool mentioned in the previous post will not work well.

<comment><USER30> That's a valid point, but not at all what I got out of the argument. I picked up primarily on the specific counter-strategy.

It's certainly true that selfish mining strategy A which gave a 5% increase in results would lose out to another selfish mining strategy B which gave 10% increases in results. However that's not an argument that strategy A doesn't break the system, merely that the optimal selfish strategy breaks the system at least badly as strategy A.

Now it is possible that there isn't a stable strategy to use. If we supposed for the purposes of argument that the fair weather strategy was more profitable than the selfish strategy described in the first article you posted, then it would seem that the optimal strategy would oscillate. As more people participate in a selfish pool consistently the more profitable it is to be a fair weather miner. However, supposing that leads to a dissolution of the selfish pool all those fair weather miners turn honest. Against honest miners, however, the selfish strategy is proven to be more profitable. And so you'd see an oscillation where people constantly shift between being honest, selfish and fair weather.

Of course, if the long run gains keeping up on this strategy treadmill is less than simply sticking to the selfish strategy through thick and thin, then perhaps the fair weather strategy isn't better in reality.

</comment></comment></comment></comment><comment><USER31> Is a "hard fork" really necessary? BTC miners can all just adopt a new version. What's concerning is that the 51% attack has been known since the beginning and the community never addressed it and seemed to irrationally dismiss it. The current response is that GHash is removing processing power, but how is that a good long-term solution? The BTC community should be demanding and supporting technical fixes.

Also it's too bad that BTC is blinding everyone to a variety of other crypto- currencies that have improved features.

<comment><USER18> The so-called 51% problem will be inherent in any truly decentralized P2P network. All P2P protocols suffer the risk of poisoning by malicious nodes in various different ways, and they mitigate it by assuming that proportionally, most nodes will be good.

There will not be a way of "patching" the issue. The only thing that can be done is to set up a proper emergency handling procedure in the event a 51% attack is conducted, which involves directing as many clients as possible to work on a new fork.

</comment></comment><comment><USER32> This article feels sensational, but I would say accurately reflects a large portion of the communities feelings.

Great accompaniment is from Peter Todd (Coinkite adviser, respected dev) who announced this AM he is selling 50% of his holdings in bitcoin until this is resolved

[http://www.reddit.com/r/Bitcoin/comments/281ftd/why_i_just_s...](http://www.reddit.com/r/Bitcoin/comments/281ftd/why_i_just_sold_50_of_my_bitcoins_ghashio/)

<comment><USER33> This article would be decent if they ditched the hyperbole. Like it or not, this is not Armageddon for Bitcoin - the network is still functioning as intended.

<comment><USER34> > the network is still functioning as intended.

"as intended" reminds me of this koan from the codeless code[1]. [1][http://thecodelesscode.com/case/135](http://thecodelesscode.com/case/135)

</comment></comment></comment><comment><USER35> Can't bitcoin simply require agreement from more than one author of a blockchain? For example do not allow the same entity to sign the blockchain for two consecutive blocks. This would require defining what constitutes a single entity though. How do we define it when talking about mining pools? Can't we have alliances of pools already have reached 51% long ago and colluded "as one strategy"?

</comment><comment><USER36> In less sensational terms: The biggest pool got too big. Members (BitFury) react by shrinking it back. Community is aware of the problem, solution will probably be coming soon.

Anyway, stay tuned and don't miss the next iteration of 'We are all doomed!!1' by the two muppet academics. To be published shortly after a solution gets deployed. Or earlier.

</comment><comment><USER37> They don't have 51% anymore, although I think their other concerns are valid:

[http://www.coindesk.com/bitfury-pulls-power-ghash- community-...](http://www.coindesk.com/bitfury-pulls-power-ghash-community- uproar/) [https://blockchain.info/pools](https://blockchain.info/pools)

</comment><comment><USER38> Proof of work can't be decentralized because it has almost infinite economies of scale - starting from the production of asics, and ending at mining farm cooling. It doesn't matter what you change, at the end, you're going to be left with one mining farm.

</comment><comment><USER39> >GHash [...] just reached 51% of total network mining power today.

Is this official? Seems somewhat surreal...

Not really invested in this but at the very least I'd expect some posts along the lines of "Pool X is fast approaching 50%...BTC in danger". Not "51%...game over".

<comment><USER40> A couple days back they were at 48% or 49%. It's not that big a surprise.

</comment></comment><comment><USER41> FYI, GHash.io is a Ukrainian company. As you know, the country is a mess now and there's an ongoing civil war. Just sayin'! (See, I didn't even mention that most black hat hackers come from that part of World.)

<comment><USER42> The idea that most black hat hackers come from that part of the world is quite interesting. Would you expand on it?

<comment><USER41> Just stats. We know those fine computer scientists control most of the botnets, for example.

<comment><USER42> Hmm, would you link to any stats?

<comment><USER41> You can ignore what I wrote or prove me wrong by providing links. I honestly have better things to do on Friday night.

<comment><USER42> ... What? How did me being curious lead to that?

<comment><USER18> He probably took it as you questioning his claim as he provided no real evidence.

As someone who works in the information security industry, I can confirm from personal experience that a very disproportionate amount of organized and semi- organized cybercrime comes from Ukraine, Russia, and neighboring countries. I, however, do not have any sources for you at thistime.

<comment><USER42> Thanks! I'm just curious about the field.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER43> Why would GHash _ever_ want to attack the platform from which it profits and from which it will likely continue to profit, as a leading transaction processor, for many years to come? Should they be silly enough to attempt something nefarious, miners would quickly abandon them, and their business would _collapse_ overnight.

Every major participant in the Bitcoin network, including GHash, has a vested interest in maintaining the network's integrity. Not only that: given Bitcoin's increased mainstream acceptance, it's in the best interest of every major participant to maintain a good reputation.

<comment><USER44> Makes logical sense, unfortunately we've seen examples in the past of this logic not being adhered to. Take the poker site "Ultimate Bet", when cheating was suspected the line of reasoning against it (and the strongest line of reasoning at that)was "Why would they cheat when they are running a million dollar profitable business and jeopardise the entire operation for a bit more %?" Turns out they were willing to jeopardise it all.

<comment><USER45> In the case of Ultimate Bet it turned out that it was an inside job, but the individuals involved didn't necessarily share in the long term profits of the company, so they were able to benefit personally to the tune of millions, while most of the negative effects landed on the company rather than themselves.

Thankfully in at least two other poker companies (hint: the largest one and its sister company) it was made impossible to see someone's hole cards before the hand is over, which is what allowed the cheaters at Ultimate Bet to perpetrate their con.

It's my pretty firm belief that when it seems like an entity is throwing away a pretty obvious economic self-interest, there's probably just a misunderstanding of where the economic self interest lies in the parties involved.

</comment></comment></comment><comment><USER46> Rather than a fork, wouldn't an alternate, easier approach be to form more pools that charge no fees?

</comment><comment><USER47> Take a deep breath. Stop hyperventilating. Bitcoin has died a violent, crashy, gory death dozens of times at this point.

It's in Bitcoin community's, and GHash's, economic interest that no miner exceeds 50%. That's all you need to know to know that this is just another exasperated hand-wringer proclaiming the premature death of BitCoin.

BitCoin, RIP 2008 - 2009, 2010, 2011, 2012, 2013, 2014, ?

<comment><USER48> >It's in Bitcoin community's, and GHash's, economic interest that no miner exceeds 50%.

Are Bitcoin community's interests and individual miners' interests aligned? I understand why the bitcoin community wouldn't want a mining pool with more than 50% of the share, but why should "selfish" individual miners care?

<comment><USER47> If the blockchain is dominated by a single interest, and that player starts abusing their market position, BitCoin's exchange rate will plummet and the economic interest in question will lose millions. So yes, it is in the community's interest and individual miners' interest to keep the hashrate distributed enough to prevent that from happening.

What happens when people lose faith in the system? The 2008 financial crisis, the great depression, etc....

Nobody wins if the entire system breaks down.

<comment><USER49> This reasoning is based on the assumption that a 51% player must also be long on Bitcoin, and that they interpret the nature and value of the Bitcoin market in a similar manner to most members of the Bitcoin community.

In other words, assuming that they don't know anything you don't. Considering we're talking about an entity that's managed to become a 51%er, that assumption sounds downright Pollyannaish to me. The same line of reasoning also supposedly implies that nobody should want to get even close to this point. Counterfactually, as it turns out.

That said, I can see the attraction of that line of reasoning, too. When you've got a tiger by the tail, it probably is best not to contemplate too carefully what's at the other end.

<comment><USER50> When they bought the mining machines they were entering bitcoin as long weren't they?

They can't even sell their future winnings as they don't have them yet, so they are really long!

<comment><USER51> Well, they aren't long _bitcoin_ from buying mining rigs, they are long _bitcoin call options_ denominated in energy. If the return seems likely to be too low, as eventually it must be when (if things continue) people make more efficient rigs, then it would eventually be in their interest to let the longer term options expire. It is totally conceivable that taking a huge short position and scaring everyone off of btc could mean more profit than the could be mined out of those rigs. Of course, you would need someone to take the other side of that bet, in a setting with sufficiently little counterparty risk that you can collect (which typically means a more regulated setting) and a sufficiently lax regulatory environment that you aren't likely to be accused of some illegal type of market manipulation. That said, people do seem to overlook such details... and this all only seems unlikely to very unlikely, not impossibly or absudly unlikely.

<comment><USER47> In other words, the stars would have to align in order for this to occur.

I don't really know what GHash knows, but I can tell you that GHash's hashrate has dipped well below 50% only a day later, as it did when this happened before.

<comment><USER51> The stars would have to align for it to be genuinely a good idea. Which... well... stars align, sometimes. Moreover, people make mistakes and _think_ stars have aligned.

The threat here is that a single group has the capability to produce 51% of the hashes, possibly reliably (we can't know whether scaling back was deliberate or happenstance). It doesn't matter whether they are persistently using that capability.

<comment><USER49> Perhaps the deeper threat here is the rate at which the goalpost is moving.

It's strange, this situation where in there are all these things that would be seriously problematic were they to happen, unless of course they actually happen, in which case they're not actually a problem at all.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER28> ELI5:

Miners join in pools to mine bitcoins to even out their earnings. It's a way to diversify their risk.

Unfortunately, bigger pools let you diversify the best, and this is currently undermining the core tenet of bitcoin, which is to avoid having any one person with central control over the network.

The linked article is suggesting modifying the core software for bitcoin in order to discourage this kind of centralization. Other people, however, think the core software is fine, and that the solution is to instead improve "decentralized mining pool" technology to get rid of the problem.

<comment><USER14> >bigger pools let you diversify the best

According to the article the big draw is that GHash don't have a fee.</comment></comment>


Pivoting from conventional search to search-as-you-type: Our story with Mozilla - <AUTHOR> https://www.0x65.dev/blog/2019-12-11/the-pivot-that-excited-mozilla-and-google.html <comment><USER2> I think this blog post could use more context in the first paragraph. I was pretty confused until I completely read it and then skimmed it a second time.

Something like "We provide the awesome search engine Cliqz. We built a Firefox add-on that enhanced the address bar with search-as-you-type results..."

Also, I wish their blog was at [https://blog.cliqz.com](https://blog.cliqz.com) or [https://cliqz.com/blog](https://cliqz.com/blog) as 0x65.dev isn't memorable (for me) and the header lacks strong Cliqz branding.

</comment><comment><USER3> Any SAYT can end up negating it's own time savings if there is any delay or reprocessing of the search term. I'm sure it's happened to most people; when using a SAYT system (such as Windows 10 search), you see your intended result come up and attempt to select it but the search results update and change just before you can reach it.

<comment><USER4> My favorite is when I correctly type the next letter of my intended result because I don't notice it in time to "cancel" the keystroke but Windows 10 search removes the result from the list anyway. Then I have to delete 3 or 4 letters to get it back for some reason. Ugh.

<comment><USER5> Why does windows search suck so hard? I remember from day 1 it would totally miss files on disk that I regularly used and searched for. I would type in program names and it wouldn't find them even when they were accessable from the start bar menu. But it would eagerly return useless web results. Who even decided it was a good idea to add web search to the start menu?

<comment><USER6> Conversely the search in windows explorer has gotten much better on the Insider Fast/Slow track. It does what you expect and searches down the path almost as fast as Everything.

Before even in shallow paths you would type something, it would spin, you'd press enter, you'd be brought to a big empty search results page that would slowly find things.

I'm finding myself using Everything less and less.

</comment></comment></comment></comment><comment><USER7> I like the focus on user intent. After all, the purpose of search is to provide users with information, not present them with a list of search results.

Recently I switched from Chrome + Google Search to Firefox + DuckDuckGo and I'm pleased, surprised even, by how well this setup works. The user experience is great and the search results of both setups usually correspond.

<comment><USER8> Whenever I fix or setup computers for friends/family, I sneak in Firefox + DDG. Every time I've asked if they've noticed a change with "the internet" and internet search, I've only ever got "nope" or "there's a duck now". No mention of "it's worse" or "I want it changed".

<comment><USER7> It's because Google is so widely used that people are not aware of how good the alternatives are/have become.

</comment></comment></comment><comment><USER9> Can somebody in the know chime in on this? _were_ there concerns over privacy issues? Did Google apply pressure? etc.

Personally I find any sort of SAYT distracting and annoying and also an unnecessary privacy leak, and I wish there's a way to turn off the awesome bar altogether and just have a damn textbox for copypasting urls into.

<comment><USER10> With the search box separated the Awesome Bar appears to just do a local search, so it is no longer a privacy leak and you can just paste URLs into it. Having done this separation:

You can tell the Search box to not do SAYT (whereupon AFAIK it doesn't talk to the search engine until you push go)

You can tell the main URL bar to not do SAYT over URLs from your history, bookmarks etcetera as you prefer.

</comment></comment><comment><USER11> Yet another business blog that hasn't got even _one_ link to the main product or company homepage. Such a sad failure of so many blogs these days.</comment>


How Apple's culture of secrecy wears down its top developers - <AUTHOR> http://www.sfgate.com/technology/businessinsider/article/How-Apple-s-culture-of-secrecy-wears-down-its-top-10853658.php <comment><USER2>
        My decision has nothing to do with "openness". The "friend" cited is either fabricated or speculating. Folk just want to make Apple look bad.

[https://twitter.com/clattner_llvm/status/819974025371787264](https://twitter.com/clattner_llvm/status/819974025371787264)

</comment><comment><USER3> Come on, this is just completely make up stuff. Just fake news. Top developers don't care about secrecy. It's mostly about money. If you are well paid, anyone will stay.

<comment><USER4> Just because they get paid well doesn't mean they're happy</comment></comment>


Ask HN: Who is looking for funding (March 2018) - <AUTHOR> (This is a new post idea, who has a startup that is looking for funding regardless if you're applying to YC) - Please post:
Company | Industry/Market | Stage | Contact/location | Pitch: Short pitch
[Pitch]
---
As this is the first post of this type, please note additional information you think is important, but please keep your pitch concise. If you're simply looking for feedback on your pitch, please state.
Submitters: please only post if you personally are part of the pitching company—no recruiting firms or job boards. Only one post per company, please. <comment><USER2> 2FB is looking for funding! [https://2fb.me](https://2fb.me)

<comment><AUTHOR> Can you update/reply with the proper format - your tweet link doesn't seem to lead to meaningful info....</comment></comment>


Do call yourself a programmer, and other career advice (2013) - <AUTHOR> http://yosefk.com/blog/do-call-yourself-a-programmer-and-other-career-advice.html <comment><USER2> First, I want to acknowledge that neither article was actually about who gets to call themselves a software engineer. That said, clearly that's all the HN comments are going to be about , so I'm diving in.

I call myself a software engineer because it makes me feel smart and important. To me, that's the only difference between an engineer and similar jobs. I don't want to heap scorn on people who make sandwiches at subway, like many will use this discussion as an excuse for. Nonetheless, the reason the term engineer doesn't apply to them is that their job is neither important, nor requires a lot of intelligence.

Things like following a specific process, taking ethics courses, or being certified, are just things that some engineers happen to do. If you're smart and capable, you will do what is necessary to do the job well. Sometimes, this involves following a specific process, and sometimes regulation is necessary to ensure that everyone does this. But other times, individual judgement is the only solution. I believe this is the case for software engineering.

I don't really care about the word that much (although I really like calling myself and engineer), but what I do care is the implication that our industry needs to be regulated like professional engineers are. In fact, I'm opposed to all forms of organization, either unions or professional organizations, because they have nothing to offer the industry, and can do a lot of harm through rent seeking behavior.

I'm not opposed to regulation that forces businesses to protect user information better, or provide better privacy safeguards. But these are regulations of the business practices. I don't want to have to get a certificate for something I can read online, even if someone else worked _really really hard_ to get their certificate.

<comment><USER3> I agree with most of what you say, but there has to be more to the definition of engineering than "important stuff smart people do". The best working definition I have comes by way of several of my college professors:

An engineering problem is one in which you are given a set of requirements and asked to minimize cost; anyone who solves such problems is an engineer.

Most subdisciplines of engineering have developed their own language and standards for how to specify the requirements, develop potential solutions, and analyze the cost of those solutions. In young subdisciplines, like software engineering, these can appear more like folk wisdom than rigorous processes sometimes; that doesn't mean they're not engineering, just that we still have a lot to discover about them.

<comment><USER4> Lest we forget, the first engineers relied on folk wisdom and empirical knowledge before rigorous processes and accurate physical models existed.

That also means we have a few millenia of catching up to do!

</comment></comment></comment><comment><USER5> I don't work in the software industry. But I'm often frustrated by nitpicking over who is or isn't A Real Engineer.

Implicit in these discussions is the concept that engineers are superior to mere technicians or operators. As an engineer I have worked with technicians who want to go back to school to become an engineer, because of the perceived prestige and earning power that would come along with it. Often, they don't even realize that they make more money than I do [1].

In my industry the chief divide between engineers and technicians is that engineers design systems whereas technicians construct and operate them. These are fundamentally different jobs, each with its own challenges and benefits, although they often overlap. Pay is roughly the same, though engineers tend to have more generalized knowledge that can help them shift into a different sector more easily during a downturn. Both roles are essential, and I like to joke that if all the engineers disappeared, the technicians could keep things running for at least a decade, but if all the technicians disappeared, the lights would be out within 24 hours.

Good engineers can't function without good technicians. Both have a good deal of specific knowledge that the other does not. And somebody who is good at one role is rarely good at the other.

Be an engineer because that's what you want to do, because you genuinely feel that designing systems using the application of engineering theory is better situated to your skills and personality, not because you think it might be more prestigious or respectable that what you're currently doing.

[1] I work in the power industry where a skilled technician commands a similar or higher hourly rate to an engineer, more overtime and usually does a hell of a lot more work, like fixing overhead power lines at 2am during a winter storm.

<comment><USER6> Great, but not sure what this has to do with the article though. It's like you read the title and replied without reading the actual article.

Then again, so are most of the other comments too.

<comment><USER5> I'm responding to the numerous comment threads below on this topic, rather than the article.

</comment></comment></comment><comment><USER7> In general, this article seems pretty weak. It's light on actual arguments (including any real arguments for its titular conclusion) and instead is basically saying "I'm successful and happy despite calling myself a programmer, so you should too."

> The impact of these choices on relationships could thus be weighted as more > important than the impact on career advancement because it's more > predictable.

That's an extremely lazy argument. Something can easily be both very hard to predict and also crucially important.

For a business example, it's _much_ easier to predict the cost of your rent than it is to predict the success of your employees but the latter is much more important to success.

</comment><comment><USER8> It strikes me that much of the advice in "Don't Call Yourself A Programmer" is more actionable than the counterpoints in "Do call yourself a programmer". While there may well be advantages to working for 10+ years in one company, it can be difficult to engineer your (programming) career to achieve that these days. Companies go bust, get acquired, go through re-orgs and cost-cutting rounds of layoffs and it's not easy to select a company at the outset of your career that will be unusually safe from such events.

Over the course of my career I've seen many good engineers laid off for reasons having little to do with their engineering ability. I've also seen companies go bust with very little warning for the employees, people who were happy with their jobs re-org'd into positions that made them miserable and engineers who weren't laid off but did make friends with their co-workers see many of their close friends laid off and often as a result move away to another city/country.

I think even if your ideal outcome is a long career at the same company working with many of the same co-workers you'd be well advised to plan for not having that option and to be prepared for finding other work at any time if your circumstances change due to external events.

<comment><USER9> A big disadvantage to working for the same company for a long period of time is that you will almost certainly get paid less than you would if you changed jobs regularly. The biggest raises these days come during job hops, rather than annual performance reviews.

</comment></comment><comment><USER10> Dijkstra was a humble programmer. [1] Is he good enough for you? :)

I do call myself a programmer. Some people prefer software engineer, architect, etc. I think it is very contextual.

1\. [https://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340...](https://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340.html)

<comment><USER11> The strange thing about the real world is that your salary is almost completely divorced from your actual skill. Take a skilled person who never negotiates and the result is that they're paid less than someone many times less skilled but who negotiates.

So it's not necessarily about "are you good enough?" but rather "how much do you want to get paid?" And once you focus on the latter question, you realize that skill is a tiny portion of it. Your salary is mainly dominated by how much time you have to shop yourself around, how quickly you can get several offers from different companies, and how long you can afford to say "no." The last one is very important, because if you get through an interview stage and are unable to say "no" if you need rent for example, then you'll end up with a low non-negotiable offer. You can bluff, which is always worth attempting since I'm not aware of anyone who lost out on a job offer for bluffing, but if their initial offer is $X, and you say "no, $X + $Y please" and then they say "$X + $5k is our final offer," then your options are to accept or to shop. And if you have no time left to shop around, then you're forced to settle. That's how you end up with a low salary.

All of this is obvious when someone explains it like that, but the trouble is, few people talk about stuff like this. You can spend your time from college to career without even really examining any of this, to your personal detriment, and you won't even realize it. As Patrick said, you can easily get +$5k at your next job with a minimum of effort. If you have time to shop around for several months, then you can get +$40k or more in the right circumstances.

Sorry for the ramble. These are just some unintuitive things which were surprising to me.

<comment> rational-future This is far from the true most of the time. In my experience the only places where pay doesn't mostly depend on skills/smarts/effort are government and to a lesser degree the big monopolies/oligopolies like Comcast.

<comment><USER11> What I'm saying is, if you're pretty sure you're more skilled than some of your coworkers based on whatever heuristics you choose to use, there's an excellent chance those less-skilled people are making more money than you if you haven't been aggressively negotiating your salary.

The cool thing is that negotiation skills are a hundred times easier to learn than programming skills. A few weeks of effort will net you thousands or tens of thousands. The effects are cumulative over your life, so the sooner you start, the better.

</comment></comment></comment></comment><comment><USER12> I call myself programmer, but we generally refer to ourselves as developers now. At the previous place, we were Programmer/Analysts and then right before I left they had changed it to Software Engineers. I find it all pretty amusing.

<comment><USER13> I like the term Developer because I do a lot of things all day that I believe are more important that the actual "programming".

Working out what the product should be and how users interact with it for example.

</comment></comment><comment><USER14> Calling yourself a Software Engineer when you're not is like calling yourself a Surgeon when you're a Nurse. A Software Engineering degree is way more difficult than a Computer Science degree, they are not the same. A 3rd of students drop down to Computer Science or something else after they fail in the first 2 years. This is at least the case in Canada.

<comment><USER14> I like how this will get down voted because people don't like it. This is a fact, you will not be recognized in Canada as a Professional Engineer and if you claim you are one in your practice there are legal consequences, the same if you practice as a doctor without the acknowledged certification. I am just stating facts...

<comment><USER15> The fact that you cannot claim to be an engineer in Canada without the appropriate credentials is a fact. Your statement that "[a] Software Engineering degree is way more difficult than a Computer Science degree" is not a fact. I have seen this whole 'CS vs SE' debate in the past, typically in a joking manner. Your manner however is downright insulting.

<comment><USER14> Apparently only in Canada but it is a longer degree with many more courses and is considered (here) to be more difficult to obtain. This doesn't seem to be the case in the US though. Cheers.

</comment></comment></comment></comment><comment><USER16> You can only call yourself an Engineer under specific circumstances:

1) You follow a well defined and repeatable process

2) You are able to measure progress

3) You have predictable results

4) You are capable of adapting to requirements change

5) You follow a standard of some sorts (coding style, organization, etc)

6) You provide thorough documentation

People who don't adhere to these principals are just developers/programmers. If you just set out and hack on some project, then you are not engineering something. A lot of engineers hack/develop/program on their free time, but as a professional on a professional project they adhere to these principals (and therefore are engineering).

There are a lot of people in this world who call themselves engineers without actually being an engineer. "Customer Service Engineer"... what are you actually engineering? In software in particular, there's a lot of people who just don this title because it sounds more impressive ("Systems Engineer" instead of just calling themselves an Admin)... but if you speak with them about their process, etc... it becomes clear they just hack on something until is works (sort of). That's not engineering; that's not a well defined and repeatable process that one can follow every time and produce predicable results. They aren't able to measure their progress other than a best-guess.

<comment><USER17> None of this is true. You can call yourself an engineer for any/no reason whatsoever.

What you're getting at is some kind of industry certification, like the PE, that would only allow those who qualify to call themselves engineers.

But software engineering doesn't have that. Therefore, anyone can call themselves an engineer if they want to, and don't have to pass your little criteria here.

<comment><USER18> Just to clarify, in the US a PE (Professional Engineer) is not certified: Professional Engineers are licensed at the State Level to practice independently. Licensure comes with direct personal liability that cannot be assigned to a corporate person and a legal obligation to protect the public even if doing so is contrary to a client's wish or interest.

There's no equivalent in software, and the term "software engineer" has little of the rigor envisioned when Margaret Hamilton coined it.

<comment><USER19> That is interesting - the idea of direct personal responsibility for flaws or bugs is one which would soon make NASA's development processes look lacksidaisical.

I do wonder how we will manage to actually become a profession.

<comment><USER18> The idea of direct personal responsibility goes back 3500 years in construction. Basically people have to die from errors.</comment></comment></comment></comment></comment>


Report Cards from 1920 Manhattan Girls' Trade School and the Stories They Tell - <AUTHOR> http://www.slate.com/id/2301449

<comment><USER2> Hey slate.com - when I visit an article on my phone, its because I want to read it, not see your mobile homepage. Thanks!

<comment><USER3> This works: <http://www.slate.com/id/2301449?mobile_redirect=false>

Add ?mobile_redirect=false to the url.

<comment><USER4> It shouldn't be necessary, especially if the reason for putting it in is that their mobile site doesn't work well with your device.</comment></comment></comment>


Show HN: Visualize rates for thousands of freelance devs / designers - <AUTHOR> https://www.hellobonsai.com/rates <comment><AUTHOR> Quick run down: a few months ago we launched a tool for freelance designers + devs to create free work contracts (hellobonsai.com).

With that we've gathered data on how much they charge for different types of work in different geos.

We noticed there's very little consistent market rate data out there for freelancers to (1) calibrate their rates, and (2) justify rates to clients. We hope this helps!</comment>


Writing Network Drivers in Go [pdf] - <AUTHOR> https://www.net.in.tum.de/fileadmin/bibtex/publications/theses/2018-ixy-go.pdf <comment><USER2> This is something I've noticed recently -- more and more researchers are starting to write reference implementation code for networking and distributed systems in Golang. In my own head, it makes sense -- golang is simple to read if not verbose, doesn't require crazy formatting, has excellent standard library support, and has relatively painless concurrency, and _can_ be run as a scripting language. No it's not as easy to get started with as Python, Ruby or Perl, but only one of those has easy-to-spawn native threads, nevermind lightweight coroutines (and the one with native threads encourages illegible code).

If you're not doing type theory work or very specific exploration in a specific field, I don't know another language that is so easy to get up and running with. On top of all this go's performance is pretty great/consistent as well, JS is the only other scripting language that comes close generally, but then you have to submit to the event loop.

I've always thought one of Go's true killer features is how hard it makes cleverness.

I'm starting to seriously think Go's popularity is going to continue shooting up. As I always note I think Go will supplant Java as the incumbent in the enterprise software in one or two decades max.

[EDIT] - Forgot to include the most recent example that made me think this: WPaxos(AKA WAN Paxos)[0] and the included github repo[1]. To be fair CASPaxos[2] included gryadka[3] which is in JS.

[0]: [https://cse.buffalo.edu/tech- reports/2017-03.pdf](https://cse.buffalo.edu/tech-reports/2017-03.pdf)

[1]: [https://github.com/ailidani/paxi](https://github.com/ailidani/paxi)

[2]: [https://arxiv.org/abs/1802.07000](https://arxiv.org/abs/1802.07000)

[3]: [https://github.com/gryadka/js](https://github.com/gryadka/js)

<comment><USER3> Let's not forget the Biscuit operating system by MIT just recently published at OSDI'18:

\- The paper: [https://pdos.csail.mit.edu/papers/biscuit.pdf](https://pdos.csail.mit.edu/papers/biscuit.pdf)

\- The code: [https://github.com/mit-pdos/biscuit](https://github.com/mit- pdos/biscuit)

<comment><USER2> Awesome thanks that looks like a very interesting read.

Oh yeah another thing that just showed up on the front page actually, someone writing network drivers for their bachelor's thesis in Go:

[https://www.net.in.tum.de/fileadmin/bibtex/publications/thes...](https://www.net.in.tum.de/fileadmin/bibtex/publications/theses/2018-ixy- go.pdf)

</comment></comment></comment><comment><USER4> It looks like this is not a pure Go implementation:

 _" We originally implemented these functions in pure Go and tried to force reads and writes through empty C calls as Go does not have the volatile key word or an equivalent for our needs as far as we know. This resulted in strange behaviour: while initialization seemed to work, including the corresponding register getters and setters, the program failed later when the NIC never set flags that were necessary to continue. We invested a lot of time in this specific problem but could not find a reason for this behaviour. With the help of cgo, which enables the use of C code in Go programs, we imported the corresponding functions in device.h alongside log.h of the original C driver and replaced our go functions. This fixed the aforementioned problem though we never were able to provide an exact explanation due to limited time constraints."_

It's still an interesting effort, and it makes me wonder if we'll ever see a day when a significant portion of Linux is written in a safer language.

<comment><USER5> > It's still an interesting effort, and it makes me wonder if we'll ever see a > day when a significant portion of Linux is written in a safer language.

I really hope Ada makes a comeback, especially in commercial kernel programming.

<comment><USER6> We can start with nodejs. Nodejs with async model will be the best solution to achieve the best performance(after 'delete spaces' method of course).

<comment><USER7> Someone suggesting re-writing the Linux kernel in nodejs may be a strong contender for Peak HN

<comment><USER6> Why Linux? It's a simple hybrid kernel. It will be better to rewrite HURD/L4.

</comment></comment></comment></comment></comment><comment><USER8> These guys are so positively insane! :) See [https://github.com/ixy- languages/ixy-languages#overview](https://github.com/ixy-languages/ixy- languages#overview)

</comment><comment><USER9> If nothing else this would be a fun and easy way to develop a driver from scratch for unfamiliar hardware, even if you intended to port the whole thing back to C in the end, after it was all figured out.

</comment><comment><USER10> Contrast this with [https://news.ycombinator.com/item?id=18405515](https://news.ycombinator.com/item?id=18405515), which is trending at the top.

</comment><comment><USER11> How do they handle the GC?

<comment><USER12> The driver only allocates memory on the stack, so no GC is required.</comment></comment>


If I Launched a Startup - <AUTHOR> http://thestartuplawyer.com/startup-issues/if-i-launched-a-startup <comment><USER2> I'm surprised to see the recommendation to incorporate in Delaware.

Downsides to incorporating in Delaware:

1) You still pay full taxes in the state you are operating in (you don't get to avoid taxes by incorporating somewhere else).

2) If someone sues you, they can choose to sue you _either_ in Delaware (forcing you to travel to Delaware to defend yourself), or your local jurisdiction. The Delaware courts can be friendly to business, simply because they are often not jury based, but since you're not operating there, they don't have to sue you in those courts. And, the person suing you gets to choose the place they are most likely to win in.

3) Many states will require you to register as a "foreign corporation", possibly for more money than just incorporating there.

Yes, you can structure your company more flexibly, but are you really using some complicated structure that is only allowable in Delaware?

 _Edit_ : Just in case I'm misinterpreted, I do think this is a valuable post as a whole.

<comment><USER3> My recommendation is always home state OR Delaware--the post is what I would personally do. I'd rather deal with the administrative issues early than reincorporate later.

Also, in true hacker tradition, it's probably easier to hack the available free startup legal document sets if you are a Delaware corporation. Most if not all the docs assume the startup entity is a Delaware corporation.

<comment><USER4> Great post, Ryan! It is always easy to quibble with this or that aspect of how to launch a startup legally, but this is a great roadmap for founders to get them started in their thinking and to keep them focused on the right issues. It is quite consistent with the rest of your high-quality blog.

<comment><USER3> Thanks George. We need to catch up soon!

<comment><USER5> awesome to have you in this community Ryan. Legal stuff is my least favorite part about operating a startup. It is great to have the perspective of someone who is passionate about it. Also, this is great away for you to get involved with great startups.

</comment></comment></comment></comment></comment><comment><USER6> I actually don't understand the straight 4 year vesting schedule for founders. It seems unfairly favoring the investors. For founders who have poured their hearts and souls into building product and market initially, they still have to wait for 4 years after accepting funding to get their full reward? And risk losing their work along the way? And yes, many founders have been forced out from their startups before their 4-year schedule.

For startups that have product and market before funding, it would be more fair to have a "regressive" vesting schedule, e.g. 25% immediately vested, 30% 1st year, 20% 2nd year, 15% 3rd year, 10% 4th year.

<comment><USER7> It prevents a founder from quitting early and keeping all their stock. The article doesn't mention it, but usually there is an acceleration clause that fully vests the shares if the company is acquired.

<comment><USER8> Usually I see the start date for 4 years for founder vesting back-dated to start when the people actually started working on the project, not necessarily from taking funding or even incorporation.

</comment></comment></comment><comment><USER9> Pretty good articles. The blog is really nicely designed, too.

<comment><USER3> Design credit goes to Dave Onkels, co-founder of Magntize. (<http://daveonkels.com>)

</comment></comment><comment><USER10> "Asking a VC to sign a NDA is tantamount to splitting 10's at the blackjack table" - Funny.

<comment><USER11> > "Asking a VC to sign a NDA is tantamount to splitting 10's at the blackjack > table"

Splitting 10s makes sense in certain circumstances.

VCs will sign NDAs when doing so benefits them. Such situations do exist, but they're rare.

</comment></comment><comment><USER12> I don't see the point of authorizing that many shares. I've always authorized 1,000 and initially issued 100 to the founders. 1,000 is enough to get the % breakdowns you need and you aren't charged for having that many shares: <http://www.corp.delaware.gov/frtaxcalc.shtml>

<comment><USER3> If you use the assumed par value capital method to calculate your franchise taxes (instead of the authorized shares method), your startup's franchise tax bill isn't likely to be very much.

<comment><USER12> Why pay any extra $ when you don't have to? Many scenarios will end up with you paying greater than the minimum ($75).

<comment><USER13> it's not.

<comment><USER12> Here's his article on it: [http://thestartuplawyer.com/incorporation/the- delaware-freak...](http://thestartuplawyer.com/incorporation/the-delaware- freak-out)

His example comes to $175.

And it may be much worse depending on specifics or if you take this specific advice but incorporate in another state.

<comment><USER3> Well, the example assumed the startup's gross assets were $250,000. If gross assets were $100,000 the tax would be $75 (actual calculation gives you $70 but min is $75).

</comment></comment></comment></comment></comment></comment><comment><USER14> if you have vested share scheme with a 1 year cliff then also have 'acceleration on change control' i.e. if you get bought out early then you don't want to be waiting years for the remainder of your money, get the payment accelerated

<comment><USER9> If you get acquired, the payout schedule gets renegotiated anyway. So what's the point?

<comment><USER14> kinda chicken and egg... why do they have an 'acceleration of change control' if it gets renegotiated anyway? I figure its worth mentioning either way.

<comment><USER9> It's a good question. Paging grellas?

Anyway - single-trigger acceleration can lower the valuation of an acquisition, because the founder can then walk away. This is something VCs won't really like. Double-trigger is more usual.

</comment></comment></comment></comment><comment><USER15> Thanks for the link - bookmarked for further reading, I wish I'd read this a lot earlier. This is why I love the internet - information empowers us all.

</comment><comment><USER16> It is great that he summarized many of his posts in one concise post.

I've read and followed his advice to form my first corp recently. But it took a few days of research to understand what he was saying and why.

It still costed me over $2k to get incorporated though.

<comment><USER17> > It still costed me over $2k to get incorporated though.

Getting a lawyer to double-check things, or something else?

<comment><USER16> Just getting a lawyer to double check things. Just the base fees of DE incorporation, getting a registered agent then register as a foreign entity will cost you around $500.</comment></comment></comment>


Introducing Gmail Blue | Official Gmail Blog - <AUTHOR> http://gmailblog.blogspot.com/2013/03/introducing-gmail-blue.html

<comment><USER2> ...and so it begins.

The problem with these are they are (slightly) amusing for the tech folks but absolutely confusing for normal people. I played the video and told my wife to watch to see her reaction. She didn't laugh or smirk, she just said "What the hell is that" and we back to reading her book.

<comment><USER3> Maybe, it has to do with this site being blue: <http://www.outlook.com>

<comment><USER4> Well, you can make it other colors too (mine is green, Gmail's spam filter hit a 10% false positive rate for me, so I switched)

</comment></comment></comment><comment><USER5> Nice, but very subtle, dig at Microsoft. For those of you not following, "Windows Blue" is the codename for the next update to Windows: <http://en.wikipedia.org/wiki/Windows_8#Windows_Blue_update>

</comment><comment><USER6> Blue...

41 Shades of blue [1]

Blue Fav Icon [2]

And most obviously the new OS being developed up the Pacific coast [3]

Anything else?

[1] [http://www.nytimes.com/2009/03/01/business/01marissa.html?pa...](http://www.nytimes.com/2009/03/01/business/01marissa.html?pagewanted=3&_r=0)

[2] [http://www.neowin.net/news/noticed-googles-new-favicon- yet-g...](http://www.neowin.net/news/noticed-googles-new-favicon-yet-google- goes-all-out-on-blue)

[3] <http://www.pcmag.com/article2/0,2817,2417055,00.asp>

</comment><comment><USER7> So my cable company is Cox and the DVR menu is.. blue.. like everything is blue (light and dark). In fact it so hard to read from a distance, I am beginning to wonder if their design team seriously were thinking like this. I am sure there is a setting that I _may_ be able to adjust, but seriously...

</comment><comment><USER8> Are they teasing the new <http://outlook.com> ?

</comment><comment><USER9> Funniest part was saying it took 6 years to develop the technology

</comment><comment><USER10> One of the better pranks this year from Google - love it.</comment>


Why I'm not applying to Y Combinator - <AUTHOR>

Let me get one thing clear. I applied to Y Combinator last year and got rejected - openplatformasaservice.com. I'm ok with that. In fact most of the creators in life I admire were rejected or not understood even their 3rd time out. In fact, most people who make it big, have 6 failures first. I was actually just filling out the 2011 Y Combinator application when I just stopped and said, this is not the right way for me - hence leading to this post. So really, its not sour grapes. When I first found Y Combinator in my angel research, I thought wow, these guys look great! But after applying last year and being rejected and seeing they provide zero feedback after you take a lot of time to present your company, product and vision just the way they want it and rereading their application this year, it dawned on me. This is the same thing as old line VC's but possibly even worse. At least on Sand Hill Road, you would get serious cash and they would have a lot of sweat in the game. Today, we create a prototype  or even working model and even have some traction and take less than $20,000 and give up a big piece of our company. Yes the intros are a good perk, but if you truly have something, you will get there regardless. But it is not about the money or percentages. It is the about the entrepreneurial spirit. I wasted precious time trying to make shotgun approach micro-funders who don't believe in any company enough to put real money into it understand something big that would require imagination and balls. Make a video intro, explain yourself, tell us why we should talk to you, bark like a dog. Fuck that. Not anymore. Power to the programmers - right on. <comment><USER2> You say....

> So really, its not sour grapes.

Then end with ....

>bark like a dog. Fuck that. Not anymore. Power to the programmers - right on.

You may or may not be rightfully disillusioned, but regardless your attitude is in the gutter.

<comment><AUTHOR> I respect your opinion. However, I would say I WAS disillusioned - but no longer.

</comment></comment><comment><USER3> YC has repeatedly said they care much more about the founding team than the idea. It's a sound principle. A strong team is probably the minimum you need.

Just apply. Don't disqualify yourself. It doesn't take long and you have nothing to lose. But your expectations shouldn't be too high, especially after posting something like this.

BTW, I have no idea what OPAAS does. Maybe that's the problem.

<comment><AUTHOR> OPaaS is "Open Platform as a Service." Just think "Platform as a Service" but open.

Yes, there are some good solid principles at Y Combinator. I agree. To apply in a way I think is thorough, takes at least 8 hours of work - a day's work. That's doing the videos and providing cogent responses to all the questions. Sure you can do it in 20 minutes if you want to rush through, but I don't do that.

Now a day's work is not a great amount. However, the problem is that it is a "special case" application that really can't be reused. Y Combinator wants you to tailor an in-depth presentation for them. That's fine. More power to them. However, it says something to me that in return they offer zero feedback. Zero.

<comment><USER4> _Just think "Platform as a Service" but open._

I don't know what "platform as a service" means. I watched the video on the right side of the page, and I still don't understand.

Edit: I looked it up on Wikipedia. I still don't really get what this is about.

</comment></comment></comment><comment><USER5> Just some feedback on your website: I went to it, and on the home page, I have basically no idea what it is or does, and there's really nothing that hooks me into looking into it more. And actually, now that I look at it, there aren't even links to click on that would answer these questions.

I'm guessing you guys are competing with something like EC2 or heroku. Compare your site to heroku.com. The first thing I see is "Rock-solid ruby platform", underneath which it says "Deploy and scale powerful apps." There is a "how it works" link at the top that tells me more.

<comment><AUTHOR> Thank you for the feedback. As a developer, I usually look for a link that says something like "developer" "sdk" "api" or what not. We have a "developer" link on their, albeit small as the main purpose of the site is for consumer to discover and buy Open Apps. They thinking is that if there is a bunch of developer call outs on the home page, it might confuse consumers.

There is also an "About" link. Do you think the "developer"and "About" links should be more prominent?

I'm curious are you familiar with Platform as a Service (PaaS?)

Thanks again for your feedback.

</comment></comment><comment><USER6> Can't help but feel that with that attitude YC were right not to accept you - sorry.

<comment><AUTHOR> I had a great "attitude" when I applied and jumped through all the hoops last year so I fail to see your point. Unless you are saying the Y Combinator folks are psychic? If that were the case, they would pick winners every time, yes? But seriously, I wouldn't call it an "attitude." I would call it an informed opinion - your opinion may differ.

<comment><USER7> What's the difference between now and then?

As an entrepreneur, you're going to get rejected over and over again. Why should that change how you approach potential future rejections? As investors, YCombinator wants to see that you won't give up in the face of setbacks...you are now giving up in the face of setbacks. The value of a YCombinator investment does not change depending on whether they have chosen you or not. Why has your decision whether to pursue it changed?

(Full disclosure: I've been rejected 4 times from YCombinator. Also rejected from FriendFeed, LikeALittle, Twitter, and Harvard. Stupidly passed up DropBox. Accepted by Amherst and Google. My opinion of any of them has not changed based on whether or not they rejected me. I haven't applied to YC since SFP08, but that's because my interests at present lie more in technology than in startups, and other opportunities have been available to me in that area. That does not mean I would not apply to YC again should I have a burning desire to start a company.)

<comment><AUTHOR> Please reread my post in context to the post I was replying to. That should help you understand. Also, it is not about rejection. As I mentioned, in my original post, most successful people fail, on average 6 times first, let alone simply get rejected by a potential investor before they have their big success. Rejection is part of the road the road to success. Also, if you took away from my post that I am giving up, I probably could have been clearer. I am not giving up. I am not even giving up on investors. I am just staying clear of "micro-investors." Simply put, the time spent to present yourself the way micro investors want you to is simply not worth it in my opinion. If you are a programmer, the "special case" is not worth it :) The time is better spent working on the product/service/company. It is just a business decision.

<comment><USER7> I've reread it a few times, plus your original post, and I still don't get it.

YCombinator's application is not hoop-jumping. It's training. These are questions that you should be asking yourself about your idea _anyway_ , regardless of whether you seek YC funding. Big-time VC funds will ask you the same questions, except that they require a personal introduction to even get to that point. Heck, _customers_ will ask you the same thing, except that they want you to _show_ them the answers through your product instead of _tell_ them through an application form.

Also, the value of YCombinator is not in the $20K. It's in the introductions they give you, and how hard they work to put you in front of big-money investors. We saw that a couple days ago with the e-mail exchange where PG tried to get Union Square Ventures to invest in AirBnB. Most investors won't even look at you without a personal introduction from someone they trust.

<comment><AUTHOR> When you do something which takes time for a given audience, that is called "jumping through hoops." It is a figure of speech.

Yes, VC's ask a lot of questions. Even harder ones. They even want very long business plans. And more. The difference is VC's are going to give you MILLIONS of dollars if you jump through all their hoops. Not just a little more than what would pay your relocation and rent while you move to California. I trust you can see the difference.

Also, are you sure you read/reread my post? I clearly said in there "Yes the intros are a good perk, but if you truly have something, you will get there regardless." So I'm wondering why you bring up the intros as a perk beyond the money as I already pointed that out in my post.

</comment></comment></comment></comment></comment></comment><comment><USER8> One of the nice things about YC is that they're willing to have an open, public application process. I'm sure you can imagine that supporting that means they personally waste tons of their own time reading applications that don't come close to cutting it. For new entrepreneurs that don't have great connections to investor communities, this is one of the few avenues for getting their ideas vetted by an experienced group of people.

<comment><AUTHOR> What do you mean by "open, public application process?" I don't see anything "open" about it. Last time I checked (last year) there was not even a list of applicants. I'm curious, how would an "open" process differ from a "closed, non-public process?"

Waste their time? They read applications so they can find the ones they think are going to make them a lot of money. It is a necessary step needed for them to make money. I'm not sure what your point is. You feel bad they have to read applications they themselves solicit in order for them to make money? Should someone else read them for them and they do nothing during the application process?

Getting their ideas vetted? Y Combinator gives zero feedback to applicants, leaving them in the dark as to why they were rejected. How does that help? Any vetting process I ever saw gave a "report" or at least some information as to why or why not a candidate was approved or not. Y Combinator does neither. As you said, they spend enormous amounts of time reading the applications (for their benefit) but zero time providing any feedback whatsoever for the applicants benefit. What does that tell you? Does that sound like an entity who is truly trying to help the developers? What do you take away or learn from that? What value does that have?

<comment><USER8> What I meant by 'public, open application process' is that anyone can apply and get their ideas reviewed by very smart people whereas many VC's/Angels won't even glance at you until you're referred by someone they know.

PG has openly stated that the overwhelming majority of the time, it's not that you have a bad startup idea where he can just list of a bunch of reasons why you didn't make it, but rather that other people just simply had better startup ideas. I'm pretty sure the companies they invest in are made publicly available, so it would be easy to see what better ideas are out there.

<comment><AUTHOR> I appreciate your feedback and discussion.

I don't know of any VC's or Angels which won't except a business plan. I think they are more open than ever to finding new companies. I've never had a VC or Angel refuse to receive a business plan. I have contacted three on the phone and they all gave me their email addresses to send pitches/packages to. Have you actually sent VC's and Angels business plans and they've sent them back unopened or are you just assuming they would? Have you ever emailed VC or Angels and they replied to the email saying they will not read the email or are you just assuming that would be the case?

What you are calling an "public open application process" to me is simply freedom of speech. You can send a letter or email to anyone in this country, including VC's. By open, I would think the list of companies which apply to Y Combinator would be made public. As far as I know, and I may be wrong, that list is not made public. That signals something to me. It may not to you.

If you accept Y Combinator reason for providing absolutely not one single word of feedback as reasonable, that is fine. However, I think most people would agree that organizations which truly want to help, would provide some, even if minimal feedback pursuant to an application. Off the top of my head, Y Combinator is the only organization I can think of in my life which provided absolutely no feedback pursuant to an application. That also signals something to me.

</comment></comment></comment></comment><comment><USER9> I find it sooooooo ironic that I'm stumbling upon this post now. I just published my last YC submission and then posted it here on HN. You might want to read it, opaas :)

(if you think it's spam, just don't click the link, okay? :))

<http://news.ycombinator.com/item?id=2361753>

</comment><comment><USER7> Meta side note: Why is this not on the front page? It has more upvotes, more comments, and was posted more recently than several things that are, I don't see a [dead] next to it, and yet it's sitting at #67.

<comment><USER10> Articles that don't include a link (like ask hn for example) require more velocity to hit the front page.

<comment><USER7> I wonder if it's more than that, and the formula was changed lately. "U.S. Missiles Strike Libya", 9 points 33 minutes ago and a link to NYTimes.com, is now at #67, while this is at #46. It used to be that 3-4 points (albeit at non-primetime) was enough to get an article onto the front page.

</comment></comment></comment><comment><AUTHOR> >You may or may not be rightfully disillusioned, but > regardless your attitude is in the gutter. I respect your opinion. However, I would say I WAS disillusioned - but no longer.

<comment><USER11> If you weren't passionate. You probably wouldn't be an entrepreneur.

</comment></comment><comment><USER12> A better strategy would be to cap your time investment to something you are comfortable with.

</comment><comment><USER13> This is democracy, cool!

<comment><USER14> You mean anti-establishment.</comment></comment>


Python: hash, id and Dictionary Order - <AUTHOR> http://blog.amir.rachum.com/post/54458435089/python-hash-id-and-dictionary-order

<comment><USER2> Python will generally use the system allocation functions (unless it knows more about the objects and whether they can be bulk allocated and used in freelists), and a given Python class (which is what you are creating) will have alignment that depends on its size and what the platform returns for a block of memory of sufficient size to fit the object. What do I mean?

Say that you need to allocate 63 bytes of memory. No memory allocator will give you 63 bytes, you will actually get 64 or maybe more. Why? Because if you allocate 63, then the implication is that some other call to the allocator will return a memory offset just after your 63 bytes, leaving it unaligned WRT platform alignment expectations (which is 4 or 8 byte alignment for platforms I am familiar with).

If it so happens that the classes you are building (the A, B, C, ... classes) are aligned on 128 byte boundaries, then it's likely that the allocator has put each class into a block size of 128 bytes. What would go into that 128 bytes? Refcounts, reference to the class dictionary (if any), reference to a __slots__ object, the base classes, etc. There is likely unused bytes in the tail end of that 128 byte block, and in some cases, empty space within the block (some 64 bit platforms require 8-byte alignment, even when a structure has 1, 2, or 4 byte integers).

But yeah. Don't rely on dictionary ordering, and don't rely on 128 byte alignment of your classes.

<comment><USER3> If you need ordering, just use collections.OrderedDict :)

<comment><USER2> I knew about it before it was in the standard library, but thanks.

</comment></comment></comment><comment><USER4> Really interesting about the internals of python!

One of the first things the professor of my python class told us is that python dictionaries don't guarantee any order. So that's just always been in mind. It almost seems like a PHP-ism to assume that a dictionary would provide that. Understand thy data-types!

# edit: And yeah-- I don't know why the stackoverflow link was the place to go. I don't like "RTFM" culture, but it was right there: [http://docs.python.org/2/tutorial/datastructures.html#dictio...](http://docs.python.org/2/tutorial/datastructures.html#dictionaries)

and also here in the book I learned python from: [http://www.greenteapress.com/thinkpython/html/thinkpython012...](http://www.greenteapress.com/thinkpython/html/thinkpython012.html)

</comment><comment><USER5> The analysis about the internal details is interesting, but it's not surprising, from [http://docs.python.org/2/library/stdtypes.html#dict.items](http://docs.python.org/2/library/stdtypes.html#dict.items) :

 _> CPython implementation detail: Keys and values are listed in an arbitrary order which is non-random, varies across Python implementations, and depends on the dictionary's history of insertions and deletions._</comment>


Adorbs-as-a-Service: Random Kitten Photos in Under 1ms - <AUTHOR> https://github.com/justsml/adorbs-as-a-service <comment><AUTHOR> AaaS: a NodeJS & Sharp streaming image resizing project.</comment>