Essential Electron - <AUTHOR> http://jlord.us/essential-electron/ <comment><USER2> I don't see it being discussed much when Electron comes up, so I'll share some of the use cases that led our company to move at least one of our web apps to Electron.

We provide a B2B service that relies on communication with a locally installed service running on the users machine. This kind of approach is one that has been heavily bombarded with new features and deprecations leaning towards a more secure web by most browser vendors, which is actually very justifiable.

The most recent one was Chrome targeting to restrict app cache usage, which we rely on currently, only to documents served through HTTPS. Given that we have an app that uses a local service that needs to work offline, we cannot use HTTPS for that without messing with stuff that needs Administrator privileges, which we really want to avoid because headaches.

So we figured we need a more flexible approach that is not so restricted as a web app living on the browser, but we already have a product. Here comes Electron, and in a couple weeks work, mostly testing things, we have it. We now deploy both to the web (just in case) and are rolling customers to the desktop.

Other features that added a lot of value where:

\- No localStorage limit, was starting to become an issue, now we have breathing room to migrate to other storage

\- Auto Update, actually took care a long time complaint for the necessity to keep downloading new versions of the local running server, which we now package alongside the app

\- node process running directly on the client opens up a lot of new possibilities

</comment><comment><USER3> Remember when people used to complain about minor desktop UI inconsistencies like submenu activation, button frames and default icons? Thanks to years getting people accustomed to the usability nightmare that is the web, this doesn't seem to be an issue anymore.

<comment><USER4> Meh.

After all, the dominant OS before mobile was Windows. Remember Winamp skins? Skins for every possible app on the face of the Earth? Opening up Skype, which had its own theming, Yahoo Messenger, which had its own theming, Office 2003, which had its own theming, etc., etc., etc.

Except for Mac OS fans, most of the world didn't really care.

<comment><USER3> I remember quite a lot of complaints about those Office changes, or different styles that came from using Borland C++, Delphi or even cross-platform tools. If you were doing commercial development, that mattered. End users don't exactly complain about specifics, they just ditched your program because it was "odd".

Let's not even mention Unix.

But yeah, Mac OS users were particularly obnoxious there, as usual.

<comment><USER5> > End users don't exactly complain about specifics, they just ditched your > program because it was "odd".

Except that they don't. If that were true then we would see a lot more consistency in desktop app styles.

The typical desktop computer experience hasn't been visually consistent since the mid 90's. Most young people have never used a computer where most of the apps had the same style.

</comment></comment></comment></comment><comment><USER6> What would be interesting to reduce the memory footprint is to split Chromium and only include stuff you actually need in your app. For instance, Chromium comes with backwards-compatibility code for websites of the 90s (that use tables and old CSS). Perhaps there can be a stripped down version that only supports HTML5. Even cooler would be to simply just include in the final package _only_ the things you're using. So if I don't need localStorage, I don't include it in my app.

<comment><USER7> I've investigated this lightly. The bulk of the weight of electron is actually in the media stuff. Dropping video support would reduce the storage footprint by around 50%.

</comment></comment><comment><USER8> There has to be a more efficient way of writing cross-platform code than bundling Chrome and NodeJS with your app.

<comment><USER9> What I'm really confused about is why Electron is set up such that each app ships the whole runtime, rather than there being something like the JRE or CLR (or Silverlight, or Adobe Air, or...) where each app that wants to use it, prompts for its installation.

Better yet, why not make the architecture into a single shared "Electron windowing server" process that all Electron apps run "on", such that I don't end up running 7 different copies of Chrome?

(Honestly, Chrome itself could have become said runtime with its packaged apps, plus the (only ever experimental) standalone App Launcher install mode. I guess that's not the path they wanted to go down.)

<comment><USER10> That approach is not without downsides. It requires strong compatibility guarantees and version management. That's not easy to achieve.

And traditionally, management of such shared runtimes on anything but Linux sucks a lot. Remember all those Windows apps that tell you "Java Runtime Environment 1.5 required" and then they kind of leave you to figure out how to install that? Not exactly user-friendly.

And at the end of the day, regardless of your OS, you end up with 4-5 different JRE versions installed because compatibility is not perfect, so each app locks down to a specific version instead of accepting a newer JRE.

.NET isn't any better. I have 5-6 different .NET runtime versions installed and I can't remove any of them because each app requires a different version.

The method of vendoring all your dependencies may not be the most efficient, but it's certainly the most convenient one. It seems users these days care more about how much hassle it is to install than how long the download takes or how much RAM it uses.

<comment><USER11> > That approach is not without downsides. It requires strong compatibility > guarantees and version management.

Static linking the runtime also has significant downsides. One of the worst is how it puts the burden of pushing runtime security updates on the app. Frequent JRE downloads because of security patches is annoying, but downloading N copies of chrome every for all of your apps is insane.

Of course, this also requires that each app _update_ itself to be compatible with the new versions every time there is a security patch. The entire point of including a specific version of chrome is to avoid these updates, so the very idea of Electron implies the app is not designed for security.

</comment></comment></comment></comment><comment><USER12> I've been very impressed with the few Electron apps I've seen out in the wild. Obviously the main one is Atom (as I believe this is what gave rise to Electron). But others include Kitematic and VS Code, the latter of which convinced me such an approach could produce a smooth UI.

Generally, I find the way these apps look very attractive, much more so than any other cross-platform apps I've seen before (Swing, AWT, QT etc).

While I agree the download size is less than ideal, I can't argue against it being a good compromise at the moment.

<comment><USER13> Atom is a pretty neat editor as long as you are only using it on small files.

Try opening a 20MB SQL Dump. Fortunately, Atom will show a warning. If you click past that, everything will freeze while Atom eats up more than a Gigabyte of memory. Don't turn on syntax highlighting, or Atom will lock up and eat all your CPU.

When you are done listening to your computer's fan, quit Atom. Then kill the "Atom Helper" process, which for some reason keeps on eating CPU even after you quit Atom.

Now open the same file in BBEdit, or any other native Text Editor... and the file will open instantly, the app will be responsive, and syntax highlighting will work, because 20MB really isn't a file size that should be an issue for a text editor.

<comment><USER14> I've tested opening a few ~15MB log files (no syntax highlighting) with VS Code and Atom... I'm amazed that one editor will load within 2-3s and the other will take 15s (or more!) when they are both built on Electron.

</comment></comment></comment><comment><USER15> Electron is potentially a game changing product but very little thought has been given to a smooth on boarding process.

I have had very little problems with the actual coding part, but installing, especially on Windows, and updating for new versions is voodoo. Every time I think I have it all figured out it breaks.

<comment><USER16> I can't speak for Windows but on both OSX and Linux, upgrading Electron versions is as simple as upgrading the version number of the `electron- prebuilt` dependency of your project and running `npm update`. You can also use the `npm-check-updates` package to upgrade to the latest version automatically.

<comment><USER15> Interesting that you mention npm-check because that was recommended to me. The web page explaining it looked fabulous and I thought it would solve all my problems.

But running it took six hours and it crashed. Found online somewhere that it can't handle the size of electron, too many nested directories I guess.

Tried just updating and it appears to have worked, but now everything crashes and the error message isn't very helpful.

<comment><USER16> If you just jumped up some major versions it's likely that you've upgraded to a version with breaking API changes. I'd suggest reading the changelogs between your old and new versions.

Assuming you're using the prebuilt version (which you should be unless you're hacking on Electron itself) there shouldn't be any issues upgrading - it just downloads the latest prebuilt binary, there really aren't many files.

</comment></comment></comment></comment><comment><USER17> I know a few people who did Qt wrappers for their websites and sold them as native apps, because some big enterprises only installed old IE versions.

Installing a new browser wasn't allowed, but installing these wrappers that prevented the use of any other website and most other browser features, was okay.

With Electron this is even easier.

Also the "Web-Platform" can now do most of the things others can do too.

90% of all things people want to do with apps (mobile or desktop) is already possible with a web-app. If you need more, you can do a browser extension or an Electron app.

</comment><comment><USER18> Thank you for having a readable font size and thank you for actually explaining ideas in ways that the layperson can learn from. We need more of this, not elitist jargon that is all too common.

<comment><USER19> Yeah, I really liked this format as well. Simple language and easy to read. Wish there were more articles out there like this.

</comment></comment><comment><USER20> Well, I do need to put my 16GB of RAM to good use.

<comment><USER21> It's not _that_ bad, depending on what you're doing inside of it. My password manager clocks in at ~150 MiB RAM usage with a few thousand passwords. Could be better, but it's not as bad as, say, Mozilla products written in XUL.

<comment><USER22> A password manager shouldn't even need a tenth of that.

<comment><USER21> Realistically? 15 MiB is going to be hard in any desktop GUI toolkit I know. Something around 50 MiB is more what I'd consider feasible.

<comment><USER11> "a tenth" of "~150 MiB" is a reasonable approximation:

        $ ps -p $(pgrep keepassx) -o rss=
        22844

</comment></comment></comment></comment></comment><comment><USER23> A decade ago you would have been shot for suggesting to run every (web-)app in this own 50MB+ browser environment/jail.

Times are a-changing and memory is cheap these days.

<comment><USER21> A decade ago Mozilla's XUL-based HTML+JS interfaces, and the programs built in it – Firefox and Thunderbird – were all the rage.

<comment><USER24> And the concept of 'web apps' barely existed.

</comment></comment></comment><comment><USER25> I can understand why small teams with a web background might pick Electron instead of going native but I don't understand why the larger companies like Slack don't write a native app when they have the resources to hire the talent.

<comment><USER26> What advantage would that introduce? Slack seems to work just fine on each available OS. Being able to write once in JavaScript/CSS/HTML seems a lot more appealing than writing and testing three apps separately, regardless of your company size.

<comment><USER25> 1) Native L&F 2) More responsive UI 3) Lower memory footprint

As a dev I'm biased of course and this might not matter to most people. One thing though, you don't have to write the full app three times. For example all the business logic can be in C++ and write a native UI on top of it.

<comment><USER26> I think it _might_ matter to non-devs but the tradeoff has to be pretty compelling and in Slack's case I don't see it. Like, there's still dev work happening to make these apps, so it's not like you're shutting out a whole group just because it's a web stack and not C++.

</comment></comment></comment></comment><comment><USER27> The font size is way too big on that page.

<comment><USER28> If only there was some way to make it smaller.

</comment></comment><comment><USER29> "Typically, desktop applications for each operating system are written in each's native language. That can mean having three teams writing three versions of your app. Electron enables you to write your app once and with web languages."

I stopped reading there. If you have total ignorance of how native applications work, maybe fill that hole before trying to evangelize that everything should be written in JS...

</comment><comment><USER30> Well, you are getting cross platform almost for free. It is a pain with other such frameworks.

Spotify, steam , brackets use these kind of tech, and I personally like them. somehow I find them fast, more stable( probably due to chromes multiprocess architecture).

<comment><USER31> Agreed. Main issue is everyone's downloading Electron over and over to run the apps. Would be nice to have an EVM or something so that Slack could just be the ~1 meg or so of actual app-dependent code.

<comment><USER32> Windows 10 (actually, 8+, but never mind) has its own platform for "native" HTML apps. One more abstraction layer, and your app can run both there and in Electron.

</comment></comment></comment><comment><USER33> Very nice introduction with relevant links. However, I feel the 'Think of it like this' section is strictly for MacOS (and Linux?) users as it doesn't behave that way in Windows and can confuse the reader.

</comment><comment><USER34> What's the key differences between Electron and Chromium Embedded Framework?

<comment><USER35> It is nodejs vs c++. Also, everything works out of the box in Electron case. In CEF, instead you have to study examples and dive into Win32 API/GTK/cocoa samples to find out how to run and extend basic "hello world".

</comment></comment><comment><USER36> Does anybody have experience with both Electron and nwjs? How do they compare?

<comment><USER37> Electron seems to have more mindshare, nwjs has some nice features like the ability to open multiple windows from the same renderer thread. In Electron, each window you open has its own renderer thread with no JS state shared between windows.

</comment></comment><comment><USER38> Electron is really awesome. I wrote a rest client¹ a few weeks ago for my personal use, and it worked out really well. I saw that even the auto update² use case is taken care of.

Really awesome to make a quick app for someone who is already good in making webapps and needs the power/access/network rights of a desktop app.

¹[https://github.com/S2-/http-client](https://github.com/S2-/http-client)

²[https://github.com/electron/electron/blob/master/docs/api/au...](https://github.com/electron/electron/blob/master/docs/api/auto- updater.md)

</comment><comment><USER39> I like electron very much, yet, how come i'm feeling to be the only one to like & miss the nw.js mixed context mode ? This is so much more confortable ...

</comment><comment><USER40> Do you also get a website? given that you program using JS + HTML + CSS.

<comment><USER41> You can spin up a http server from the Main process (we do spin up websockets on our app) if you need to, and if you're writing a single page app using angular for example then you can just specify the .html page using loadURL()

</comment></comment><comment><USER42> Whats the security update plan for Electron?

<comment><USER37> There's an Electron auto-updater module, and an example update server implementation, so you just push updates (of any kind, including security updates that fix Electron itself) to your users (supports Windows and macOS) using that.

<comment><USER11> That only works if the apps are compatible with future releases of Chrome. If that was acceptable, there would be no reason to bundle a specific version of the runtime with each app. As several people in this thread have already pointed out, apps break between versions; this implies that the "security update plan" in practice will be to ignore security updates.

<comment><USER37> I'm so confused.

The app author controls the update channel. At their own pace, they'll bump up their Electron dependency to a newer version and make sure their app is still compatible with the latest Electron. When they're ready to release that new combination of app and Electron, they can push out the new version to everyone as an auto-update.

Where does Chrome come into it? Who will be ignoring security updates?

<comment><USER11> Consider the next time there is a serious vulnerability in Chrome. Maybe it's a TLS problem and network requests cannot be authenticated. Maybe it's a buffer overflow in something that renders data from a remote source. Chrome needs to be updated to a newer version immediately.

Is _every_ app author going to push out an update that includes the latest Chrome with the relevant security fixes? Or are they going to irresponsibly leave the vulnerability unpatched until their app is updated to support the new version of Chrome?

The very idea of using _old_ versions of Chrome (via Electron) - which is the stated reason for bundling Chrome with each app - tautologically means at least some apps will be using vulnerable versions of Chrome.

> At their own pace

That's the point; browser bugs don't happen at the _app author 's_ pace.

<comment><USER37> Jeez, I guess. In practice the Electron authors would presumably issue point releases for critical security vulnerabilities. If so, this is no different from shipping OpenSSL with your app and needing to get an update out for that.</comment></comment></comment></comment></comment></comment>


Wartime Broadcasting Service - <AUTHOR> https://en.wikipedia.org/wiki/Wartime_Broadcasting_Service <comment><USER2> Reading through Cold War-era plans for post-apocalyptic Britain makes me shiver. The idea that any of the broadcasts talking about "stay indoors, no help is coming" and "the water you have may only last 14-days or more" could one day come true is truly terrifying.

<comment><USER3> Fortunately I don't think things would be _quite_ as bad as at the worst times of the Cold War where there were estimates of ~1000Mt landing on the UK.

If you've seen Threads its worth remembering that the planning exercise it was based on was criticised for being too optimistic:

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

For anyone who has seen Threads to think that what it depicts is _optimistic_ is quite something.

</comment></comment><comment><USER4> Oh god, can you imagine Joanna Lumley coming on the radio to tell you you were about to be blown to smithereens by an atomic bomb.

<comment><USER5> But don't worry, you'll still look.... absolutely fabulous

</comment></comment><comment><USER5> One has to assume Wood Norton was also a target</comment>


Seth's Blog: The problem with positive thinking - <AUTHOR> http://sethgodin.typepad.com/seths_blog/2009/09/the-problem-with-positive-thinking.html <comment><USER2> This piece is surprisingly profound. Here is the key insight:

 _Negative thinking feels good._

I think this is exactly right.

A compounding factor is habit. Once you've being doing the same thing over and over, it feels good to keep doing it and uncomfortable not to.

Another reason why negative thinking feels good is that it's passive, and it's easier to be passive than active.

<comment><USER3> Negative thinking feels bad. Maybe he's never actually experienced it. A better explanation is needed.

<comment><USER2> The statements "negative thinking feels bad" and "negative thinking feels good" are not contradictory at all, though they may appear so. The way in which it feels bad is obvious, but the way in which it feels good is not, and takes self-observation and honesty to detect. The effort is well worth it, though, because it provides a way out of the conundrum. If I'm only aware of how they feel bad, then negative thoughts are something that _happens_ to me; but once I become aware that they also feel good, I see them as something that I'm _doing_ (or at least acceding to), and I can withdraw that participation.

My experience has been that one has to persist with this concept until the initial indignation ("how dare you say that I'm enjoying this pain") dies down. Then a whole new array of psychological options opens up. It's fascinating. But challenging.

<comment><USER3> Still the people who never do that are, in honesty, feeling bad not good.

I hypothesize the reason humans perform worse after failing a hard question versus passing an easy question is that by keeping yourself down, you avoid getting into trouble claiming a higher status in the tribe than you can pull off if it comes to a confrontation. But you feel bad so that you keep looking for an opportunity to claim the higher status/more resources position. Perhaps explaining this (if it is true) and that this doesn't confer any benefit in our current environment would be just as effective.

</comment></comment></comment></comment><comment><USER4> In regards to running a startup I have found that analyzing the worst case scenario (negative thinking) has helped shape smart decisions a lot more than positive thinking. I find that this is especially true with entrepreneurs where positive thinking has frequently been the downfall of many great companies (ie. build products -> make free -> ??? -> make money)

<comment><USER2> You're not talking about the same thing. It's entirely possible to analyze worst-case scenarios without feeling overwhelmed, miserable, or doomed. Indeed the analysis will be better that way.

<comment><USER4> I never said negative thinking is overwhelming. I think it's exactly the opposite. Once you can come to terms with your worst-case scenario (ie. quitting and getting a job again when it fails), it frees a lot of burden and helps you work harder.

<comment><USER2> There is no issue here, merely semantic confusion: we're using the phrase "negative thinking" to mean different things.

<comment><USER5> Think of it this way: planning for negative scenarios is generally implies that you're willing to deal with them. To be willing to deal with them, you probably think that you're capable of dealing with them.

Even though dealing with negative situations isn't kittens-and-puppies happy, it is solidly optimistic. That's the kind of positive thinking that helps you.

<comment><USER6> Good summary.

</comment></comment></comment></comment></comment></comment><comment><USER7> Any one have links to the evidence mentioned for the effect of positive thinking on performance?

<comment><USER8> Most of the research on this comes from the field of educational psychology. The specific term that you would search is 'self-efficacy'.

<http://en.wikipedia.org/wiki/Self-efficacy>

<comment><USER9> Also "Performance Psychology" which as its origin in sports.

<comment><USER7> Thanks!

</comment></comment></comment></comment><comment><USER9> This is a great post and should almost be a sticky here on Hacker News. I've been involved in some performance oriented activities both in school, business, sports and the military. I have never seen anyone succeed by focusing on the problems.

When focusing on problems or prematurely on the solution, you'll get anxious and start seeing problems everywhere. The planning process will get more important then the actual implementation and you'll focus on the smallest problems. Even things that will go away by themselves.

Then without knowing it you'll be one of those people who asks "why?" instead of "how?". And I, like most, don't want to be around a person like that.

</comment><comment><USER10> What is "positive thinking"?

<comment><USER11> it is thinking positive.

<comment><USER10> The term is just so damned vague. If I buy a stock and think the price will go down, is that "negative thinking"? If I'm miserable where I work, would it be "positive thinking" to tell myself that I like it there?

My current understanding is that "positive thinking" is a lot like "having an open mind": social gamesmanship where you say "I disagree with you" but in a way designed to make the other person look bad, at least in the eyes of people who don't both to find out what the words are supposed to mean.

</comment></comment></comment><comment> onreact-com Positive thinking is a good start but positive acting is even better. For instance it works perfect in raising children. See Triple P <http://www.gov.mb.ca/triplep/></comment>


Fedora 23 released - <AUTHOR> http://fedoramagazine.org/fedora-23-released/ <comment><USER2> This is the first distro with Gnome 3.18,Wayland and systemd ... And the new sat solver based package manager. And it works really very well.

There are liveusb (for macbooks as well) - really encourage everyone to give it a spin without installing. This is really the future of the Linux desktop.

<comment><USER3> It might be time to switch to a package management paradigm that doesn't require SAT solvers.

For example, one in which packages do not conflict because they are installed in a directory for each package, and there is an "alternatives" mechanism for any global choice.

<comment><USER4> Daniel J. Bernstein, around the turn of the century, proposed a /package hierarchy (for package management without the need for conflict resolution) and a /command directory.

* [http://cr.yp.to/slashpackage.html](http://cr.yp.to/slashpackage.html)

* [http://cr.yp.to/slashcommand.html](http://cr.yp.to/slashcommand.html)

Their major problem was the idea that one had to register things with what was to most of the world just some bloke on another continent. But they had concepts like a hierarchical package naming scheme ("admin/", "mail/", &c.), self-contained build trees with versioned names, symbolic links to denote "currently selected version", and an "index"/"alternatives" directory full of symbolic links.

<comment><USER5> The /package directory sounds sort-of like what GNU Guix and Nix do. They have a "store" directory (say, /gnu/store) that works like a content-addressable storage system. All store entries are associated with a SHA256 hash that uniquely identifies the build. There's no SAT solver needed because package recipes _precisely_ describe their dependencies, all the way down to the bootstrap binaries for the system. There's also no global /usr that prevents multiple versions of the same software from existing on the same machine in a sane way. Users can manage their own "profiles" which are symlink forests to a set of store items. Each user can choose their own set of software without needing root privileges to install it and without fear of breaking another user's environment. Furthermore, users can manage arbitrarily many profiles and even create temporary environments (perhaps in a Linux container if you're into that) to perform one-off tasks or hack on a new project without polluting any profiles. You also get transactional package upgrade/rollback.

I'm one of the Guix hackers, and we're about to make a new release announcement today, so I encourage you to check it out: [http://gnu.org/software/guix](http://gnu.org/software/guix)

<comment><USER2> it would be interesting if you could talk about Nix, Guix and the 800-lb gorilla: click packages. incidentally, they just made an announcement: [https://news.ycombinator.com/item?id=10506188](https://news.ycombinator.com/item?id=10506188)

</comment></comment></comment></comment></comment><comment> pablo-massa The other day I was considering switch my mom's PC from Windows to Linux. She is the type of user who do almost everything on the browser (Gmail, Google Docs, Google Photos, YouTube, Netflix, Spotify, read stuff), off the cloud maybe some MP3, photos and documents; I mean, no command lines, no read tutorials to do something, no annoyances, easy to give up on something with too much steps.

I was considering installing the distro Elementary OS or Ubuntu. Do you think that Fedora can be a good option too? Which of the three is best for that user case?

A thing to consider is that her laptop is a bit old, from 2005-2010 I think. I remember that has 2 GB of RAM. She upgrade from Windows 7 to Windows 10 and say that now runs faster than before. The new OS shouldn't run slower than Windows 10.

I'm on a decision paralysis because on Elementary OS I see most simplicity (OS X in mind), in Ubuntu more speed and trust that is not going to crash (large user base), and now I discover Fedora and see that can have a good mix of both.

Let me know what you think. Thanks!

Links: [http://elementary.io](http://elementary.io) [http://ubuntu.com/desktop](http://ubuntu.com/desktop) [http://getfedora.org/en/workstation/](http://getfedora.org/en/workstation/)

<comment><USER6> As an elementary OS contributor _and_ Fedora user, I guess this is my time to shine, hu?

It really depends on your use case. I've heard quite a bit positive feedback about elementary OS for "computer illiterate" (parents, old people, etc). It seems to "just work" for them after installation (bear with me I really can't judge about "ease of use" after years with Linux) and it's running on Ubuntu LTS versions. You're running apt-get to install security fixes, the current version of Firefox/Chrome and fixes provided by the elementary OS team, and that's basically it.

Fedora on the other hand is "the latest hot thing". It has by far the best GNOME3 integration and it previews technical features worked on by Red Hat and GNOME. It also features recent kernel versions which might be important for new-ish hardware. All that is quite awesome for technical-minded people like me. I'd like to say "it's unstable", but in my experience, it's not. I did not do the 22 -> 23 transition yet though. You have to do some additional work for the frequent new versions (backup everything in case it breaks, try the transition, etc). You also have to fiddle around with GNOME addons, font rendering and media codecs (RPMFusion as third-party provider) to make it usable as "personal computer" IMHO.

In the end it's up to you. I do believe your mom will be able to work with both (you'll need to tweak GNOME a bit IMHO, but that's up to discussion I guess), but you'll have to deal with different administrative workloads.

<comment><USER7> I don't have eOS as a daily driver (I've got the Pantheon desktop on top of Ubuntu as a chroot environment on my Chromebook and a full Elementary VM on another laptop), but I've been playing with it for some time.

One thing that really irks me about the OS is the designers' reluctance to actually let you customize anything. For instance, the lack of a minimize button really bothered me, and I ended up having to install a third-party program called elementaryTweaks just to restore that functionality. The designers have outwardly refused to incorporate any of that and have repeatedly defended the decision to not give us a minimize button:

[http://blog.elementary.io/post/131034577721/will-any-of- the-...](http://blog.elementary.io/post/131034577721/will-any-of-the-options- added-by-elementary-tweaks#notes)

[http://blog.elementary.io/post/130282384916/i-was- wondering-...](http://blog.elementary.io/post/130282384916/i-was-wondering-if- you-guys-are-going-to-put-a#notes)

To me, that reeks of Apple's walled-garden "We know better than you do what you want" attitude.

<comment><USER6> Well to be honest, you're not completely wrong. elementary OS _is_ trying to make as much decisions as possible for the user - To make it "just work". I agree that this is annoying to people accustomed to tweaking their system or desktop. No doubt. elementary OS is - at least partially - targetted at people with minimal technical knowledge. And there _are_ some design decisions I might not really agree with. The minize button, well, uhh ... I didn't get it back via elementary-tweaks on my machines, but I understand people missing and re-activating it.

Now here's the thing though: There's a different between Apple's walled-garden and elementary OS. You are very much able to tweak your elementary OS setup in any way you want. It's Linux after all. It's your system. We try to discourage tweaking a newcomer's system via commands learned on a blog post because they're old, outdated or plain wrong / bad. elementary-tweaks was not maintained at all for a long time as well. And there are quite a bit customizability options out there hidden in dconf. That's what elementary- tweaks is a frontend to after all, basically.

I understand it's a bit frustrating to not see the customizability in a Linux distribution you're used to from others. You're not exactly the target audience for elementary OS and I'm sorry for that.

And to be honest, there's another spin to it: More customizability means more features maintained in the source code. And quite frankly, sometimes we're really short of developers (I'm not contributing anything at all currently as I'm kind of busy with my apprenticeship). If nobody is going to maintain a new feature, it's not going to be in the code because it will break one fine day and it's adding work to the "to-fix" list.

<comment><USER7> So who _is_ the target audience, if you don't mind my asking? Because from my perspective, I am someone who likes the idea of Linux and is not afraid to get his hands dirty, but at the same time is generally disappointed with most Linux distros insofar as their GUIs usually feel like an afterthought. So something with a nice frontend but the ability to nonetheless tinker and throw up a terminal when I need to sounds ideal. That is the attractive element of ElementaryOS, to me: an attractive frontend and a Linux backend. I could always go for Cinnamon Mint, I guess, but eOS certainly did seem to buck the trend as far as distros go.

The idea of the easy-to-use "just works" setup for the non-tinkerers, on the other hand, starts to resemble Apple; unfortunately, I don't think you can out-Apple Apple. That's their thing. The "stunning," almost condescendingly simple GUI that people "not good with computers" flock to. It's almost as though your target audience is my mother, or the people on whose behalf I will install this OS onto their aging desktop/laptop because they found re-learning Windows 8.1/10 too confusing.

<comment><USER8> To me eOS looks like glossy crap. But then i sit here writing this using a minimal XFCE on Gobolinux, so what do i know? ;)

</comment></comment></comment></comment></comment></comment><comment><USER9> I'm a fairly recent convert to Fedora from Arch, and I don't think I'll ever go to another distro as long as they keep up the good work. I even suggest Fedora to anyone who wants to try out Linux because Fedora is easy to install, doesn't come with a bunch of extra stuff you don't need, dnf is a great package manager, and the default software is the latest stable version. Perfect for people just coming on board, I think.

I just downloaded 23 and it worked like a charm. I'm not sure how much this upgrade affects me, but it is nice to see how nothing was lost (maybe it is my illusion, but programs seem to load a bit faster?). Good job to everyone who commits to this project.

While I wish Fedora was a rolling release, I'm happy that the upgrade was easy and didn't take very long.

<comment><USER10> > I'm a fairly recent convert to Fedora from Arch, and I don't think I'll ever > go to another distro...

as a fairly long time arch user, may you please describe areas where you find arch to be deficient w.r.t fedora ? i haven't tried using redhat for while, but when i did earlier, i just found rpm, and later yum, to be quite cumbersome to work with. thanks !

<comment><USER11> I'm also a long time arch user, who switched to fedora half a year ago. All in all both distributions are great, but one area where fedora has an edge is selinux support and delta updates. One area where arch has an edge is better font rendering using infinality-bundle by bohoomil.

</comment></comment></comment><comment><USER12> For those curious, here are the major changes that went into this release:

[https://fedoraproject.org/wiki/Releases/23/ChangeSet](https://fedoraproject.org/wiki/Releases/23/ChangeSet)

</comment><comment><USER13> I'm really impressed with Fedora 23. My only gripe is the horrific sub pixel rendering. I'm waiting for rpmfusion to come out so I can install an alternative font rendering engine.

It's also lacking netbeans in the repo which is kind of a hassle for me.

<comment><USER2> Actually, just adding this [1] config file and restarting is good enough.

[1] [https://www.reddit.com/r/Fedora/comments/3o6ijr/trying_fedor...](https://www.reddit.com/r/Fedora/comments/3o6ijr/trying_fedora_23_for_the_first_time_why_do_fonts/cvunl5w)

</comment></comment><comment><USER14> Have been bitten by docker upgrade from FC21 to FC22 and docker-fig upgrade on FC21 from fedora package. I have faced problem ranging from docker daemon refusing to start, failed to run container, and SELinux alarm ringing every now and then. Not the best developing experience.

Switched to Elementary(Ubuntu based distro) combined with docker repo now.

In my opinion, FC is more suited to lightweight work (email, word, spreadsheet).

</comment><comment><USER15> Can anyone comment on current status of using Fedora (or maybe even Linux in general) on sleep/suspend/hibernate? I remember the last time I tried it being a hit or miss and was painful to get working consistently.

For reference, I'm using Retina MacBook Pro Mid 2012 (10,1), but I was unsuccessful on my Dell Latitude E Series (the exact model escapes me at the moment) also and gave up.

<comment><USER16> Suspend works perfectly for me on Debian. I don't use hibernation (no reason to).

</comment></comment><comment><USER17> Apparently those using nvidia proprietary drivers should wait until nvidia supports X.org 1.18 (or downgrade X.org to 1.17).

<comment><USER18> Suppose I just want to use my Nvidia card in GPU mode (i.e. monitor only connected to Intel integrated video), does the X.org version still impact me? Or does the 'nvidia' proprietary driver somehow pull in Xorg dependencies even when not displaying anything?

</comment></comment><comment><USER19> Last time I tried Fedora I got stuck on installing the boot manager, probably because of secure boot. It worked fine on Ubuntu though.

</comment><comment><USER20> Is there a version with KDE desktop?

<comment><USER21> I've been using the KDE spin for a long time but this has me concerned - [https://lists.fedoraproject.org/pipermail/kde/2015-October/0...](https://lists.fedoraproject.org/pipermail/kde/2015-October/016315.html) especially what he has to say about F23 - "the Fedora 23 KDE Spin (which is now final or almost final) is easily the worst KDE Spin we have ever released:"

<comment><USER20> I feel his pain with packages. I'm running Debian 8.2 here, and the number of packages that Qt has been split into is just overwhelming. I ended up downloading Qt's official binary distribution. Now I know at least that I a) have all the bits and pieces, and b) where they are.

</comment></comment></comment><comment><USER22> Fedora = best distro.

<comment><USER23> Oops! You just replaced Fedora with Debian!

</comment></comment><comment><USER24> Wish they removed the backdoors this time.

<comment><USER25> Are you taking the piss, or do you have a reliable citation for the presence of backdoors in previous versions?

<comment><USER26> There's a handful of conspiracy theorists who think SELinux is an NSA backdoor. That's my only guess.

<comment><USER27> Of course it is, otherwise what incentive would NSA have to develop it in the first place? :)

Also, people who laugh at every conspiracy theory could use one or two good history books about 20th century to see how much conspiracies really DID HAPPEN in the past.

<comment><USER28> That some conspiracies happened in the past doesn't imply that all future conspiracies are true.

Personally I think the governments of the world are run by giant inflatable pink pigs and the media covers it all up.</comment></comment></comment></comment></comment>


The 7-Year Developer Crossroad - <AUTHOR> http://discuss.joelonsoftware.com/default.asp?joel.3.761345

<comment><USER3> The comment responses to this post are really depressing.

They seem to encourage the original poster to adopt a short-term, sycophantic perspective where she punts her desire to keep the code-base clean and maintainable in exchange for blindly following requirements and putting forward a good image. I know there are a certain class of people who recoil in instinctive disgust at the suggestion, even after being reasoned with and beaten down; I am one of them.

One of the posters even mentions the books that talk about this sort of thing, and then dismisses them as irrelevant to the true goals of management. Most of these books contain the wisdom of people who have seen many projects and products, and have a reasonable idea of what makes one successful from a technical stand-point. The reason they were written is because the authors saw enough projects fail when _not_ following the practices they suggest. It isn't just wishful thinking written by technically minded trolls.

Reading all these comments I am reminded of the first section of a book I read recently which helped me realize I wasn't alone. I believe I have mentioned it on here in a prior post; Uncle Bob's _Clean Code_. One of the most salient points he makes in the first chapter is that the quality of the code-base is the responsibility of the developers, because they are the _only_ ones who have the most concrete sense regarding the cost of bad code. In the long run, it will make everyone look completely incompetent, even if in the short-term things appear to be getting done at a very rapid rate. Eventually, your clients will care, your managers will care, and "I was just following orders" will not be an acceptable excuse because they were looking to you for intelligence and wisdom, not just units of work done without deep analysis.

</comment><comment><USER4> There are a couple of implicit fallacies in the follow up comments that bug me.

1\. Someone asked if the badly written code was really causing any problems, and then everyone thereafter seems to just take as an assumption that badly written code does not create any real problems. Well, badly written code often does cause performance problems and disguise bugs. I have inherited code bases where things were taking ridiculously long because the code was a convoluted and almost incomprehensible mess. Making it simpler and more comprehensible was a necessary prerequisite to make it operate at a reasonable speed.

2\. There seems to be an assumption that you can write code rapidly or comprehensible code, but not both. In my experience, programmers who write incomprehensible code are not more productive than the programmers who write comprehensible code, often the opposite. There is no polite way to say this, but incomprehensible code is more often the result of less knowledge or intelligence than it is the result of a desire to get a lot done. Furthermore, stopping to think before coding can often lead to much shorter development times than just diving in and typing the first thing that pops into your head.

When I have been in the role of technical person with non-technical management, my implicit approach is "evaluate me on what I produce and how quickly I produce it, but stay out of the code." If I am being hired because of my knowledge of how to make computers do what you want, evaluate me on that, and let me figure out the best route to get there.

</comment><comment><USER5> It's weird hearing people say not to focus on cleaning modules because they're a waste of precious resources. Down the road, the code is all you've got - <USER2> must keep it in as good a shape as you can. The more "technical debt" you acquire, the harder it's going to be 2 or 5 years from now to stay competitive. Hacks might sell version 1, they might even sell version 2 and 3, but come versions 4, 5 etc. it's going to be increasingly hard to add features and fix bugs without breaking the whole thing. I've been on two such projects in my short career and it wasn't fun. It's one thing to work with a complex codebase, and it's completely another to work with a badly mentained complex codebase - it sucks the pleasure of programming out of you.

As I've said - code is all you've got in the end, and if it's good, the shipped product will reflect that.

</comment><comment><USER6> to me, this person's rant comes across as whining more than anything else. it reminds me of the old quote about theory being the same as practice, but only in theory. being in a similar situation, i'd counsel her to recognize that being a professional developer involves much more than writing code. sure, we were taught to espouse the pursuit of code nirvana when first learning to program, but when tossed into the world of industry, that pursuit is quickly replaced by pragmatism and understanding that not doing something right doesn't necessarily mean you're doing it wrong... i'd keep going, but at this point i'd just be rehashing edw519's points... <http://news.ycombinator.com/item?id=669163>

<comment><USER3> _understanding that not doing something right doesn't necessarily mean you're doing it wrong_

But it might; that is the other half of pragmatism. Being pragmatic is not just a softer way of saying self-defeatist.

And don't be so dismissive of theory. To quote W. Edwards Deming: "Experience by itself teaches nothing...Without theory, experience has no meaning. Without theory, one has no questions to ask. Hence without theory there is no learning." Just doing what you discover is done in practice provides absolutely no room for improvement outside of rare flashes of intuitive brilliance. Theory is not just an abstract description of what has been observed concretely so far; by far the greater value lies in the ability for theory to predict what has a likelihood of being observed in the future. Having a theoretical basis to work off of will give those experiences context, and will give you the ability to do a much deeper analysis. And analysis, if the comments Sara received are any indicator for, is something we need to be doing a _lot_ more of.

<comment><USER6> _My strong point is that I communicate well with people, and I'm not afraid to take an issue up with someone -- be it colleague, manager, or client. I will take initiatives to get things done. And even if I'm going to do it just once, I'll get it done _RIGHT_. I am decent developer, but some people take issue with me because I'm not as fast as the hack... I mean other coders. ;) I've heard people remark that I could be a Project Manager, but too bad I feel they don't do anything but useless admin work. (And get in the Developers' way!)_

this paragraph smacks of "I do it right, everyone else does it wrong." my point was that the "right" way, as learned "in theory", is not necessarily so in practice (and in fact, often isn't when the theoretical right way involves spending client money that will add no value that is immediately noticeable to the client). i wasn't dismissing theory as useless--if you read my comment as tilting to that extreme, i probably wasn't clear enough. theory has its place, but if a dev goes through her career expecting her clients/bosses to agree that spending time refactoring so-so code (that works!) is worth $XXX/hr, it's no surprise she's getting frustrated. in my mind, her role as a developer is to apply sound theory as much as possible within the constraints of her job. when other people are signing her paycheck, she either does it their way or finds a new job (or applies to YC)--but complaining about it won't help her situation.

<comment><USER3> _when other people are signing her paycheck, she either does it their way or finds a new job_

If the people who hired her were thinking straight, they hired her for more than just her ability to write code to a strict specification under strict supervision. A number of developers are valuable far beyond their ability to make a computer do their bidding, and the employer who does not care does so at their own peril.

She may come off as a little overbearing, but I don't get the sense that she is unreasonably set in her ways. I get the sense that she's passionate about doing things right, and will take up issue when something doesn't make sense and push back until things do make sense. If you think these are the same, I'm afraid your model of developer behavior is flawed. Strong beliefs can be weakly held.

And it is possible that refactoring code that works is worth $XXX/hr. Consider the savings that might be accrued later on due to shorter bug-fix cycles, quicker feature releases, and less overall malaise of the development staff. Not everyone can be motivated by having their paycheck treated as a carrot on a stick. So the money might be very well spent.

<comment><USER6> eloquent strawmen aside, i don't disagree with your points. i just think that if the people who hired her thought the way you do, she wouldn't have posted in the first place. but, they don't, so she did.

</comment></comment></comment></comment></comment><comment><USER7> There's a chasm you have to cross to become "senior", whatever that means. One of the biggest skills you need to learn is not technical. That skill is understanding exactly how to apply our limited resources.

Should we worry about how well a certain module was written? Maybe, maybe not. Sometimes the answer really is, "It runs well and isn't hurting anything, so let's leave it alone. Opening up that can of worms dumps 47 new issues into our queue and now is not a good time to do that." Or the answer may be, "This has to be made right before we can add these 27 other things to the system or we'll all be in deep sh*t." How do you know which? Experience. Understanding the big picture. Understanding your customers and users. Understanding your dev team. You get the idea.

Taking on a lead role is not selling out if it's used to expand your horizons and make you an all-around better dev person. When you return to full time development, you'll be light years ahead of those who never had to manage the whole project. A little perspective goes a long way.

<comment><USER3> _How do you know which? Experience._

I wish I were learning it was even that easy. Maybe it is, and I'm just thinking about it too hard.

To borrow your analogy of the can of worms module, that it runs well but will become a bomb as soon as someone decides to rewire it fills me with a sense of deep dread. My mind immediately drifts to the scenario where something forces changes on that module, such as the server continuously crashing due to a latent schrodinbug that just surfaced, but in a time-frame where those 47 issues just can't be resolved. I've never been comfortable with the justification that "it works now, so just don't screw with it." It seems to just be begging for Murphy to make a fool of the person justifying a decision thusly.

I used the analogy of technical debt being called in a post a few months ago to describe this situation. Granted, my experience as a developer is still somewhat limited, but I have seen people with years of experience get completely hosed by deciding wrong; sometimes deciding wrong a lot. I've also seen people with just a couple of years of experience pick the way to go with decent accuracy. This makes me wonder if there is an intuition certain people have that experience hones, but that experience alone does not completely replace.

<comment><USER8> "To borrow your analogy of the can of worms module, that it runs well but will become a bomb as soon as someone decides to rewire it fills me with a sense of deep dread. My mind immediately drifts to the scenario where something forces changes on that module, such as the server continuously crashing due to a latent schrodinbug that just surfaced, but in a time-frame where those 47 issues just can't be resolved. I've never been comfortable with the justification that "it works now, so just don't screw with it." It seems to just be begging for Murphy to make a fool of the person justifying a decision thusly."

Yes, so you make that part of the decision. It's all contextual; you can fiddle with this hypothetical this way to make it 'yes', you can fiddle with it the other way to make it 'no', and both hypotheticals will be simplified to the point of irrelevance compared to any _real_ situation that may arise.

</comment></comment></comment><comment><USER9> "It's extremely frustrating to work with individuals and in scenarios such as these. [...]

My strong point is that I communicate well with people, and I'm not afraid to take an issue up with someone"

Reminds me of Office Space: "I've got good people skills, damn it!!!"</comment>


Senate passes bill that lets the government destroy private drones - <AUTHOR> https://www.msn.com/en-us/news/technology/senate-passes-bill-that-lets-the-government-destroy-private-drones/ar-BBNVjnb <comment><USER2> The EFF expressed concern over the bill, telling TechCrunch, "If lawmakers want to give the government the power to hack or destroy private drones, then Congress and the public should have the opportunity to debate how best to provide adequate oversight and limit those powers to protect our right to use drones for journalism, activism and recreation."</comment>


Nexus One Total Cost of Ownership (chart) - <AUTHOR> http://www.billshrink.com/blog/nexus-one-vs-iphone-droid-palm-pre-total-cost-of-ownership/

<comment><USER2> why couldn't you buy the unlocked phone and get the $60/mo t-mobile unlimited data plan for a TCO over 24mo of 24*60+579 == $2019?

[http://www.t-mobile.com/shop/plans/cell-phone-plans- detail.a...](http://www.t-mobile.com/shop/plans/cell-phone-plans- detail.aspx?tp=tb1&rateplan=Even-More-Plus-500-Talk-Text-Web)

<comment><USER3> More like $70 a month with tax, which the chart should have guesstimated. Also, the Nexus One is $529, not $579.

Also, T-Mobile offers 1000 minutes for a year for $100, with minutes that don't expire as long as you keep refilling in time. Since the phone has WiFi, and there are likely ways around text messaging, the prepaid option is like getting 333 minutes a month for $33.33 a month, 500 minutes a month for $50, or if you rarely use the phone, as affordable as 83 minutes a month for $8.33 a month.

You can get a good plan for $529 + $200 = $729 for 24 months, which represents out of pocket costs of $30 a month to have an internet-connected 1Ghz "mini- netbook" with you, that can also make and receive calls. Who needs those clunky, heavy $300-800 netbooks now?

I imagine Google Phones will become the new "netbooks", sold for $300-500 at Costco stores alongside actual netbooks, next Christmas.

<comment><USER4> Will T-Mobile let you do prepaid + $30/month for unlimited data? If so, that's an extremely compelling reason to switch.

<comment><USER5> If you can use the Sidekick data option ($1 per day of activation), then it might be doable. iPhone users can't use this option at the moment, I'm guessing Android phones are out as well.

</comment></comment></comment></comment><comment><USER6> No matter how they carve it up, I feel like a fool. It still comes to ~$1000 a year for a smart phone, this one or another.

It makes me think I should wait a couple of years for data plans to come down in price as voice and SMS plans have done so in the last few years then maybe I will come out far ahead. That way maybe I could save some serious money.

But it is a lovely device. :)

<comment><USER7> Actually, you're looking at a marginal $500-$700 a year if you already find a cell phone to be indispensable.

</comment></comment><comment><USER8> And not a single word devoted to the user experience - boggles the mind how geeks continue to ignore the most obvious, the most _important_ part of any consumer device, even after seeing the incredible rise of the iPhone.

<comment><USER9> Where is this negativity coming from?

No claim is made that the factors they lay out are the only important ones. I'm sure they assume many of the user experience differences are well- understood, and they are just laying out the costs.

<comment><USER8> What's the top 3/4 of the chart doing there if this is the case? The majority of the chart is pure spec-sheet comparison, and of little relevance if the purpose is a cost comparison.

<comment><USER10> It seems to be a feature comparison, which I think non-geeks would look for as well.

<comment><USER8> That's kind of my point - it's spec-sheet shopping... which consumers have proven to not really give a hoot about. The iPhone didn't take its swathe of market share because it had better specs (God knows it didn't), it won by user experience, something no spec sheet will ever reveal.

IMHO this sort of comparison is pointless - it appears on the surface to be relevant, but in our experience we have seen that consumers will base buying decisions on far more subjective parameters. It's really out of touch with what the general buying public looks for when buying such a device.

Take the battery life data for example: hand a phone shopper two smartphones and let them play with it. How much weight do you think he/she would place on a 250h vs. 300h standby time? Compared to how slick/snappy the UI is? Compared to how intuitively they can get around?

The focus on spec-sheet comparisons IMHO is missing the forest for the trees.

<comment><USER11> You want a real end-user comparison?

How do the facebook apps on each phone compare?

<comment><USER12> iPhone's is miles ahead, darling.

<comment><USER10> Whoa. A little familiar there.

I only have android--curious what additional features iPhone has for facebook?

<comment><USER12> There's another thread on this same topic about how a mere feature list doesn't capture the experience of using an app. It's faster and prettier, for one thing, it has a friends list that is browsable like the iPhone contacts app -- the Android friends list is just a flat list where you cannot jump from place to place easily, so if you want to scroll to z it's going to take a while. You can't handle requests or send Facebook messages with the Android app as far as I can tell, nor even read your inbox. But a mere list of features doesn't capture the entire difference.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> In Germany I can get a mobile flat for 15€/month (or even 10€ if I were willing to go to O2, I think). That would be slowed down after 1GB of traffic, but I think for the time being I would be fine with it. So the TCO numbers are really nonsense - why mix up the price of the phone with the individual whims of network operators? Besides, the network costs should be identical for all smartphones.

<comment><USER14> what would keep you from going to O2? network performance? i'm curious and have no idea how to compare the providers' networks.

<comment><USER13> Just my principles. I used to be their customer, but then they refused to exchange a faulty phone they gave me. If it weren't for that, I'd probably still choose them.

</comment></comment></comment><comment><USER15> One Mistake - the plan only has 500 minutes and costs $79.

Also, initial pricing not quite as straightforward as presented:

[http://www.google.com/support/android/bin/answer.py?hl=en...](http://www.google.com/support/android/bin/answer.py?hl=en&answer=171784)

ie, $179 only if you are a new customer switching to t-mobile.

</comment><comment><USER16> It would have been nice if they also included a _lowest_ price option, something like prepaid voice and data. Or maybe prepaid voice and unlimited data.

</comment><comment><USER17> Does the iPhone now include turn by turn navigation?

</comment><comment><USER16> Could you get the $40/month unlimited data only plan and then use Skype for calls?</comment>


Ask HN: How do you succeed in the workplace as an introvert? - <AUTHOR> I've been working for a few years, and I have a really hard time being around people all day. I can interact fine over IRC/Skype/etc., but in person interaction drains me.
This is really affecting my productivity and my mood. How do I get over it?
In grad school, there were days were I was alone in the lab, or working from home, which was nice.
But now I'm in the startup world, and work for a small (less than 50 employee) but successful startup. <comment><USER2> Something I learned from a friend with several years experience consulting at McKinsey (i.e., experience with a lot of companies) is that as you go higher up the corporate ladder, you surprisingly tend to find _more_ introverts. So see you a lot of places with, say, extroverted junior managers but an introverted CEO at the top.

So don't hold too dearly to the model that "I'm an introvert therefore I'm at a disadvantage in my career". Leverage your introvert skills by, e.g., analysing a topic in-depth and preparing your thoughts about it before a meeting. You might find the other participants are only debating at a shallow level and that you can steer the conversation towards your deeper insights.

Also, I believe that "introvert vs extrovert" is a false dichotomy. They are both skillsets that you can develop independently. Read this: [http://joshuaspodek.com/introversion-opposite- extroversion](http://joshuaspodek.com/introversion-opposite-extroversion)

</comment><comment><USER3> Have this conversation with your boss:

You: "I have a hard time being around people all day. I can interact fine over IRC/Skype/etc., but in-person interaction drains me. It affects my productivity."

Boss: "Would it help if you worked remotely, say, one day a week...?"

You: "Yes."

Boss: "Then do that. And get some headphones for the other days. Never mind, here, take mine."

If your boss doesn't follow this script, or one very close to it, then you might want to get a new boss. No, I'm serious. The very best managers don't care where or when or how you work; they care about your work. (And they also want to know they can reach you when they absolutely need to reach you. For, like, something important.)

</comment><comment><USER4> I consider myself an introvert, I am working from home right now instead of going into the office (15 minutes away). I am fine in small groups of people (2-5), but when there are more than 10 people in a room I am not very social and do not find it much fun.

I did outside sales for 10 years, which might sound contradictory to this, but in reality you only have to talk to people for about 2 hours a day. The rest of the time is spent in prep work, travel, learning your product (mine was technical). I liked that I could make a good living in 2 hours a day.

You could try starting your own business. My current setup is that I have 10 people on staff, and a very good COO to lead them all. She has joked that if we double our head count, that she could count on me to be at the office 50% of what I am now. Her prediction is that if we ever got to 50 people, then I would never come to the business at all. My contribution to my business is to do a lot of reading and thinking, and planning. I read about 2 hours a day, do another 2 hours of planning out solutions to various issues at work, and spend some time working on the website/e-marketing etc.

I would talk to your supervisor/CEO and ask if there is a way that you can work remotely for half the time or more. As a CEO myself, I am more interested in productivity than face time. Maybe your CEO is too.

</comment><comment><USER5> What I've done in _life_ as an introvert is learn how to stay inside my own mind even when I'm with people. There are lots of occasions where locationally you're with others but socially you're not required to really interact with them. Learn which ones these are, and you can recharge on the go.

Also, a lot of the time social interaction consists of things like making small talk and greeting other people. It's kind of fun to treat these little gestures as a game, making some kind of system of it and making them the conversational equivalent of muscle memory for yourself. What drains me is having to actively pay attention to the problem of interaction. It's a lot easier once you can do it without thinking.

</comment><comment><USER6> Hey..your work can help you succeed. A cliche' .. I know. But on serious note, you can share important articles, best practices. This need not be in person. But you could collate or email or use something crazy and simple as www.teamgum.com browser extension. It allows me to share, discuss & collaborate with the team.

Helping someone out in resolving work issue..is the best ice breaker. You can succeed for not just your work but contribution as a saviour in hour of need.

P.S. dont forget to order pizzas for your team to start a great conversation.

</comment><comment><USER7> I recommend you check out the book Search Inside Yourself, based on the course at Google: [http://www.amazon.com/s/?ie=UTF8&keywords=search+inside+your...](http://www.amazon.com/s/?ie=UTF8&keywords=search+inside+yourself&tag=googhydr-20&index=stripbooks&hvadid=29140662715&hvpos=1t1&hvexid=&hvnetw=g&hvrand=725238359729740723&hvpone=&hvptwo=&hvqmt=b&ref=pd_sl_3p7p0k1jet_b)

</comment><comment><USER8> I stick my earphones in and ignore the outside world while I'm getting work done. I also try and work from home when I can.

Try using your lunch breaks to go on a walk rather than sit and chat with your colleagues?

</comment><comment><USER9> Can you work from home a day or two per week? It works well for me when I'm doing creative work.

</comment><comment><USER10> You don't.</comment>


H-1B visa lottery changing to favor those with advanced degrees - <AUTHOR> https://www.sfchronicle.com/business/article/H-1B-visa-lottery-changing-to-favor-those-with-13574410.php <comment><USER2> [https://news.ycombinator.com/item?id=19041303](https://news.ycombinator.com/item?id=19041303)

220+ points</comment>


Some Emacs Key Combinations - Easy Reference - <AUTHOR> http://www.math.uh.edu/~bgb/emacs_keys.html <comment><USER2> Nice reference to have around but, when I started using emacs, going through the help and writing up _my own_ cheat sheet from it was one of the most useful things that I did!

</comment><comment><USER3> Cool, this is a good cheat sheet. I use Nano for command line editing these days.

</comment><comment><USER4> Thanks, this is pretty handy. I'm trying to learn emacs after using vim for 5 years. It's not easy going.

<comment><USER5> What prompted you to switch?

<comment><USER6> It might not be a switch -- sometimes you just want to try an alternative setup without having any particular problems with your current one.

</comment></comment></comment><comment><USER7> C-x 4 and C-x 5 are messed up imo

<comment><USER8> The command for split-windows-vertically, currently C-x 5 in this cheatsheet, should be C-x 3.

<comment><AUTHOR> Yes, C-x 5 is for acting on other frame.</comment></comment></comment>


Bob Hoover, Aviation Icon Whose Aerobatic Stunts Thrilled the World, Dies at 94 - <AUTHOR> http://www.nytimes.com/2016/10/26/us/bob-hoover-dead.html <comment><AUTHOR> Here's the video of him pouring tea while rolling the plane:

[https://m.youtube.com/watch?v=V9pvG_ZSnCc](https://m.youtube.com/watch?v=V9pvG_ZSnCc)</comment>


On Working with White People – Part One - <AUTHOR> https://terencemcghee.com/Articles/Social/2017/07/21/9D100A42BE6B22CEF42C2C2EE23C6E45.html <comment><USER2> It's fucking disappointing reading all the comments here. Why is the majority consensus discounting this article because of some street vernacular? I've read comments before on HN stating that the majority of the HN commenters are white people, and I've discounted those comments. But man. Seems like it's true. Ya'll getting uncomfortable with some street vernacular and invalidating the author's perspective.

The dude grew up in a poverty-stricken black community dealing with white communities, so of course he's going to have street vernacular in his writing. Of course he's going to write about his perspective of culture shock and interacting with white people. He grew up dealing with that shit. It just all makes sense. Dude's article is true to his character and upbringing. Nothing surprising but some street talk. Ya'll failing to understand black culture here when ya'll discounting his article because of a reference to Drake or some street talk. The fuck.

If ya'll just get over that uncomfortableness, ya'll can actually see a new perspective. "Wow. I've never seen 'uncomfortable' being used like that. Next time when I hear someone say they're uncomfortable, I'll dig deeper and ask what specifically makes them uncomfortable."

TLDR: majority of HN commenters are people who might be white that fail to become aware of social issues from a black person's perspective because dude used some street vernacular.

<comment><USER3> Street vernacular aside, my guess is the article would have been better received if the author weren't "one of the world's greatest software developers" who "paid a substantial price to achieve my high level of greatness".

It's that extreme arrogance coupled with calling all these coworkers bitches and hos that makes me "uncomfortable".

Also being broadly racist against white people isn't strengthening the message.

> "In a later post I will certainly discuss how White people have this extreme > need to identify with suffering."

Change the word "white" to "asian" or "women" in the post, and you get something that'll immediately get flagged and removed.

I think a lot of us here would love to read, discuss and dissect a post about the different working and social cultures that majority white people set up that lead to barriers for minorities.

But this post ain't it.

To quote the author:

> "Nawl muhfukka. You just don't like looking at yourself for what you really > are… a petty-minded ho with a fukked up perspective on life."

<comment><USER2> Your response exactly proves my point and show that you are not really trying to understand the author's perspective.

> "Street vernacular aside, my guess is the article would have been better > received if the author weren't "one of the world's greatest software > developers" who "paid a substantial price to achieve my high level of > greatness".

I agree. It's damn obvious that he's not the best programmer in the world. But man, he made it out of a poverty-stricken environment. Don't you think he's allow to brag? I think so. Him being arrogant still doesn't mean you should disregards his perspective.

> It's that extreme arrogance coupled with calling all these coworkers bitches > and hos that makes me "uncomfortable"."

Calling people bitches and hoes is definitely part of street vernacular in a poor black community. He had to adapt. I'm sure if he used proper english, he'd probably be called out for trying to be white. It's one of the vicious cycle that most black communities are trying to combat within their own communities. So yeah, he's gonna call people bitches and hoes.

> "Also being broadly racist against white people isn't strengthening the > message."

Again, you refuse to understand his perspective. He's black. He grew up in a poor black community and based on history, white communities haven't really been nice to them. So yeah, dealing with "white" is a big social issue for him. He tells you this at the beginning of his post.

All I'm saying is why is everyone disregarding this guy's perspective just because he used street vernacular that's consistent with his upbringing and character? Why is his perspective less than any one else? Sure he called some people bitches and hoes. Sure he has an ego almost as big as Kanye. It still doesn't discredit his point.

I mean, have you never experience what he pointed out about 'uncomfortable'? I have definitely experience what he's saying. I have even used the same excuse as well in the past. I've seen colleagues use the same excuse. He's not wrong.

It's just fucking disappointing that everyone here is so privilege that they can't even conceive his perspective.

<comment><USER4> Just to be clear: do you want to read more or less texts where it is ok to call people bitches and hoes?

<comment><AUTHOR> Why? Is it making you uncomfortable?

<comment><USER4> No. And as for my question "do you want more of it"? While we are at it, [https://en.wikipedia.org/wiki/Alive:_The_Story_of_the_Andes_...](https://en.wikipedia.org/wiki/Alive:_The_Story_of_the_Andes_Survivors) should we advocate for restaurants that cater to people who had to resort to cannibalism to survive extreme situations?

Or is cannibalism something you want less of, not more?

</comment></comment></comment></comment></comment></comment><comment><USER5> I have no problem with him writing about what he assumes to be biased or racist behavior he's encountered. But the racist stereotyping and generalization he indulges in is baseless and drains his entire piece of credibility. It has no place on HN or in any sort of discourse.

<comment><USER6> My therapist used to say "If you throw a rock into a pack of dogs, the one that yelps is probably the one you hit."

When criticisms from an oppressed underclass comes in, there is usually some polite and politically correct reason to dismiss them. In many cases, if the oppressed could somehow magically find the right words to say it "appropriately," it still would not be acceptable because the truth in such situations is very often that the real problem is criticizing the status quo, not the manner in which those criticisms were framed.

Or, to use the terminology of this post, it makes people _uncomfortable_ and they play _the comfortable card._ Because the comfort of privileged peoples matter. The discomfort of the oppressed never does, no matter how much real and genuine suffering is involved for the oppressed compared to the minor annoyances the privileged group can't tolerate for themselves.

<comment><USER2> What an eloquent explanation. 100% agreed.

</comment></comment></comment><comment><USER3> > "Do you think that Deb had to list valid reasons why the organization > shouldn't make the hire?"

> "This dumb bitch just didn't wanna have to say it."

> "This ho did all sorts of shit to try and make sure that "her man and this > new bitch" didn't spend any time together."

Maybe because the hire thinks of people as dumb bitches and hos, sees every interaction through a racial lens, and can't seem to go a paragraph without cursing.

Or maybe I'm racist. It's probably that.

<comment><USER7> >sees every interaction through a racial lens

As opposed to all those non-racial interactions you have as a minority in the workplace, or life in general? It's easy to suggest that there exists this social state where race isn't important and everyone is equal, but the material reality, of peoples preconceptions and sub/conscious assumptions is different. As a minority, your experiences are defined and informed by your race - how are you meant to have interactions without a racial aspect?

<comment><USER8> I don't remember where I heard it, but it went along the lines of

>As a black dude, racism can make you crazy. You have a white guy walk in the room, and he says hello to everyone, but not to you. Did he just not see you cause you were kinda tucked in the corner, or is he racist? The girl at the coffee shop shoots you a funky look, is it because she's racist, or did she just have something in her eye? Maybe your haircut is just weird. It adds up, day after day after day, it makes you crazy.

<comment><USER3> I've got some experience being an immediately visible minority, and once you start to go down the "because she's racist" rabbit hole, there are no brakes.

There's a ton of negative interactions that we all experience in any given week. If you start seeing every interaction through a racial lens, it does indeed make you crazy.

You go from "she's having a bad day so the way she treated me is about her" to "she's racist so the way she treated me is about me".

<comment><USER9> > If you start seeing every interaction through a racial lens, it does indeed > make you crazy.

This usually happens when you "start" interact with the world with a racial black skin color.

</comment></comment></comment></comment></comment><comment><USER10> I just might be oblivious, as a middle eastern immigrant, but how is this not a racist piece ? Am I missing something ?

<comment><USER11> Racism is more than just calling out race in a specific dynamic:

 _... "racism" is defined not only in terms of individual prejudice, but also in terms of a power structure which protects the interests of the dominant culture and actively discriminates against ethnic minorities._[0]

[0] [https://en.wikipedia.org/wiki/Racism#Popular_usage](https://en.wikipedia.org/wiki/Racism#Popular_usage)

<comment><USER12> > Racism is more than just calling out race in a specific dynamic

This is a _very_ hotly contested point (one on which there is no clear consensus on the Left and utter rejection ofnthe idea on the Right.)

The "power structure" concept of racism was, historically, a deliberate invention to invalidate the specific idea that black people (the racial group of interest in the context in which the concept was developed) could be racist; it's deeply problematic because _the mere adoption of it as a popular viewpoint_ alters the power structure, creates (or enhances an existing) context in which people in groups perceived to be disadvantaged in a broader context are privileges for that reason, and thus ends up negating its own basic purpose and making itself irrelevant.

It's much more useful to view the specific power dynamics applicable to a particular case as a factor in the significance and impact of racism than to take more generalized power dynamics as an factor in deciding whether there is racism.

</comment></comment></comment><comment><USER13> I am white and I am often weirded out by the "uncomfortable" thing too. Fun read.

<comment><USER14> I am white and I've never heard anyone argue on the basis of "I'm uncomfortable with this [person|choice]". They at least try to weasel around and present faux arguments.

Could be because I'm from Germany. Is this an American thing, or maybe just something that's not happening at my workplace?

<comment><USER13> I am German too. From my experience Germans are much more direct than the US.

</comment></comment></comment><comment><USER9> > had a very odd combination of thug background mixed with highly valuable > software development abilities

This is my experience, too. And it is very good to read this here. Great article, thanks for the writer and the one who brought it here. We are a minority in tech compared to women but it is difficult to not think that HN is as racists as the article describes when you see articles like "Women in Tech" getting a whole day into the #1 and this one flagged with a lot of racists comments that aren't flagged.

</comment><comment><USER15> I keep my statement about Drake. However. It was a good read. This shit is true. I can picture this exact shit happening in my old work team if a dude with some thug tendencies walked in. People would be uncomfortable.

<comment><USER3> Yup, generally speaking professional environments and thug tendencies don't mix well. That's because thug tendencies put people on edge instead of letting them concentrate on the work.

I don't bring much of my personality into my relationships with clients either. It's one thing to expose the human side a bit when starting conversations. It's another thing to fly blindly down the aggressive and self- aggrandizing tunnel of "Keepin It 100 For All My Real Software Ninjas".

To quote the author:

> "In case you're an ignorant muhfukka and can't grasp the significance of > this or can't see what's so bad about it, then pay attention you bastard."

<comment><USER16> It sounds like one of his friends didn't get hired so he went on a rant confusing corporate culture with all white people.

</comment></comment></comment><comment><USER17> This whole post just makes me cringe. Anyone who has to say they're an amazing engineer that many times is probably over compensating for something.

<comment><USER6> Or maybe he is saying it because no one else will because that would make them uncomfortable to admit that someone with such a foul mouth and the wrong skin color actually has mad skillz.

</comment></comment><comment><USER18> Isn't the "uncomfortable" thing something he and others can learn to use to their benefit?

That's my takeaway. Can't wait to flex this new privilege, tell my manager meeting with users/stakeholders makes me uncomfortable.

Like, instead of being negative about it, he could have said "Hey everybody, check it out, all you have to do is say something's making you uncomfortable and everyone caters to you".

</comment><comment><USER19> On Working with Black People: It was cool. We all got shit done together.

</comment><comment><USER20> He lost me the moment he claimed to be the greatest software developer in the world. Anytime someone brags, I very much want to see them forced to admit they aren't.

</comment><comment><USER21> Damn, this article reminds me why I've loved working with Black people :)

</comment><comment><USER22> I'm black-Latino and this was cringey as fuck to read

</comment><comment><USER23> Incredibly low quality piece of writing. Is this an indicator of the direction of hn? I won't stick around. Aside, I'm white and went to boarding school in Africa - does the author think I should write a blog post explaining black people?

<comment><USER24> No, I don't think you should write a blog post, that is possibly what the author is hoping you will do. Then they can use it to claim you're being insensitive to important racial issues, etc. It's a trap.

</comment></comment><comment><USER25> garbage

</comment><comment><USER15> If you quotin Drake in the first few paragraphs, I'm done.

<comment><USER8> Done as in not wanting to read the rest? How come?

<comment><USER26> So many spelling/grammatical errors too. It was difficult to parse.

<comment><USER8> Really? You must have a keener eye than me, I only saw swear words misspelled, which I believe is on purpose.

<comment><USER8> Why downvotes? I just ran a spell checker on the post, there are literally no spelling errors. There are, however, non-standard words that you may not find in a scientific publication, but you will _certainly_ find in common discourse, and the spelling of all of these is _perfectly consistent_.

Stuff like "ya boi," "fukk," "nawl," "ho," and "skillz" are words we can find millions of examples spelled exactly like that. They are not mispellings, they are members of the English language that may or may not have been captured yet in some dictionary we all happen to point to and agree is "right."</comment></comment></comment></comment></comment>


Remembering Names - The Real Secret - <AUTHOR> http://www.alearningaday.com/2011/11/remembering-names-real-secret.html

<comment><USER2> Sorry, this is bull. I can remember a lot of things _about_ someone, things they did or said (even verbatim) and still not remember their name. Caring about a person is not the same as remembering their name.</comment>


How to make Chrome understand the SASS/SCSS in your rails app - <AUTHOR> http://fonicmonkey.net/2013/03/25/native-sass-scss-source-map-support-in-chrome-and-rails/

<comment><USER2> From the top comment (to save the scroll-conservative 30 seconds of doubt and confusion):

\----

Michael Laccetti says:

Just a quick note that the 'Experiments' tab under the developer console will not show up unless you specifically enable it under chrome://flags (Enable Developer Tools experiments)

</comment><comment><USER3> I'm fairly certain this doesn't work with current versions of Chrome. The experimental support for the -sass-debug-info that this method uses was removed in favor of real sourcemaps landing in sass version 3.3.0.

You can try using the alpha release of sass 3.3.0 to get real sourcemaps but I haven't had any luck getting it to work with rails. It also will not work with compass 0.13.alpha, you have to downgrade to 0.12.2.

<comment><USER4> It's solid on the Chrome stable and beta channels, but possibly not on Canary. I'd hope they'll wait until sass 3.3 is released before removing the debug- info support from more stable channels.

</comment></comment><comment><USER5> I'm trying to make it work with Assets Pipeline and Compass with no luck. Any ideas?

<comment><USER6> There were a few things I noticed:

\- You need to be using 'sass-rails', not 'sass', in your Gemfile for config.sass to work. Don't put it in the :assets group, either.

\- You must set config.sass.compress = false (or rather, you must not set it to true!)

\- You'll probably need to blow away your assets cache (tmp/cache/assets/* or public/assets/*) to see the changes.

I just got it working with a Rails app at work, and I am pleased with the results. Chrome Web Inspector continues to make my life easier!

<comment><USER5> Thank you for help. With all of that, I'm still getting no result.

Second line of CSS/SCSS reference appears but it's like ..:4 and points to no file.

Screenshot: <http://i.imgur.com/4EJBBjd.png>

<comment><USER7> I had the exact same issue. What fixed it for me was what the parent said of adding this line, too:

config.sass.compress = false

Clear you cached assets, restart your server and reload the page. That should hopefully fix it for you.</comment></comment></comment></comment>


The Voder – Bell Labs (1939) - <AUTHOR> https://www.youtube.com/watch?v=5hyI_dM5cGo

<comment><AUTHOR> Demonstration of the first electronic speech synthesizer.

Included in this demo:

1\. The voders capability to say words with expression.

2\. Voice pitch changes.

3\. The voder singing.

4\. Speaking foreign languages.

5\. Reciting the alphabet.

</comment><comment><USER2> You can see it sort-of in use at the start of this AT&T commercial:

[https://www.youtube.com/watch?v=IEp6ca9Ppks](https://www.youtube.com/watch?v=IEp6ca9Ppks)

<comment><AUTHOR> For a much shorter video demonstration of the first part:

[https://www.youtube.com/watch?v=0rAyrmm7vv0](https://www.youtube.com/watch?v=0rAyrmm7vv0)</comment></comment>


Great collection of jQuery plugins, including a 3d carousel effect - <AUTHOR> http://www.professorcloud.com/mainsite/index.htm

<comment><USER2> Lens flare plug-in?

Do we really need this?</comment>