I wrote Task Manager and I just remembered something - <AUTHOR> https://old.reddit.com/r/techsupport/comments/gqb915/i_wrote_task_manager_and_i_just_remembered/ <comment><USER2> More stuff like this needs to be recorded. It saddens me to think how much of this kind of stuff is already lost from earlier times in computing. A lot of interesting stuff like this is captured from the history of the Mac[1] and from Atari[2], but the "folklore" from so many other companies and products is being lost.

Who are others who are doing this kind of work?

[1] [https://www.folklore.org/](https://www.folklore.org/) [2] [https://ataripodcast.libsyn.com/](https://ataripodcast.libsyn.com/)

<comment><USER3> The Old New Thing blog [1] has a fair amount of Microsoft folklore.

[1]: [https://devblogs.microsoft.com/oldnewthing/](https://devblogs.microsoft.com/oldnewthing/)

<comment><USER4> And there was even more folklore in the comments but Microsoft killed them when migrating the blog content to a new platform.

</comment></comment></comment><comment><USER3> Now I'd like to know why Task Manager got rewritten in Windows 8. I liked the old one better; it was lighter and faster than the current one.

Disclosure: I work at Microsoft, on the Windows accessibility team. But I didn't join until a couple years after Windows 10's initial release.

<comment><USER5> I'm tempted to reply it's because MS are spiteful tossers but actually (despite that being true) there's a bigger problem. MS used to be pretty good at interfaces - true, they really did - but on & after win8 they just forgot that UIs are not there to look 'cool' and 'awesome' but to simply to help users get shit done.

<comment><USER6> It's not exactly that the new stuff is even that bad - I do use some parts of it. It's that there's a really awkward shift in philosophy that the new UI engages with:

Old: Expose the hardware in a highly compatible way for developers. Help the user do productive work with their applications.

Old basically remains in the same paradigm through WinXP. But starting around Vista the concept changes, and that accelerates with Win8.

New: Help the user shop and consume content. Protect them from malicious software.

And this consumer focus leads in turn towards aesthetics and "wow factor". But it's Vista's shift towards heavy security prompting that I see as the precipitating element in this. It's the change from "they know what they're doing" to "they don't know what they're doing", and the attempt to continually reinvent the same thing but "easier." The UI changes are more like a reflection of the broader trend of aping whatever smartphones do.

And one thing I will credit modern Windows for is this - running on contemporary hardware it's really stable and doesn't blow up easily. But it's like running two operating systems at once, and the newer one is mostly unnecessary.

<comment><USER7> The absolute worse of this old vs. new split has got to be the two different settings interfaces (Control Panel and Settings) that have some overlap, but other features that are only in one.

Try changing the mouse pointer speed starting on Settings[1]. Or for a bigger challenge, try finding the place to change which Desktop icons appear.[2]

\----

Answer key:

[1] Settings -> Devices -> Mouse -> Related settings [ _tiny text on the far right_ ] -> Additional mouse options -> [ _opens old Control Panel mouse settings_ ] -> Pointer Options -> Motion: Select a pointer speed.

[2] Right-click Desktop -> Personalise -> Themes [ _!?_ ] -> Related Settings [ _tiny text on the far right_ ] -> Desktop icon settings

<comment><USER8> >the two different settings interfaces (Control Panel and Settings) that have some overlap, but other features that are only in one.

All that's going to happen is we'll lose the control panel eventually, and get an inferior settings reimplementation instead.

That long scroll alone is really, really terrible.

<comment><USER9> Not being able to open more than 1 settings screen is dumb as well.

<comment><USER5> Yeah, this kind of thing pisses me off when the UI 'expert' thinks they know more about your workflow than you and wall bits off to help you.

<comment><USER8> I've seen this many times, the fresh team who have not worked with the old system but has a lot to say about it, starts redesign "properly this time", finds out bringing the new system to the level of the old one is surprisingly a lot of work (not even accounting the required new functionality), gives up redesign half way through or runs out of time, management cannot afford to admit the mistake and goes along with it, users refuse to switch to the new system, the old system is continuously forcefully deprecated.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> Task manager (in my win2K8R2) is bloody great. It does what it's supposed to do, does it well in little space, is highly reliable, has plenty of good options usefully exposed, is sensitive to the user (if you right-click on a process in the process view, the updates that rearrange the view freeze so things don't change underneath you) and it runs permanently for me. The author should get a medal.

</comment><comment><USER10> I curse the MS developer/s who wrote the peep show listboxes: those non- resizable scrolling list boxes that display long lists in a peep hole that is just a few items long so you have to scroll endlessly to find what you need. This UI element has remained in the OS since I had hair on my head.

<comment><USER11> The OP indirectly explains why those listboxes were non-resizable:

"TM is one of the apps I'm most proud of because it is probably the first app to ever be fully resizable in all dimensions without any flicker."

Win32 didn't have an automatic layout engine. Resizing meant drawing your content while new mouse events were firing rapidly. It was hard enough to do flicker-free that Microsoft preferred fixed dialogs where possible.

(To be fair, it's not like resizing is a solved problem even in 2020. For example on macOS, brand new apps ported from iOS using the Catalyst runtime seem to have absolutely terrible resize performance.)

</comment></comment><comment><USER12> > I also wrote Space Cadet pinball

Talk about burying the lede!

<comment><USER13> I think it would be better described as a port.

<comment><USER14> Except he wrote the code from scratch and just used the assets. Not technically a port.

<comment><USER15> The proper term would be a remake, I believe.

</comment></comment></comment></comment><comment><USER16> "\- There should be nothing that TaskMgr can't kill - it will even escalate privilege and (if you have it) enable debug privilege to attach to and kill apps that way if needed. If TM can't kill it, you've got a kernel problem."

I've seen stuff that taskmgr can't kill - I haven't ever seen it use any debugging privileges that I know of.

<comment><USER17> like he said, kernel problem. Most likely a driver holding on to a handle opened by a process by not cancelling I/O properly. to my recollection the most common case, but could be similar other reasons.

<comment><USER18> I think it also used to be able to kill msmpeng.exe but it now fails with access denied. I assumed it was intentional because they don't want to kill antivirus. But it is a CPU hog, often at critical times, so I used to find myself killing it a lot in past releases.

<comment><USER19> In windows processes have an access control list, just like file permissions. MsMpEng.exe (and other sometimes other critical system processes and antivirus scanners etc) can't be killed because only system has permission, not administrators. Process Explorer allows you to view and modify a process access control list (if you have permission).

If you use psexec to run process explorer as system, then you can get into the access control list of these processes and add permission for administrator (or just kill them from there...)

<comment><USER18> I am ex msft. I have written windows code in kernel mode. I know that there are acls. I know about psexec too. I was not talking about any of that, but Task Manager as this thread was about.

Personally if I were killing with psexec I would try invoking taskkill.exe.

<comment><USER19> Ah, ok, sorry I was just trying to be helpful, I wasn't trying to teach you to suck eggs :)

But my main point was (that I implied, but I didn't say) is yes, I remember killing off early versions of microsoft security essentials (when that was its name) with task manager too. Logically, back then the process didn't have a restricted ACL, but it now does.

I didn't actually know you could specify the system user when killing a process with taskkill, thanks

</comment></comment></comment></comment></comment></comment><comment><USER20> > Task Manager will load in reduced mode if resources are short, like only > loading the Processes page if that's what's needed to get going. It's one of > the very few apps that won't just "fail and bail" when things go wrong.

Nice example of how to degrade gracefully instead of simply crashing the process. These days most programs seem to assume memory allocation never fails. Some GNU _libraries_ kill the process in those cases!

<comment><USER21> In most cases it doesn't make economic sense to implement graceful failure. OOMs are rare (unless you are a Java programmer).

</comment></comment><comment><USER22> That's one scenario where Task Manager can't kill a process. When a full screen game hangs, the graphic mode stuck as well. No amount of Ctr-Shift-Esc or Ctr-Alt-Del will bring Task Manager on to kill the process.

<comment><USER23> Switching to another virtual desktop (Win+Tab) can help if the graphics driver is still working normally. If the driver crashed, you have to wait for TDR to kick in and restart the driver (usually ~5s). That is, if it's able to recover.

</comment></comment><comment><USER24> Is it good or bad that I remember most of these features from my days on Windows 95? We have come a long way, I hardly ever have to open Task Manager nowadays.

<comment><USER25> You must not have to put up with corporate cyber security professionals using tanium and HIPS to hump your hard drive for hours like a monkey on a football.

I use TM multiple times a day.

<comment><USER24> I left the corporate world right around the time when they started to take away my admin privileges to install spyware on my machine. Good times.

</comment></comment></comment><comment><USER26> Nice. I open task manager everyday. I wish this dude has written VSCode

<comment><USER27> I wish he'd been in charge of Metro, UWP, Univeral apps and all of its reincarnations. They'd have been fast, lean, worked better with keyboard (even keyboard only). And wouldn't have so much whitespace.

Wonder if he'd have made Explorer better.

</comment></comment><comment><USER28> Interesting factoid: David Bradley implemented the CTRL-ALT-DEL "three-finger salute" to aid in debugging the original IBM PC way back in 1980 so that he and the development team could soft-reset the machine without needing to endure the slow POST procedure every time.

Apparenly he first considered CTRL-ALT-ESC but rejected the idea because it would be too easy to accidentally press all three of those keys if somebody/something mashed the left-hand side of the keyboard, so he replaced ESC with somethin on the far right (DEL). His criteria were keys that that wouldn't cause a character to print on the screen.

Seems like the implementer of Task Manager picked up wjere he left off and chose CTRL-ALT-ESC anyway. Whether it's some kind of homage, a coincidence, similar thinking constrained by the three finger salute having already been taken, or something else, is anybody's guess. I'd really like to know how he came up with that key combination (and whether he considered that it could be accidentally triggered more easily than CTRL-ALT-DEL though by this time BIOS calls could be intercepted thanks to 386 Enhanced Mode and therefore you wouldn't simply instantly reboot your machine).

<comment><USER29> Task Manager uses CTRL-SHIFT-ESC to open, not CTRL-ALT-ESC.

You can also reset it to defaults by pressing CTRL-ALT-SHIFT beforing clicking on its taskbar icon.

<comment><USER28> You're right, my bad, it even says so right there in the article!

</comment></comment></comment><comment><USER30> I've always known about CTL-SHIFT-ESC as a muscle memory bring windows back command, but never really knew where it came from (or why I even knew about it for that matter). Interesting to hear it from the original dev!

</comment><comment><USER31> He seems to put in a lot of effort in that little program! Well done.

> There should be nothing that TaskMgr can't kill - it will even escalate > privilege and (if you have it) enable debug privilege to attach to and kill > apps that way if needed. If TM can't kill it, you've got a kernel problem.

I've run into so many programs I couldn't kill with the task manager that I doubt if this is still true. Just today my laptop was idle and overheating because two different antivirus programs and cortana were each hogging 33% of my CPU... I couldn't kill any of those processes.

<comment><USER32> I think it's still not advisable to run two antivirus programs. They will keep competing for the same resources at the same time. I would suggest using just the "better" one.

Also, a lot of what AV software does goes through kernel. That's the only way to ensure that its work is not preempted and that it can maintain security of the system.

</comment></comment><comment><USER33> This makes me wonder if there's anything that can be made to behave this way on Linux? I had an issue with Gnome freezing on me 100% last night with seemingly no recourse than a hard reboot over and over until a full rebuild. Something deeply embedded like Task Manager would have been great to try and resolve the issue. Switching virtual consoles was broken too and as far as I know there's no way to cut through a problem like this.

<comment><USER34> Not really similar, but in some circumstances the Sys Rq commands may help:

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

</comment></comment><comment><USER35> > I also wrote Space Cadet pinball, zip folders, product activation, and some > other stuff. I was in MS-DOS before that but I doubt anyone is still > supporting MS-DOS!

Space Cadet pinball was not written by Microsoft, according to Raymond Chen. [0]

[0]: [https://devblogs.microsoft.com/oldnewthing/20181221-00/?p=10...](https://devblogs.microsoft.com/oldnewthing/20181221-00/?p=100535)

<comment><USER36> I think someone in the comments of that thread said Maxis was the original publisher, and looking it up I do see Cinematronics listed as developers.

However, the taskman OP didn't necessarily say that he wrote Space Cadet pinball, he said he "wrote/ _ported_ Space Cadet pinball, zip folders, . . ." My money is on him porting SC pinball, not writing it

</comment></comment><comment><USER37> Wow that's super cool. It's really awesome reading stories like this. I've been using windows since 3.1 and still do occasionally when i have to. I didn't know most of those things about the taskmanager. A lot of those are pretty ingenious. On the other hand, some of those make me think, wow that seems like some weird quirky shit to have to work around.

</comment><comment><USER38> Making a window to redraw gracefully when resizing it by _its left or top edge_ is one true nightmare. Always has been, still very much is.

</comment><comment><USER39> Great piece of history, glad it is being recorded somewhere. But why the posturing powertrip from the mod in the comments? "This is valuable info, _even I_ (hurhur) didn't know it, so I'll leave it _this time_. However, it is _irrelevant here_ , so I am within my rights to delete it."

</comment><comment><USER40> The author asks for an upvote for more inside trivia. Excellent first hand source.

Mod responds, "Though this could be construed as a PSA, and thus in violation of Rule 8, it's got a lot of valuable info that even I have never seen before. Therefore, I'm going to leave it. /u/daveplreddit , please message the mod team or myself before making any more such posts, and we can discuss how to best move forward."

Solid moderation to offer a way to keep contributing. Kudos.

<comment><USER41> btw just noticed "...that even I have never seen before..".

The implication of his incredible knowledge makes his allowing the post _by the author of Task Manager_ even more gracious! What a guy!

<comment><USER42> Of course they've seen everything, don't you know Tech Support are basically computer geniuses?

</comment></comment></comment><comment><USER43> Let me guess task manager could have managed the tasks better, i would have let it slide but if you call your program "task manager" in for a penny in for a pound.</comment>


Announcing Rust 1.12.1 - <AUTHOR> https://blog.rust-lang.org/2016/10/20/Rust-1.12.1.html <comment><USER2> This is really cool, actually. And the reason I think it's actually good to be high on HN, not just the 'ooooh rust, upvote derp!' is this:

This is a _point_ release that they don't _need_ to do - on the grounds that it's not a bad time to do one, but it should help in the future to do point releases quickly if there is a real need to (security, etc).

There's a commitment in the rust team to making life really really good for developers, and I appreciate that a lot.

</comment><comment><USER3> I have Travis builds against nightly, beta and stable on Linux and Mac. I have to say, with the exception of OpenSSL breaking on Mac recently (fixed with OpenSSL 0.8), I haven't had a compiler failure or bug introduced in any of my tests in the time since 1.0 (at least I can't remember one).

Even these, which obviously effected others, didn't effect my code. Cudos to the Rust team for being on top of this!

<comment><USER4> Not even on nightly? I know that we don't tend to mess with things unless they're behind unstable feature flags (which you presumably aren't using), but I'd be very pleasantly surprised if we managed to make nightly stable enough that you never happened to run into any compiler bugs. :)

<comment><USER3> So I have 20,292 lines of Rust with 85%ish code coverage in my project (by current count), and I can't recall a failure in nightly since I enabled it in Travis. Mind you, that only gets run when a commit happens, so it's entirely possible it could have failed and I've just been lucky. It looks like from git log, I committed the change to Travis to start nightly builds on

      Date:   Sat Aug 22 11:45:08 2015 -0700

So, take that for what it's worth :)

</comment></comment></comment><comment><USER5> Question for you guys: I'm planning to putting down some time into learning java for the higher stuff along with C the coming year. I know the very basics of C and java, but after looking into the documentation for rust I got that feeling of "oh man, this really looks fun to get into."

Is Rust "mature" enough to start to dabble with and actually put down some hours into (and thus replace C in my plan)? Only hobby projects so far.

<comment><USER6> For higher level stuff Erlang/Elixir is a much better option. Productivity will be way higher.

For lower level stuff Rust is a better option. Better productivity, equal performance, much higher safety.

Unless you have specific needs that require Java/C of course.

<comment><USER5> I see, thank you! The reason for java was mostly because I had prior albeit small experience, and the way the job market looks.

<comment><USER7> Java probably still has a long future ahead, especially because Android app dev is done in Java. There are also lots of jobs around.

On the other hand, a lot of Java jobs involve stuff like enterprise Java, which can be horrible to work with.

C is probably good to know, so I'd play around with it for a few weeks and then move on to Rust. Knowing C probably lets you appreciate Rust even more.

Java is also good to know and not hard to get into. But for hobby projects I'd choose something else, unless you want to do Android apps.

Edit: Python is also a great all-round high level language and there are many Python jobs around :)

</comment></comment></comment></comment><comment><USER8> The two imaginary futures I daydream about where performance is a concern are robotics and serious AI algorithms (RL especially). I'd assumed I'd need serious C (or C++) chops for the embedded development of the first, and real access to GPU parallelism for the second.

Does anybody have experiences to share using Rust like this?

<comment><USER9> No direct experience here, but I know there is Vulkano[1], a Rust library that wraps around the Vulkan API. But until (and if) a SPIR-V target is available to the Rust compiler, the compute shaders will still have to be programmed in another language (typically, GLSL). This covers the GPU side of your interest.

I don't know how things stand in the embedded Rust camp, however.

[1] [https://github.com/tomaka/vulkano](https://github.com/tomaka/vulkano)

</comment></comment><comment><USER10> Honest question from a non C++ developer: what's the _main_ point of Rust? What's the _primary_ reason for choosing it over any other language? When would it be _most appropriate_ to choose?

<comment><USER11> Rust is a replacement for C++. It is meant to be a modern, general-purpose systems language, where "systems" generally means anywhere you need to be close to the metal. This includes areas like embedded systems and high performance computing. Modern means it has features and tooling you expect from languages in 2016. For example, on a language level, Rust has type inference, sum types, pattern matching, proper generics, and a decent macro system. A modern language should also be memory safe, and Rust opts to ensure memory safety at compile time with the borrow checker (as opposed to runtime with a garbage collector like in most languages). As for tooling, it also has a proper package manager, which believe me, is incredible compared to handling dependencies in C++.

So why would you choose Rust? If you need to use C++, because you need performance, or low-level access to memory, or any other reason, then you should choose Rust instead, because it's better for all the reasons listed above. The biggest strike against Rust compared to C++ is library support-- people have been writing C++ and C libraries for decades, and Rust is a new language, so it won't have the same level of support.

<comment><USER12> If you think Rust is ready for high performance computing, I suspect you don't do HPC for a living and you haven't tried to do it with Rust. It's not just missing the needed libraries.

<comment><USER8> Can you expand on that?</comment></comment></comment></comment>


Next.js – A small framework for server-rendered universal JavaScript apps - <AUTHOR> https://zeit.co/blog/next <comment><USER2> Interesting! I really like the architecture here. I think the next major opportunity for abstraction is all the server/client detection you still have to do. Do I want `request.headers['Cookie']` (server), or `document.cookie` (client)? Do I want to create a fresh Redux store (server), or hook into a global one (client)?

It's definitely not hard for community members to build these abstractions themselves (`cookies = (req) => req ? req.headers['Cookie'] : document.cookie`), but some of these are going to play into major use cases like authentication, so, as Next matures, it'll start to make sense to provide these especially common abstractions out of the box.

That said, these are next steps; the first release is all about showcasing the fundamental architecture, and it's looking gooood :D

<comment><USER3> If someone wants to solve this problem and wants inspiration, look into how Unreal Engine's scripting/networking architecture works. Gamedev and webdev can be very similar at times.

<comment><USER4> Interesting! Might you be able to elaborate?

</comment></comment></comment><comment><USER5> One thing that is never explained in these universal/isomorphic react frameworks/boilerplates is how to make a fetch() against your own server (e.g. a relative route). There's this [https://zeit.co/blog/next#data-fetching-is- up-to-the-develop...](https://zeit.co/blog/next#data-fetching-is-up-to-the- developer)

But what if my component looks like this:

      import React from 'react'
      export class exports React.Component {
        static async getInitialProps () {
          const res = await fetch('/api/user/123')
          const data = await res.json()
          return { username: data.profile.username }
        }
      }

<comment><USER6> I like how react-server[0] deals with it; by having the `when` and `listen` callbacks expecting a promise, it becomes simple to `fetch()` any data you want server-side, including relative routes

[0] [http://react-server.io/](http://react-server.io/)

<comment><USER7> is this your project or something? you seem to be name dropping it a few times in this thread.

<comment><USER6> Nope! It's just been an excellent tool that I'm a pretty big fan of, and relevant to a couple comments in this thread

</comment></comment></comment></comment><comment><USER8> The split screen demo on the linked page does an outstanding job of showing how this works. Nice work.

<comment><USER9> Yeah, it's like the best 30 seconds demo I have ever seen.

</comment></comment><comment><USER10> I'm a little confused about the benefits of server side rendering. I thought the point of these js UI frameworks was to make the client do a bunch of the work? Can anyone give me some of the upsides? Thanks!

<comment><USER11> We will eventually go full server rendering and just stream every frame to a thin client. We have good enough network now with gbe consumer bandwith and less then 1ms latency up to 50km. But we need more powerful, smaller and cheaper servers.

<comment><USER12> How does that make economical sense?

I can pay to render everything for my user, essentially streaming their webpage to them. Or for the potential cost of a slightly slower page load I can offset the cost of all that rendering to their xGHz multi core CPU that's likely sitting idle.

Not to mention the cacheability of the data.

<comment><USER13> Because bloating your client's experience has negative effects too: lower battery life, lower performance, higher memory usage, ...

</comment></comment></comment></comment><comment><USER14> Here's a sample app: [https://github.com/zeit/nextgram](https://github.com/zeit/nextgram)

</comment><comment><USER15> [http://dayssincelastjavascriptframework.com/](http://dayssincelastjavascriptframework.com/)

</comment><comment><USER16> I like how they use the tags <details> and <summary> in their FAQ!

[https://github.com/zeit/next.js#faq](https://github.com/zeit/next.js#faq)

<comment><USER17> What do you like about it? It wasn't immediately obvious to me that those were even clickable and the <details> text does not differ from the <summary> text so it all kind of rolls together in a weird way as your click around.

<comment><USER18> I think they mean the unexpected usage of semantic markup in the wild. It's an ongoing battle to get it used more broadly, so it's nice to see it popping up unannounced and working so nicely. Your (valid) gripes are mostly out of the repo's control, as all styling appears to be GitHub.

<comment><USER17> Ah, that's fair. But GitHub does provide quite a few styling options[0].

[0] [http://primercss.io/](http://primercss.io/)

<comment><USER19> Those aren't 'options for styling Github', that's just a framework/lib they provide for your own projects.

<comment><USER17> Oh yeah, limited options with Markdown. Hence the original comment (:

</comment></comment></comment></comment></comment></comment><comment><USER20> Very cool. I can't wait to try it after five years in Node land. The people behind zeit.co are great minds in the community.

It is funny how concepts come and go in circles. ASP.NET offered unified client and server development, though mostly in C#. It had the nuget package manager and VS store or something, but it was never amazing and packed like npm. Partial page postbacks and page state in encrypted strings..yikes. Now we have that in redux I suppose. It is all so familiar, yet so much better now.

</comment><comment><USER21> I love how ambitious Zeit is being, but I've found that their apps are not quite as polished as their shiny-packaging makes out. I certainly wish them lots of luck though!

<comment><USER22> Anything specifically comes to mind? We are constantly iterating and improving.

</comment></comment><comment><USER23> I'm very impressed that middle-click/ctrl-click works flawlessly. That's increasingly becoming a rare thing on the web these days.

Forward and backward navigation only works up to one level. Is that a limitation of the framework or an intentional design choice?

<comment><USER24> I tried the demo here, and middle click or ctrl+click is not working, quite the contrary, it is treated like a regular click :/

[https://nextgram.now.sh/](https://nextgram.now.sh/)

<comment><USER25> in the event handler you have to manually check if ctrl is being held or if the lmb was pressed or not. Most people forget this which is a shame.

</comment></comment></comment><comment><USER26> Surprised to see after 10 hours no one has mentioned intercooler.js which is a stepping-stone in the direction developers focused on the "server" part of "server-rendered" might head without going as far as Next.js.

[http://intercoolerjs.org/](http://intercoolerjs.org/)

[https://news.ycombinator.com/item?id=12657565](https://news.ycombinator.com/item?id=12657565)

</comment><comment><USER27> This looks very nice indeed. I've also just discovered glamor[1] via the Readme, which looks similarly nice.

[https://github.com/threepointone/glamor](https://github.com/threepointone/glamor)

</comment><comment><USER28> This is amazing! totally reminds me of PHP days.

</comment><comment><USER29> Oh you're still rendering JavaScript client side, how mid-2016.

<comment><USER30> It's almost November 2016 man, you can't do that anymore. Just Redux your Flux and make sure you transpile and compile your TypeScript before you deploy that micro service with a Makefile

</comment></comment><comment><USER31> Awesome, took me like less than 10 minutes to create a basic server side newsreader app with React. Simplicity of PHP and power of React combined and brought to Node. I also like how the consolelog statements are shown in dev console

</comment><comment><USER32> Having to put your program in a string makes it hard to edit. Syntax highlighting, static analysis and tooling in general that helps you filter problems might not work there.

To me, tooling is very important since software is more consistent/reliable/productive at simple repetitive tasks like matching parenthesis, braces, quotes... and in my case I take it further like documenting types via documentation tags and verifying that function signatures and return types match. That alone helps me save a lot of time once the code has grown over 1 kSLOC.

I think it should be replaced to just a filename that gets required.

</comment><comment><USER33> Can someone explain to me why this page uses 2 GB of memory on my machine?

</comment><comment><USER34> This looks so incredibly well thought out and designed. I can't wait to start using it!

</comment><comment><USER35> Very intriguing concepts.

Especially for quickly prototyping an idea.

Getting a React project in place (webpack config, code structure, all the boilerplate, redux,...) swallows quite some time. And I haven't found a bootstrapper yet that I liked.

<comment><USER36> Have you looked into electrode.io? It's the total package with testing, server side rendering, optional above-the-fold rendering, profiling, etc.

It took about half a day to get used to it, but I enjoyed not having to make the decisions over and over again and handles the basics as well as advanced use cases.

<comment><USER37> Thanks for the support! I'm glad you like it! :D

<comment><USER36> It's been really great, and reporting issues and small pull requests has been super easy so far. Not really what I expected from a company like walmart so I was pleasantly surprised.

The only fundamental disagreement I have with it is how the "client" folder is organized by default. I think it's a mistake to organize by the type of file (component, reducers, etc). Instead, the organization should be centered around the real use (pages, resources, etc.) Explained in more detail here, [https://medium.com/@alexmngn/how-to-better-organize-your- rea...](https://medium.com/@alexmngn/how-to-better-organize-your-react- applications-2fd3ea1920f1#.b5kwopbho)

I understand that's personal preference, and my preference is born out of seeing more than one react app become a tangled mess because isolation was hard to understand based upon file structure.

</comment></comment></comment></comment><comment><USER38> [Placeholder for complaint about JS fatigue]

</comment><comment><USER39> I am really not into new frameworks, quite the opposite, but this is cool and I can see immediate value of this approach thanks to gif movie on the homepage.

Thank you for making this.

</comment><comment><USER40> How is this different from Meatier [https://github.com/mattkrick/meatier](https://github.com/mattkrick/meatier)?

Meatier also uses Babel, React and Node.js except that it has been around for almost a year and is already stable. They've already solved all the difficult issues like realtime pagination, authentication, GraphQL, etc...

<comment><USER27> I haven't really looked into meatier in great depth, so correct me if anything I say is a false assumption.

Meatier, as the name suggests, seems to be fundamentally "meatier" than next.js. It's coming from the same monolithic mindset as Meteor, and despite leading with the intro "... but without the monolithic structure", the general architectural thinking still appears to reflect that.

It makes a lot of decisions for you (express, rethinkdb, graphql, redux, etc. - it's production dependency list is gargantuan). You've phrased this as "they've already solved all the difficult issues", but many may see it as "they've removed a lot of choice and flexibility". It's a matter of perspective: the meatier docs do admit it's "overkill" for certain applications.

Next.js, apart from the inclusion of glamor, seems to pretty much largely leave you to your own architectural and library preferences.

<comment><USER40> Every component in Meatier is replaceable. The defaults are for convenience. It sounds like Next.js also makes a lot of decisions for you.

</comment></comment></comment><comment><USER41> This sounds great for static websites but I'm not sure if it's a good idea for a dynamic web app where data needs to update on the screen in realtime. Some questions which come to mind:

What if you had a 'chatbox' component which updated every time a user wrote a message; would Next.js have to resend the entire HTML for the 'chatbox' component (containing the full message log) every time a message is added to that chatbox? Am I right to assume that only the affected component will be rerendered? Or the entire page has to be re-rendered (and the entire HTML of the page resent over the wire) for every change in data?

It sounds like a nightmare for caching: If data is updated dynamically and you constantly have to rerender components in realtime on the serverside; you can't really cache every permutation of every component's HTML for every data change and for every user... That's insane.

Regarding CPU, it sounds like it's going to eat up server-side performance and increase hosting costs massively! What, like 10 times 100 times? Are there any benchmarks done on performance for a typical single page app built with Next.js?

Then there is the latency issue...

Finally; if we move back to full server rendering and get rid of the need for client-side code; why would we want to stick to JavaScript?

I haven't used it yet so please correct me if I'm misunderstanding something.

Next.js sounds great for building static websites... But so does PHP!

<comment><USER42> The way it would work with your chat example is that Next.js would initially render the chatbox component on the server, then hand it over to the user's browser running the React component. Then the user's browser would subscribe to data updates, and would create/update/destroy components as needed as chat messages come in.

The server only sends rendered components once, then the client handles the re-rendering afterwards.

It's still a javascript client-side SPA, except the initial rendering is done by the server. You don't see a loading screen, google can crawl your page, and users can see an initial page with JS turned off).

I hope that cleared things up a bit.

</comment></comment><comment><USER43> I love the addition of async `getInitialProps` (more for being async than getting props, would be as fine for me as getInitialState).

The logic for rendering loading screen in a component can quickly get tedious and annoying, such a pattern helps having a global loading screen and still allow the component to be responsible of how to fetch its data.

</comment><comment><USER44> Am I wrong in saying the appeal of this tool is it allows you to process your React app (with little or no changes to accommodate it) on the server?

I've been reading a lot about SSR lately. Correct me if I'm wrong, but wasn't one of the points of thick clients to offload processing to the client?

<comment><USER27> I don't believe so, though I guess some do. The purpose of (well-written) "thick clients" is to provide real-time interactivity and reduce bandwidth. Beyond this, if something can be done on the server without degrading the app experience, it probably should be.

Added bonus if the site works fine without client-side JS at all (which Next.js does)

</comment></comment><comment><USER45> Airbnb blog post from 2013 how they share code between client and server: [http://nerds.airbnb.com/isomorphic-javascript-future-web- app...](http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/)

<comment><USER46> While that article may be relevant, I think the OP is noteworthy is because it is a framework, rather than a novel idea.

<comment><USER45> Sure. I just wanted to share this real-world example of the "isomorphic js" benefits.

</comment></comment></comment><comment><USER47> Using the filesystem as the API has been done before, and there is a reason we stopped doing it.

<comment><USER48> Your comment would be more useful if you gave us that reason.

"Filesystem as the API" in this case looks more like "convention over configuration" (which has worked fine for other frameworks like Rails), it doesn't actually seem to be using the filesystem as the only storage backend.

<comment><USER19> Don't really agree - what they're doing is very different compared to what, for example Ember does (which they call 'convention over configuration').

Next's routing is much more similar to Jekyll's which quite literally is based on your filesystem file-organisation.

<comment><USER48> Ah, I see what you're saying. I didn't consider deeper/complex routes with parameters.

This scheme seems to force route parameters into query parameters. Disadvantage: It's not RESTful. Advantage: Your route parameters are now named query parameters. You only handle one dict of parameters...

I'm not sure how I feel about this.

</comment></comment></comment></comment><comment><USER49> Is there a reason the files are ".js" rather than ".jsx"?

As it stands, my text editor defaults to the JS syntax highlighting. I suppose one could make JSX their default JS syntax, but then JSX would incorrectly appear to be correct in non-React files.

<comment><USER19> I don't think many have embraced the .jsx extension.

And arguably it doesn't make a lot of sense, because when working with most modern frameworks/libs, JSX is not the only non-standard-js element in the file. Should we call it .es6, .es2015, .es2015+jsx ?

So yeah, sticking with .js is common.

<comment><USER50> ES2015 is standard JS. Maybe not widely deployed, but it's standard.

JSX is not.

</comment></comment></comment><comment><USER51> Similar: [https://medium.com/@pierceydylan/isomorphic-javascript-it- ju...](https://medium.com/@pierceydylan/isomorphic-javascript-it-just-has-to- work-b9da5b0c8035#.6ugq1n2eo)

</comment><comment><USER52> This looks absolutely great! Looking forward to try it out soon

</comment><comment><USER9> I like this uses the filesystem for the website structure. It reminds me a bit of dokuwiki. Very usable + easy to understand compared to configuring routes.

</comment><comment><USER53> Very nice, definitely excited to try this out!

</comment><comment><USER54> I don't understand why you need any client side framework. Couldn't this all be accomplish server side with the HTML pre-fetched on the client if needed for performance? There isn't anything dynamic about the website so it could run with zero javascript and then things like the back button after scrolling through the blog would work.

Why try to outsmart the browser?

<comment><USER55> Sure it could. But this is also about providing a better user experience. Being able to automatically split the bundle into parts, the most needed of which is loaded at first and the rest then loaded afterwards in the background using a service worker, means that navigation will be far more snappy and provide better feedback to the user. Rather than waiting for the HTML to be downloaded when a link is clicked, most of the UI can be displayed while a smaller payload is downloaded. Obviously if your content is 100% static and your target group is people who only have 2G available, this might not be the best choice.

> then things like the back button after scrolling through the blog would > work.

What do you mean?

> Why try to outsmart the browser?

Not sure how this is outsmarting the browser.

<comment><USER56> >But this is also about providing a better user experience.

Breaking the behavior of my back button is one of the worst user experiences I get these days. Usually it makes me so angry that I just leave the site right away.

> Rather than waiting for the HTML to be downloaded when a link is clicked, > most of the UI can be displayed while a smaller payload is downloaded.

Browsers can do that on their own since forever, given a carefully crafted HTML page. Of course there are use cases where that is not enough, needing some load-on-scroll mechanism or something like that, but it gets abused all the time for things a browser could handle so much better (with proper HTM of course) - blobs, newspaper articles etc.

<comment><USER38> How do you leave the site if the back button doesn't work??

<comment><USER56> I press home, of course. At least sites can't break that button.

</comment></comment></comment></comment></comment><comment><USER57> So if I understand correctly, this would 'transform' Node into a web framework à la Django? Please correct me if I misunderstood. If that's the case, how Node-Server-Render will compare to Django,Flask and other Python web frameworks?

Performance better on Node? Feedback from the trenches would be appreciated.

</comment><comment><USER58> It loads pretty fast but the source code is not search engine friendly.

<comment><USER59> huh?

<comment><USER58> view-source:[https://zeit.co/blog/next](https://zeit.co/blog/next)

Google bots do not view this rubbish favourably.

<comment><USER60> [https://search.google.com/structured-data/testing- tool/u/0/#...](https://search.google.com/structured-data/testing- tool/u/0/#url=https%3A%2F%2Fzeit.co%2Fblog%2Fnext)

The Structured Data Testing Tool doesn't complain.

We'd need someone to try it out and get the results of the other Google Search Console tools to know for sure, however.

</comment></comment></comment></comment><comment><USER61> glamor looks interesting. Has anyone used it?

</comment><comment><USER62> Off-topic, but what process are people using to make these animated demos? The command-line and browser demo on this page is so clean and crisp. Is it just a screen cap with a ton of post-processing, or is there more to it?

<comment><USER63> We released DemoKit last week to do precisely this (be able to script demos and record them, that way you can easily re-record them if your product changes, or if there's a typo, etc): [http://blog.runkit.com/2016/10/18/introducing- demokit.html](http://blog.runkit.com/2016/10/18/introducing-demokit.html)

</comment></comment><comment><USER64> I left [https://zeit.co/blog/next](https://zeit.co/blog/next) open in Chrome over lunch and when I came back the tab was out of memory .. so you guys will probably want to look into that. But otherwise A++

<comment><USER22> I wonder if it's related to the animated gif? I've had it open for many hours as well, and it looks like this: [http://i.imgur.com/E05vChB.png](http://i.imgur.com/E05vChB.png)

<comment><USER65> Process of elimination and a dozen restarts.

It's not the gif OR the svg (individually) but somehow both together are causing it. I'm on Win7 with 2 gig ram and scrolling this (see pastebin) up from the bottom causes cpu to jump and memory near 1 gig with hdd looping endlessly, so i have to hard power off just to recover any function.

[http://pastebin.com/AMdhpWcn](http://pastebin.com/AMdhpWcn)

~

</comment></comment></comment><comment><USER66> Javascript development on the web has become such a mess... Web apps are totally bloated, tons of javascript loaded, server side rendering for search engines. Mixing css HTML and javascript together to have a component framework that actually is run within javascript... Not within the browser engine... Its library on top of library on top of library.... Really..? W3C should come up with alternatives, that also work as mobile apps... The web has become an overengineered mess.</comment>


That dev's salary is higher than mine - <AUTHOR> http://itmanagement.earthweb.com/entdev/article.php/3930466/That-Developers-Salary-is-Bigger-than-Mine.htm <comment><USER2> The takeaways seem to be disconnected to the article. Do we have evidence that the phone calls mattered a hill of beans? That sounds like a post-hoc justification to cover an employee's sudden unexpected possession of reliable market data.

I love tradition as much as the next guy, but I think there is virtually no advantage to employees from our cultural norm that comp information is as sensitive as health information. The advantage to employers is, ahem, fairly straightforward: they get to pay systematically lower salaries to people who don't realize that e.g. failing to say one sentence when you're 22 costs you almost a hundred thousand dollars by the time you are thirty. (The contents of that sentence is essentially "Your offer plus $5k.")

<comment><USER3> > failing to say one sentence when you're 22 costs you almost a hundred > thousand dollars by the time you are thirty.

Wow. As a CS-grad about to take a full-time job offer, I'd surprisingly never thought of this at all. But how easy is it to say "Your offer plus $5k"? What could be the possible consequences of this?

<comment><USER2> Decision maker: Alright, let's talk numbers. What is your desired salary?

You: I don't know, you're in a much better position to judge my worth to the firm than I am.

Decisionmaker: But in terms of an actual number?

You: [Polite nothings. Repeat as necessary.]

Decisionmaker: Alright, how would $80k do?

You: That's interesting. Would you do $85k?

Decisionmaker: OK.

That is _literally_ how simple it is, and your downside risk is "Alright, in that case, $80k is alright" and nobody will remember this conversation 2 weeks from now except your checking account. You can do more complicated things, like demonstrating value to the firm, or treating any no as a suggestion that you negotiate some other aspect of the offer instead, but the simplest way to improve outcomes at negotiation is to _actually negotiate_.

The marginal $5k gets compounded at every annual raise you have, virtually certain to be calculated by an HR drone's spreadsheet by multiplying a contentious number by a very non-contentious number (your current salary -- now $5k larger). It will increase other benefits you receive, such as employer match to your IRA. If you actually treat questions about salary history at face value when switching firms, it will also act as an anchor for your pricing for the rest of your career. (Giving out salary history? Yeah, that's another thing that can't possibly help you. Anyone asking you for salary history is saying, in as many words, "Please give me a reason why I should give you less money.")

<comment><USER4> Right in that scenario the salary was a question "how would $80k do?", in my experience employers have rarely been so cavalier. They're a little more firm, i.e. "The offer is £80k"

I'd be interested to see if anyone had a good comeback for that

<comment><USER5> I got a firm offer like this. I responded with "Great, I'll have a think about it and call you soon". When I called back the next day I said "I really like the company, and would be thrilled to join the development team, at $85k". The hiring manager said, "Well.. we think $80k is a fair offer. It's what we offer to all our junior developers". I responded with "As I said, I really do want to come on board. If we agree to say, $82k, then I'll happily join.". Again, he said "We have an outside company determine our pay levels for different grades of developers. As such, I can only offer $80k, but we'll review the salary at the beginning of next year. (9 months away)".

Also, while the position was for a junior developer, I already had over three years full time experience. I also didn't feel like I could negotiate a specific increase for the next review. And considering the increase they gave me at my next review, I'm sure I would have 'negotiated for' less!

I'm just saying it's not always possible to negotiate a higher salary.

<comment><USER2> "I do not have authority to give you what you want" is literally in the playbook for ways to win at aggressive negotiation. How to put this gently: his statement may be true, but is not the whole of the truth.

OK Dave, I understand having worked at large organizations before that sometimes our hands are tied. I still think we can make this happen, though. How much vacation comes with the offer? [Hear answer.] You have enough authority to approve a higher number than that, right? [Hear affirmative.] Great! In lieu of giving me the $85k you would like to give me but can't, why don't you instead approve X extra vacation days?

A close variant of this line worked on a Japanese megacorp. Your HR policies are _not_ as rigid as theirs are. Really.

<comment><USER6> In a reverse of that, I like to add "sacrifical lambs" -- givebacks -- to my first quote.

For example, in 2008 I took a step into the big leagues (as I saw it). I had a mid-grade developers salary ($75k) for a couple years, and 7 years in the industry, and I wanted to step up.

I found a great opporunity for a profitable bootsrtapped startup in a beautiful city but one that was not by any stretch a technology hub.

I nailed a phone interview. He asked what I was looking for. I said $110k, match my current 3.4 week vacation, and $6k for relocation. He asked what I was making now. "About 10% less than that" i said. (I fibbed).

I focus on the top-line. The relo and extra vacation were nice, but most importantly they were bargaining chips.

I was flown down for interviews. Things went great. HR directory during the interview asked my comp needs, I told her the same I told the manager on the phone the previous week.

Everything went great. I flew home. Two days later, I get a call from HR lady.

"We think you'd be a great addition to the team. We'd like to extend you an offer."

Her offer was.... $75k, match my vaca and my relco request. My heart sank.

I paused for a moment and said "I make more than that now (lie). My original quote has some room to negotiate but that's outside my range." To which she said "We think this is fair, many of our senior guys make this." We talked for 10 more mins, I was getting nowhere. She was your usual hard-nosed HR type. So I excused myself and told her I'm thrilled they made and offer and I'd like some time to think it over.

For a moment I was bitter. That this was all a waste of my time. I flew across the country. I told them up front the range I was considering. Twice!

But then I thought, it's possible that they have no less a notion of actually paying me $75k than I have of actually getting everything in my quote.

So, I decided I needed to skirt HR. The hiring manager gave me his card at the interview. I called his office line. I said "Look, let me level with you" (lie) "The comp package I presented to you is fair I think. But I'd be willing to give a little back and earn the rest on merit once I'm working for you. I think being on your team would be a great thing for my career. But i just cannot take a pay cut to work for you." He asked what I was making now. I reiterated my fib from earlier. "I've hit bonus here every year, and my total comp is about $100k exactly."

I thought, I'm making him wince. He had to feel like he came up with a good deal. But my lie here boxed him in. He could offer $100k -- a lateral move -- but that seems a little wrong. He could do a token increase -- $103k but that seems almost a joke.

I hadn't yet actually made a counter-proposal, so I did just that. I was going to start by sacrificing the extra vaca. That extra 1.4 weeks vacation was a benefit worth about $3k a year at this rate. But in my preamble he just in passing made a comment about the vacation not being a problem because it's a small company and HR isn't really involved in that, the manager approves vacation without any guidelines or limits.

So, the next lamb on my list was the relo money. I had 3 positions built-in to my $6k quote:

1) I designed it so they could easily counter at a nice round $5k, feel like they got a good deal, and my relo was largely paid for.

2) I would propose that I pay for relo out of pocket and the reimburse me only for the movers themselves -- about $3k

3) Outright elimination.

I said "honestly, I really want to come work for you (true). I know my current comp is so high that you're boxed-in a bit, I'm already up against the top of your range it seems. (lie).

"I've used United Vanlines before. They were great. Some looking around made me feel the movers themselves would cost about $3k. In lieu of cash, I would be happy to pay the relo out of pocket and then submit the invoice from United for reimbursement. "

He talked around it for a mement then he tipped his hand a bit: "I like the creativity", he began, "but honestly the CEO here is against any kind of cash payment for new hires. No signing bonus. No relocation. Etc. He pays it, but begrudgingly. We feel we'd rather spread that money around to existing team members because you never know how a new hire will work out."

Then he said "I'll talk this over. We can probably find a way to match what you're making now if we go ahead and just reimburse you for the movers."

I liked where he was going with that but we werent' there yet. I cut him off.

"Truthfully, you live in a gorgeous city. It's no doubt an amazing place to live. I really feel like a 10% raise and a chance to work for you will make me feel good about the decision to leave behind all my roots here, all my friends and family. I really want to come work for you guys but I feel like any hint of shortchanging myself will start us off on the wrong foot. If we can make another go at that $110k quote, I'd be happy to pay relocation out of my pocket.

He said he'd have to run it by the CEO.

He calls back 30 mins later. "The best we can do is $109k and the normal process where we do a review and increase after 6 months would, for you, be moved to your 1 year anniversary. Now tell me, when can you start?"

I was elated. I just got myself a $35,000 raise. A nearly 50% increase on top of my $75k base.

Having the givebacks is important! It got me a LOT more from than.

A little post-game analysis though:

1) I thought the HR woman always hated me. Maybe because I went around her. Maybe because she thought they were grossly overpaying me. I dunno.

2) I later learned i was the highest paid guy on the team. When I ascended into a management roll I was given access to salary info though, in an oversight from HR, my managers salary was also listed. What did he have the month I was hired? An increase. From $106k to $116k. My negotiation got HIM a raise. A manager can't make less than his reports.

3) Being the highest paid guy isn't a good thing. It's really hard to outperform everybody else. So onlookers -- like, say, a micro managing CEO -- will question the salary gap. Also, I won't forget the day I bought a new Mercedes and I was asked to not make a big deal out of it and if asked, say that "I saved up for this for years." Ugh. Please.

4) NEGOTIATE EVERYTHING in the future.

5) I would've been smart to negotiate myself a future raise. Because I wasn't given any increase for 18 months, and even then only after pestering.

EDIT:

Let me add that I did this to deliberately try to swing for the fences. I was happy enough where I was.

Also, I had a perfect resume for this company. My technical merits were very strong, but more importantly, I had a lot of relevant domain knowledge.

I therefore felt i was in a strong bargaining position. Nowadays, if you're good at what you do, the way it';s so hard to find good devs means you probably are in a strong position as well.

<comment><USER7> _He asked what I was making now. I fibbed. "About 10% less than that" i said._

I would strongly recommend against doing this, for the simple reason that they will need to know your last salary so they can calculate your tax. In the UK this is the P45 form: <http://en.wikipedia.org/wiki/P45_%28tax%29> If you have lied to them, they can terminate you immediately.

<comment><USER8> That's insane. I would never want to work in a country with laws like that.

Market rate is based on what something worth, not what it costs or what it previously cost so there is no reason for a company to need to know what you previously made.

Having said that, couldn't you just change your terminology and say "package" instead of "salary", then if there is a discrepancy you could say "well, a portion of the package was year end bonus which I obviously didn't get this year..."

<comment><USER7> Note that I'm not saying "don't negotiate" but I am saying "don't get caught in an outright lie".

<comment><USER8> I agree with not getting caught in a lie. Personally I don't like the lie approach, even if I can't be caught because it forces me to remember two sides: the truth and what I've told people.

I think the take away here is that you shouldn't be discussing previous salary in any case. If I'm asked I always say "I'm not at liberty to discuss contract conditions at my previous employer" or something to that effect. As I mentioned: as a free market entity, I should be getting what I'm worth now, not some variation of what I was worth 2 years ago when I last tested the market.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Quick poll: Has anybody here _ever_ received a year-end salary increase on the same order of magnitude as what they'd get from simply switching jobs?

I didn't think so.

Early in your career, your market value increases so fast that there's simply no way a percentage raise can keep up.

I remember a situation at my 2nd job after college, where I knew that I was worth almost double what they were paying me. I told them as much and laid out the case as to why. They bent over backward and scraped together something like a 20% raise, which they probably thought was pretty good.

Of course, on top of a junior dev salary it was still way out of line with what I should have been at. I polished up the resume and within a couple weeks I accepted an offer for roughly _double_ my pre-raise salary. At my exit interview I told them how much I loved working there (it really was the best job I ever had), but I just couldn't afford to leave that much on the table.

It was probably the smartest career move I could have made, and it really drove home the point: You don't adjust your salary through raises in this industry. If you want to be paid what you deserve, you need to switch jobs.

<comment><USER10> I'm about to graduate in June, so this comment is particularly relevant to my interests. Thanks.

How early is too early to switch jobs?

<comment><USER9> 2 years. Before that you're so green that you're essentially still a college graduate with no experience.

It also depends on what you're doing and whether you're genuinely good. If you have a chance to build something that you can point to to prove that yes, I really am good at what I do, then you'll have a much easier job convincing the next place to take you on.

<comment><USER11> 2 years is a good but somewhat arbitrary number. As you say, it depends on what you did in that time. At a smaller company, you can be productive almost instantly, allowing you to make major contributions in two years if you really push yourself. At a bigger company, you might spend the first six months just getting up to speed on their sprawling codebase before you can make any contributions. Even after that period, the inertia of politics and legacy code will still be slowing your pace. Two years at Microsoft circa 2010 isn't the same as two years at a fast-moving 20-person company.

So my advice is to make sure the first company you join is one where you can make big contributions right away. Kill yourself working that job. Don't worry too much about screwing up (you will in any case). Do it right and you'll be set on the right path for the rest of your career.

<comment><USER7> _getting up to speed on their sprawling codebase_

That too is valuable experience, of getting up to speed on sprawling codebases, which is a skill in its own right, and not one you get taught at college, and one you will need if you want to get involved in substantial projects later on. Negotiating corporate politics is valuable experience early on in your career as well.

There is a cost in switching too soon, and that is that you will be earmarked as a person who flits between jobs. 2-3 years at the first job is de rigeur IMHO. Yes you will learn an awful lot in your first year on the job, but you also have no perspective on how much there is. I remember in the dotcom days kids with _1 year_ of experience out of college would call themselves "senior software engineer". Good luck getting hired by a guy with 10 years experience!

<comment><USER11> Sorry for the belated reply:

My first job was at Epic Games working with Unreal Engine 2 which had a codebase of well over a million lines of C++ and UnrealScript. So, I agree with you of the value of learning your way around sprawling legacy codebases. But the company was still small back then (I think I was the 25th employee and the 10th programmer) and you could jump in at the deep end and quickly start getting things done. I've since worked at a massive company. I learned a lot from that, but it would have been frustrating had I gone there in my early career. That's the distinction I was trying to draw.

Getting red-flagged if you have too short stints at jobs is definitely a risk with taking Jason's advice. When I'm hiring people in the game industry, the most important clue in that respect is whether they stayed long enough to ship the projects they started, within reasonable limits. That usually works out to a 2-3 year minimum. That criterion isn't just meant to weed out job hoppers. The final six months of shipping a game are just qualitatively different (often in unpleasant but educational ways) from the rest of the development cycle. If you fucked up your design in the earlier stages, that is when your chickens come home to roost.

</comment></comment></comment></comment></comment></comment><comment><USER12> As a manager, it's been a personally eye-opening experience seeing how companies pay staff and how the constraints a manager has to work under affects their pay rise decisions. People wishfully hope that they get paid based on their contribution/skill level, but there are so many additional factors that come into play.

In all the technical teams (sysadmins, dbas etc) that I've managed, I've consistently seen variations of between $50k-100k between the lowest and highest paid person _of the same skill_ (ie I'm not comparing junior to senior staff).

The things I learned as a manager:

* Always know what the market is paying for your skills. Even if you are not looking for another job, remain subscribed to job websites so you understand what the market is after and what it is paying

* Sharing salary information with people you trust is incredibly valuable - you need to know where you stand. It's in the companies best interests to keep everyone in the dark - it means you won't know your true worth.

* If you love your job, by all means stay - but make sure you aren't using that as an excuse to cover up the fact that you are scared to make a jump, or that your ego is wrapped up in your job title. There are no medals for long service - and as companies (in my experience) generally only pay market rates to external hires, you are better jumping jobs every few years than staying in the one place. You'll develop more skills, earn more money, and I believe in the long term more employable.

<comment><USER13> What job site(s) do you recommend for keeping up with market salaries?

<comment><USER14> www.glassdoor.com, www.indeed.com/salary

</comment></comment></comment><comment><USER15> INAL.

Disclosing/discussing your salary, while often forbidden in your employment contract, isn't enforceable in many countries.

In the US, some states have specific laws that make such clauses unenforceable (yes, even if you sign the contract). Beyond this, Section 7 of the National Labor Relations Act says that you have the "right to engage in concerted activities for mutual aid and protection." The section has more pretty clear wording on just how well-protected you are.

In the UK, the Equality Act 2010 also protects such discussion/disclosure for the purpose of ensuring you aren't being discriminated against (how can women know that they are being paid less than men if they get fired for talking about salary).

I have to believe that other countries have similar laws, but you should obviously double check.

Of course, if you piss people off, they can generally get rid of you for some other infraction (or none at all). This is easier in some places (like the US with At-will employment) than others (like the UK where I'm told it's considerably harder).

<comment><USER16> Except in at-will states your employer doesn't need to state a justification to fire you. This means if you discuss your salary and get caught, you have to prove that to be the cause (which is nearly impossible).

<comment><USER15> Not sure why you say "Except..." since that's exactly what I meant and said. Beyond this though, At-will isn't practiced outside of the US (as far as I know).

I am curious though with whom the burden of proof lies. If your employer says they fired you for no reason (as they can), but you say they fired you because you discussed your salary...something's gotta give. If you can prove that you discussed your salary before being fired, I would think it would look very badly on your employer. At-will might mean that they can fire you for no reason, but it doesn't mean that they can fire you for _any_ reason.

<comment><USER17> Actually, that's exactly what it means. At-will means that either party (the employer or employee) can end the employment for any reason, good or bad, or no reason at all. Anti-discrimination laws have amended this, so the reasons aren't allowed to be "because the person belonged to a protected class", and there are a few exceptions for things such as employers not being allowed to fire employees for refusing to take part in illegal activities, but it is otherwise largely intact and very well can be used to fire somebody discussing their salary.

<comment><USER15> Again, INAL, but..

The National Labor Relations Board has ruled numerous time on this..and the termination of employees who disclose salary information is unlawful.

Examples: Lutheran Heritage Village-Livonia, 343 N.L.R.B. 646 (2004)

NLRB v. Main Street Terrace Care Center 18 F.3d 531

There's also state-specific clauses, like California's Labor Code is #232.

As silly as it sounds, At-will employment lets you fire someone for no reason, but it doesn't let you fire someone for an illegal reason. You can't fire someone for taking a lunch break or vacation time which is protected by various labor laws, just like you can't fire someone for being black.

Again, to me, the question is with whom does the burden of proof rest?

<comment><USER17> I apologise; I am clearly not familiar with the current state of exceptions. I'm sure it's obvious that IANAL as well, but, outside of specific exceptions (of which salary disclosure is apparently one as of the last decade) at-will still means "any reason or no reason" (though, California isn't exactly the best example of "at-will"....).

Unless my knowledge in this case also happens to be woefully out of date, the burden of proof lies on the allegedly wrongfully terminated employee.

</comment></comment></comment></comment></comment></comment><comment><USER18> I think the last point about your best chance for getting a good salary being during the interview is a pretty good one.

Salary increases tend to be considered in relation to your current salary, not in relation to your value to the company, unless you do something mind- blowing. Better to get in at $120k and never get a raise than to get in at $80k and get small raises every 6 months.

</comment><comment><USER19> I often get the feeling that I'm significantly less well paid than others in the company. I've seen pro formas for certain management positions and some ideas on wages in a company we just acquired, and I'm sure I'm pretty low on the list.

Part of the disparity is likely negotiating tactics (I know one employee who got a nice raise after getting a competing offer), and the desire of the company to pay the least amount possible.

For me, another big part is that my job can't be directly attributed to a revenue stream (we're in the services industry). For those who's jobs are directly paid by contract with the client, they'll pay whatever the client will agree to. For those of us in "overhead", they'll pay as little as possible because it's difficult, if not impossible, to assign a dollar amount to the value that we bring to the company.

I would venture to guess that devs that work for software development business get paid more than those that are just in IT at a non-software company.

<comment><USER20> I work in the software and it can be just as hard for developers to figure out where they fit in the revenue stream. I've talked to guys that work IT in large corporations and they make boats more than I do for the equivalent amount of work and expertise. The only difference is they are a company of 5000 and we are a company of 25.

I believe the only people that can truly justify their pay with any accurate metric are salespeople. They are paid entirely by commission and no sales means no income so there is no question about what they are paid. They do get additional perks like company cars, expensed meals, etc that fall outside the metrics. So 10 developers work on one product that draws in $2 million of revenue. How do you slice that up? by lines of code, hours worked, bugs squashed?

I would also say that large software companies pay developers more than small software companies. But I find this to be the case in almost every industry.

<comment><USER21> Salespeople can justify their pay _relative to each other_ , but not in an absolute sense (at least not any more than developers, anyway). If it were absolute, why would you need developers at all?

<comment><USER20> Their pay is only relative to what they sell. Which is about as absolute as you can get. Developers, and many other occupations are paid relative to each other. A mid-level developer in Missouri will not get NYC rates no matter how hard they try.

</comment></comment></comment></comment><comment><USER22> Subtitle: _the benefits of paying everybody the exact same base salary._

Managers, read up. Do you want to make your team members feel like this? Communicate clearly _beforehand_ about what leads to incentive pay (good code) and disincentive pay (chatty phone calls). If you didn't communicate clearly, you don't get to skimp on labour costs.

<comment><USER12> Isn't the subtitle: Make sure you keep confidential info confidential?

Being cynical, I would say that up to the point the info leaked, you had a good developer at a cheap rate who actually thought he was being paid well. A win win for the manager.

<comment><USER8> I wouldn't call a situation where said developer discovering one small piece of information changes from him being a happy, productive member into a disgruntled employee a "win win". It could easily lead to a situation where much more value is lost than was ever created from this arbitrage situation (through morale-based negligence, not actual malice).

</comment></comment></comment><comment><USER23> Understand the following restrictions from the manager's point of view;

a) everyone thinks they're smarter / better / faster etc than the folk around them.

b) everyone thinks they deserve "above average" pay.

c) there is always someone else at the company making more. There's always some company down the road paying more.

given these constraints there are always going to be people who think they deserve, or indeed want, more. No matter what he does a bunch of people are gonna be upset.

Reminds me of the time I was managing 3 developers, and all 3 independently came to see me to complain they weren't being paid more than the other 2, when in fact they worked harder than the other 2 and were more valuable. Of course they measured "worth" differently to me, but whichever way it turned out 2 were gonna be unhappy.

<comment><USER24> I understand. Isn't that what a manager's job is? Manage constraints? I have worked with some great managers and have a lot of respect for the good ones. However, we can't get our appreciation for our manager get in the way of our compensation. As a non-manager I care more about maximising my compensation than the manager's point of view.

<comment><USER23> Fair enough, as long as you recognize it's a zero-sum game. Indeed regardless of what he does it's probably at least two thirds of the people will be unhappy with the outcome. You're obviously welcome to (and should) push for your own cause.

My point is that a) you cannot make all the people happy all the time b) chances are, at least some of the time you'll be in the unhappy group. c) if you change jobs every time you're not happy (in this context) you're gonna have a lot of jobs because every manager is working under these same constraints.

Or put another way - the rules of the game are not set by the manager - therefore changing jobs to find a better manager (generally speaking - and in this context) is not a fruitful solution.

I'm _not_ saying all managers are the same, or you should work for a moronic manager who is bad at their job. I am saying that in order to play the game it's helpful to understand what the rules are. The running-back can blame the quarter-back all day long, but if what he's asking for is unachievable, then no amount of quarter-back-changing will help.

</comment></comment></comment><comment><USER25> I recently interviewed for a job at a web agency that I was perfect for; literally, the job listing described my resume. Consequently, I nailed the interview. He asked me what my salary requirements were and I told him; he said he'd run it by the powers that be. It was clear they would offer me the job, the only question was the salary offer.

So he gets back to me and says they want me but my salary requirement is a bit high. Hmm, okay, what do you have in mind? He throws out a number that is $30-40k lower than my salary requirement. I laughed out loud and said good luck finding the right candidate.

I found the same job listing on Craigslist the other day. They lowered the years of experience from 5-7 to TWO, and made a bunch of required experience optional. Good luck with that!

</comment><comment><USER26> The fact is that while you have the right to negotiate what you're paid, that negotiation works both ways. The truth is that the company will pay you the absolute minimum required to get the work they need. So, it's up to you to know the market rate, and negotiate accordingly. If you aren't paid what you think you're worth, there's no one to blame but you.

</comment><comment><USER17> Any sympathy I had for the author was lost when he said that he would have been happy had he not seen the list. I'm aware of the cognitive biases in effect here but, really, if he was happy with his salary it shouldn't matter if someone else was getting paid more, and if he wasn't happy the list shouldn't have had anything to do with that.

<comment><USER27> you are missing the point, is not about money is about repect and professional esteem, if you are a husband and your wife tells you she loves you you will be very happy, but then you find all the other guys she is screwing around with (and loves more than you) and nothing has changed between you two but now you are pretty angry aren't you?

<comment><USER17> Tough luck, mate; you happen to be talking to a polyamorist :)

</comment></comment></comment><comment><USER28> I sort of feel mixed on this one. I myself took a very low starting wage because the company I work at does gaming technology, and it's in a fairly small town, so my costs are very low. This wouldn't be a problem except that the technology the company uses is so specialized that it can't be applied anywhere else in the world (they have their own programming language and game engine technology which is used exclusively internally).

Now, 2 years in, I have the experience out of uni to be able to move to other jobs, but i'm still on a pathetic salary, with no additional benefits or anything, even during crunch times.

Since coming to this realization, I have made a plan to do something about it, so I have started learning new programming languages and tools, generating a portfolio of project euler problems, brushing up my CV, etc. Articles like this serve as good motivation/reminder that I need to keep doing this and aim for something better.

</comment><comment><USER29> > 5) A developer's best chance at achieving a maximum salary increase is to > negotiate during the hiring process. Once you are on board, you are at the > company's mercy unless you bail.

This is true indeed for a worse than average developer: after a year or so the employer learns that they are not really worth the money; at this point it will be hard for employer to cut back the salary.

Any developer (good or bad) stands a better chance to get hired by agreeing to lower compensation. Best developers have a good chance of successfully negotiating a significant salary raise after a year or so once they've proven their worth. At this stage they have much more leverage over the employer because it's quite costly to let a good developer go.

Overall I feel the author could have negotiated a much better deal.

<comment><USER30> That's how it should work, but not how it works.

</comment></comment><comment><USER31> _you are at the company's mercy_

Only if you have no better options. This guy was building a house and probably had limited savings. His manager knew it. If you want a higher salary, improve your negotiating position—for example, by having enough savings to live for a year at your current lifestyle. Focus on accumulating that cash reserve before building a house or otherwise overextending your finances and you'll suddenly find yourself less of a pushover when performance review time comes along.

</comment><comment><USER32> The author seems to feel a bit envious/jealous of the other peoples salaries and thinks it's the boss' fault (and by the way the boss is just making up stuff to tell him). My advise would have been to get over it! Salary is not black and white. Was he "happy" with his salary before he learned what others earned? If so who cares what the others make. When starting out "many" years ago I knew with certainty that I was almost paid the lowest of everyone, funnily enough it made me think intellectually about what makes the salary beyond just skill and contribution; your context, past history, current market demand (dot com hire vs post do com hire) etc. I never felt bad for even a second.. Never used it in a netotiation. Chase the passion and strive for excellence and solid dedicated work in a "good" organisation working for great people and the money will usually follow I think (or at least you will feel good and happy).

(sent from phone)

</comment><comment><USER33> Since a lot of the comments here are about strategy when negotiating salaries - everyone really should buy a book about negotiation and then find opportunities to practice. (You might not be hopping jobs at the moment, but you can negotiate a lot more than your salary.)

I like Roger Dawson's 'Secrets of Power Negotiating' myself.

<comment><USER34> > (You might not be hopping jobs at the moment, but you can negotiate a lot > more than your salary.)

Play boardgames, if you have no other opportunity. (Diplomacy is good, and can be played by email.) Or start haggling in shops.

</comment></comment><comment><USER35> Me and my co-workers always share how much we make. It's not a big deal. We understand that some make more, some make a lot less. Most often it's how well you negotiate. It rarely has to do with how great your skills are.

If that spreadsheet happened to be in my hands, I wouldn't know how to exploit it. What the author did is ruined the relationship with his manager over a crappy 2% raise.

I would just return it, make a joke, and started interviewing. If you're at the bottom while they tell you that you're great, it's a long way up.

<comment><USER36> Actually, I think what he did with it was what he should have done. I doubt it ruined the relationship, and from the sounds of the article, nothing indicates that. If anything, it could have strengthened it because he kept his word and approached the situation level headed.

He didn't go on the offensive when talking to the manager. It would have put the manager on the defensive and surely ruined the relationship then.

Instead, he tried to take the approach of what can he do to make more. He finally got constructive feedback, got a clear explanation of why the differences, and asked for harder assignments to prove himself.

<comment><USER37> "He didn't go on the offensive when talking to the manager."

Right, and in return the manager put the squeeze on _him_ which cost him thousands if not tens of thousands over the years. He should have

* gone to the manager _first_ and have asked for a higher raise (in a non-confrontational way).

* used it as leverage for a better description of what he needed to do to get a higher raise in the next review round

* not let him be pushed in a corner where he's being compared to his colleagues. This is a sure loss position. You need to differentiate yourself so that you are freed from the mental chains of other people's salaries, and you can argue a higher salary on individual merit. This is a rookie mistake I hear so often (and that people have thanked me for pointing it out to them when I discussed with them about their upcoming salary negotiations).

(apart from this, it's refreshing not to have post scores visible!)

<comment><USER36> At this point, I think a lot is being assumed by the post and it is difficult to go further than ones perception of what the author wrote.

My perception is different than yours. There really isn't any supporting facts to either.

</comment></comment></comment></comment><comment><USER38> While salary is certainly important, I can't help but think that it's wiser to work harder on yourself than on your job. In the end, the stress/time that you spend worrying about salary increases and getting underpaid should be spent improving yourself and finding alternative ways of income besides making a living</comment>


French intelligence officer caught selling confidential data on the dark web - <AUTHOR> https://www.zdnet.com/article/french-police-officer-caught-selling-confidential-police-data-on-the-dark-web <comment><USER2> This serves as a good example of why privacy should be protected. Even under the assumption the police use data collected only for legitimate purposes, it only takes one corrupt officer for anyone to have access for less savory ends; While these are of course contrived cases, consider the stalker who purchases access to a facial recognition database, a robber who uses the mentioned phone tracking system to determine when a house is empty, or an identity thief who buys recordings from unnecessary phone taps.

The most reliable way to prevent any of this is to avoid infringement of privacy and surveillance overreach.

<comment><USER3> All government records should have a public available audit of all access activities. The user or group making the request should always be revealed except by court order and those should still be acknowledge or determinable by some means. The type of data revealed can be classified into groups indicating how detailed it is, from simple identification confirmation to tax and criminal records.

the key is public access to the the logs of access. next step would be giving the public the ability to challenge the data within reasonable limits

<comment><USER4> That doesn't help much unless there's a meaningful punishment for officers who abuse this access. Since in the US we are happy to re-hire police officers who have been publicly known to kill people without actual cause (e.g. [https://www.nbcnews.com/news/us-news/officer-who-fatally- sho...](https://www.nbcnews.com/news/us-news/officer-who-fatally-shot-tamir- rice-hired-bellaire-ohio-police-n917391) ) I have trouble believing that a record of police officers who merely abuse surveillance data will do much.

</comment></comment></comment><comment><USER5> As a note, the DGSI is the result of the merger of the DST (counter espionage) and RG (domestic intelligence). The RG was a notoriously shaddy and scandals ridden operation, known for building files on French public figures (own file was typically the first document a newly promoted minister for interior requested to read) and was often compared to a political police. I wouldn't be surprised to learn that the officier in question came from the RG.

<comment><USER6> Is an intelligence agency having files on public figures considered "shady"? I'd have thought it was an important part of their job. Provided any juicy information isn't misused for political ends, of course.

<comment><USER7> One of RG major role was allowing local informations to go upstream so that politics knew what was going on outside of their ivory tower. Since they were operating using local branches it was a sure way to get first hand informations.

Of course to do their jobs they had to keep files on anyone or anything relevant. Could this be potentially misused ? Definitely. But it had a pretty good reason of existing.

After they got merged they lost most of their local branch and got retasked. Meaning the government have to rely more on second hand data and can more easily fall prey to falsified informations. The truth is a little more complicated than that but it was indeed a really useful tool.

<comment><USER8> Completely true. And moreover, it is now acknowledged that the failure to stop the terrorist attacks in the recent years comes for a part from the RG having been nearly disbanded. They were far from being an agency which only spied on public figures, they were in fact a very important tool for gathering information at a local level, which was badly missed to have first hand intel on extremists. Their bad reputation came mostly from the 60s-70s when they were targeting a lot the labor unions who had connections with the Soviet Union.

</comment></comment></comment></comment><comment><USER9> Government is made out of people. Well-meaning voters impute moral motives to government actions and new laws, but institutions are only as moral as their checks and balances keep them in line. Morality alone doesn't cut it.

You need to punish people who don't punish people who don't follow the rules. That's a reflexive rule and is the minimum requirement to get a stable institutional process.

<comment><USER10>
        > You need to punish people who don't punish people who don't follow the rules. That's a reflexive rule and is the minimum requirement to get a stable institutional process.

The story here is straight up cybercrime: a French cop who got pinched using police resources for personal and nefarious gains. He's getting 7 years and stiff fine.

What did Equifax in the US get in response to their colossal-scale criminal negligence? Nothing. Zero fines and no one went to jail. Instead they were required to "make a deal" which netted them a tidy profit.

<comment><USER11> One is a large company and one is a person. This is a well worn logical stumbling point that many don't consider.

<comment><USER12> They're not equal in the eyes of the law...

</comment></comment></comment></comment><comment><AUTHOR> I have published this link because I was chocked when I encountered this news. This does not match with my understanding of police. In such services as DGSI, I would expect to see many smart people who have a true vocation for the service and some ambitious politicians who try to climb the hierarchy (not exclusive). Of course, there are some depressive, desperate, alcoolic or crazy people. Maybe there are spies paid by foreign countries, but I would not expect to see greedy treators. Maybe, I have a crazy theory. What if this guy was selling this data to try to catch big fishes ? What if this guy did this in secret because his boss is a risk averse politician ? A person frustrated by the inertia or other ineffectivity of the service and experiencing other difficulties in their life may fall into this madness. I think they have regular psychological assessment because this job is very hard.

I am just an imaginative layman. My source of knowledge about police is my father (RIP) who was a police officer. He had friends who worked in dgsi.

<comment><USER13> I am French and there are rumors that some people inside the police forces are earning side money by funneling information from the police files to former police officer working as private investigators (with the advantage of having insider access to police data).

I always assumed that this practice was widespread. That is just an extension of the traditional practice of "tricoche" (police officers performing investigations for private customers).

<comment><AUTHOR> It is obvious that former police officer working as private have their relation network. This makes former police officer so valuable. Active officers trust them and want them to succeed (they may need to go private themself one day). I have not heard about money transfer. This may happen sometimes at small scale, but corruption is a very sensible subject in police. People do not want to be caught as corrupt. This is very damaging to reputation.

</comment></comment></comment><comment><USER14> I would expect the intelligence services to be present on the dark web, as undercover agents, to gather information or dismantle criminal organizations. It must feel strange when they discover they are tracking someone of their own services.

<comment><USER12> Maybe they have a difficult telling time telling them apart since they all act so similarly...

</comment></comment><comment><USER15> I'm surprised he only face 7 years of prison. In the US he would probably face 30+ years no ?

<comment><USER16> more like, threatened with 30+ years by the prosecutor, but plea bargained down to 5

<comment><USER17> Depending on how wealthy and how white they are

</comment></comment></comment><comment><USER18> > This case stands out because it's usually hackers and cyber-criminals who > sell this data and not police officers.

Does it? ... "who got caught" who is after adtech executives who sells your data? Equifax, anyone?

</comment><comment><USER19> Ah, DGSI. [https://www.france24.com/en/20160929-sarkozy-scandal-spy- squ...](https://www.france24.com/en/20160929-sarkozy-scandal-spy-squarcini- investigation-ump-republicains-gaddafi)

</comment><comment><USER20> What exactly is dark web here. Do they mean some tor/IPFS site, or private contacts, or what? If it's the former, can someone give links where this type of info is sold, just out of curiosity.

</comment><comment><USER12> A hired thug who doesn't care who his master is.

</comment><comment><USER21> Oh no, somebody gave up the public's right for privacy for personal gain, I am shocked.

</comment><comment><USER22> Bigger government will be even better.

</comment><comment><USER23> dreyfusaffair.onion

<comment><USER24> Let's hope the accused officer isn't a member of an unpopular minority group.

</comment></comment><comment><USER25> By the way from other french articles: For 30 euros, you gave him a phone number, he would give you his bank statements. For 50 euros, he would give you his identity. For 150 euros, driver license number, date of delivery, ID card number, social security number, license plate…. You could even know about the flights he booked.

For 300 euros, could get his entire life. It was possible to get the police documents and those from Interpol. But the most interesting with the 300 euros offer was that with a simple phone number you could get all his phone calls and it's physical location even month before. This was what chocked me the most. There was a higher price for celebrities and politicians : I believe those people have a special status.

<comment><USER12> What's persistently disturbing is that in a free (black) market the price for that commodity has sunk so low. It means that there's a lot of offer available...

<comment><USER26> At a guess he's not the only bent officer.

</comment></comment></comment><comment><USER27> The title is somewhat misleading and the reality is much more serious.

As the article mentions this was not just a "police officer" this was an agent of DGSI, something perhaps like the intelligence branch of the FBI in the US if such thing exists.

</comment><comment><USER28> @dang

I'm appalled of the growing number of dead posts that I see lately. Since normal accounts apparently can't answer them, how do you think they will regulate themselves?

<comment><USER29> I think the point of dead posts is that there is no punishment that works. These are posters that thrive on and are reinforced by conflicting interaction regardless of voting. When the posts are "dead" (and thus get no interaction) we have extinction of the reinforcement.

<comment><USER28> Unfortunately conflicts are absolutely necessary for solving deep problems and if conflict is banned outright then what remains is shallow or polite conversation.

(Conflict does not mean malevolence)

<comment><USER30> >(Conflict does not mean malevolence)

Not all conflict does, but in this case, the OP was talking about people who are baiting argument for the sake of argument. They're not looking to solve some problem. They're just looking to be dicks.

There is a difference.

<comment><USER28> Yes. But how do you enlarge the frame to include the conflict _and_ be able to tell the useful one from the malevolent one?

My argument is that it is not clear in what way the dead posts became dead and neither self-correction nor peer-correction are possible any more.

<comment><USER30> I honestly don't know how to do it. But I will say that on HN at least, there seems to be a moderation team interested in finding that balance.

The only comments I've seen that get killed are so far off the rails or so hateful as to be completely unproductive.

From what I've seen online, the malevolent ones just seem to want to resort to personal attacks, or make terrible arguments full of basic logic flaws.

I get what you're saying, but I would say that the onus is on the individual arguing to prove they are not malicious. If I type something that can be construed as 'off-topic' or malicious, I always either preface it with an explanation to the word choice (i.e. don't read tone in text, because this is said with a flat emote). Otherwise, I expect my comment to get flagged and killed.

Like this one. This has nothing to do with the original story, so it may get killed. And that's something that I understand and am okay with.

</comment></comment></comment></comment></comment></comment><comment><USER31> Ah, amateurs. He should have printed a notice saying "by entering the premises you agree to my privacy policy". Then it would be ok to sell the data.

<comment><USER32> That won't fly under GDPR. The building owner should give you consent form:

      You consent to:

      - [ ] Your data will be processed by police department
            to fulfill your request.
      - [ ] Your data will be used to help with ongoing investigations*/**/***.
      - [ ] Your data will be used to better evaluate information
            coming from you****.

      <font size=smallest>
      *    - by consenting you agree to be included in department's suspect list.
      **   - by consenting you agree to have data shared with all other government
             agencies, as well as private investigators listed in Appendix A.
      ***  - by consenting you agree to have your data shared with select journalists
             (listed in Appendix B), as well as any and all social media profiles
             of the department.
      **** - by consenting you agree to be randomly searched and detained if the department
             determines a need for it.
      </font>

      Appendix A:
      [redacted due to national security concerns]

<comment><USER6> I'd happily sign such a form when dealing with the police. At least it would give me some prospect of legal recourse if the data was ultimately found to be being used in any other way.

<comment><USER12> I'd rather if they didn't spy on me in the first place...

</comment></comment></comment></comment><comment><USER33> Bouillabaisse recipe?</comment>