Trackers - <AUTHOR> http://jacquesmattheij.com/trackers <comment><USER2> Believe it or not, some stores sympathise with you. They might actually be run by people like you, people who read your story.

They still want to know how you proceed round the store, because that helps them optimise shelf layout, identify hard-to-find items, and so on. So yes, they might use the standard in-store CCTV to observe your journeys, and when they figure that you and people like you always have difficulty finding the eggs (seriously - why is it always so hard to find the eggs?), they'll move the eggs somewhere more prominent, so they can sell more eggs and you can buy what you came to buy.

But that's as far as it goes. They don't follow you out the store, let alone into your bedroom. They don't match anything with third-party data, let alone your mobile phone number. The store just wants to know where to put the eggs.

Unfortunately, your bouncers have simply been told to "hurt them if you have to, I've really had enough of it". So last time they came in, they smashed the CCTV cameras. The store-owner remonstrated with them a bit but the whole debate around bouncers has become so polarised that there was really no point arguing.

\---

And if this metaphor seems a little obscure, this is why it is irresponsible, populist and ultimately self-defeating for uBlock and chums to block self- hosted Piwik and other such internal analytics tools. Because some of us are trying to do the right thing and your bouncers are still beating us up.

<comment><USER3> I find it interesting that a lot of content producers have feel entitled to users' participation in analytics at all.

Sure, it may be frustrating when a user blocks tracking tools (especially self hosted ones) but that's the their choice.

We got by for decades without analysing user habits (even in a local only context, without correlation with third party data). There are so few examples of cases where analysing user behaviour was a make or break factor in a store's survival. Sure, it can be useful to know what a user looked at and, as you suggest, how difficult it is to find the eggs. But there are better ways.

Physical stores at one point (and still now, in many cases) respect that user choice. Want to participate? Get a loyalty card. We'll watch how you spend, but we'll give a little something back to participants.

On the web, the solution is simple. Do it on your application servers back end. Have your request handler (which should probably know a lot more about your user _in the context of your application_ than any third party tool) log user requests and actions. You'll be able to tie data gathered to a logged in user and their local purchase or browsing history.

You'll get to know your user better and you'll avoid third party tools that creep out a growing proportion of your users.

You're not entitled to participation in analytics.

<comment><USER4> In the "good ol' days" (TM the shop-owners in a community knew quite a lot about their customers.

Oh Mary just gave birth, Henry is currently sick, Walter likes his coffee a little stronger, James a little weaker (something with his stomach). Danielle drinks only tee, has two kids and the marriage is not really happy. And so on. A lot bordered on gossip, a lot was very valid and relevant information. People talked.

So it was totally normal in a smallish community for the store owners to have an extensive profile on every customer. All in their head for sure, but non the less. And guess what - everybody benefitted. The clerk could recommend based on what he knew. People would be directed to relevant produce.

By the way this works even today. If I buy at my normal place I get personalized recommendations for cheese from the lady behind the counter. We talk, she knows a little bit about my tastes and I get to try new things.

<comment><USER5> _And guess what - everybody benefitted_

I grew up in a town with <1000 year round residents. We had a general store like this. We avoided the general store as much as possible. Some families went as far as getting their mail through another town because the local post office was inside the store.

The reason is quite relevant to this thread. The shopkeeper, his wife, and all the regular customers who sat around to chat while they drank their coffee were gossip hounds.

People valued their private lives more than letting a social circle they weren't involved in know anything about them. Not who sent them mail, and not even what type of breakfast cereal they liked.

"Everyone benefitted"? Nah, I think you've just heard too much "small town community" bullshit from politicians.

<comment><USER6> Different strokes, different folks. Personally, I like that people in my town know me. Gossip goes around, sure, people know more about me than I might be comfortable with but in general that establishes in the long run a familiarity that works for me. It feels like a very large family, and I like that.

<comment><USER7> So what you're saying is that not everybody benefitted?

</comment></comment></comment></comment></comment></comment><comment><USER8> Thank you Jacques for writing how something that would be completely unacceptable in the physical world is deemed perfectly fine online. It has always bothered me.

Take for example how the FBI wants to have automatic access to the data in all iphones through a backdoor. Would that be considered OK if they asked lockers makers to make their locks accept a master key so they would be able to enter in anybody's house, so they could monitor further people they suspect to be terrorist?

Of course that would cause an uproar, but the general public being so uneducated with technology, I guess they don't see how the two are related.

<comment><USER9> _" Would that be considered OK if they asked lockers makers to make their locks accept a master key so they would be able to enter in anybody's house, so they could monitor further people they suspect to be terrorist?"_

I don't know. But I know that it would be absolutely normal to pick your lock and/or knock down your door if they had a warrant. It would even be OK for them to ask the lock company, door company, and landlord to help them do that. For that matter, the landlord could even be compelled to surrender his _master key_ for the entire apartment complex.

All of those things could happen out here in the big blue room, and nobody would blink an eye. Funny how these metaphors to the physical world clear things up, isn't it?

<comment><USER10> But when the FBI gets the key or picks the lock it does not make any other door more insecure, or enables other parties to get into other doors.

What if the FBI would ask all landlords to install a special door to every apartment, but only the FBI has the key to this special door? What if someone successfully copies that key? Now they have access to all apartments.

<comment><USER9> Obviously, "making all locks insecure" is a different situation than bypassing a single door. Which is why we don't do the former, but (currently) do the latter, judiciously.

But hey: what if the lock company makes a standard lock, with a plain ol', low-security, five-pin key, and attaches it to a bomb that destroys the apartment when it's picked incorrectly? Does the lock company now get to beg off when the police come looking for help opening a single door?

 _" Oh, we'd love to help you, officer, but you see...if we help you open this particular lock, then all criminals will know that you can disable the bomb, and that would make all of our locks less secure!"_

<comment><USER11> This makes no sense whatsoever.

</comment></comment></comment></comment></comment><comment><USER12> I find it interesting that for most people the problem with ads is the tracking part. For me it's the ads themselves - I don't like seeing them, because I don't really want to buy stuff and think that a large part of the first world's problems (obesity, depression) are caused in part by ads.

In the world of ads, I'm constantly reminded that I don't have the perfect body and that my blender does not look as good as the latest model - I really don't want that, because my blender works fine and looks ok.

So yeah, I block ads and I don't really see why I should feel bad about that, the non-tracking feature is a nice bonus.

So the web will go back to sites that either require payment to enter or are run by people who post stuff out of enthusiasm. Sounds like a nice place to me.

<comment><USER13> Your nice place will probably never happen. There are alternatives.

On the internet, you are actually better off allowing sites to make money with these old fashioned banner style ads. The alternative on the web is baking this predatory persuasion into the content itself.

By blocking ads, you are pushing your enemy deeper into the medium. Deeper into the story selection process, deeper into the layout decisions, deeper into an app's data harvesting, deeper into the entire editorial philosophy of a publication.

<comment><USER12> Sure, but that has already happened. It is ridiculously easy to get almost any newspaper to print a commercial article and already now it is hard to tell the difference between for-pay articles and genuine ones.

If you have a instagram account with ~30k or so followers, you start getting offers to promote products for example. If you have less, you can still get deals, but then you have to hunt for them.

But this will happen regardless of ad blocking, because it is profitable. I certainly don't know how to avoid it, except to generally assume that all content is commercial content in for-profit sites. And also on some others.

</comment></comment></comment><comment><USER14> Did you start visiting shops and places you didn't like just to mislead them? So you have more and more of them tracking you until they run out energy and money because their targeting is just wrong?

[http://adnauseam.io](http://adnauseam.io)

[https://addons.mozilla.org/en- GB/firefox/addon/adnauseam](https://addons.mozilla.org/en- GB/firefox/addon/adnauseam)

[https://addons.mozilla.org/en- GB/firefox/addon/trackmenot](https://addons.mozilla.org/en- GB/firefox/addon/trackmenot)

<comment><USER15> That takes the confrontation to a wholly different level and I'm definitely not yet so far that I'd do this but I can see why some would and who knows, maybe one of these days I'll join the ranks. For now, I think that simply blocking what I don't want and being strict in what I send out is my best bet at reaching some kind of stable long term solution. Retaliation is - for now - for me one step too far.

</comment></comment><comment><USER16> One can make a very long list of things that would look really really creepy in the physical world.

For instance I can draw a little cat in my agenda to remind myself to call a particular friend that day. The police will tell me: "what? you have not written that in plain english? You must tell me what it means and if you don't you will go to prison". (In the UK one can go to jail for refusing to decrypt one's own data)

I go buy the Telegraph at my local newsstand and the guy will tell me: "can I see your papers please?" "But I just want to buy a newspaper" "yes but I must report to the police every day who reads what, by the way I must also know which pages you intend to read" (the UK is passing a law that would force all ISP to record what websites their customers view)

Etc etc

</comment><comment><USER17> Where this analogy breaks down is that the people sent to track you are invisible and can't be seen without the aid of special technology. So what you end up telling people is that they are being followed everywhere by invisible ghosts, who's only desire is to change what ads appear in their newspaper. And it appears that the reaction of most people is about what you'd expect.

If a store has policy of "If you come into our store, we'll have employees follow you home" and you don't like that policy, then don't go to that store. That simple. It doesn't make sense to go into the store and have your goons beat up their employees. That might mean that you can't go to the stores you want to go to, but that's how it goes. It seems as clear online as it does in the physical world.

(tldr without the analogy: The overwhelming majority of people don't care about being tracked online because there are no obvious ill effects. The problem with ad blockers is that it makes more sense to just avoid sites that show ads, but most people don't want to do this because it would exclude their favorite sites.)

<comment><USER15> If that's all you got from it then I should really do my best to write better. One of the key parts - to me - is that the data silos start trading your data as if it is theirs to whoever pays for it, and that goes a lot further than a real time bidding on ad space, even if that was the initial drive to collect that data.

<comment><USER18> Maybe an allegory about how, based on the tracking data, the price you pay for something (say airline tickets) changes. Or the availability of health insurance for your kids? I don't have any _facts_ on which to base the latter, however, but I suspect it's either happening or only a matter of time.

<comment><USER19> Health insurance is regulated way beyond what you would expect. At least for the individual market, many plans are standardized across all carriers as mandated by the ACA. And in New York (if not elsewhere), rates are proposed in advance to the state and either approved or rejected (and forced to adjust), which can happen for being too high or too low compared to other players. The rates are then set for the year. This is not something subject to real-time bidding.

</comment></comment></comment></comment><comment><USER20> I got tired of seeing a drill show up on a bunch of sites after I just searched for it on Home Depot... I block ads on my workstation, but with tablets I just could not find an easy way to block trackers for my whole family.

So Metiix Blockade was born out of this frustration... Now I have "bouncers" protecting my whole network for every one of my devices.

I hate when a web page decides what ads and trackers it wants to pull down from the Internet. With Blockade, I have taken back control of that process and I get to dictate when and where I want to provide my information.

I love feeling like I have the real internet back. No more of these ads and trackers taking over every place I go.

<comment><USER15> Added a link at the end of the article, it looks like your project is free and clean as far as I can see.

<comment><USER21> Also consider pi-hole [1], notrack [2], uMatrix [3], dnsgate [4] and hostsblock [5]

[1] [https://pi-hole.net/](https://pi-hole.net/) [2] [https://github.com/quidsup/notrack](https://github.com/quidsup/notrack) [3] [https://github.com/gorhill/uMatrix](https://github.com/gorhill/uMatrix) [4] [https://github.com/jakeogh/dnsgate](https://github.com/jakeogh/dnsgate) [5] [https://gaenserich.github.io/hostsblock/](https://gaenserich.github.io/hostsblock/)

<comment><USER15> All added, thank you.

</comment></comment></comment></comment><comment><USER22> It is funny how things change when you use the physical world metaphor. There was a campaign recently by the Dutch regulatory agency that made people aware of the implications of allowing permissions in "free" apps.

They made an (anecdotal) video by promising a free cup of coffee in exchange for your contact list on your phone:

[https://www.youtube.com/watch?v=AYXM56YJWSo](https://www.youtube.com/watch?v=AYXM56YJWSo) (Dutch unfortunately)

<comment><USER23> Nice video.

My wife has an Android phone, I have an iPhone. Recently, I wanted to install some app on her phone and it is still beyond my understanding, why Google still doesn't allow to deny certain permissions. It's all or nothing.

And no, a fucking video editor shouldn't require access to my contacts, my browsing history and the accounts on my phone.

Android imho is unusable until they let me deny certain permissions, because often, the "best" apps ask for basically everything.

<comment><USER24> As of 6.0 Marshmallow, you can disable any permission you want. [https://www.youtube.com/watch?v=iZqDdvhTZj0](https://www.youtube.com/watch?v=iZqDdvhTZj0)

</comment></comment></comment><comment><USER25> Really well put.

I've been operating browser separation (Google in Chrome, social in Chrome incognito, and everything else in a locked-down privacy mode only Firefox - all with uBlock) for a while, and also use anonymising VPNs for anything I really don't trust, and my own VPN with streisand and Dnsmasq (with a hosts very similar to [https://github.com/StevenBlack/hosts/](https://github.com/StevenBlack/hosts/) ).

On my mobile every link I click in any app I open in Dolphin Zero (still on that DNS blocking VPN - which blocks all trackers in apps too), and I only keep apps I actually use and trust the publishers of on my device.

It feels like a chore (manually copying links from one browser to another depending on trust level), I wonder whether it's worth it sometimes... but then I occasionally get to see someone else's experience of the web and it's so incredibly and perniciously been invaded by advertisers that I am glad I do all of this.

It's become so bad that I even had to change my uBlock origin rules for my online bank ( [https://banking.smile.co.uk/SmileWeb/start.do](https://banking.smile.co.uk/SmileWeb/start.do) ) to block even first-party scripts... because they use Adobe, Omniture and Tealium tools to measure stuff and for A/B testing of their online banking features.

I now block absolutely everything and tell others to do so too, but unfortunately there is collateral damage.

The very sites I care about may not require advertising revenue, but do value tracking data that helps them spot errors, debug things, find out what screen resolutions they should cater for. Their analytics, client-side debugging, this is all now rendered useless to them.

PS: If you happen to work on Firefox for Android, please enable browser.privatebrowsing.autostart to be configured via about:config. I would _love_ to default enable private browsing in a UA capable of running uBlock on my mobile.

<comment><USER26> I don't know enough about how uBlock works, but I'm mostly concerned about blocking trackers, and dislike invasive advertising. I use Ghostery with everything blocked.

I also bank with smile.

I've just confirmed that Ghostery is blocking Adobe, Omniture and Tealium trackers, but I was able to log into my account no problem. I also transferred some funds to a linked account.

What aren't you able to do with smile? And is it something specifically with the way uBlock blocks?

<comment><USER25> I noticed with Smile that when I first went to the login page it would fail to login the first time... they have some server-side code to track sessions linearly and force log-out if it detects background operations.

Their use of one of their trackers meant that the first time I ever arrived at their site (every time, because private browsing) it would set things up that touched their server and triggered Smile's security thing.

It was a minor inconvenience... but then I looked into it and noticed how much tracking they were doing.

My view on bank websites is that the _only_ party that I should be speaking to is the bank, securely. No other party, ever.

I now block absolutely everything on my banking website, but I was very surprised this had to be done. A bank, of all sites, should never ever use a third party anything.

<comment><USER27> It's not just banking. How can sites be so credulous to include 3rd party javascript into their login form pages? It's an invitation to steal your users' credentials! If you really must rely on a 3rd party captcha service put the captcha into an iframe or put it on a separate page.

</comment></comment></comment></comment><comment><USER28> I think that better than an ad-blocking solution would be to feed all those trackers with fake information

Oh you want location data here it is, this morning I've been all over the planet. Want to know all the websites I'm visiting, sure, here's a million of them.

Just based on the fact that they keep trying to sell you the thermometer after you already don't care kind of points out that they're being had, and I'm all for helping it happen

<comment><USER29> The marketing industry is moving beyond trackers and cookies. Hastened by the mobile/tablet revolution (users switch devices way more often) and the stricter privacy laws in Europe (anti-cookie laws).

Now they either require you to login to get the "mobile" experience, like Facebook or Twitter, or they use probabilistic statistics to identify you without cookies.

That guy reading a newspaper in the park with a paper bag over his head and 4 goons on the lookout, feeding us uninformative/unlikely data, that guy is with 90% certainty Jacques Mattheij.

(When cookie-tracking was more common we set up a cookie-swap program. Stopped after a few months out of security concerns.)

<comment><USER15> This is - unfortunately - spot on, and there is much worse to come.

It's funny how a law that actually confirms a right that is solidly anchored in the declaration of human rights would result in technological circumvention rather than - the expected outcome - compliance.

<comment><USER30> Yes. And yet, you've also described a general phenomenon, I think. (e.g. the discovery of loopholes in tax law.)

If necessity is the mother of invention, profitability is the mother of circumvention.

(Great blog post, btw.)

</comment></comment></comment></comment><comment><USER31> It's funny how much more relatable the whole privacy debate becomes when transposed to the physical world.

Some will disagree, but I think the comparison was spot on.

<comment><USER32> Exactly. I am using the same analogy to explain non-technical people about tracking, ads, surveillance etc. so that they can relate. Otherwise the abstract technical concepts seem like coming out of a science fiction story to them.

</comment></comment><comment><USER33> Add the part where one of the bouncers starts their own targeting company and does deals with some of the other targeters.

<comment><USER15> Good one, will do.

</comment></comment><comment><USER34> The solution would be a decentralization. Tracking is a real threat when we only have 1 search engine, 2 social networks, 1 retailer and a single ad network. The web has created global-scale monopolies faster than before , and it seems like the centralization of VC capital and IT talent is permanent. Tracking becomes less of a problem when they are unable to follow you everywhere.

</comment><comment><USER35> This reminds me of the surveillance camera man - [http://youtu.be/jzysxHGZCAU](http://youtu.be/jzysxHGZCAU)

</comment><comment><USER36> I just disabled third-party cookies on my phone and computer. I'll see if it causes me any problems.

I already have adblock plus on my computer.

</comment><comment><USER37> Once upon a time I used to work for a multinational company that did retail audit. They had developed a program which adjusted the ads a selected group of people were watching on their TVs. Then they provided them with special debit cards and monitored the relevance between viewed ads and purchases of goods in super markets. All that around 1999. And that was just once of a multitude of technologies they used. They also had a technology where a camera was tracing face movement to identify which items on the shelves attracted more attention by gender and age. I can't even fathom what they'll be using these days. Profiling is the holy grail of the marketing world. At least online we have the option of ad blocking. Offline we're helpless.

</comment><comment><USER38> I have blocked as much trackers as i can. Having said that, i know why they exists. See, when John produces shampoo, he needs to sell it. The only way is to advertise, one way or another, because without advertising, public knowledge, the shampoo does not sell. Now John does want to spend as less to ads as possible, that makes sense, since we, the customers, end up paying about that too. To spend less, John needs to show ads only to core group of buyers, for that he needs to know, who you are. Tracker does that. Shampoo costs 5 bucks. How much you agree to pay for that with advertising costs included? 6? 16? Really, are you ready to eat up 200% advertising markup? I have no idea, frankly.

</comment><comment><USER39> Reminds me of Surveillance Camera Man:

[https://www.youtube.com/user/SurveillantCameraMan](https://www.youtube.com/user/SurveillantCameraMan)

</comment><comment><USER40> What you probably missed is if I am a big enough retailer, I can pay off your bouncers to still follow you from a distance and still show up on your newspaper on one side since I have more than you and can pay off your bouncers to work for me while they still pretend they are protecting you. Just an example:

[https://adblockplus.org/about](https://adblockplus.org/about)

<comment><USER15> No, that's in there (near the end).

<comment><USER40> Cool. But, do you think a paid model for consuming content would work given the number of content sources and the frequency with which a user visits a single source? Don't content creators depend on some form of revenue and trackers are used to optimize the revenue.

<comment><USER15> I don't think advertising and tracking need to go hand-in-hand the way they do right now.

</comment></comment></comment></comment><comment><USER41> I'm all for blocking ads, tracking or non-tracking, analytics, etc. and wish swift bankruptcy on the propaganda-advertising industrial complex but this is silly. The analogy between physical world and the Internet is not valid or insightful, just like it isn't in case of piracy/stealing. Collecting info on what you read online is nothing like breaking into your house.

<comment><USER42> Picture your insurer scrolling through your browser history when you're renewing your health plan.

</comment></comment><comment><USER43> In small towns and pre-industrialization, stores had a tracking regime that puts Silicon Valley to shame: the shopkeepers _knew_ you.

They didn't need credit cards or scores because they could identify your store credit account by your face, and your creditworthiness by your family's reputation.

If you were buying something out of the ordinary, you better believe your parents/spouse/church/friends/entire town would hear about it from the shopkeeper, who knew them all as well as he knew you.

A juicy conversation on a party line telephone shared with neighbors, interesting metadata on the postal mail also handled by people who know you and your business, a sighting in public with someone not your spouse, a visitor at an odd time of night, a strange car in your driveway - all these things could quickly become a public affair.

Technology is not bringing us a particularly _new_ invasion, but it is helping at least that side of the "tight-knit communities" of old scale to modern population size and density. I think this is a horrific development, and it's certainly quantitatively unprecedented, but not qualitatively.

<comment><USER15> A large enough degree of quantity difference has it's own qualitative difference. This has been observed many times in other fields.

</comment></comment><comment><USER44> Are there any publicly know examples of hackers that have used tracking data for malicious stuff. As nasty as it is to have a large amount of your web history stored in a profile, I don't see a clear path to crime (perhaps extortion). Or didn't I get the burglar metaphor?

<comment><USER15> Burglar => malware or phishing through ad networks.

Sorry for being unclear, I'll see if I can tidy that up.

</comment></comment><comment><USER45> This might help getting rid of those that follow you: [https://github.com/jakeogh/dnsgate](https://github.com/jakeogh/dnsgate)

</comment><comment><USER46> WOW! This is a great way to put it. Well done.

</comment><comment><USER47> I didn't quite understand bouncers. Those are some tools for private browsing?

<comment><USER48> Ad/tracker blockers, I assume.

</comment></comment><comment><USER49> What's the analogue for "clearing your cookies"?

<comment><USER50> Go to every business you've ever visited, go to their filing cabinet, and remove every record that you've been there. Go to every library and bookstore and remove every record of things you've read and bought. Etc.

That's not the same as cancelling all your accounts and credit cards; you'd still have them, just not your visit data.

The most extreme thing you could do in the real world is delete your identity and start over from birth.

</comment></comment><comment><USER51> Disclaimer: I do digital media and online marketing for a living.

I used to help lead the paid search group at a top search agency and had a real birds-eye view of where things were moving in that role.

Everything is moving towards audiences. While keywords and search queries are signals that highlight intent, ultimately the audience piece is what the advertiser cares about--that's just one component of it. This is why FB, Google and everyone else under the sun wants companies to upload their CRM data, and then they use that for retargeting (1st party, or 1P data), or building lookalikes.

Then you have Adobe and other companies trying to get companies to sell this data on a marketplace as 2nd party (2P) audience data for retargeting.

There are also companies like LiveRamp and others that try to get companies with login data to provide cookie matches against hashed email addresses to keep cookies fresh and prevent them from just being deleted once and forever. I've been approached by these companies, and always turned them down because it just felt dirty.

That said, this thread seems to draw the usual crowd of everyone who hates anything related to advertising. I'm not going to try to change your opinions because I know that is not going to happen. However the reason all of this data gets shared is because it allows better targeting which leads to more relevant ads, which leads to more purchases.

Think about that for a second.

People are purchasing more when the content is more relevant to them. Nobody is holding a gun to their head making them take out their wallets and hit "Purchase." They are saying "this product/service is relevant to me and I want to buy it."

In that manner, advertising is helping people who want to purchase said thing. The issue comes in with the fact that because targeting isn't perfect (and I doubt anyone wants the level of tracking needed to make it so), and because a lot of advertising is building awareness (not simply retargeting and reminding you to buy something you initially displayed interest in), it becomes intrusive in a manner people dislike.

Unfortunately, because of the data available, there's still plenty of people who say "hmmm, I didn't know about this, but it seems interesting, I'll check it out" and then they purchase. So from an advertiser's standpoint looking at a spreadsheet of data they see "this audience segment had a conversion rate of X and an ROI of Y" and they keep doing it if it is profitable because that is what they are optimizing for.

I actually enjoyed Jacques piece, and I do think that there is some very questionable stuff going on in the ad space. The example of a random app tracking and selling data totally unrelated to said app is a great example. Companies are finding that they can monetize their data without visibly degrading the user experience by showing ads, and still get paid on a CPM rate for it, so expect to see more of that.

At the end of the day, I say all of this to highlight the fact that often is left out of pieces like this, which is that things are the way they are now because it works. Advertisers wouldn't be doing it if it didn't work, which means consumers are voting with their wallets in large enough numbers to keep fueling this behavior. In Jacques restaurant example, he was put off by the restaurant special promoted on his phone. I'd probably behave the same way because I've developed an aversion to the more invasive aspects of my industry and I'm overly sensitive to it now. But Joe Consumer? They see a relevant deal that will save them money and say "hmm, I like what they are offering, and it is a fair price, I guess that just made my decision easier" and they go eat at the restaurant. So the restaurant sees that of all the Jacques that see the ad and keep walking, for the pittance they pay they get enough Joe's in the door to make it profitable, and they keep doing it.

The positive feedback loop created by more targeting leading to higher profits means that it is working and we'll see more of it until the feedback loop is broken. Ad blockers are one avenue towards attempting to break it, and legislation is another. The question is whether pulling on those two levers will be enough to reduce the efficacy of the feedback loop to the point where advertisers stop doing this.

And a final note to those who might respond to my post. Please note that I'm not trying to paint an overly rosy picture of what advertising does or in any way trying to defend some overreaching aspects of it. I think people should own their data and be entitled to controlling how it is used. That is not the reality of the world we live in though, and so I'm simply making observations about how it impacts the various parties involved beyond just the protagonist of Jacques' story. I think there are more "clean" ways of doing advertising, that rely on a strong creative message, etc. Or viral ads that get shared because they are creating great content. But at the end of the day the media person's job is to take that ad/content and get it in front of the audience they are targeting.

<comment><USER15> Ads and tracking going hand-in-hand is the problem. If the advertising industry had not embraced tracking I think that the backlash against advertising would not be as strong as it is. It should be possible to receive an advert _without_ also giving up a huge chunk of privacy.

<comment><USER51> That's one stance, but do you think it results in a more relevant experience for most people (emphasis on "most) viewing ads when they see products that are more likely to interest them (because of audience data or retargeting data) vs. a generic ad?

And from an advertiser standpoint, if the targeted approach is vastly more profitable than the untargeted approach of how things worked in the early Mad Men days (and it most definitely is), I have to say I can't really blame them for taking that path.

I'd be curious if there are any companies out there who position themselves as "ethical advertisers" and do what you outlined in terms of advertising without the privacy tradeoff. I'd also be curious how they might fare against competitors who don't take that stance. Again, people are voting with their wallets, and right now they are saying that they are ok giving up their data in exchange for free content, and that they'll continue buying things from companies who leverage said data to communicate with them.

<comment><USER15> > That's one stance, but do you think it results in a more relevant experience > for most people (emphasis on "most) viewing ads when they see products that > are more likely to interest them (because of audience data or retargeting > data) vs. a generic ad?

They may spend less money, so it is clearly a 'win' for the advertiser and the property to do as much tracking and profiling as they can get away with (and they do).

> And from an advertiser standpoint, if the targeted approach is vastly more > profitable than the untargeted approach of how things worked in the early > Mad Men days (and it most definitely is), I have to say I can't really blame > them for taking that path.

I don't blame them either, but then they should not blame the users for the inevitable backlash.

> I'd be curious if there are any companies out there who position themselves > as "ethical advertisers" and do what you outlined in terms of advertising > without the privacy tradeoff.

Unfortunately the good are suffering with the bad.

> I'd also be curious how they might fare against competitors who don't take > that stance.

They made less money in the short term. But in the longer term there may be some life there, too early to tell.

> Again, people are voting with their wallets, and right now they are saying > that they are ok giving up their data in exchange for free content, and that > they'll continue buying things from companies who leverage said data to > communicate with them.

That's mostly because people have no idea what is in their profiles in the various silos.

It's a bit like getting people to click blindfolded on a EULA and then later to say 'hey, you agreed to this', which in my opinion is simply not fair and taking advantage.

<comment><USER51> I think your last point on comparing against EULA's isn't the best fit here. If I see an ad, the actual data that led to me seeing that ad doesn't suddenly make the product I'm seeing an ad for less of what I might need. It might make me question the business I would buy it from, but there's a big difference between agreeing to purchase something where the terms of the transaction are known (you are buying X, this is the return policy, etc.) vs. clicking an EULA where you decided not to read it (which is the other reason I think this was a poor example...the EULA is there, people just choose not to read it).

<comment><USER15> Ah, but you got the timing wrong. The EULA reference is about the terms and conditions under which you are viewing the website - and therefore the advertising and all associated tracking mechanisms -, this happens _prior_ to you viewing the ad and once you are on the page you are somehow magically bound by these terms but all the bad stuff has already happened.

<comment><USER51> Ah--sorry, I thought you were drawing an analogy against software installation EULA's that people typically click through.

I definitely concede this is a valid point in that visitors aren't exactly given a chance to opt out. I think we can both agree that if it were opt in, that wouldn't satisfy advertisers, but I think the EU approach around cookies is a bit heavy handed and ruins web experiences. I wonder if there isn't a happy middle ground somewhere.

Again, make no mistake, I think users should be in control of their data and data ownership is going to be one of the hot button issues of the next decade as tracking only becomes more pervasive and data storage becomes cheaper. But I also think that a large number of people like to jump to the conclusion of "I hate advertising" while at the same time buying stuff because of relevant, highly-targeted ads. What people don't realize is that publishers and such would have to resort to even more aggressive placements and approaches to make up the greater lack of revenue they'd suffer if they weren't able to offer highly-targeted inventory.

Jacques, you are definitely one of the standout posters on HN and I've come to recognize and respect your viewpoints as someone who has a pretty solid understanding of the ad industry and its various components. While I appreciate the perspective you painted in this piece, I'd challenge you to play devil's advocate and write another version of the story from the standpoint of an advertiser, a publisher, or a consumer who is less sensitive to advertising than you or I may be. This is a complicated issue and I don't think it is as black and white as your story makes it out to be. Exploring all sides of a problem tends to bring out those gray areas than just a single viewpoint.

Plus I'm a fan of your writing style, so I'd love to see this sort of analogy extended to the other players in the game ;)

<comment><USER15> Tough challenge, but I just might take you up on that. Keep in mind it took me > than a month in wall clock time to write this post so it will be a while if anything comes of it. I don't write these things in one go, I write an outline, let them sit for a bit, then update and bit by bit it becomes what I'd like to send out. So no 'quick response time' on anything like this.

But that's definitely a valid request, the viewpoint shift alone would be worth doing because it may help to figure out what could be done instead.

I think the publisher is the most interesting perspective of the options you listed and one that I can identify with.

<comment><USER51> Awesome and glad you find it to be an interesting challenge. Of course totally understand if it falls off the list, but I for one would love to read it if you decide to do it.

<comment><USER15> I'll do it. Can you drop me a line, I'd like to email with you on the subject.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER52> For the first few seconds, i thought you're talking about real people who're tracking you. Later i realized.. Great writeup. So, true.

</comment><comment><USER53> I find it infuriating how much traction this whole anti ad/tracking war is getting.

People mention there's no choice anymore. Wrong! It's still there, just like it was 10 or 15 years ago. Stop sharing your personal information online and the whole tracking thing doesn't matter anymore.

This analogy seems completely flawed imho. Nobody can get inside my home, or force my door or any of that nonsense, unless I specifically allow them when they ask!

I fail to understand how all these trackers can read my browsing history without me installing <popular plugin> and allowing it access to my browser? Or how are they going to read my contact list from my Android phone, or the one from my Thunderbird? Through thin air?

Nobody took the choice from us, we just happened to open wide our front and back doors, and then complain that random people come in and look through our stuff.

<comment><USER15> That you don't understand how it works even in the abstract is maybe an explanation for why you think it is infuriating that others are more concerned than you.

Being online is no longer optional, giving merchants and authorities your information is in many cases also no longer optional.

If you stop sharing your personal information online you will not be able to participate in a very large chunk of society's functions, some of which are mandatory. Heck I can't even the local tax office website without receiving a bunch of stuff that tracks me.</comment></comment>


How Europe Missed The Transistor - <AUTHOR> http://spectrum.ieee.org/semiconductors/devices/how-europe-missed-the-transistor

<comment><USER2> Europe did not so much 'miss the transistor' because of a lack of inventiveness or the fact that they they'd already almost discovered it for any other reason than that recovering from the greatest war to that date Europe in 1948 was absolutely no match for any other country that had managed to stay in one piece.

What should amaze more I think is how much was achieved in fields not directly related to rebuilding in that period, in spite of that gigantic handicap.

The winter of '44 was one of the worst famines in living memory and by '48 the continent was still very much in recovery mode.

Also a lot of the achievements that put the US firmly on the map as the world leader in technology after the war were in fact pioneered in Germany during the war.

Not in the least the rocket technology that led to the successful moonshot.

Edit: reading further down in the article it's funny how they try to patent something they _know_ for sure is already working and invented elsewhere.

The article also seems to contradict itself slightly, because the European device was unstable until they learned about the American one and the explanation behind the physics of it, but in the conclusion it writes: "And it seems clear from the still-sketchy historical record that they indeed had a working, reliable amplifier by that time." but the rest of the article has no real arguments underpinning that statement.

Very interesting read though.

<comment><USER3> I think it's important to mention that the technology was not just pioneered in germany, but the actual pioneers moved to the US.

<comment><USER2> You are absolutely right about that. I'm sorry, I can't mod you up or I would have.

Werner von Braun is an interesting case all by himself because anybody else in Germany with as much standing in the Nazi party and use of concentration camp resources for their research would have surely been executed after a swift trial in Neuremberg.

Instead von Braun was made a naturalized citizen of the US in '55.

Lots of other info here: <http://en.wikipedia.org/wiki/Wernher_von_Braun>

<comment><USER4> The Japanese Unit 731 "scientists" also got off lightly[1], in exchange for their data.

If you want to commit atrocities and avoid the war crimes tribunal, do them within the context of science.

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

As an aside, it's also worth observing that many people _fleeing_ Europe before the war -- such as Enrico Fermi and Albert Einstein -- made massive contributions to American science efforts both during and after the war.

<comment><USER2> "MacArthur secretly granted immunity to the physicians of Unit 731 in exchange for providing America with their research on biological warfare.[7]"

Disgusting.

</comment></comment></comment></comment></comment><comment><USER5> _"What is arguably the most important invention of the 20th century remarkably occurred twice--and independently."_

This is actually quite normal, as any patent attorney will tell you. The telephone is another well known exammple of this occurring. (Alexander Graham Bell and Elisha Gray) It seems that nothing can stop an idea whose time has come, it's just a matter of who will get the rewards.

<comment><USER2> Another good reason for the total abolishment of patents.

Almost every patentable invention is but a minor advance in the state of the art.

</comment></comment><comment><USER6> Interesting ... hadn't seen much of that before.

Once again I have to wonder why such articles ignore Lilienfield's work (from 20 years before)

<http://en.wikipedia.org/wiki/Julius_Edgar_Lilienfeld>

and how he profited (if at all) from his patents.

</comment><comment><USER7> Single page: [http://spectrum.ieee.org/semiconductors/devices/how- europe-m...](http://spectrum.ieee.org/semiconductors/devices/how-europe- missed-the-transistor/0)</comment>


The Humble Frozenbyte Bundle - <AUTHOR> http://www.humblebundle.com/#

<comment><USER2> Posted slightly earlier, with some discussion: <http://news.ycombinator.com/item?id=2437944></comment>


How to Plan a "Freemium" Revenue Model - <AUTHOR> http://blog.recurly.com/2009/10/planning-a-freemium-revenue-model/ <comment><USER2> I think a lot of people could do better by looking at the range of customers for their product, a-priori deciding that some segment of that range should pay money and that the other segments can be used for harvesting attention (or links, or what have you), and then crafting their pricing chart to match.

One teacher responding to my customer survey recently wrote the comment "15 cards is too few for a teacher to use the free plan. It should really be 25 to be appropriate for a classroom." Indeed, it is almost like I planned it that way...

This will probably have better results than the typical "Plan A gets you 5 units of goodness, Plan B gets you 10, Plan C gets you twenty!", especially as customers from all of the plans tend to waaaay underuse their allocations anyhow. (Related thought: your plan names and the story they tell are probably as important as the numbers under them, if not more so.)

<comment><USER3> Frankly, your short comment was more enlightening than the article itself. It's so easy to say that with the right features, upgrade prompts, and pricing, things will work out -- much more difficult to actually do.

</comment></comment><comment><USER4> Offering a freemium model based on something like a simple metric (such as the 2GB example for dropbox) can work - for a while - but it will also become an Achilles heel.

Microsoft (hotmail) & Yahoo for the longest time offered < 10MB of storage, enter Gmail with 1 GB instantly changing the game.

So if you decide to make your free to paid conversion dependent on a single metric better have a battle plan ready in case someone decides to start giving away that which you sell.

Better than just a single metric is a combination of a lot of items, things that people will not feel the need for at first, but over time they'll wish to have those features. That's good, especially if the need arises at a point in time when the cost of switching becomes higher than the cost of paying for the extended features. Make sure that it is _really_ value for the money they pay, not just some pacifier or 'feel good' feature (you're supporting the site, or something like that doesn't cut it, there has to be a balance).

If you combine freemium with ad support then make sure that your paying users never ever see another ad, and put a 'get rid of this ad' link near the ads, leading to a page that explains the benefits of signing up (other than removing the ads).

Essential features should be functional in the free package, but stuff that is hard on the server or that requires a lot of capital outlay can justifiably made part of the paid offering. Users will understand that, especially if you make some effort at explanation.</comment>


Mozilla kicks rebel coders to kerb with Firefox 3.6 'lockdown' - <AUTHOR> http://www.theregister.co.uk/2009/11/18/firefox_3_6_components_directory_lockdown/ <comment><USER2> Misleading headline from The Register; no fault of alexandros for posting to HN verbatim, but misleading nonetheless.

After all, I think this 'lockdown' is a great idea. FF has a totally reasonable interface for addons, so there's no need to circumvent it.

Anyway, if you're using an OS that provides sensible privilege separation, I believe you're already prevented making the sorts of modifications that 'lockdown' targets. As a result, this will lead to more consistent and predictable behavior across platforms.

</comment><comment><USER3> Sounds like a good thing. Strange this was never done before

</comment><comment><USER4> Good thing too. I'm all for addons and the like, but they should be transparent and under user control.

</comment><comment><USER5> Is this why half or the plugins that I had installed and working in 3.6b2 aren't working with 3.6b3? I have the Add-on compatibility reporter, and extension check turned off....

<comment><USER6> Doubtful. This change doesn't affect normal add-ons. It only affects extensions that are installing bits in the main Firefox application directory rather than in a profile.

</comment></comment><comment><USER7> Never realized 'kerb' is a valid Britishism until I looked it up.

</comment><comment><USER8> Is there any way to tell if you have code that has been added to the components directory?

<comment><USER9> Erm, ls .mozilla/plugins I think

</comment></comment><comment><USER10> That's a fine idea, but how do they plan to prevent, e.g., Windows operating system updates from adding their own extensions? Microsoft updates have added, what, three different extensions to Firefox, without notice to the user and with no easy way to uninstall them?

<comment><USER11> The easiest way would be to encrypt the addon store on the user's hard disk.

MS could still install addons stealthily, but they'd need to violate the DMCA to do so, and I can't see even MS being that willing to risk the legal issue just for an addon.</comment></comment>


Doom 3 source released - <AUTHOR> https://github.com/TTimo/doom3.gpl

<comment><USER5>
        $ sudo perl cloc-1.55.pl --unicode doom3.gpl/
            2014 text files.
            1907 unique files.
             476 files ignored.

        http://cloc.sourceforge.net v 1.55  T=40.0 s (36.6 files/s, 22123.3 lines/s)
        </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>-
        Language                     files          blank        comment           code
        </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>-
        C++                            517          87051         113094         366423
        C/C++ Header                   615          29640          26891         110991
        C                              170          11407          15566          53520
        Bourne Shell                    36           4529           5476          33717
        m4                              10           1079            232           9025
        HTML                            55            391             76           4142
        Objective C++                    6            709            654           2605
        Perl                            10            523            411           2380
        yacc                             1             95             97            912
        Python                          10            108            182            895
        Objective C                      1            145             20            768
        make                            22            160            253            579
        DOS Batch                        5              0              0             61
        Teamcenter def                   4              3              0             51
        Lisp                             1              5             20             25
        awk                              1              2              1             17
        </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>-
        SUM:                          1464         135847         162973         586111
        </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>-

<comment><USER6> Question 1: Why did you run cloc as root?

Question 2: Why does Doom 3 involve 33,717 lines of bash? That's a lot of bash. I realise it's used heavily for build scripts, but thirty three thousand lines seems excessive.

<comment><USER5> _Question 1: Why did you run cloc as root?_

Hmmm, because of a really bad habit I need to break. ;)

<comment><USER7> If your habit is what I think it is, I have the opposite habit - I never use sudo until it tells me I've tried to do something I'm not allowed to do - <USER2> if I know it's not going to let me. Then I use "sudo !!"

<comment><USER8> > Then I use "sudo !!"

Wow. For six years I've been doing "UP + CTRL^A + sudo + SPACE" instead. This is much better.

<comment><USER9> Off-topic:

I use Ctrl-P Ctrl-A sudo <space> which is exactly the same number of keystrokes as "sudo !!" and a much more general solution in my opinion.

</comment></comment></comment></comment></comment></comment><comment><USER10> I wonder why the depth fail shadow rendering algorithm had been explicitly excluded from the open source release. It's been around for years now, after all.

<comment><USER11> There was a patent issue; this delayed the release slightly whilst it was removed.

<comment><USER12> I give it a week before someone forks and adds it back in, just to spite Creative.

</comment></comment></comment><comment><USER13> I was under the impression that most large projects end up having to write a custom memory allocator, but after a few random probes into the source I didn't see anything that stood out. Did I just miss it, or did they use the built in one?

<comment><USER14> Why do you have that impression?

That makes very little sense to do - every single project? Don't you think someone would have released a library to implement the "new and improved allocator" if everyone needs to use it?

<comment><USER15> That has been borne out by my experience so far too.

There have been several successful efforts at writing better performing general-purpose allocators:

        * TCMalloc (http://goog-perftools.sourceforge.net/doc/tcmalloc.html)
        * jemalloc (http://www.canonware.com/jemalloc/)

There's a great Facebook Engineering blog post about jemalloc which describes why a fast allocator is needed & why the standard malloc is not always sufficient: [https://www.facebook.com/notes/facebook- engineering/scalable...](https://www.facebook.com/notes/facebook- engineering/scalable-memory-allocation-using-jemalloc/480222803919)

<comment><USER16> I've worked with several projects where a TCMalloc based allocator (threaded) was used to great success. A simple switch to DLMalloc (non-threaded) can also provide a significant performance boost.

Moderate usage of STL can do nasty, nasty things to memory performance. In one case a game I worked on ran at 5-10fps and a simple, fast change to DLMalloc instantly took perf to 60fps.

<comment><USER17> It's worth noting that at least on some platforms the system malloc _is_ dlmalloc (presuming that DL is Doug Lea).

<comment> iso8859-1 Which platforms?

<comment><USER17> glibc's malloc has long been based on Doug Lea's malloc.

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> The source for the physics engine ([https://github.com/TTimo/doom3.gpl/tree/master/neo/game/phys...](https://github.com/TTimo/doom3.gpl/tree/master/neo/game/physics)) looks rather interesting. Might contain valuable additions for other physics engines to pick up.

<comment><USER19> I'm not sure where I picked up the info, and I haven't looked at the code to confirm it, but I believe the physics engine implementation is tied tightly to both the collision detection system and the entity update, both of which are quite specific to Doom (in particular, each entity steps physics independently, rather than a whole simulation advancing at once as is common in 'pluggable' physics engines like ODE, Havok etc).

Also, and this is subjective I suppose, I don't remember Doom 3 doing anything that 'felt' or looked better than even what the contemporaneous engines did (such as the version of Havok used in Half-Life 2).

So I guess, there probably aren't valuable additions, but I imagine there is much to tinker with.

<comment><USER19> For the sake of completeness, here is where I read that: [http://www.ode.org/old_list_archives/2004-December/014735.ht...](http://www.ode.org/old_list_archives/2004-December/014735.html)

From looking at the game code, I see odd things like rolling barrels animating their rotation as though the physics engine itself doesn't handle rolling contact.

</comment></comment></comment><comment><USER20> Any advice on how to dive into reading this codebase?

<comment><USER21> My favorite technique is to run the code, place breakpoints in interesting locations and manually type out psuedocode descriptions of each function up the callstacks. That's the fastest way I know to get an understanding of the structure of a new code base.

Barring running the code... I prefer to start with a quick scan through the foundation code. What does the math library look like? How about the file and network I/O? Next, locate the top-level main loop, then the top-level Update Everything/Render Everything functions. At that point, you'll understand the general theme of the code and you'll have spotted lots of interesting avenues to explore.

</comment></comment><comment><USER22> 196 clones, 171 watchers, 23 forks; that's just in the first hour from release. Not bad, not bad at all.

EDIT: Doom 1 source code seems dirty when compared to Doom 3.

<comment><USER23> Skimming over the D3 source, it all looks so very readable. Which is impressive in itself.

<comment><USER15> A bit off-topic, but I'm curious: why do you think that's impressive? I thought it was pretty commonly accepted these days that readable code saves more time than it costs over the life of a project...?

<comment><USER23> Because it may be commonly accepted, but it's rarely actually done so well.

<comment><USER24> Game code specifically is usually the exception to this rule, because it tends to be written to very strict deadlines, ad-hoc requirements, short project lifetime (no need to maintain or support it for years after), and not much expectation of re-use.

This does not all hold for Doom3 as it was also an engine sold to other companies for other games.

</comment></comment></comment></comment></comment><comment><USER25> Only took 8 minutes and 22 seconds to compile this, I was quite surprised. Going to have some fun over the next few days that's for sure! Thanks Carmack, heh.

<comment><USER26> Can you give me some advice how to add the gamedata to the code?I got compile errors for I had no doom3 on my computer(windows 7),I'm downloading it now.

<comment><USER25> Sure. To compile you only need to get the DirectX SDK (from here [http://www.microsoft.com/download/en/details.aspx?displaylan...](http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=6812)). Then open Visual Studio (I'm using 2010 Ultimate, but Express should be fine).

(these are the steps that worked for me)

Open doom.sln Go to View -> Property Manager Expand Debug | Win32 Right click "Microsoft.Cpp.Win32.user" and choose Properties Select VC++ Directories

You need to add the following directories C:\Program Files (x86)\Microsoft DirectX SDK June 2010\Include C:\Program Files (x86)\Microsoft DirectX SDK June 2010\Lib\x86

Do the same for Release | Win32.

Doom3 should now compile. Note that 2 projects might fail and 1 could be skipped.

You should find Doom3.exe under doom3.gpl\build\Win32\Release From your Doom3 installation copy the "base" folder, if you have the expansion copy that too.

Doom3 should now launch.

If you have any more problems, feel free to ask!

<comment><USER27> hi I got his error, on ubuntu 11.04. I moved the base folder to the neo folder but it still didn't work. Is it because it's missing the game data?

      DOOM 18.104.22.1684-debug linux-x86 Nov 24 2011 00:27:04
      found interface lo - <USER4>
      found interface eth0 - 10.0.0.19/255.255.255.0
      </comment></comment></comment></comment><comment> Initializing File System </comment><comment>
      Current search path:
      /home/xx/.doom3/base
      /home/xx/doom3.gpl/neo/base
      game DLL: 0x0 in pak: 0x0
      Addon pk4s:
      file system initialized.
      </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>--
      ----- Initializing Decls -----
      </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>
      </comment><comment>- Initializing renderSystem </comment><comment>--
      idRenderSystem::Shutdown()
      Sys_Error: _default material not found

</comment><comment><USER28> This seems to be pretty hard wired to build 32 bit binaries only, I'm having a little trouble build on Ubuntu w/ amd64. First you need to install multilibs and 32 bit gcc/g++. But I got stuck when I'd need some other libs in 32 bit versions (zlib, curl and probably openal and others). Ubuntu doesn't seem to ship with 32 bit versions of some libraries as some other distros do (like Arch, for example). Or am I wrong, what packages and what repositories I need to get e.g. zlib 32 bit binaries?

Has anyone had success building this on a 64 bit machine?

Is my only option to set up a virtual machine with a 32 bit distro?

<comment><USER29> Fix SConscript.curl to look in /usr/lib32 for zlib (package name: lib32z1-dev ), and to pass -m32 to your compiler.

      /media/d2/sw/doom3.gpl/neo$ git diff
      diff --git a/neo/sys/scons/SConscript.curl b/neo/sys/scons/SConscript.curl
      index 4d889b9..7271dfc 100644
      --- a/neo/sys/scons/SConscript.curl
      +++ b/neo/sys/scons/SConscript.curl
      @@ -14,7 +14,7 @@ class idBuildCurl( scons_utils.idSetupBase ):

              def Compile( self, target = None, source = None, env = None ):
                      self.TrySimpleCommand( 'cd curl ; make clean' )
      -               cmd = 'cd curl ; CC=\'' + env['CC'] + '\' ./configure --enable-shared=no --enable-static=yes --enable-http --enable-ftp --disable-gopher --enable-file --disable-lda
      +               cmd = 'cd curl ; CC=\'' + env['CC'] + '\' CFLAGS=\'-m32\' ./configure --enable-shared=no --enable-static=yes --enable-http --enable-ftp --disable-gopher --  enable-fi
                      if ( self.debug ):
                              cmd += '--enable-debug'
                      else:
      @@ -37,5 +37,5 @@ else:

       g_env.Command( target_name, None, Action( build.Compile ) )

      -curl_libs = [ target_name, '/usr/lib/libz.a' ]
      +curl_libs = [ target_name, '/usr/lib32/libz.a' ]
       Return( 'curl_libs' )

Linked for me on Ubuntu 11.04 64-bit.

<comment><USER28> Thank you, this made it link.

I probably would have figured it out by myself, I solve this kinds of things for living. But I was trying to quickly build this before going to work and ran out of time.

</comment></comment></comment><comment><USER30> It will only be a matter of time before somebody converts this to Javascript :)

</comment><comment><USER31> I can't seem to find references to this anymore, but I seem to remember that the doom3 source code was stolen and released in like '03 or '04. So if that's true then my response to this article is, "Again?".

<comment><USER32> It was in '02. Id gave alpha code to ATI so they could tune their drivers. One of their employees leaked it.

[http://forums.gamershell.com/showthread.php?407-About- Doom-3...](http://forums.gamershell.com/showthread.php?407-About- Doom-3-Leaked-Beta)

</comment></comment><comment><USER33> I'm impressed by the cleanliness of the code base, very readable. From my experience, this is not the case with many C++ open source projects.

<comment><USER34> ...That's because Doom 3's engine is not an "open source project" as we know them ;)

<comment><USER35> Nor was it closed source as we knew it. I _wish_ I got paid to work on code that nice...

</comment></comment></comment><comment><USER36> git clone <https://github.com/TTimo/doom3.gpl.git>

and just browse around locally in your favourite editor.

<comment><USER37> Tip: they added direct URL cloning a while ago, so you can copy/paste without adding .git:

        git clone https://github.com/TTimo/doom3.gpl

</comment></comment><comment><USER38> How do I compile the map editor in linux? I guess it's in neo/tools/radiant but I haven't found a way to build it.

<comment><USER19> You don't. It's only implemented for Win32 (see neo/tools/edit_stub.cpp).

</comment></comment><comment><USER27> Anyone got this error?

      DOOM 184.108.40.2064-debug linux-x86 Nov 24 2011 00:27:04
      found interface lo - <USER4>
      found interface eth0 - 10.0.0.19/255.255.255.0
      </comment><comment> Initializing File System </comment><comment>
      Current search path:
      /home/xx/.doom3/base
      /home/xx/doom3.gpl/neo/base
      game DLL: 0x0 in pak: 0x0
      Addon pk4s:
      file system initialized.
      </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>--
      ----- Initializing Decls -----
      </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>
      </comment><comment>- Initializing renderSystem </comment><comment>--
      idRenderSystem::Shutdown()
      Sys_Error: _default material not found

</comment><comment><USER39> Hmm... Looks like this is an Xcode 3 project file. I can still get Xcode 3 from Apple's developer downloads, but it looks like it only includes the older iOS SDKs, not the OS X 10.5 SDK required to build this.

<comment><USER40> Try: [http://stackoverflow.com/questions/5378518/how-to-add- base-s...](http://stackoverflow.com/questions/5378518/how-to-add-base-sdk- for-10-5-in-xcode-4)

</comment></comment><comment><USER41> It's kind of sad to see the expressions of surprise that it actually builds and runs. Implying that most source code releases fail test case #1.

<comment><USER42> In my experience, it is usually an _environmental_ assumption that is mismanaged rather than the "source code" itself being broken.

Whether that is failure to check for a dependency, failure to document a dependency or failure to clearly specify which specific version of a dependency is required. And the pain of autotools is a completely separate chapter in describing how "my" environment can differ from "theirs."

All of that just goes to show that state management is _the_ hardest part of software.

<comment><USER41> True. Generally the failure of the packager is that they never do a clean install and build. And yes that is tedious but it finds so many issues, and isn't so bad with VMs.

</comment></comment></comment><comment><USER27> I am getting the error, "scons: __* [build/debug/core/sys/scons/doom] Source `/usr/lib/libz.a' not found, needed by target `build/debug/core/sys/scons/doom'. scons: building terminated because of errors." Anyone knows what I should install?

<comment><USER43> zlib

or zlib-dev if your distribution separates out development packages

</comment></comment><comment><USER44> Anyone else having trouble trying to run it? got the assets in place, get to the menu fine, hit new game then get a black screen with an empty box in the middle. Suspect its the copy protection?

</comment><comment><USER45> Are there any parts of the quake source code in here?

</comment><comment><USER46> Heard that the experimental render path with more advanced features is included in the source.

Can anyone here confirm/deny that?

</comment><comment><USER47> Does that mean we don't have to pay to get the game now? Compile the source and playable?

<comment><USER48> No. "This source release does not contain any game data, the game data is still covered by the original EULA and must be obeyed as usual."

You should be able to play a total conversion that does not rely on the original game's assets, however.

<comment><USER49> Suggestions? The Dark Mod looks interesting.

<http://www.thedarkmod.com/>

<comment><USER50> Requires Doom 3 game data to play. It uses many Doom 3 resources, and other resources are derived from retail game data.

</comment></comment></comment></comment><comment><USER51> thanks for this. i haven't even fully gone through quake 3's source yet.

<comment><USER52> I'm still on Doom :/

</comment></comment><comment> jc-denton Installed Doom3 using the CDs and updated to the latest release. Then opened the sln file in VS 2010 and changed the command line args for debugging to point to the data of the game installed from the cd (instead of steam).

Now what is the matter with default.cfg and what about "Unknown command 'vid_restart'"? I am not familiar with the structure of idgames.

      </comment><comment> Initializing File System </comment><comment>
      Current search path:
      C:\Program Files (x86)\DOOM 3\base/base
      game DLL: 0x0 in pak: 0x0
      Addon pk4s:
      file system initialized.
      </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>--
      Unknown command 'vid_restart'
      idRenderSystem::Shutdown()
      Shutting down OpenGL subsystem
      ...shutting down QGL
      Couldn't load default.cfg

<comment> jc-denton ah.. it works w/o the base at the end! So the correct path is "C:\Program Files (x86)\DOOM 3"

<comment><USER27> I got a similar error on linux. How did you get it to work?

</comment></comment></comment><comment><USER53> I hope this means that there will be an actual Doom package for Debian in the near future.

</comment><comment><USER6> Any gambling types fancy a little wager? Which will come first, a stable JVM port of doom 3, or a stable build of Textmate 2? The only problem is, I really can't think which side I'd come down on.

NOTE: For those primed to accuse me of hating: this is as much a compliment to certain hackers and their fixated attitude towards porting iD code dumps, as it is a snide reference to textmate2's status as vaporware.</comment>


Bats have outsmarted viruses–including coronaviruses–for 65M years - <AUTHOR> https://www.sciencemag.org/news/2020/07/how-bats-have-outsmarted-viruses-including-coronaviruses-65-million-years <comment><AUTHOR> Paper is here. Amazing that you can build such a high quality annotation for a de novo genome

[https://www.nature.com/articles/s41586-020-2486-3](https://www.nature.com/articles/s41586-020-2486-3)</comment>


Facebook's Sponsored Posts Become Smarter (and Creepier) - <AUTHOR> http://sridattalabs.com/2012/11/28/sponsored-stories/

<comment><USER2> Welcome to 2008? Facebook has been letting sponsors attach your friends' faces/comments in ads for a long time.</comment>


Hmm.. just installed Blender through Steam - <AUTHOR> http://i.imgur.com/PFGLLF5.png

<comment><USER2> That's amazing. I just checked steam and yes it is there. Great!</comment>


How/where to begin learning mobile (app) development? - <AUTHOR>

By way of background, I have an undergrad in CS and worked as a C++/Java programmer 10 years ago. I also have some experience with web development (LAMP). I'd like to get into mobile development (apps) for iOS, Android, etc. but quite frankly have no idea where to start.<p>If I choose a platform now (iOS or Android), am I essentially "stuck" in the platform or can I jump between the two? What do I need in terms of knowledge, skills, funds(?), to begin this learning process? The objective is to know enough to put together a team of devs, designers, to execute on B2B mobile apps. <comment><USER2> _but quite frankly have no idea where to start_

Pick up their respective SDKs, read their docs, and spruce up on their primary languages (Objective C for iOS, Java for Android). Having a device for each will be needed in the long run, but you can get started with just the SDKs and emulators.

 _If I choose a platform now (iOS or Android), am I essentially "stuck" in the platform or can I jump between the two?_

Not really, but as mentioned above, you will be jumping languages in most cases. If you're planning on supporting both platforms (or more), standardizing your back-end and any intermediary code/technology will save time and effort.

 _What do I need in terms of knowledge, skills, funds(?), to begin this learning process?_

Funds will be specific to your venture, but a good foundation in C++/Java is more than enough to get you started. Get reading!

<comment><AUTHOR> I'm assuming dropping a couple thousand dollars for a Mac and a "dev account" is obligatory to get any serious iOS training, development, testing?

Still fail to understand why Java was chosen for Android, but oh well, the learning curve ought to be flatter.

<comment><USER2> _I'm assuming dropping a couple thousand dollars for a Mac and a "dev account" is obligatory to get any serious iOS training, development, testing?_

Good point, had a brain fart. I suppose it depends on how little you want to spend, obviously bigger is better. On the cheap end, I've had no problems developing in the past on a cheap refurb Mini (Intel-based) after swapping in memory and a faster drive. Also, you can pick up the SDK and Xcode with an unpaid developer account, but will need the real thing for publishing to the App Store.

 _Still fail to understand why Java was chosen for Android, but oh well, the learning curve ought to be flatter._

I think you've mostly answered your own question: everyone knows it. On the bright side, the latest JVM with JIT is pretty nice.

</comment></comment></comment><comment><USER3> When you are targeting multiple platforms, it pays to choose an abstraction framework like titanium or phonegap. Using these frameworks, your app can easily be ported.

<comment><USER4> While that's fine for simple, information-appliance apps, more serious apps _need_ to be coded natively if you care about user experience. At least for now, but I hear the HTML5 train is a'comin'.

<comment><USER3> Good point. Although you can access parts of the hardware like accelerated transitions, GPS, accelerometer etc.</comment></comment></comment>