i386 architecture will be dropped starting with Ubuntu 19.10 - <AUTHOR> https://discourse.ubuntu.com/t/i386-architecture-will-be-dropped-starting-with-eoan-ubuntu-19-10/11263 <comment><USER2> The headline makes it sound like they're dropping support for just the i386 architecture (as opposed to other x86 architectures, e.g., i686). The linked article makes it sound like they're dropping support for the 32-bit x86 platform entirely.

Are Ubuntu's 32-bit x86 packages limited to those targeting the i386 instruction set? As in, "we ship x64, or ancient i386, but nothing in between"?

Or do they use the i386 moniker used as an umbrella for all x86 architectures?

<comment><USER3> This is very confusing, but is standard naming convention for Debian/Ubuntu. Basically i386 means x86_32 and amd64 means x86_64. Why they can't use the latter is beyond me. True i386 doesn't even work with recent Linux kernel and Glibc. i386 in Debian-speak is actually i686.

<comment><USER4> It makes more sense when you look at the history: i386 has been around for going on three decades and was originally the only x86 architecture. When the world started to go 64-bit, Intel was pushing Itanium as IA-64 as the top- performance option which could go head to head with high-end 64-bit RISC processors such as Alpha, PA-RISC, PowerPC, SPARC, etc. They attempted to rebrand x86 as IA-32 as a marketing exercise to match IA-64, both to demarcate it as the lesser architecture and to continue making the competing x86 vendors look less legitimate to business customers.

AMD was the first to develop and announce a 64-bit x86 extension back in 1999 and since they shipped the first hardware, the amd64 name distinguished it from Intel's IA-64. When Intel wrote off IA-64 and adopted AMD's extensions the "amd64" name was already used in a number of places.

<comment><USER5> amd64 does make sense because the distro will work in all amd64 computers (including EM64T stuff).

Calling i686 i386 doesn't, unless packages are actually compiled for i386 (which I don't think they are).

</comment></comment></comment></comment><comment><USER6> Random question.. they use i386 as their internal name.. but you can't actually run it on an Intel 386 right? I was under the impression that modern Linux kernels needed a Pentium Pro or newer.. meaning i586 or i686 would be more accurate?

<comment><USER7> The kernel still supports 486 processors, but most distros compile targeting a minimum of 586 (Pentium [MMX]) or 686 (Pentium Pro).

<comment><USER8> So the compiled kernel potentially misses out on instructions that newer CPUs support?

<comment><USER9> Yes. This is why distros like Gentoo and others prefer building from source. Then you can enable as many architecture specific extensions your compiler supports.

I don't know how much of a difference this makes in practice however.

<comment><USER7> The justification for dropping 386 support was that it was a maintenance burden specifically for SMP locking primitives, IIRC. Dropping support for other 90s microarchitectures would mean not needing a workaround for the Pentium F00F bug, and having access to SIMD and prefetch instructions that can make things like a memcpy more efficient.

<comment><USER10> > SIMD and prefetch instructions that can make things like a memcpy more > efficient.

Or just use REP MOVS. Modern CPUs recognize it and do optimal memory copy internally. Prefetch instructions are rarely beneficial, and often cause worse performance.

Edit: Apparently AMD Ryzen lacks REP MOVS optimization. SIMD based memcpy performs the best on it. (Intel supports REP MOVS optimization since Ivy Bridge.)

</comment></comment></comment></comment></comment></comment><comment><USER11> I'm a little confused by the FAQ post in the linked article. Some of the questions make it sound like 32 bit _software_ will also stop working? Are the compatibility packages going away too?

This would have some crappy implications for Wine and games in particular.

<comment><USER12> You need the 32 bit wine binaries to support 32 bit Windows apps, so if they get removed, you'll need to install the 32 bit libraries manually, or perhaps someone will provide PPAs.

</comment></comment><comment><USER13> How will this impact Wine users who rely on 32 bit libraries to run 32 bit windows programs?

<comment><USER14> It's listed in the FAQ...

> __Q. How can I run 32-bit Windows applications if 32-bit WINE isn't > available in the archive? __

> Try 64-bit WINE first. Many applications will "just work". If not use > similar strategies as for 32 bit games. That is use an 18.04 LTS based > Virtual Machine or LXD container that has full access to multiarch 32-bit > WINE and related libraries.

<comment><USER13> Just use a VM with an old version of Ubuntu is not a solution.

</comment></comment></comment><comment><USER15> Shed a tear for the Winchips, and Cyrixes that will never be useful again.

<comment><USER16> Upgrading from Ubuntu to Debian solves this one among other problems. Ubuntu comes from a company, Debian from a community; the main difference being that companies must be kept profitable, so they will axe any piece of the product that won't be or appear as profitable to them, either because it doesn't sell, or because it consumes resources (developers time).

<comment><USER17> To be fair, Arch dropped i686 years ago. How many people are really stuck on 32 bit? & if companies are so quick to axe things, why is Windows still offered on 32-bit where it'll run many 16-bit programs?

Your post is really slanted "upgrading to Debian", "Company vs Community", suggesting that profit goes against the user's best interest

I'm writing this as someone who uses Arch at home & Debian at work

<comment><USER16> edit: hit submit too early leaving partial post...

'"Company vs Community", suggesting that profit goes against the user's best interest'

That depends on what users interests are: if they match with the company goals, then profit will help users as well. Killing parts of a project because they don't bring money is perfectly acceptable for a company (just look at how many project were axed by Google recently), but again, we should ask to users who invested time and money working with them.

BTW, Many small appliances, embedded systems etc. still run 32 bit cpus. Linux isn't just for servers or desktops.

</comment></comment></comment></comment><comment><USER18> So long, my Atom D2500 homebrew router.

Say, what's the state of fanless dual (or even triple) NIC boards these days? Intel network chips please, the CPU can be whatever. It looks like I need one that does 64 bit before 18.04 runs out of support.

Edit: x86_64 CPU please, not ARM.

<comment><USER19> You still have 3+ years until free security support runs out in 2023. But that said, check out this QOTOM fanless unit that has 4 Intel NICs with a Celeron J1900 64-bit processor. I can attest that it works great as a home/SMB router with Sophos XG (although you could use Ubuntu if you wanted). Just add memory and an msata SSD. There are similar models available on Amazon too with varying hardware configurations.

[https://www.amazon.com/gp/product/B01KX9OU58](https://www.amazon.com/gp/product/B01KX9OU58)

<comment><USER18> I know i have 3 years but... new toys ;)

Thanks for the suggestion (amazon reviewers aren't so happy with it though). I want a motherboard not a NUC-like system though. Still using sata, running some servers on it etc.

<comment><USER19> I've learned to take Amazon reviews, especially those where there's a high likelihood of user error such as this case, with a giant grain of salt :-)

</comment></comment></comment></comment><comment><USER20> Bryan kept a track of what flavors have dropped i386 from their images. [https://bryanquigley.com/pages/papers/ubuntu- drop-i386.html](https://bryanquigley.com/pages/papers/ubuntu-drop-i386.html)

</comment><comment><USER21> Steam is 32-but only, I wonder what will happen?

<comment><USER22> It already ships with its own libraries, so it may not even be affected. If it is, then a new snap is going to be created for it. Right now you can also use flatpak: [https://flathub.org/apps/details/com.valvesoftware.Steam](https://flathub.org/apps/details/com.valvesoftware.Steam)

<comment><USER21> Which libraries? I recall having to pull in a whole 32-bit system on Arch Linux to install Steam's binary package.

<comment><USER23> Arch gives you the option to use the system libraries or the built in one using steam-runtime or the steam-native binaries. But the package needs to install the 32 bit libraries to give you the option.

</comment></comment></comment></comment><comment><USER24> Am I the only one who gets emotional here? I remember when I installed Linux Ubuntu 7.x on my first laptop (which it's still working in perfect condition). Truth is, I don't use this laptop anymore but I always wanted to install the latest Ubuntu just for the flash backs.

</comment><comment><USER25> I have a 64-bit machine but I'm running 32-bit Debian because there's no good upgrade path, and I really don't want to reinstall because that would take a months to get everything set up again.

I'm running Debian not Ubuntu, but the absolute minimum they owe their users is an automatic upgrade path.

<comment><USER26> > but the absolute minimum they owe their users is an automatic upgrade path.

How exactly do you purpose they perform an "automatic upgrade" on their user's hardware? You don't just patch or upgrade to go from 32 bit to 64 bit. You can't hotfix hardware like that.

<comment><USER25> As I said, I'm running 64 bit hardware, and a 64 bit kernel.

But shifting the packages from 32 bit to 64 bit is not supported automatically.

And that _despite_ the ability to install both 32 and 64 bit packages side by side.

It's like they did all the hard part for the upgrade, and just didn't finish that last little bit (find 64 bit versions of existing 32 bit packages, and install them, then remove the 32 bit).

</comment></comment></comment><comment><USER27> >There is lack of support in the upstream Linux kernel, toolchains, and web browser

Except firefox who become useless on 32 Bit after quantum I don't have any problem with Debian on my netbooks. I am really curious about the "lack of support" in the kernel, Any idea?

<comment><USER28> Talking about Firefox, I've recently heard some people getting annoyed that Firefox now depends upon Rust and Rust doesn't build on their obscure legacy platform.

I'm in turn getting annoyed at the complete lack of cost/benefit analysis that this entails.

Every software project has to deal with limited resources and the attitude that the vast majority of people running on more mainstream platforms should forsake improvements (in security or usability by Rust for example) in order to support Solaris, Illumos, HP-UX or any of those niche platforms, well that just pisses me off.

I still have a 32bit Debian installation (originally installed around 2003 and been Ship of Theseus-d over the years so it actually has 64bit hardware now) that I didn't have the time or motivation to upgrade, but if 32bit support would go away tomorrow I'd understand. What's the percentage of 32bit vs 64bit users? 0.3%?

<comment><USER11> The other way to view this is as rich software developers asking the rest of the world to pay to upgrade their hardware, or else forgo security patches. That may be hard if you're in a poor country, or are otherwise living near the poverty line.

Commercial interests have little incentive to serve this demographic, due to their lack of buying power. That leaves open source projects that were created for the public good.

</comment></comment></comment><comment><USER29> I assume the same goes for the more lightweight Ubuntu-based distros Xubuntu and Lubuntu? What are som good alternatives to these that will continue to run on older 32-bit machines?

<comment><USER30> Each of these questions is answered in the article.

<comment><USER29> Not the second one.

<comment><USER31> Fedora has a 32-bit LXDE version available[0], although I've never tried it. I did use regular Fedora and Lubuntu simultaneously for about a year, and didn't find it hard to switch back and forth.

[0][https://spins.fedoraproject.org/lxde/download/index.html](https://spins.fedoraproject.org/lxde/download/index.html)

</comment></comment></comment></comment><comment><USER32> Are there other Linux distributions left that still support i386?

<comment><USER14> Void, Debian, Fedora, Gentoo, NixOS, Slackware, Guix System, Tiny Core, and Mageia are the independent distributions I know of that have 32-bit images. Also, most distributions support multilib; Ubuntu is actually the first I've heard of dropping it.

</comment></comment><comment><USER33> Why are they dropping i386? Surely 32 bit Ubuntu is still very much in demand in developing Countries or for people wanting to get old machines running with "okay" hardware? I can still get my IBM T22 to load a lightweight browser and navigate the internet.

The kernel still supports i386 and surely it's not that much effort to make sure Gnome and the various packages compile for it? They still plan to support 32 bit ARM systems?

<comment><USER34> > Surely 32 bit Ubuntu is still very much in demand in developing Countries or > for people wanting to get old machines running with "okay" hardware?

Every mainstream desktop CPU since late 2005 has had support for 64-bit, and mobile CPUs since 2008. If you're still running pre-2005 hardware, is the latest version of Ubuntu even really running that well at all?

Besides, they can continue to use 19.04 or 18.04 LTS. It's not like discontinuing support means existing installs are going to break.

<comment><USER33> > If you're still running pre-2005 hardware, is the latest

> version of Ubuntu even really running that well at all?

Ubuntu server and Lubuntu are still very agreeable for older hardware.

> Besides, they can continue to use 19.04 or 18.04 LTS. It's

> not like discontinuing support means existing installs are

> going to break.

After just a few versions of Ubuntu it becomes harder to find archive repositories, especially if you want to do anything like cross-compiling. It basically is a death sentence.

</comment></comment></comment><comment><USER35> Dammit! My LAN server is an old 32-bit only Pentium4 running Ubuntu.

<comment><USER30> As noted in the article, the LTS 18.04 release will continue getting security updates for many years to come. You should retire that hardware well before then, and not just because of security issues. Those old P4s are really power hungry compared to anything made in the past decade.

<comment><USER36> I suspet my 5-watt fitlet outperforms most P4s

<comment><USER37> A raspberry pi will replace a P4 system, no problem. It's a waste of space and energy keeping a loud dusty P4 around.

<comment><USER38> > A raspberry pi will replace a P4 system, no problem.

How does it compare on single core benchmarks?

<comment><USER39> A bit stale on the Pi side (2015), but: [https://www.phoronix.com/scan.php?page=article&item=raspberr...](https://www.phoronix.com/scan.php?page=article&item=raspberry- pi-burst&num=2)

</comment></comment></comment></comment></comment></comment><comment><USER40> For some reason I thought this happened a long time ago.

<comment><USER41> They dropped 32-bit images sometime ago. This is about packages.

</comment></comment><comment><USER42> I hope Debian will drop x86_32 distro too, and finally will support 32-bit multiarch properly as a forced consequence. Cross-compiling 32-bit Mesa on 64-bit Debian is a major pain, due to multiarch being incomplete, multilib not working and so on.

UPDATE: Looks like Ubuntu isn't dropping just the distro - they want to drop multiarch packages as well. That's already nasty.

<comment><USER43> Huh? Can I get a pointer about Ubuntu dropping multiarch? As for Debian's multiarch, it's a work in progress like most things. If something doesn't work, please file a bug.

<comment><USER42> Looks like it. Check the article link, and these:

 _> Q. Doesn't Steam use 32 bit libraries? How can I play my games?_

 _> Q. How can I run 32-bit Windows applications if 32-bit WINE isn't available in the archive?_

It means they are dropping 32-bit packages for good, not just the distro.

I'm using GOG, not Steam. They don't commonly rely on bundled runtime. Proposed solutions with lxc and such are quite annoying. And it's not about 32-bit Wine, it's about WoW64 Wine requiring 32-bit libraries to run 32-bit stuff. Lot's of older games are 32-bit and will never be converted to 64-bit.

If there is no 32-bit multiarch, how are we supposed to build 32-bit Mesa and dxvk / d9vk for example? And if we can't, everything will be stuck with outdated versions. It's a huge mess they are pushing for. I hope Debain won't do this horror if they can avoid it.

<comment><USER11> Yeah, if I'm reading this right, I feel like everyone buried the lead here.

Dropping support for 32 bit _software_ is super sucky.</comment></comment></comment></comment>


Updates to Slack Terms of Service and Privacy Policy - <AUTHOR> https://slack.com/policies/upcoming <comment><USER2> So they're quite clear that the terms are now separating 'customers' from 'users'. Has anyone read through the whole changes? Should a concerned employee stop using DMs and 'private' channels?</comment>


Bedrock Linux 1.0alpha3 "Bosco" released - <AUTHOR> http://bedrocklinux.org/1.0alpha3/changelog.html

<comment><AUTHOR> I had hoped to have a video up in time to show off the changes with benchmarks and the like, that will have to be delayed a day or two. Apparently my family members are adamant that they are to spend time with me _today_.

</comment><comment><USER2> Not another Linux.

<comment><USER3> Well at least they are trying to band aid some of the self inflicted arterial stabbing wounds of fragmentation and incompatibility that the Linux ecosystem has accumulated over the years.

<comment><USER2> Yeah, I love the irony of fragmentation to address fragmentation.</comment></comment></comment>


0^0 = 1, 0, Undefined? - <AUTHOR> http://comp-phil.blogspot.com/2009/06/00-1-0-undefined.html

<comment><USER2> This article is totally wrong. 0^0 = 1 because it is defined by a group operation, not by "multiplying 0 by itself 0 times". It has to do with combinatorics or set theory (there are different ways to look at the problem):

Source 1: [http://en.wikipedia.org/wiki/Exponentiation#Zero_to_the_zero...](http://en.wikipedia.org/wiki/Exponentiation#Zero_to_the_zero_power)

Source 2: <http://en.wikipedia.org/wiki/Empty_product>

<comment><USER3> What do you mean by 'is defined by group operation'? Reals/integers with multiplication don't form a group.

'Multiplying 0 by itself 0 times' is what Wikipedia calls 'empty product'. For me is is good intuition, but that's a matter of taste.

AFAIK the usual convention is:

* in contexts where the exponent is varying continuously and a is a real number, a^b is undefined for a=b=0

* in contexts where the exponent is varying discretely (as an integer/natural number), a^b = 1 for b=0 and any a

Haskell quite nicely distinguishes between these two:

(^) :: (Num a, Integral b) => a -> b -> a

(* * ) :: (Floating a) => a -> a -> a

but it still gives 0 * * 0 and 0^0 as 1. (There shouldn't be spaces between asterisks, HN treats them as italics)

<comment><USER2> Reals form a group under multiplication. Integers don't, but they do form a commutative ring (addition, negation, multiplication).

<comment><USER4> > Reals form a group under multiplication.

I think his point was that 0 has no inverse. So in the literal sense, the reals are not a group under multiplication (although obviously, when somebody says "the reals are a group under multiplication", one usually interprets it as "R\\{0} is a group under multiplication".)

This is vaguely relevant to the issue at hand because we are doing 0 to the 0.</comment></comment></comment></comment>


Smoked by Windows Phone challenge has come a long way, over 50,000 wins - <AUTHOR> http://www.winbeta.org/news/microsofts-smoked-windows-phone-challenge-has-come-long-way-over-50000-wins#.T6lm5vNwSWE.hackernews <comment><USER2> Yeah, over 50,000 scams.</comment>


Dot.TK stores passwords in plain text [png] - <AUTHOR> http://lucb1e.com/rp/randomupload/dottk-paintext-pwd.png

<comment><USER2> Well, this isn't exactly proof, and I'll tell you why.

In their signup process, they might grab the pwd you entered in the registration form, generate the email, with password. Then send that email directly without storing it, while at the same time, inserting your password with an encryption into a database. Is it a good idea to send passwords by email? Well, no, but that's a different story. I don't know the actual implementation so you might be correct. But this isn't proof. What kind of email do you get if you need to reset your password by the way?

<comment><USER3> I get the password as well when resetting it: <http://lucb1e.com/rp/randomupload/dottk-paintext-pwd2.png>

<comment><USER2> Ding ding ding, now, that is proof :).

They might encrypt it with a passphrase but that's almost equally as bad. Good job on noticing!

</comment></comment></comment><comment><USER4> Receiving a plaintext password via Email is not proof that the password is stored in plaintext in the database.

It is proof that they are not using a non-reversible hash to store it in their database.

They could be storing it using a reversible encryption algorithm, of which there are many, and they are not considered "insecure".

Or, in the worst case, they could be storing it unsecured. It's definitely a possibility.

It's poor practice, for sure, to email someone a plaintext password, as email itself is prone to numerous attack vectors.

But given the overall lack of evidence and insight into their back end, you don't have enough to draw either conclusion.

<comment><AUTHOR> Technically correct, but since the password is readable in some way, it's in many ways the same as storing it in plaintext. If the database got hacked, odds are that the key is found too. Or if an admin is rogue, there is no stopping him.</comment></comment>


__init__.py can be a directory [bug]? - <AUTHOR> http://bugs.python.org/issue21784

<comment><USER2> Some filesystems allow reading from the directory node as though it is a file. In Plan9, for instance, that will return you a machine readable directory listing. You could do funky stuff with this _feature_ , if you were crazy enough :)

<comment><USER3> Minix did the same thing. For that matter, checking now on a FreeBSD box:

        %uname
        FreeBSD
        %cat .
        ?K?FRA?public_ftpGRA?%</comment></comment>


The State of the Blockchain in 2015 - <AUTHOR> http://jackgavigan.com/2015/02/06/the-state-of-the-blockchain-in-2015/

<comment><USER2> _The fact that some miners are suspending operations instead of continuing to mine and simply hanging on to the bitcoins mined until the price rises again suggests that they may lack the (fiat currency) funds to keep paying for electricity or that they're fearful that the price won't recover and they'll end up permanently in the red._

That's just stupid. No matter what your financial situation or what you think future prices will be, it doesn't make a lot of sense to mine bitcoins when you can buy them cheaper.

<comment><USER3> > That's just stupid.

I will point out your "don't mine if you can buy them cheaper" is nearly logically equivalent to op's "some miners are suspending operations instead of continuing to mine", especially when considering op said "they may lack the fiat" to pay for electricity or coins (assumption).

Negating something you agree with, even in part, _might_ be a sign of cognitive dissonance: [http://www.geekceo.com/entry/bitcoin-s- polarization](http://www.geekceo.com/entry/bitcoin-s-polarization)

<comment><USER4> > especially when considering op said "they may lack the fiat" to pay for > electricity or coins (assumption).

That's not the assumption. It is the conclusion. The wrong conclusion as gweinberg pointed out. If I can mine 1 bitcoin for $300 worth of electricity or buy one for $200, I should just buy instead of mine. The question of how many dollars I have is irrelevant for that.

<comment><AUTHOR> > If I can mine 1 bitcoin for $300 worth of electricity or buy one for $200, I > should just buy instead of mine. The question of how many dollars I have is > irrelevant for that.

That's a fair point.

I guess the only real difference between mining and buying is that electricity is usually paid for retrospectively, whereas buying requires you to have the money up front.

</comment></comment></comment></comment><comment><USER5> The blockchain is doing fine. Bitcoin speculation, not so much. The price has been going downhill for a full year now.

There have been two Bitcoin bubbles. The first was driven by Silk Road drug sales, and the second by evasion of China's exchange controls on yuan. Both of those uses have been stopped. Until someone discovers a new illegal use case for Bitcoin, it's probably not going anywhere.

<comment><USER6> Not arguing with you're overall point but drug sales have not stopped by any stretch of the imagination. There are more dark net market places now than ever.

</comment></comment><comment><USER7> >I doubt Bitcoin's first-mover advantage will translate into long-term success. Webvan pioneered grocery delivery during the dot-com bubble but ultimately went bankrupt.

It's worth noting that open-source platforms typically succeed due to the first-mover advantage, whereas companies may not. Further, because blockchains work, there is always an incentive for miners to join the longest chain (ergo Bitcoin)

</comment><comment><USER8> One of the links shown Satoshi Nakamoto saying they're not somebody who'd very publicly been 'exposed' as him. I figured it'd be interesting to see what else Satoshi has posted and saw this comment [0]:

> Dear Satoshi. Your dox, passwords and IP addresses are being sold on the > darknet. Apparently you didn't configure Tor properly and your IP leaked > when you used your email account sometime in 2010. You are not safe. You > need to get out of where you are as soon as possible before these people > harm you. Thank you for inventing Bitcoin.

It's the last comment posted on that account from September - is there any more information on this?

[0] [http://p2pfoundation.ning.com/forum/topics/bitcoin-open- sour...](http://p2pfoundation.ning.com/forum/topics/bitcoin-open- source?commentId=2003008%3AComment%3A55276)

<comment><USER9> No. I've written it off as a blackmail* or concern-troll: the information or claim of such a listing has never surfaced since, no one has claimed to have the dox though the main use would be to leak to a journalist or something (since it's unlikely he'd pay blackmail for such flimsy evidence), such dox would be almost impossible to verify (except maybe the passwords), a Satoshi IP arguably already has been found with minimal notice paid by anyone, and the mechanism is odd - he did have Tor configured correctly for everything else, and some of his mail services specifically scrub IPs from mail headers so an incorrect configuration wouldn't matter.

* I believe there was at least 1 P2P foundation post which included addresses for payment at the time, although those seem to have been deleted now.

</comment></comment><comment><USER10> Bitcoin's 7tx/sec limit is too low for any mass adoption.

<comment><USER11> The '7t/sec' limit isn't that relevant at this point. Currently, average tx/second is closer to ~1. [1]

Additionally, this limit isn't static. [2]

It is pretty naive to think that the community isn't aware of this (non) issue. [3],[4]

[1] [https://blockchain.info/charts/n-transactions](https://blockchain.info/charts/n-transactions)

[2] [https://en.bitcoin.it/wiki/Scalability](https://en.bitcoin.it/wiki/Scalability)

[3] [https://bitcointalk.org/index.php?topic=608561.0](https://bitcointalk.org/index.php?topic=608561.0)

[4] [http://blog.bitcoinfoundation.org/a-scalability- roadmap/](http://blog.bitcoinfoundation.org/a-scalability-roadmap/)

<comment><USER12> I feel like most discussions of this ignore the downsides. You can increase the blocksize which will result in a higher theoretical transaction rate, but then you're burning more resources on orphan blocks , DDoS, etc. So while you can increase it, there are serious downsides to doing so past a certain point which still ends up being a lot lower than what's needed to have the acceptance level of Paypal.</comment></comment></comment>


EU approves new law requiring users approve all cookies. - <AUTHOR> http://blogs.wsj.com/digits/2009/11/11/europe-approves-new-cookie-law/

<comment><USER2> Blame BT (British Telecom)

They introduced an ad service called phorm (without asking anyones permission) it tracked all your online activity and then removed the regular ads from pages its ISP served and replaced them with ads that would be interesting to you based on your browsing history. It got into trouble when it removed ads for charities and placed porn ads in childrens sites.

Because it worked at the ISP level, clearing your history or cookies had no effect. They then introduced a cookie to allow you to opt out and claimed that by deleting this cookie you had volunteered to opt in!

The Eu investigation ruled that it broke wiretap laws but the UK refused to prosecute (BT is privatized but is almost a monopoly and has strong links to government)

</comment><comment><USER3> "Cookies, small programs that can be used to track Web movements, ..."

And the masses stay ignorant.

<comment><USER4> Indeed, and part of the job of an exceptionally good developer is to avoid having the masses have to know about things they shouldn't need to know about. Don't laugh at people's ignorance when the whole point of User Interface/Experience Design is to ensure that people _don't_ have to know how things work.

EDIT: coverdude in his/her reply to my comment makes an important point that I missed - it's not the masses being laughed at, it's the "journalist." Yes, point taken, the author really, really ought to know better.

<comment><USER3> I laugh at this author's ignorance because cookies have been small innocuous pieces of text for the last decade and a half. No one could have clued this guy in? He writes for the Wall Street Journal for Pete's sake.

</comment></comment></comment><comment><USER5> The article is wrong. The actual new law states :-

Where it is technically possible and effective, in accordance with the relevant provisions of Directive 95/46/EC, the user's consent to processing may be expressed by using the appropriate settings of a browser or other application.

</comment><comment><USER6> Browsers already approve all cookies based on the user's wishes. A website can only send you a cookie and hope you send it back--it's completely up to the user if they want to return the cookie. Not to mention you'll have to set a cookie when someone says they don't want any cookies. What a mess.

<comment><USER7> "Where it is technically possible and effective, in accordance with the relevant provisions of Directive 95/46/EC, the user's consent to processing may be expressed by using the appropriate settings of a browser or other application."

Looks like there won't be much of a change for HTTP cookies, as browsers already do this.

<comment><USER8> Why do we need a law to tell us that browsers are allowed to do what they already do, out of curiosity? Or is this just politicians doing their thing?

</comment></comment></comment><comment><USER9> When a user opts out, how do you remember they did opt-out? Using a cookie?

<comment><USER10> _The new legislation does offer an exception for when a cookie is "strictly necessary"_

Apparently.

</comment></comment><comment><USER11> This is only one step removed from the story of the Tennessee legislature passing a law declaring that pi = 3. On the other hand, that never happened.

<comment><USER12> No such law was ever passed, but Indiana did come close back in 1897, apparently:

[http://www.straightdope.com/columns/read/805/did-a-state- leg...](http://www.straightdope.com/columns/read/805/did-a-state-legislature- once-pass-a-law-saying-pi-equals-3)

Apparently the trend of legislators voting for things that sounded good but that they didn't understand in the least has remained in changed for at least the past 112 years.

</comment></comment><comment><USER13> Wow, people here seem really upset about this. I personally think it's great. Disabling cookies in my browser is like throwing the baby out with the bathwater. In addition to not being tracked by ads, I can't manage my bank account online or log into Hacker News. Not fair. This law makes it a requirement for me to be able to opt out of ad tracking, but still be able to log into websites ("essential purposes").

This should not impact ad revenue either; the content site simply says "by proceeding past this page, you consent to being tracked across the entire Internet by our advertisers and anyone they feel like selling your browsing habits to". Then the user can choose between privacy and your content. Most will choose the content, judging from grocery store "preferred customer" programs, and so on.

It's important that regular users be able to easily opt out of cross-site tracking like Google Analytics; as many people would be outraged by the data it collects, if only they knew such a thing was possible. Now they know, because you have to tell them what you're doing. I think that's a good thing.

</comment><comment><USER14> So they want web developers to create an opt-out option on each web site? That's completely redundant. The people who don't care are going to ignore the option (or click ok on the popups if it comes to that), and the people who do care probably already have their browsers asking them whether or not to store cookies from a given site.

<comment><USER15> Why would you let common sense get in the way of a perfectly useless piece of legislation...

They're so hopelessly behind with this stuff it is amazing.

</comment></comment><comment><USER16> This is why unelected officials shouldn't try to make laws about things they have absolutely no idea about.

<comment><USER17> That applies to elected officials, for that matter.

</comment></comment><comment><USER18> So, in order for Google to get the consent to place cookies on systems, it just simply displays an ad in place of a banner ad saying:

"Click here to opt-out of cookie tracking"

and in smaller letters

"By visiting another page with ads from Google, you consent to allowing Google to place cookies on your system"

Yay. That takes like 2 cents out of Google budget. That takes care of that stupid bill.

PS: The "Technically necessary" can be applied to anything. For Banner Ads to work, you can argue that it is necessary to use cookies.

</comment><comment><USER19> I hate to say it but doesn't this make print advertising all of a sudden far more relevant again? Is there any possibility that this was helped along by gentle lobbying from the newspaper industry?

<comment><USER20> Well, it at least puts on-line advertising on the same footing as print advertising, analytics wise. No more highly targeted advertising, no more avoiding showing the same ad to the same user multiple times, no more being able to tell who looked at your ad or why or where they came from, no more being able to determine how qualified ad traffic is. So really, it's a significant step backward.

</comment></comment><comment><USER21> Don't mistake the journalist's writeup with the actual law, and perhaps think about restraining your knee-jerk 'EU is awful' and 'bureaucrats are clueless'. Privacy laws in the EU are much stricter than in the US, and a good thing too. I've been reading the same kind of comments about the Microsoft anti-trust decision, and when I looked into it I got a good appreciation for the thinking behind it. But it took some more effort than just jumping to conclusions about stupid officials in their ivory towers.

<comment><USER22> <http://www.out-law.com/page-10510>

</comment></comment><comment><USER23> Another good article, with excerpts from the actual law is here: <http://www.out-law.com/page-10021>

<comment><USER5> The article is in fact wrong. See my comment above....

</comment></comment><comment><USER4> See also <http://news.ycombinator.com/item?id=931596>

where there is already much discussion

<comment><AUTHOR> Thanks. I looked for a post on this already and didn't find it.

<comment><USER4> No problem - I remember things like this and knew the search terms. Then <http://searchyc.com/> is your friend.

</comment></comment></comment><comment><USER24> Couldn't this law have been obsoleted simply by telling people about the "Allow cookies for these specific sites" settings in browsers?

<comment><USER18> You could argue that. Technically the user consents to cookies simply by allowing cookies to be placed in the browser.

</comment></comment><comment> cool-RR I think the title is misleading, it sounds like users are now required to accept all cookies.</comment>


The Invention Mob, Brought to You by Quirky - <AUTHOR> http://www.nytimes.com/2015/02/15/technology/quirky-tests-the-crowd-based-creative-process.html

<comment><USER2> _Still, what Quirky has done for many inventors is to make placing a product on store shelves an attainable aspiration. And that has attracted a crowd of enthusiasts: a million registered users, 66 percent male, with the largest single cluster between the ages of 26 to 36._

The rapid metamorphosis from Kluster -> NameThis -> Quirky has been pretty astonishing. The most brilliant aspect of this company is that it doesn't just "say" it values the community for its ideas and contributions. It really does. Ben is the rarest kind of CEO ... charismatic but _honest_.

Over a million community members today... and I was one of the very first (#63), having earned, as of today, just a shade under $20K in royalties.

There's a huge value and business opportunity for companies who are honest enough to adopt this model. Most startups (especially those in YC land) allocate profit sharing _exclusively_ to early employees and the VCs. But the Quirky model really turned that idea around and offered one of the first profit-sharing opportunities to folks from userland. This is a company to be greatly admired, and it's already leagues ahead of the game in many respects.

</comment><comment><USER3> I spent some time on Quirky ~3 years ago, trying to push designs for my desk 'leg hammock.'

At the time it suffered from the problem of everyone ganging together to only vote for people who were regular users in the community who had gotten to know each other. It disadvantaged a lot of people who had great ideas and designs, who weren't interested in all the effort to build 'alliances.' The Quirky team acknowledged it was a problem in some private emails, but I really don't know if they ever changed the system to minimize that, maybe they did? It's a shame because I would have used it more if they had solved that problem.

</comment><comment><USER4> Quirky picks ideas at their own risk trusting that they will be successful. They put 100% of their own money into developing the ideas into products and getting them into stores around the world. Some they win and some they lose. The spinoff of WINK is great encouragement of the continued success of Quirky. It's exciting to see what their next spinoff may be.</comment>


Napster Raises Prices; Tell Me Why You Use Napster Please - <AUTHOR> http://www.centernetworks.com/napster-raises-prices-why-subscribe <comment><USER2> _Uhm, I don't get it Adam - why not just load up the radio function on iTunes and get all the songs you want all day?_

Is the iPod "radio function" like FM radio or similar? (I honestly don't know) Does Napster let you choose what songs you want?

If so, there's your answer.</comment>


Ask HN: Best field for a computer engineering PhD? - <AUTHOR>

I am about to begin my active search for a PhD in computer engineering. However before going further, I want to know what is be the best field to attain expertise in (according to HN); i.e. what type of knowledge is the most valuable?<p>The field of machine learning and data mining is the one that seems to offer  the most opportunities today, with the continuing growth of the internet and the ever increasing amount of data available. I would like to study evolutionary and genetic algorithms - is there interest for these techniques as well? <comment><USER2> The best field for you is whatever you're interested in the most. If you're interested,

That being said, I'm personally highly interested in data mining in terms of natural language search.

</comment><comment><USER3> There are many local optima, not one "best field."

Evolutionary and genetic algorithms remain out of vogue in the mainstream machine learning community.

</comment><comment><USER4> If you are going to a PhD, do it in something you like to do, even if it does not pay (then or later).</comment>


What to look for when buying knives (2007) - <AUTHOR> http://www.theatlantic.com/magazine/archive/2007/04/never-a-dull-moment/305689/?single_page=true <comment><USER2> Ugh - Carbon steel is not easy to sharpen because it is soft. It is because it contains fewer carbides. Typical stainless steel alloys used in production knives are hyper-eutectoid, and the excess carbon (anything > .77%) ends up forming carbides with the alloying elements. These carbides - Tungsten, Chromium, and Vandium carbides, are harder than the surrounding matrix of hardened and tempered steel, and can only really be "cut" with a diamond stone. If you only have a water stone, the high proportion of carbide in stainless knives makes it difficult to sharpen because the exposed bits of carbide in the matrix are harder than the stone and don't get removed.

Another issue with commercial knives altogether is that frequently the mass market ones are soft by design (<58 HRC). This saves costs in the post-heat treatment grinding into final form. (knife blanks are oversized when heat treated so that any slight warpage during quench/temper can be ground away). handmade knives are usually not done this way, and so many hand makers are comfortable going much harder since they are less worried about the economics of hard material removal at mass scale.

(Source: Have spent several years learning to make knives)

For good browsing, check out hypefreeblades.com

<comment><USER3> Pardon me if I use the wrong nomenclature or if this question is wrong in some fundamental way: Would the higher hardness of the carbides mean a high-carbide knife needs less frequent honing/sharpening when used in regular cooking tasks?

<comment><USER2> Carbides are a double edge sword. On the one hand they impart "wear resistance" but only if the heat treatment is done right (read: very precisely). Frequently, that is not how commercial stainless is done, though. On the other hand, they can make it harder to sharpen.

Usually, good heat treatment can lead to fine grain carbides, while bad heat treatment does not get the carbides into solution very well prior to quenching and they get too large. (This is not the same thing as grain growth). When they are big, they impart roughness to the edge and difficulty of sharpening with no benefits in wear resistance as the steel matrix around them wears away.

If you are interested in this, I can't recommend John Verhoeven's "metallurgy for bladesmiths" enough. It is a free PDF if you search for it. (If you like open source things, I recommend reading the foreword especially).

</comment></comment></comment><comment><USER4> "Carbon steel is soft" \- uh, most metal is probably going to be soft if it isn't heat treated, but carbon steel can become so brittle it shatters when you tap it.

And Damascus steel isn't particularly good. It's mainly an artsy gimmick. But that's not to say you can't still have a strong, sharp Damascus blade. The visual has nothing to do with how the knife performs.

He's right that you only need three knives: A large thick chef's knife, a smaller thin knife, and a generic serrated knife. None of these have to be good at all to cook with, but you will enjoy cooking more with purpose-made cutlery made of hard steel that you can simply re-hone to keep them working efficiently. A "good" stainless steel is often perfectly fine, but most often it will not stay as sharp as long.

But if you're new to culinary knives, you should not go out and buy good knives. You should buy a pack of a bunch of different looking shit knives for about $30-40, the heavier the better. Practice cooking with them. You will notice some knives are annoying with certain cutting techniques, and how your shit knives may actually be too shitty to practice certain techniques. Hopefully you will learn to take care of your knives, what kind of cutting surfaces to use, how to hone or sharpen them, etc so when you go to buy a good set, you get what you actually want to use.

After cooking with shit knives, you may learn you don't mind knives that can't cut a tomato without poking through the skin first and then slicing from the meaty part. But that's basically how you choose a knife - whether your knives are sharp or will stay sharp, whether they "feel right", how much you care about maintenance. If you don't care about any of this, use shit knives. If you are a dork like me, make your own knife.

If you do want a good knife but don't want to spend the money, learn about good manufacturers of older knives and look for some at a local flea market. You may only need to sharpen it or maybe put a new edge on it, both of which are easy once practiced. No need to spend $150 on a knife you can find online or in a flea market for $25.

<comment><USER5> Keeping knives sharp is 90% of the battle.

<comment><USER6> Knives stay sharp pretty easily, the trick is keeping the edge straight. Learn to use the stick that came with your crappy knife set and you will get a good year of daily use out of each sharpening. Additionally, keep your blade dry after cleaning to avoid pitting, which happens most rapidly on the edge.

</comment></comment></comment><comment><USER6> This guy is clueless about metal alloys, and why they are, omitting the general shape, the most important quality of a 'good knife', followed closely by handle and balance. You can re-edge any knife, so talking about how you can finish a stamped steel blade just as well is missing the point, quite literally.

</comment><comment><USER7> I want a knife that is made out of a really strong metal that holds its edge. I don't mind sharpening my knives. I just dislike sharpening them _all the time_.

What is the best type of steel or alloy for me?

<comment><USER8> I use ceramic knives for the very same reason. Guess it doesn't cut it for you if you insist on this: "made out of a really strong metal"

<comment><USER9> Ceramic knives are quite resistant to wear, but once worn you can essentially toss such a knife into a garbage can, that is how hard they are to sharpen. They also lack in toughness and are quite brittle so are unsuitable for some common tasks...</comment></comment></comment>


I'm making a new Python library that lets you write less code to do more things - <AUTHOR> https://richienb.github.io/quilt <comment><USER2> What things for example? Both the documentation and the source code seem empty.</comment>


British student faces extradition to us over copyright infringement - <AUTHOR> http://www.theinquirer.net/inquirer/news/2079590/british-student-extradition-copyright-infringement <comment><USER2> Something is off here. This cannot be the entire story.

The guy is from UK and linking to some content in the US, additionally he says:

      the server was not based in the US

How could he possibly be extradited to the US? I mean, I can see how US might want that, but I just cannot see how UK would go along with it.

Are there relevant details missing in the story? Could it happen because the content he linked to is copyrighted in the US? Anyone with insight know what is going on here?</comment>


Ask HN: How does Amazon keep its best engineers from quitting? - <AUTHOR> <comment><USER2> Who says that they do? Amazon is well known for having a rather high level of acquisition of new talent and a relatively high level of turn over. Their HR department literally looks all over the world for new talent constantly. So I would say they don't keep their best engineers from quitting.

<comment><USER3> At my previous company I remember some devs got fed up with things and jumped ship for Amazon. After about 6 months only one was still there.

</comment></comment><comment><USER4> [https://sites.google.com/site/steveyegge2/tour-de- babel](https://sites.google.com/site/steveyegge2/tour-de-babel)

Read the bit about Lisp. Explains what Amazon did And how it went wrong.

</comment><comment><USER5> Noncompetes would be one way. They are based in Washington which unlike California allows noncompete agreements.

<comment><USER6> they have a pretty bad reputation already. I'm sure they won't be able to hire anybody with non-competes. Remember there are Microsoft/Google/Facebook and many startups in Seattle; ppl have choices.

<comment><USER5> I'm not so sure they really want the best candidates, as they come at a premium. They may settle for someone desperate for income they can lock in with a non-compete, then use them up and wear them out.</comment></comment></comment>


Show HN: OpenFaaS - Serverless on your terms - <AUTHOR> https://github.com/openfaas <comment><USER2> I've been trying to run PHP functions on Aws lambda for sometime. The solutions provided so far[1] are really complicated and serverless framework doesn't have amy inbuilt templates for PHP.

Anyway though I totally don't get this (using a mobile phone will watch the video when I get home) but the thing that really got my eye was I can write in any programming language. So can this help me accomplish what I'm trying to do?

[1] [https://aws.amazon.com/blogs/compute/scripting-languages- for...](https://aws.amazon.com/blogs/compute/scripting-languages-for-aws- lambda-running-php-ruby-and-go/)

<comment><AUTHOR> PHP is pretty easy to write with OpenFaaS. Here's an example of how the CLI works - [https://blog.alexellis.io/quickstart-openfaas- cli/](https://blog.alexellis.io/quickstart-openfaas-cli/)

I can intro you to the guy who wrote the PHP template.

If anyone would like to join our Slack Community - ping an email to me at email@example.com.

<comment><USER2> Thanks for the reply. It helped me to get a basic understanding of Openfaas. The only thing the article didn't mention is how to move the docker image to aws lambda and invoke it via aws. sorry I'm a total noob but i will try to find out more.

</comment></comment></comment><comment><AUTHOR> We actually have a serverless function running right now that takes GitHub Star events and posts your avatar as a Polaroid over here -> [https://twitter.com/alexellisuk_bot](https://twitter.com/alexellisuk_bot)

Here's the code including stack.yml that shows how the functions are built/deployed - [https://github.com/alexellis/faas-twitter- fanclub](https://github.com/alexellis/faas-twitter-fanclub)

All the people who have been staring the openfaas/faas repo ove the last few days have triggered it and are on the feed.

</comment><comment><USER3> We're working mostly with the Serverless framework. Cool to see you're working on a plugin for that. Will give it a spin once that's ready. Any timeline for that?

<comment><AUTHOR> We have a CLI [1] for OpenFaaS which gives a better experience than the Serverless Inc. Framework format along with more native integrations. Example stack.yml file [3].

The integration with serverless framework is functioning and if you'd like to be involved with testing ping me for a Slack invite. I'll connect you to the contributor who is leading it.

[1] [https://github.com/openfaas/faas-cli](https://github.com/openfaas/faas- cli) , [https://blog.alexellis.io/quickstart-openfaas- cli/](https://blog.alexellis.io/quickstart-openfaas-cli/)

[2] [https://github.com/openfaas/serverless- faas](https://github.com/openfaas/serverless-faas)

[3] [https://github.com/alexellis/faas-twitter- fanclub/blob/maste...](https://github.com/alexellis/faas-twitter- fanclub/blob/master/stack.yml)

<comment><USER3> Thanks! Let me check this out a little further.

<comment><AUTHOR> Also goes without saying - welcome to join us on Slack. Ping firstname.lastname@example.com

</comment></comment></comment></comment><comment><USER4> Sorry for my ignorance - what does 'serverless' exactly mean?

<comment><AUTHOR> Glad you asked, I wrote up about it here - Introducing Functions as a Service (OpenFaaS) - [https://blog.alexellis.io/introducing-functions-as-a- service...](https://blog.alexellis.io/introducing-functions-as-a-service/)

</comment></comment><comment><USER5> For certain values of "your terms"

<comment><USER6> Care to expand?

<comment><USER5> It relies on docker. So if you don't want a maintenance nightmare you're SOL.

Something that works via libvirt to allow multiple backends would honestly be a much nicer option.

<comment><AUTHOR> If you want to use a completely unmanaged solution checkout the Hyper.sh integration - [https://github.com/hyperhq/faas- hyper](https://github.com/hyperhq/faas-hyper)

We're also looking at ACI integration and I believe GKE will work out the box with our native Kubernetes back-end

<comment><USER5> I don't think you understood my issue at all.

The things you mentioned are all just services providing hosted docker.

<comment><AUTHOR> I should have explained that Hyper.sh gives a Docker interface but runs on VMs without Docker. What's the specific gripe with Docker or containers?

<comment><USER5> Not containers, docker.

Libvirt would allow someone to run this with practically any "virtualisation- like" system.

<comment><AUTHOR> You may have an opportunity there then - here is the CNCF's Serverless working group's paper - [https://docs.google.com/document/d/1UjW8bt5O8QBgQRILJVKZJej_...](https://docs.google.com/document/d/1UjW8bt5O8QBgQRILJVKZJej_IuNnxl20AJu9wA8wcdI/edit#heading=h.yiaul8is1ki)

I believe all the Open Source projects are using Docker at some level via K8s or closer to the metal with runc.</comment></comment></comment></comment></comment></comment></comment></comment>


GCC gOlogy: studying the impact of optimizations on debugging - <AUTHOR> https://www.fsfla.org/~lxoliva/writeups/gOlogy/gOlogy.txt <comment><USER2> More times than I'd like, I've encountered GDB refusing to show the value of a variable, claiming it's "optimized away".

No, it's sitting right there in a register, and I know that because I just stepped through, instruction-by-instruction, the code that computed its value. Fortunately it does not claim the register has been "optimized away" too, but the experience of debugging optimised code could definitely use a lot of improvement.

(This isn't exclusive to GCC/GDB either --- I've seen the same with MSVC and Visual Studio, but in my experience the latter tends to be somewhat better.)

<comment><USER3> (I wrote a bunch of gcc's initial support for optimized code debugging, as well as the initial associated gdb support for evaluating location lists and expressions, which is what makes this all work under the covers)

Given the invariant of "debug info does not affect optimization", you end up with plenty of cases where your _only_ possible choices are "give the user a possibly wrong value for the variable" or "say the value does not exist anymore".

Most of the time, the latter is done instead of the former.

You also unfortunately cannot just mark them so the debugger tells you "this may be wrong, it may be right, good luck".

Historically, compilers tried doing the former, users complained enough that they switched to doing the latter.

<comment><USER4> I wonder if the error message could just be better. Instead of using the excuse that the variable has been "optimized away", maybe gdb should just say it "cannot determine variable value due to optimization".

<comment><USER5> Or even: this variable has likely been optimized away, but you might still find it in $rax.

</comment></comment></comment></comment><comment><USER6> Thanks for sharing. I wish there was a similar article regarding the different quirks of Link-Time Optimization and its effect on debugging, and how that impact has changed since GCC 4.x. Also, an explanation of how LTO's link-time optimization flags are chosen, and what happens when they're absent. And most importantly, why -O0 has an impact on LTO when it's passed at link-time, but eg. -O2/-O1 at compile time.

</comment><comment><USER7> What I'd appreciate is if GDB, when stopped during execution, could show _all_ of the source statements that are currently 'in progress' (for the common case under optimisation where the execution of several source statements are interleaved). I don't know how feasible that is, though.

<comment><USER8> Visual Studio has something called "Parallel Stacks" [1] which shows a graph of all the stacks of every thread of the application. It's very powerful when debugging multithreaded code.

[1] [https://docs.microsoft.com/en- us/visualstudio/debugger/using...](https://docs.microsoft.com/en- us/visualstudio/debugger/using-the-parallel-stacks-window)

<comment><USER9> I believe GP is not talking about thread parallelism, but rather the compiler- controlled instruction reordering. Compilers typically reorder instructions in the hope that it will improve performance. For example if you have v+=2, the compiler can choose to load v into a register, and then continue with the rest of the statements, and ten instructions later perform the actual addition and store it back into memory.

<comment><USER7> Yes, that's what I was referring to. When single-stepping such code you'll often see it skip backwards and forwards between the interleaved source statements.

</comment></comment></comment></comment><comment><USER10> I kept reading and reading wondering, what is the point of this document? I make it 1/3rd through.

It seems well informed, but it lacks any coherent structure. And throughout I couldn't deduce what the point was. Like a well educated rant.

<comment><USER11> I used to send mails like this at work to people somewhat often, selecting mailing group according to subject. I'd typically have spent a while trying to figure something out, met with some success, and figured I might as well send a summary to anybody that could be remotely concerned. Maybe save somebody else the bother in future.

Most of the time, nobody cared. (Which is fine, I never did this stuff for no reason, the write-up was typically beneficial for me personally, and if nobody else cared, that's OK by me.) But the odd one would prove useful and end up getting re-forwarded multiple times, and that happened often enough that I kept doing it.

(I use the past tense because I do contract work these days, and that works differently.)

Leaving aside the justification for this sort of thing in general, and moving on to why you might be interested in this particular note: suppose you'd always just built your code at one of either -O0 (shit code, but works well with any debugger), -Os (slightly less shit code, debugging probably tolerable) or -O2/-O3 (decent code, but debugging is a pain - and I always knew the assembly language for every target! The people that only knew C++ had a devil of a time).

So this works, and you're used to it, and what better argument for anything could there possibly be. But you probably wondered whether you could do better, and with this in mind you've probably looked at the gcc manual and noted that there's this huge pile of other sub-options. What if you tweaked those, you wonder? Would that make things better? Would it make them worse? If you only had the time to investigate which would impede debugging, and which you could just pop into your debug build with impunity, safe in the knowledge that it wouldn't cause you any difficulty! If only you had the sort of more in-depth knowledge of compiler internals required to make this sort of judgement by yourself, rather than just go through the 500,000 combinations of options to try each one in turn! And/or if you only you had somebody on staff who could just try this stuff out and write you a summary! But you don't, and you don't, and you don't, and you have a product to finish anyway...

So this document might at least be mildly interesting.

<comment><USER10> I appreciate your comment and its perspective.

I spend a lot of my time optimizing code switching between,01 and 03.

I am genuinely very worried about the trade-off between optimization and pragmatism.

At the same time, I am limited. This very useful analysis would help me a lot if it providied an executive summary.

Non-linear debug builds are obviously harmful.

</comment></comment></comment><comment><USER12> If you approach debugging in a very minimalist way,

you should never use a debugger

because it only serves to complicate things

using the I/O subsystem to debug your program

is a far more efficient way to debug.

If you do things this way,

you orthogonalize the optimization side of your compiler

from the mess created by trying to assist the debugging process

via the rather complex and intrusive (from the compiler's perspective) component called the debugger

<comment><USER13> except it's much faster to put a few breakpoints than to recompile your code each time you want to add/remove a logging statement.

<comment><USER14> > except it's much faster to put a few breakpoints than to recompile your code > each time you want to add/remove a logging statement.

that reeaaallly depends. I had cases where adding a printf and recompiling would take mere seconds and a gdb startup on the order of 3 to 4 minutes because recompiling only changes one shared library while GDB has to load all of them.</comment></comment></comment>


Journalist questioned by police after reporting Facebook security flaw - <AUTHOR> http://thenextweb.com/facebook/2011/05/17/journalist-quizzed-and-ipad-seized-by-police-after-reporting-facebook-privacy-bug/

<comment><USER2> When I see security vulnerabilities I rarely get involved because the party with the vulnerability will become suspicious of you. It's not worth the hassle.

<comment><USER3> It's this kind of reaction that makes our technological toys less secure. It's this kind of reaction that the Ominous Large Corporation _wants_ us to have.

The standard belief is as follows: being proactive about privacy and security costs money, and if we don't _have_ to spend money we won't. Most people, the ones we're crowdsourcing or selling to advertisers, don't understand and won't care who actually screwed up - we'll blame the hackers and that will limit negative perceptions.

</comment></comment><comment><USER4> Why do people assume that this is some kind of giant Facebook conspiracy? From the article:

" _According to Grubb, security expert Christian Heinrich demonstrated in front of the delegates how he had managed to acquire privacy-protected photos of the wife of fellow conference speaker Chris Gatford, who is Director at HackLabs._ "

Isn't it more likely that the police are investigating charges against Heinrich in relation to the presentation?

<comment><USER5> Perhaps it's a misunderstanding of Australian police investigations, but I wouldn't expect them to arrest a witness. If Grubb was really arrested, that suggests (to this American who doesn't know anything about Aussie police) that someone accused him of a crime. Facebook has a motive; they want journalists to think twice before reporting on Facebook privacy flaws. Nobody else seems to have a motive. Not that there's any point in jumping to conclusions at this point -- surely there will be more information available soon.

<comment><USER6> The police say he wasn't arrested.

He claimed in a tweet that he was, but I kinda doubt it -- for starters he wasn't arrested _for_ anything, and secondly if you _are_ under arrest are you allowed to keep your phone and tweet all about it?

So, was he being over-dramatic, or did he genuinely believe he's under arrest? (Oh, and a handy hint: if the police ever ask you to go with them then make sure you ask 'em whether you're under arrest or not.)

</comment></comment></comment><comment><USER7> I'd really like to know what they mean here by 'external servers' ... I really thought that FB has acres of it's own servers, no ?

<comment><USER8> Presumably CDN servers whose job is just to serve up the content, not to deal with who is logged in or who has access to view which content?

</comment></comment><comment><USER9> Either Facebook has big pull in Oz or the Queensland police are quite proactive. Either way, they rank 22nd on freedom of the press, not exactly a Scandinavian country.</comment>


Ask HN: How much of your workday do you spend re-generating yourself? - <AUTHOR> I am a relatively junior software developer. Because it is not my first career, and I have done some  intense/difficult things in the past, I do not have a problem slogging through an 8 hour day (even working through lunch) -- or more. However, a conversation with another developer recently made me wonder if I am approaching things wrong.
He stressed the need for a fresh mind. Admittedly, although I can always push myself through the day, not all of my hours are created equal. On an average day, I believe my coworker "works" less than I do (for example, measured by time his editor is open). Unfortunately, we can't compare output very well, because he also has more experience than I do, and we have different type of roles. (The fact that he's more experienced than me is why I'm looking into his argument and gathering more info.)
Tactically speaking, I would not call what he does "taking a break". It's like 45 minutes or an hour of rather meaningless stuff (YouTube videos, etc.), and sometimes he  involves others (easy to do in our open floor-plan office).
So my question is, if you are a knowledge worker, how much of your time at work do you spend regenerating/renewing yourself?
Is the fastest way to progress in my career to do what I'm doing, or what my coworker does? That seems like a simple question but at least part of advancing is appearances (which admittedly don't pertain to actual capabilities in many cases). Is it better to be pushing my brain in the way that I'm doing, or to just operate from a fresh brain all the time by taking many breaks like my coworker?
Enlighten me. <comment><USER2> I work in devops. So I can easily have quiet developer time and operational issues appearing out of nowhere. We're used to this mixture. "Crunch time" is only for short term thinking.

So, in a perfect day, do you want to be an employee mashing the keyboard all day with no break? Or just sitting there staring out the window? Logically both extremes are unrealistic.

Now, choose a reasonable mixture. Does that look like 75% mashing of keys / coding / meetings / etc and 25% staring out the window? Maybe it's 90/10? Or 60/40\. No perfect answer exists: the only answer is "it depends".

A work week is not a sprint. It's more like a marathon. Each checkpoint is to be met. Slow down or speed up as necessary. This is how I experience dev ops. Some hours of a week are "get it done NOW". Others are "do nothing - all is calm". A few are "we'll need this next month, need to make some progress today". Plenty are "end of week" or "end of day" style tasks.

Results matter.

<comment><AUTHOR> Interesting response. My take-away is to optimize for more than just a given day, because not all days/weeks are created equal in their demands. Thank you.</comment></comment>


Boeing 787 Catches Fire at Heathrow - <AUTHOR> http://www.nytimes.com/2013/07/13/business/boeing-787-catches-fire-at-heathrow.html?_r=0 <comment><AUTHOR> Turns out there was a story posted already. I looked but didn't see it before posting this one.

You can find it here: [https://news.ycombinator.com/item?id=6033534](https://news.ycombinator.com/item?id=6033534)</comment>


How to find incredible .com domains - <AUTHOR> https://whoapi.com/blog/1644/a-fun-new-and-creative-way-of-looking-up-incredible-com-domain-names/ <comment><USER2> Thanks for sharing Oliver!</comment>