Inside the first-ever NFL broadcast in 4K HDR - <AUTHOR> https://www.theverge.com/2019/9/26/20884246/nfl-4k-hdr-broadcast-first-ever-fox-sports-thursday-night-football-streaming <comment><USER2> From the article... "the press release came with a caveat: the game will still be produced in 1080p HDR and get upscaled to 4K for delivery"

<comment><USER3> I read through the article and I am feeling lost as to why they couldn't actually retool their production pipeline for 4K native. 40 cameras sure does sound like a lot, but I am watching guys on youtube shoot 4x the pixels and manage their workflows around the massive volumes of data (apparently) without issues.

Is it the broadcast equipment itself blocking the production pipeline from an upgrade? I would be very interested to hear from a broadcast industry pro where the actual technical constraint is (bandwidth, storage, compute, hardware, etc.). I feel like financing this wouldn't be a problem for the NFL+Fox.

<comment><USER4> The short answer: The live broadcast switching/transport industry has been slower to adapt to 4K HDR than other industries, primarily because there is no live broadcast (ie. cable, satellite, over-the-air) support for 4K or HDR.

YouTubers can do 4K because modern desktops (and some laptops) have h.265 decoding/encoding acceleration, and they're typically only dealing with 2 content streams on a single timeline. An NFL broadcast is a living nightmare compared to that.

</comment></comment></comment><comment><USER5> Why is hdr needed when the majority of games are not in the sunshine?</comment>


Microsoft Small Basic - <AUTHOR> http://msdn.microsoft.com/en-us/beginner/ff384126.aspx?ppud=4 <comment><USER3> This totally isn't like Shoes by _why at all.

<comment><USER4> Do you mean hackety hack? I believe shoes was his GUI toolkit.

See: <http://vimeo.com/5047563>

<comment><USER5> To be fair, Hackety Hack is built with shoooes, so it's an easy mistake.

</comment></comment></comment><comment><USER6> The installer seems confused.

The first time, the installer installed the French version. I thought it might be some kind of fluke or I'd missed the language option. I redownloaded/uninstalled/reinstalled.

The second time, I had the Russian version.

Microsoft isn't making it easy for me to speak their language.

<comment><USER7> It installs a dozen localised shortcuts as well as English, any of which may pop up when you press the start button. Look in all programs in your start menu to find the English version.

</comment></comment><comment><USER8> From screenshot:

      "Press  to stop game"

Funny how much sense that makes in a twisted way. I was thinking that they had some kind of functionality that had you attach text to a keyboard event to explain it. Alas.

      GraphicsWindow.DrawText(x, y + 320, "Press to stop game")

It's just a ... feature.

Edit: and the key they hooked up "stop game" to was not space, it was escape :(

<comment><USER9> I love when examples / high-visibility content has visible errors.

Another one, about v0.8:

      The eigth and newest installment of Small Basic...

Granted, "eighth" looks ugly too.

</comment></comment><comment><USER10> Though I began with GW-BASIC on MSDOS 6.22 way back, but...

I would like to see a similar poster with a poor kid shown running linux on an old donated PC (because he can't afford one that runs vista/7) and playing with Python in bpython.

Doing much more than what he/she can do in Small Basic and learning something which would actually get him some money in future if he/she goes in the right track.

I wonder if this is case-sensitive too, I dont like the "To", "EndFor". The title of the current script - "Tetris - Imported", is so confusing, I see no tetris anywhere, all I see is something done to the poor turtle. I also wonder what is the default direction of Mr. Turtle, I just can't guess what would be drawn.

I would like the kid to know that he needs not know wtf is ".NET", teach programming, don't advertize to them. Let them create their own .net if they want to.

</comment><comment><USER11> Its in the right direction, I remember learning qbasic on dos it was a great way to get started and then sadly I graduated to visual basic. Which was a good place to start ;) I can't even read it these days but we all start somewhere.

<comment><USER12> I started with gw-basic and remember thinking how awesome it was in qbasic that I didn't have to use line numbers.

<comment><USER13> Ironically, I think it would _improve_ software quality these days if you were required to refactor your subroutine if you wanted to insert more than 9 lines of code somewhere.

</comment></comment></comment><comment><USER14> I like the nod to Logo in the first screenshot.

<comment><USER15> Yes! My thoughts exactly! I had so much fun with that language as a kid growing up

<comment><USER7> Same, I remember playing that turtle game on a mac in primary school!

I think it is awesome that it is such a small download, and that you can publish to the web too! :) <http://smallbasic.com/program/?FHZ097>

</comment></comment></comment><comment><USER16> Two things I noticed right away.

1\. The buttons on the ribbon are insanely large. Almost to the point I think I would be annoyed with this back in 6th grade. (I'm not 6 years old!)

2\. The description of the move command is very technical. The same person that is writing docs for MSDN should not be writing docs for kids. (Seriously... "moves the turtle the specified distance")

</comment><comment><USER17> Okay, Apple ][ Basic was fun.

Especially with the semi-graphics, semi-text mode. Line here, line there - <USER2> get the picture. I've got buddy back then who was able to write a whole BASIC application that draws Michael Jackson (yes there was Take One back then, but he wrote a 24kb code doing that).

Anyway... QBasic was fun too, and the MS-DOS one somewhat.

But this is not.

</comment><comment><USER13> Anyone here actually have their first programming experiences with a "kid" language? I know I started on regular "adult" BASIC, then moved on to C and C++. No hand-holding anywhere, and I never found it to be too difficult.

So personally, I'm wondering what the value is here.

<comment><USER18> My first programming experience was with this shareware Mac app called GameMaker in the mid-90s. It let you make card-based adventure games. I ended up meeting all these kids on AOL back then who also used the app.

I'm still in touch with a lot of them, and it's amazing how many have become incredibly talented, successful, entrepreneurial folks (and we're all mostly in our 20's now).

The interesting thing is that this app was probably the worst way to learn programming. It didn't have operator precedence, functions, arrays, or many other basic features. It was a toy language in the most pejorative sense of the term -- not one carefully laid out for pedagogical purposes. I learned so many bad habits.

But that didn't matter -- the real important bit is that we all learned how _fun_ it is to _actually build stuff on your own_ and release it. I think that's the critical spark that makes the rest happen.

So many people have never experienced this joy and spend their entire careers only working on things other people have assigned to them.

<comment><USER19> Sounds similar to rm2k around 2000-2004. The language idea's sound similar and it was all ui based programming where you selected commands off menus rather than click them.

Part of the challenge though was overcoming the engine limitations as you could only display 20 pictures at a time but you were able to use sprites as images and change the sprite being displayed.

</comment></comment></comment><comment><USER20> The thing that caught my eye was the big "Graduate" (to Visual Studio) button right next to "Run".

Color me jaded.

<comment><USER21> The appropriate analogy would be unsuitable to the audience. SB is targeted at kids. You shouldn't describe to a kid what the "graduation" really means.

</comment></comment><comment><USER22> Gotta love subroutines without explicit variables, causing comments like:

      ValidateMove()  ' in: ypos, xpos, h, moveDirection ret: invalidMove = 1 or -1 or 2 if move is invalid, otherwise 0

If I were a little kid, that would look like Greek to me.

<comment><USER23> When I was a little kid, I wrote programs in Commodore 64 BASIC (a version of early MS BASIC), and my subroutines couldn't even have names. GOSUB 1060 was an example call, and if you wanted arguments, you put them into globals; and you had two (count 'em, two) significant characters for your variable names.

<comment><USER21> I think the 8-bit BASIC maintains the abstraction level adequately close to the real underlying hardware. What SB does is to make a machine that is capable of things many orders of magnitude better and dumb down the abstraction to match (to a certain degree) what was available on the desktop computers of the 70's.

</comment></comment></comment><comment><USER24> I wonder if anyone has attempted doing anything like this for FP? All the recent examples I've see are OO to the max.</comment>


My startup needs someone with a sexy voice - <AUTHOR> http://www.danshapiro.com/blog/2013/02/my-startup-needs-someone-with-a-sexy-voice/

<comment><USER2> Plenty on <http://voicebunny.com/search>

<comment><USER3> Thanks! I was going to recommend this service but couldn't recall the name.

</comment></comment><comment><USER4> I know this is about sales, so this might not be too helpful but...

IIRC, patio11 used a voice actor that he found on fiverr to create the MVP for appointmentreminder.org.

</comment><comment><USER5> We use voices.com for videos, etc. $100 for a ton of work. Well worth it! The guy who is the voice for Esurance did a lot of work for us.

<comment><USER6> The current voice of esurance (post Allstate acquisition) is John Krasinski of The Office.

</comment></comment><comment><USER7> Ooops...nobody has read the article...:)</comment>


Can Machines Think? Interaction and Perspective Taking with Robots Investigated via fMRI - <AUTHOR> http://www.plosone.org/article/info:doi/10.1371/journal.pone.0002597 <comment><USER2> Matrix restarted...</comment>


Ask HN: Best way to use tuition assistance - <AUTHOR> Many employers offer up to $5,250 per year in tuition reimbursement for tuition assistance.<p>I believe it has to be used to fund education related to your field of employment. Has anyone found good ways to utilize this (good CS courses or field-adjacent courses)? <comment><USER2> If you don't have a BS degree, get one. It will take a while, but the money from your employer should pay for 2 classes a semester at a state school. (Thanks Boeing!)

My suggestion, at about the 10 year mark in experience, get an MS degree (or and MBA, if that is your thing). My MS took 5 years as the tuition reimbursement covered only 2 classes per year at the school I chose. (Thanks L3 Communications!)

None of the classes I took made me "an expert in something at work". The sum of all the classes, arguably, made an attempt.

Diff Eq. Calculus. Linear Algebrae. Data Structures. Software Requirements. Theory of computation. All of them fill in the space between what you have figured out on your own and what you need to know. And allows you to build on to bigger things.

<comment><USER3> Also, if your employer's tuition reimbursement plan allows it, CLEP out of whatever you can towards a BS.

</comment></comment><comment><USER4> Use it for conferences</comment>


Do you use a microwave or oven to reheat food? - <AUTHOR> I grew up heating and reheating food and drink in a microwave. After moving in to my own place, I opted to use a small oven over a microwave. The food heated in an oven tastes superior to food heated in a microwave.<p>How is that the microwave became ubiquitous? Generally speaking, a minute in the microwave would require 8 minutes (+ 3 minutes for preheating) in the oven. So is it simply a matter of time savings? "Save ten minutes and eat food that tastes worse?" <comment><USER2> The food doesn't just taste worse its unsafe since microwave technology has be shown not heat food uniformly and can leave cold spots.

Also microwaves somehow change the texture of the food. A pizza in a microwave undergoes some alteration that makes the cheese get a rubbery texture.

I don't use microwaves much anymore. I rather just wait. Its not going to kill me - but cold spots might.

</comment><comment><USER3> I could go either way, but lately I tend to use the conventional oven for re- heating. About the only thing I use my microwave for is heating up a bowl of canned soup, or heating any kind of frozen "tv dinner" type packaged meal. And of the latter, I try not to eat those terribly often. Campbell's Chunk Soup on the other hand, I eat moderately often.

Anyway, as to whether or not there's a noticeable taste difference... I don't know. Never really thought about it. For re-heating (as opposed to initial cooking) I wouldn't expect there to be much difference, but who knows?

</comment><comment><USER4> I haven't owned a microwave in 10 years and I do not miss it. It changes the texture and taste of my food while not heating it all the way through consistently. Microwaves are a gateway to processed junk foods. I don't mind waiting for food to warm up in my oven or a frying pan.

</comment><comment><USER5> both. If it doesn't need to be 'crisp' then a microwave is good enough. Other wise the oven is slower but better.

With both methods, the various technique(s) used can make a lot of difference to the final palatability of the end product.</comment>


Abolish LLCs? - <AUTHOR> http://www.theagitator.com/2011/10/23/sunday-discussion-should-we-abolish-the-limited-liability-corporation

<comment><AUTHOR> The only reason I am even considering an LLC for my one person software company is patent trolls.

</comment><comment><USER2> He's talking about the corporate form in general not LLCs specifically.</comment>


Programming Language Network: A Graph of Programming Languages - <AUTHOR> https://fatiherikli.github.io/programming-language-network/

<comment><USER2> My favorite computer scientist is "et al."

[https://www.dropbox.com/s/4f4s6au5dcshef8/Screenshot%202014-...](https://www.dropbox.com/s/4f4s6au5dcshef8/Screenshot%202014-11-01%2019.42.14.png?dl=0)

<comment><USER3> Ah, Dr. _& rest_, prolific!

</comment></comment><comment><USER4> This sort of visualization while really really cool (and kudos to the developers) is also really hard to navigate. I can't easily find any of the languages I'm looking for without a lot of visual scanning and zooming in-and- out.

<comment><USER5> You can center the view on any language by adding "#language:<lang name>" to the URL. For example: [https://fatiherikli.github.io/programming-language- network/#...](https://fatiherikli.github.io/programming-language- network/#language:Racket)

<comment><USER6> Or just <ctrl>-f Languagename.

<comment><USER5> Yes, but then good luck with finding C, J, K, B or similar :) BTW, I'm not sure, but I think all the single letter language names are taken already?

<comment><USER7> Still some single letter programming language name left according to this blog post: [http://iron9light.wordpress.com/2009/12/16/single-letter- pro...](http://iron9light.wordpress.com/2009/12/16/single-letter-programming- langage-a-z/) . However the post is a little old, so it may have changed.

</comment></comment></comment></comment></comment><comment><USER8> The names inside the nodes are not readable. They don't display name when clicked or hover the cursor over them. So I closed the page after 5 or 10 seconds.

</comment><comment><USER9> There are many nodes and edges missing. It would be great if the underlying graph was on a wiki. Maybe this content could be added to Wikidata ([http://www.wikidata.org/](http://www.wikidata.org/)).

<comment><USER10> You may be interested in DBpedia, which gets its data from wikipedia but presents it in a structured format (for example, the page for Clojure: [http://dbpedia.org/describe/?url=http://dbpedia.org/resource...](http://dbpedia.org/describe/?url=http://dbpedia.org/resource/Clojure&sid=17176)), though for this case, it seems the data is already on wikipedia.

<comment><USER11> The problem with Wikipedia as the data source is that there's some goof who goes around deleting articles on programming languages which aren't prolific enough (e.g. Kernel by John Shutt). Some pages don't exist to begin with (or can't exist, because the only source of information is on the language author's own page, and doesn't meet the criteria needed to be listed).

Shame, because some of the languages not listed tend to be the most interesting ones.

</comment></comment></comment><comment><USER12> It's interesting that the distinction between functional languages and imperative languages is not at all clear in the graph. This could be caused by the fact that the visualization technique used is not capable of showing this, or that there are simply too many types of edges (or because each type of edge is getting the same "importance" in the graph drawing algorithm).

</comment><comment><USER13> Looking at the source, it looks as though each node is in a fixed position on the graph. Wouldn't it be easier to use something like graphviz where you just declare the nodes and connections, and it (graphviz) takes care of drawing it properly?

</comment><comment><USER14> This is a more useful visualisation of programming languages:

[http://exploringdata.github.io/vis/programming-languages- inf...](http://exploringdata.github.io/vis/programming-languages-influence- network/)

</comment><comment><USER15> This doesn't look too nice graphically. Influenced by -lines are grey on grey which is almost invisible. Also, it doesn't make much sense either. C# is placed close to Smalltalk, far away from C and C++, not to mention Java.

</comment><comment><USER16> A search function would be killer.

<comment><USER17> My thoughts exactly. Center the term if found and highlight it would do the trick already.

There also needs to be better filtering of the raw data ("many others" near Python is kind of a head scratcher for example).

Filters for "just languages" or language + path length of X etc. might be cool as well.

A simple NON_AUTHORS = ["others", "et al."] etc. and using that in normalize_data would be a good start imo.

Edit: Plankalkül also has encoding issues :)

</comment></comment><comment><USER18> A filter for those who are only interested in one aspect of the graph (i.e. language influence) would be very nice. With the current balancing, Haskell is closer to Java than to ML.

</comment><comment><USER19> Would be nice to have the reverse edges,

       * Influenced
       * Designed
       * Developed
       * Dialect of
       * Implementation of
       * Implements

</comment><comment><USER20> Sorry to say it but what a mess.</comment>


Ask HN: How do you store 2FA one-time codes? - <AUTHOR> When you set up 2FA using an authenticator, you are given a list of one-time codes to use in the case when you lose your phone and don't have access to the authenticator app.
Where do you store those? I would imagine that at least: (a) these should be on "the cloud" and (b) encrypted.
What's your current process of doing this? Do you just store them in your password manager (e.g. in the "notes")? <comment><USER2> I literally print them, and store them in a safe place.

One of the few actual hard-copy things I have. Don't write down any other passwords. One of them is to my password manager, so storing it in the password manager doesn't really make sense.

</comment><comment><USER3> I'd like to point out that having 2FA backup codes in your password manager means that if it gets compromised your security level is zero. It's called second factor authentication (2FA) for a reason, it should not be kept with your other secrets (e.g. password).

I print them out and keep them in the safe. I have 2-3 codes for each of my most important accounts in my wallet, with unrevealing names (nothing that anyone but me would associate with a certain account).

</comment><comment><USER4> In 1Password.

</comment><comment><USER5> In my password manager notes section

</comment><comment><USER6> As a secure note in LastPass</comment>


How some new programmers made the most popular Android game in Iran - <AUTHOR> http://techrasa.com/2015/07/08/how-a-bunch-of-kids-made-the-most-popular-android-game-in-iran/?utm_source=HN%2C%20Voat&utm_medium=Content%20marketing&utm_campaign=Emy%20

<comment><USER2> Strange that the article does not link to the game itself. For those interested here it is - [https://cafebazaar.ir/app/ir.treeco.aftabe/?l=en](https://cafebazaar.ir/app/ir.treeco.aftabe/?l=en)

</comment><comment><USER3> "They were all under 20...", So yeah, basically, kids? I don't understand journalists obsession with age. These are young men. Not kids.

<comment><USER4> full quote: "They were all under 20 so you can imagine it's somehow hard to believe they could pull it off"

Ridiculous, yes. "Kids" used to learn high tech skills like blacksmithing and hunting..

I flagged this for sensationlism. Someone tell me if that's a bad flag..

<comment><USER5> In Iran we don't have successful apps or startups made by very young people. Our ecosystem is so young, hence no one could believe it.

</comment></comment></comment><comment><USER6> That kid learned enough Java/Android and produced a game in 3 months? Impressive!

</comment><comment><USER7> could some one please explain what is the game ?

<comment><AUTHOR> It's one of those games which shows some pictures like a group of people, a will smith and a stone + a you which means we will rock you. there wasn't such a thing in Iran but they made good money with this game and they've got famous as well!

</comment></comment><comment><USER8> cool

</comment><comment><USER5> niceeeee</comment>


Normalize First - <AUTHOR> http://codeeleven.blogspot.com/2008/07/normalize-first.html

<comment><USER2> I think that the linked blog post goes a bit overboard. Atwood himself says repeatedly that you should start with a normalized schema; he just also says that denormalizing for performance reasons should not have such a strong stigma attached, given that it's the only way to make big, massive databases work correctly. We can argue over whether Atwood is arguing to optimize a bit too early, but the general idea he's expressing is neither new nor (at least among experienced DBAs) disturbing.

<comment><USER3> Except that the premise is wrong! Denormalizing will not help you speed up the database. It's a false argument. It just won't do that.

There are specific table structures combined with specific query type that can be denormalized to speed things up. But a normal table will not speed up in the slightest, in fact most of the time it will slow down!

It will slow down because if you need only 1 column out of several, the larger each row is the slower the access will be.

Denormalizing is even worse for large sites. By normalizing you can often put some tables on one machine, and others on a different one. For example screen_name and phone number, which jeff combined. Screen_name is used by the chat program, and phone number by the profile page.

Run the chat program on a totally different set of machines. All you need to send it is the user_id.

<comment><USER4> I get what you're saying. But I think "screen_name" is used here to indicate the IM links that some sites let users put on their profile. They then create the little ymsgr:sendIM?user_name hyperlinks so that you can IM that person.

So, that IS actually something that would go on the profile page, right with the phone number.

I'd always heard that normalization should only be done at sane data boundaries. IE, if you have a bunch of fields that always go together, they should be in the same table.

<comment><USER3> The thing with screen_name was just an example of how normalizing could help with speed. It wasn't meant to be definitive. Plus for the profile page you could just get the data from that other server.

>I'd always heard that normalization should only be done at sane data boundaries. IE, if you have a bunch of fields that always go together, they should be in the same table.

No, not exactly. It's too big of a subject to explain in a post like this, plus there is tons of text on it if you search.

But, basically normalization removes duplicated data from the database. It's also used to allow multiple X to exist for a single Y without having columns like X_1, X_2, X_3, etc. And finally it's used to show relationships between things.

There are some people will will simply split a table into two tables along logical boundaries (but still, just one row in each table). This is not normalization. It can be done if some data is accessed rarely, or because the database can not handle such a big table, but it's not because of normalization.

</comment></comment></comment></comment><comment><USER5> Oh man, this is just as bad as the Coding Horror post.

Four lists:

1\. Things which are relations

\-- relations

\--

2\. Things you can use to represent relations

\-- pen and paper

\-- perl/python/ruby/javascript/etc arrays & hashes

\-- c arrays & pointers

\-- SQL RDBMS tables

\--

3\. Things which the concept of relational normalization applies to

\-- relations

\--

4\. Things which the concept of relational normalization doesn't apply to

\-- pen and paper

\-- perl/python/ruby/javascript/etc arrays & hashes

\-- c arrays & pointers

\-- SQL RDBMS tables

\--

If it sounds like I'm being pedantic, realize that 3 things must be taken into account when talking about whether or not a group of SQL tables represents a normalized group of relations: table stucture, row structure, and access methods.

It's possible to put an entire, fully 3rd normal form, relational database into a single SQL table.

</comment><comment><USER6> Not long ago I submitted an Ask HN that requested information on database design practices but it never got popular. It seems like it would be quite obvious to most here on how to perform quality database design, but I cannot find any good resources online. If any or you here have that info, or more specifically standard practices that are not necessarily in books, please reply because I tend to feel somewhat lost on the topic.

<comment><USER4> Articles that always seem to bubble up on HN:

1\. _Paul Graham was wrong in that essay, and also he's an idiot._

2\. Anything by Jeff Atwood

3\. _Jeff Atwood was wrong in that blog post, and also he's an idiot._

4\. _How I made my startup (succeed|fail) by working 114 hours a day and eating only cardboard and pocket lint._

4a. _How we built a web app in 4 minutes for only $0.37_

5\. _Being a (programmer|hacker|founder) is teh awesome._

Not saying that all the articles are on those subjects, but they are HN gold, that's for sure. If you could somehow work some of these topics in to your question, it might do better.

<comment><USER7> Well look at the demographic of the HN user and the obvious becomes even more obvious.

</comment></comment></comment><comment><USER8> I saw this over proggit and it made me laugh hard enough that I bookmarked it.

Now I think of it every time I see Atwood's name:

<http://lost-theory.org/realultimatepower/> (Yes, it's a ripoff of <http://realultimatepower.net>)

</comment><comment><USER9> This submission title looks like a troll, but I'll bite.

The good thing about Coding Horror is that it gets people thinking about issues that they might not have considered before. While the details may not be 100% correct, I think the general principle he's trying to communicate is valid.

I can't speak for Jeff, but one of the things that he will probably admit is that he isn't perfect. I've found that he doesn't necessarily write about stuff that he is an expert on, but mostly stuff he's learning about or issues that people should perhaps be thinking about.

I'm sure there are plenty of other websites that debate the finer points of database design.. perhaps they too should stop blogging in case that someone takes their advice too literally. :P

<comment><USER10> Atwood runs Wordpress on a Windows box. Enough said.

<comment><USER9> There's really no need to be dogmatic about it.

If it's stupid and it works, it's not stupid.

<comment><USER11> This must be some new method of doing boolean algebra and discrete math I'm not familiar with.</comment></comment></comment></comment>


Android Things 1.0 launches, Google promises 3 years of updates for every device - <AUTHOR> https://arstechnica.com/gadgets/2018/05/android-things-hits-version-1-0-with-centralized-google-update-system/ <comment><USER2> > every single Android Things-based product will get _three years_ of OS > updates, direct from Google, for free

Only three years? That is not at all reasonable for IOT devices. Many of them will be in use for far longer than three years.</comment>


The state of Linux dual monitor support - <AUTHOR> http://jonblack.org/2013/06/02/the-state-of-linux-dual-monitor-support/

<comment><USER2> The most annoying issue with dual monitors is by far the default configuration when the system starts.

I've used unity, gnome and xfce and the only one I found good enough as been xfce because no matter how the screens are, you run xrand/arandr and your 2 screens are setup properly.

<comment><AUTHOR> I disagree that xfce is good by default. On my system it started in mirror mode. It's also very hard for novice users to find out how to enable the extended desktop. The best default setup is either KDE or Unity, because they are extended by default. The downside is that adding other features is complicated.

</comment></comment><comment><USER3> The state is not good enough. I don't know enough about X to configure it correctly, and I actually don't want to learn it...

<comment><AUTHOR> Luckily none of the desktop environments I tested required editing xorg.conf.

I agree the state could be better. The most disappointing aspect is the lack of individual panel and task bar support.

</comment></comment><comment><USER4> even worse when you are using a laptop, and the second monitor is not always connected.

<comment><AUTHOR> I don't have a laptop. What's the problem with it? Does it not remember settings?</comment></comment>


Whats-My-IP-Service without all this crap - <AUTHOR> http://denisu.jp/ip/ <comment><USER2> With a heavy heart, I'm deleting my bookmark to <http://www.moanmyip.com/>

</comment><comment><USER3> <http://whatismyip.org/>

A bit easier to spell/remember.

<comment><USER4> Usually those services tell you your public IP.

This service says my IP is 10.1.3.46, and while technically correct, useless.

<comment><USER5> How can it give you your private IP address? I'm curious...

Is there a javascript call to list the IP addresses of any machine? That feels very insecure to me.

EDIT: Sorry I forgot to turn on my joke detector.

<comment><USER6> It probably gets it from the X-Forwarded-For HTTP reader inserted by his intranet proxy.

<http://en.wikipedia.org/wiki/X-Forwarded-For>

</comment></comment></comment></comment><comment><USER7> I've always been partial to <http://ipchicken.com> . It's got commercial motives, but it's easy to spell, it's easy to ask people to go to it and have them remember, and the numbers are giant and readable. This is all good!

</comment><comment><USER8> For some additional crap, check <http://www.ipspotting.com/> \- also easy to remember and fun in new places.

</comment><comment><USER9> Now an easy to remember domain name and you're good to go! edit: <http://tinyurl.com/givemyip>

<comment><USER10> <http://whatismyip.org> has an easy-to-remember URL and no crap either.

</comment></comment><comment><USER11> Ah, but i do find the speed test available at <http://www.whatismyip.com/> useful.

</comment><comment><USER12> I just found this great site giving extensive information:

<http://ip-lookup.net/>

</comment><comment><USER13> Or just paste this in a .php file:

<?php print $_SERVER['REMOTE_ADDR']; ?>

Then you've got the IP address without _any_ frills.

</comment><comment><USER14> For you minimalists: <http://checkip.dyndns.org/>

<comment><USER15> The full response of which being:

 _<title>Current IP Check</title>Current IP Address: xx.xx.xx.xx_

That's surely not minimal. What you need is a simple plain-text: xx.xx.xx.xx.

<comment><USER16> or even better, an easy-to-parse key value pair:

ip=126.96.36.199

<comment><USER17> I'd contend that "188.8.131.52" is a more minimal, and useful, return value than "ip=188.8.131.52".

<comment><USER18> "ip=18.104.22.168" would be actually nice if the output would be like:

      ip=126.96.36.199
      location=france
      ua=Mozilla/5.0 (Macintosh; U; Intel blah blah

</comment></comment></comment></comment></comment><comment><USER19> <http://myip.dk/> is short and simple.

</comment><comment><USER20> here is another one <http://tejji.com/ip/my-ip-address.aspx></comment>


Dozens of PC games drop tracking software after surveillance fears - <AUTHOR> https://www.wired.co.uk/article/red-shell-game-tracking-gdpr <comment><USER2> The responses from the game companies have been absolutely pathetic so far. They amount to "Blah blah blah, bbbbbut marketing!!" No apologies for what they were doing, just "sorry we got caught". No shame at all, and no recognition that they were shipping malware to their customers. Some have promised to remove it but find some other way of using my computer against their users. My computer is not a free resource for your marketing department.

If the software is so benign, offer it to users as totally optional install or a separate download, and see how many agree to that offer.

EDIT: For example, see the official response from the Quake Champions team [1]. Summary: _This data vacuum is actually for your own good. That said, we're busted! So we will remove it for now, and we will tell you about it when we add it later, when everyone chills out._

EDIT2: Wow, so much garbage the further you get through the article:

> [Adam Lieb] expressed his frustration with the response online, which he > says painted a false picture of Red Shell as a spyware programme trying to > sell data for malicious purposes.

spy·ware

 _noun_

software that enables a user to obtain covert information about another's computer activities by transmitting data covertly from their hard drive.

While they may not be selling the data for malicious purposes, it is, by definition, spyware.

1: [https://steamcommunity.com/games/611500/announcements/detail...](https://steamcommunity.com/games/611500/announcements/detail/1674658681938498204)

<comment><USER3> There needs to be some kind of codified Consumer Bill of Rights that says, in effect, "We paid for your product. You do not get to monetize us further after the point of sale."

Companies could then signal whether they agree to adhere to that code of conduct or not, and use it as a selling point for consumers to tell, at a glance, whether they want to support said company or not.

<comment><USER4> I would settle for aggressive sandboxing built into the OS. Something that tells me, "This application has permission to run full-screen, play audio, and contact the network. You may revoke these permissions individually. It cannot run invisibly in the background. It cannot read your files."

<comment><USER3> The tracking from Red Shell would be very hard to stop at the OS-level, because the things they're gathering are all stuff that has legitimate relevance to the game (e.g. the game may want to know what CPU, RAM, and videocard you have for recommended settings). Further, an internet connected game _needs an internet connection_ to work.

So it would be very hard for the OS to tell the game, "You can send packets about the player's current position in the gameserver, but you can't send packets back to the software developer that contain fingerprint information." The developer would just encrypt the info and send it all to the same destination to make all packets look the same.

<comment><USER5> I think people are less concerned about hardware specs and more concerned about cataloging of software installed, logging DNS traffic, and capturing PII.

</comment></comment></comment></comment></comment><comment><USER6> >"People can have their own opinions on it but our data is not personally identifiable information (PII),"

Err..isn't the point of this exercise to have enough data to identify who bought the game and why? I feel the exact kind of computer I use and the various customizations that lead to it being a unique machine are _very_ personal and identifiable.

<comment><USER7> No, the point is to collect enough info to link a user who launched the game to someone who clicked an ad.

The problem Red Shell is trying to solve is the "download divide" \-- You can track clicks/users on the web before they download, and you can track them after they launch your product, but you can't easily connect the two.

As for why devs want this, if you know ad campaign 1 cost $1 and had 2000 clicks, and ad campaign 2 cost #1 had 1000 clicks, that is helpul but what you really want to know is "what is the lifetime value (LTV) vs cost of acquisition of users from campaign 1 vs 2" because if LTV is significantly different then despite higher cost it may clearly be worth it. But if you can't connect a user from before the download to after you can't do this sort of calculation.

Devs really don't care who the users are, we just want to know how effective a campaign is compared to one another.

Source: Was planning on integrating Red Shell ourselves before this (false) outrage made us cancel our plans.

<comment><USER6> While I agree that is what they officially say they do, the means employed go beyond that. From the article:

> "These are generally data points about the user's device, such as its > operating system, installed fonts, browsers (and versions) used, timezone, > language, the user's in-game ID, and screen resolution. This is what Red > Shell calls a 'fingerprint', which can also be made on games consoles as > well as PCs."

Such a fingerprint is very unique and can easily be connected to a person with very little effort down the line, even if _now_ nobody does that (yeah, right).

Personally, I do not trust any company that collects such detailed information without my informed consent and without a clear (i.e. verifiable and legally enforceable) pledge to delete that information when the original purpose has been served. This is exactly the overshooting behaviour that was rightfully targeted by the Europeans with their recent data protection law.

edit: formatting

<comment><USER8> Okay, I get this, but then do services like Google Analytics get a free pass?

<comment><USER6> No, I don't trust Google either. But at least Google is somewhat open about the fact that they collect the data. I can have a look at it and I have settings to influence and even delete (probably) what is being collected.

That is vastly different from a spyware module installed clandestinely together with a software I paid for that sends data about me to somewhere and somebody then does something with it that I don't know about.

</comment></comment></comment></comment></comment><comment><USER9> Steam (and others) really should scan for that kind of spyware in the files they provide to the players. Add a warning maybe ( _Contains a known spyware_ ) or flat out refuse the editor to bundle that file with their game/app/whatever.

<comment><USER10> I'd be surprised if Valve didn't have their own fingerprinting tech, e.g. for tracking users across multiple accounts (practical, benign use case: banning cheaters who were VAC banned but make new accounts).

<comment><USER11> There no real benefit to any of that though. The steam client already collects all the data they need for this.

<comment><USER10> Does it matter if it's in the client or in the game itself?

</comment></comment></comment></comment><comment><USER12> Why don't these game companies use a promotion code in their ads to track the ad to a sale? That way the customer feels like they're getting a deal and there is no need to fingerprint their machine. This seems like a fairly common practice in other industries.

<comment><USER13> Why bother giving somebody a deal when they can just do whatever they want to your computer and have no repercussions?

<comment><USER14> Well presumably they pay Red Shell? Or they sell your data. Idk how else Red Shell is making money.

</comment></comment></comment><comment><USER15> Since what they check against is a fingerprint, couldn't Red Shell just hash the data they create that fingerprint from, making it so they can guarantee that they don't really know anything about the player's data, just that it fits the one that saw the ad? This seems so simple I almost feel like they would have some reason not to do it. Do they make money selling the data aswell as the fingerprint matching? Or am I completely misunderstanding it all?

<comment><USER16> They are hashing the data.

<comment><USER17> Well... Yes they do. After you send the unhashed data to them.

Check redshells API docs. They turn the data the games client sends to them into a hashed ID.

</comment></comment></comment><comment><USER18> The article wonders, why people got upset about Red Shell on Conan Exiles for example, but not on Civilization VI...

I think it is related to two very important details.

First, Red Shell purpose, as stated by Red Shell themselves, is to create a "fingerprint" of the computer, yes, each tidbit of info separately is not "identifiable" but the purpose of the software is build indentifiable information in first place.

And second... the game where people found Red Shell first, and went nuts about it, Conan Exiles, is a game that lots of people don't want anyone to know they play it, the game has lots of very politically incorrect themes (slavery for example), and is very popular to use for Erotic Roleplay... People of course get paranoid when there tracking software in their porn!

<comment><USER19> > The article wonders, why people got upset about Red Shell on Conan Exiles > for example, but not on Civilization VI...

Actually there has been quite a bit of backlash, there's a thread with around 2000 comments about it in the forums: [https://steamcommunity.com/app/289070/discussions/0/17095641...](https://steamcommunity.com/app/289070/discussions/0/1709564118762025388/)

Also, the recent reviews have been negative because of Red Shell.

> Conan Exiles, is a game that lots of people don't want anyone to know they > play it [...] and is very popular to use for Erotic Roleplay

Citation required?

<comment><USER20> I wonder if the top comment in that thread is accurate in saying it's against the GDPR. I suppose the real answer is that time will tell.

<comment><USER21> As a general rule, if the data can be used to identify some users, it falls under the GDPR. From Article 4(1):

> 'personal data' means any information relating to an identified or > identifiable natural person ('data subject'); an identifiable natural person > is one who can be identified, directly or indirectly, in particular by > reference to an identifier such as a name, an identification number, > location data, an online identifier or to one or more factors specific to > the physical, physiological, genetic, mental, economic, cultural or social > identity of that natural person;

</comment></comment></comment></comment><comment><USER22> The "contact us" link on the tracker's website appears to be broken: [https://www.redshell.io](https://www.redshell.io)

Not sure if that is deliberate or not, but I'd like to submit a GDPR subject access request! Coincidence? perhaps.

Edit: firstname.lastname@example.com Looks like their webpage might be trying to do a "mailto:" link? For me it just opens a blank window and I cant be bothered to try and pick apart their javascript.

<comment><USER23> It's not broken, it's just a mailto. It works fine for me.

</comment></comment><comment><USER24> I'm glad (some proportion of) the public at large is becoming as paranoid about being tracked as I have become. I never thought it would happen.

<comment><USER25> Maybe one day it will be enough people that it's libre or GTFO for everything.

</comment></comment><comment><USER26> > "Google tracks a lot more things than Red Shell, but people never complain > about it."

Sorry Abid, but that's not true. I avoid Google products and services because I am uncomfortable with how invasive their tracking program is. I've worked in advertising tech, and I have a good idea of what goes on inside these companies. I do not ever want to participate in that ecosystem again. I even browse the web with JavaScript disabled in order to avoid tracking.

That said, I don't blame Abid. I know it can be hard to bootstrap a small games studio. In fact, I played one of his studio's games (the weapon shop one) and it was fun. I wish him and his company luck, but I hope he doesn't go back to tracking customers without consent. I avoid purchasing products that include this kind of tracking.

</comment><comment><USER8> I don't get why this would stir controversy while Google Analytics would not - it appears they collect the same type of information. Are game devs not allowed the same type of tools that web devs are?

<comment><USER27> On the web, you can at least use a tracking blocker. That's much harder to do in games (unless you're blocking on the DNS level, which is at least a bit more involved than installing uBlock Origin).

<comment><USER8> Also, if you use a web-blocker, they can't create a fingerprint anyway.

<comment><USER28> You'd be surprised. Even though ublock origin and uMatrix are blocking most things, they're still able to build a unique fingerprint based on installed fonts, hash of canvas fingerprint, webGL fingerprint, etc.

[https://panopticlick.eff.org](https://panopticlick.eff.org)

</comment></comment></comment></comment><comment><USER29> Just want to add that [https://pi-hole.net/](https://pi-hole.net/) or something similar is a nice way to block at least DNS based traffic from this malware.

<comment><USER30> Thanks for this.

</comment></comment><comment><USER31> If you have a product that runs on thousands of machines you will be approached by folks that sell this kind of app. Saying no takes integrity

</comment><comment><USER32> To me this looks like deceiving the customer. The advertisement for the game doesn't say that it would spy on you. People buy software thinking that it is just a game. There should not be such type of hidden functionality.

This should not be normal. If the company wants to use tracking and analytics then they should at least disclose it in advertising materials, and on the game store page. Or maybe make two versions of the game, with and without tracking, so that anyone would be free to chose whatever they prefer.

And who cares about marketing or ad performance? That is not a consumer's problem.

</comment><comment><USER33> Having a PS4/PS3 or a separate dedicated PC just for gaming is an easy way to keep any game-related problems from becoming much bigger.

</comment><comment><USER34> I hope this tracking software never made it into the macOS versions of any of those games.

<comment><USER35> it likely have a different vendor with the exact same issues, but will take longer to be noticed.

there is absolutely no game on steam without DRM and anti-cheat rootkits. none. zero. All games there have either or. including steam itself. It's all a matter of how far they go.

<comment><USER36> Plenty of games on steam do not use steam DRM, and don't need steam running to launch, including most of valve's games.

Most games, and obviously all single player games, also have no form of anti- cheat.

[https://pcgamingwiki.com/wiki/The_Big_List_of_DRM- Free_Games...](https://pcgamingwiki.com/wiki/The_Big_List_of_DRM- Free_Games_on_Steam)

This list is pretty incomplete, and in my experience many if not most indie games fall into this category.

Your assertions are entirely incorrect.

<comment><USER35> > do not have DRM

i said DRM and/or anti-cheat. 100% of valve games have anti-cheat.

Both of those run as administrator and have a great deal of opaque control of your machine.

</comment></comment></comment></comment><comment><USER37> Gah, I got a full screen pop up on mobile on wired.co.uk.... anyone else?

</comment><comment><USER38> Didn't every Unity3D game insert a tracking code that's working without users' consent?

<comment><USER28> I don't know. Why don't you look it up?

<comment><USER38> [https://unity3d.com/legal/privacy-policy](https://unity3d.com/legal/privacy- policy)

[https://unity3d.com/legal/gdpr](https://unity3d.com/legal/gdpr)

Despite their claims, I've never seen any opt out options like that. Games simply always collect data and send it "home". And really this should be opt- in.</comment></comment></comment>