Ask HN: Do you understand your operating system? - <AUTHOR>

Dear HN readers,
this is something that bugs me for quite some time, therefore I decided to ask around:
Do you feel like you understand your OS?  Have you really have acquired the feeling of trust and mastering its (inner) complexities?  And, most obvious: do you care about this?
This question affects free OSes a lot more than proprietary ones, obviously, so if you care, it'd be great to hear from your experienced feelings corresponding to the OS you use or used, as well as the depth your technical understanding had to reach in order to gain the experience of 'groking it'.
I hope that's not too vague, maybe it helps to tell you that this question popped into my mind when I thought about switching from GNU/Linux to *BSD once again, this time hoping to leave some mysteries behind. <comment><USER2> It's hard to say what it is to "understand" an operating system, though. Knowing how it works in a fairly broad sense, or even knowing how specific parts of the kernel work doesn't mean you completely grok the system.

I mean, understand in the broad sense of "stuff all OSes do": certainly. I realize that there is memory management and etc. and etc. that is going on, and I have a basic idea of how that works, at least on Windows. (I use Windows, Linux, and Mac regularly, and can reach each from where I'm sitting.)

I have a decent enough understanding of Windows system internals and how it actually handles memory allocation, permissions, etc., but not down to the lowest level, just sort of a vague idea of what system files do what.

I assume Linux and OSX handle things somewhat similarly aside from implementation details, but I don't really know.

I haven't had the time to poke around Linux kernel internals (I have a pretty good understanding of the system down to that level, though), and I doubt I'll ever mess with OSX internals beyond what is necessary to have it 'just work'.

I figure I will master what I need to get things to do what I want. I find it fascinating, and at some point I'll probably have a project which requires me to hack on the Linux kernel in some way, shape, or form (unless someone else already has). In the meantime, though, I remain knowledgeably ignorant (I know that I do not know), which I think will have to do for now.

BIOS-level stuff and all of that is black magic to me. :P

It's hard to say what is and isn't necessary just from a development standpoint. From a curiosity standpoint, assuming unlimited time, complete knowledge of a system is better than limited knowledge. From a practical standpoint, such knowledge may make you a 'better' coder, but it may also tie you more to one OS rather than another. It cuts both ways there, though, because it could be that by understanding what does and doesn't change from one system to another, writing portable code is much easier.

So do I care that I don't know? Yes. Do I think it's the end of the world and must be remedied immediately? No. I will have plenty of opportunity to remedy my desire to know more about OS internals if I ever take on a project that requires me to know them exceptionally well. At some point that will inevitably happen, considering my interest in them. In the meantime, I'm content to know that I do not know and that in an ideal future, someday I will know.

</comment><comment><USER3> I thought I knew FreeBSD until I joined a couple of the lists and realised that I've hardly scratched the surface. It used to bother me that I didn't know. These days, I can accept it, and enjoy my occasional dip into the unknown when I need to change something.

<comment><USER4>
      These days, I can accept it

And one day, you buy a Mac. Trust me. You want to.

</comment></comment><comment><USER5> There is at least one cognitive bias involved when answering this questions. The less you know about something, the simpler you believe it to be. I'd expect Torvalds to say he has a "fair" understanding of linux.

</comment><comment><USER6> Or, at an even lower level... do you understand your hardware? Not just disk space and memory, as most programmers need to know those... But do you know how the keyboard works? USB? How the processor receives/manages all the signals?

I did know all this, 10 years ago... I haven't kept up with newer systems, but even that basic understanding helps in many subtle ways.

<comment><USER7> Slightly as an aside but one source of amusement for me is programmers or sysadmins who cant tell you the difference between a serial and parallel comms link (beyond the obvious) and how one might work.

"Explain how a USB keyboard interacts with a computer" is one of my favourite interview questions at the moment. A surprising number of people can't tell you an in depth answer and you either hear:

\- it's serial err no idea beyond that

\- serial connection, I guess.. <creative attempt at answer>

\- random bullshit about bits and serial (they can waffle for hours)

Really good for seeing them come up with creative solutions. Couple it with a whiteboard and work through the electronics with them and you can have a great interview.

(I started to do the whiteboard thing after one interviewee asked for a pen/paper to try and sketch out what he was thinking)

<comment><USER8> Do the sysadmins and programmers you are interviewing need to understand the innards of a USB keyboard as part of their job function? If it's not part of their job description, then I am not surprised at all.

<comment><USER7> nope, and their answer is fairly irrelevant.

If they have the balls to say "no idea, why do I need to know" that is someone we like. If they say that and then attempt to work out an answer extra bonus points. If they stumble they get no set back - it is a random question. If they bullshit they are marked down a fair way - not the kind of person we want.

(we design it to be a question you have to actively fuck up to be marked down on)

We sit and work through an answer together and you get a real insight into them outside their area of expertise (where you would expect them to be slick)

</comment></comment></comment></comment><comment><USER9> There are some things I understand. I've written parts of Unix/Linux virtual memory, network stacks, process management, threads, interrupt handlers, synchronization primitives, TTY line disciplines, various kinds of device drivers. I've debugged parts of block I/O systems, file systems, NFS client and server, CPU schedulers. I feel like I understand those.

There are things I don't understand. I don't know the I/O architecture of a PC nor how the OS integrates with the BIOS. I don't know how the subdirectories of linux/drivers/ are organized, even at the first level. I've never designed a filesystem, and suspect there are subtleties I don't appreciate.

I never bought Bill Gates' testimony during US vs Microsoft that an operating system includes its web browser. In my arrogant opinion, an OS starts and ends with the kernel. So the next question is, how much do I understand about the rest of the platform? It varies.

I do know how the X11 protocol works, how the classic X server worked, how Xt intrinsics work. Do understand the classic Unix utilities and libc and their modern GNU reimplementations.

Don't know how an RDBMS works inside. Haven't kept up to date with compiler optimizations. Don't know how debug info is stored in object file and executables or even exactly what it is. Don't have any idea how that huge pile of libraries in GNOME (or KDE) is organized. Have only a vague idea of how the current X server is organized.

Even though the last (and first) time I implemented a page fault handler was 1986, I feel like I understand what they have to do, why, and what data structures they need. I'm sure the specifics are very different in any of today's OSes than they were in 4.3BSD, but I don't think that matters. OTOH, I think most of my graphics knowledge is obsolete.

So, in sum, I partly understand my OS. (-:

</comment><comment><USER10> You miss something the author's talked about and it's the transition from GNU/Linux to _BSD

I assume he/she wants to have a more understandable OS; and because the _BSD's excel at that area, I guess she/he's referring to the _BSD's.

Windows --> Great but I still cannot understand some of its peculiarities such as unexpected crashes, sudden explorer.exe restarts.

MAC OS --> Great but I still cannot understand just why its USB connection speeds are interestingly low or why it has such an inadequate Unicode support for different FileSystems like NTFS.

Linux --> All great, but I cannot figure out why there are so many different package managers out there?

As for _BSD, because it's structure is so well-founded there's nothing which is not understandable. Everything's got its place where you'd expect them: Ports collection under /usr/ports, and package manager is just the pkg_add command. There are no window-manager or desktop-environments pre-loaded and configured, you just chose what to do. And the kernel structure is extremely simple: You can add extra functionality to kernel easily with the Loadable Kernel Module (KLM) concept. That's it, everthing's under control.

</comment><comment><USER11> I'm currently working on a block device driver, which means I'm digging around in kernels. I've found the O'Reilly books on the Linux kernel (" _Understanding the Linux Kernel_ , 3rd ed" and " _Linux Device Drivers_ , 3rd ed") as well as " _Mac OS X Internals_ " by Amit Singh extremely helpful. The latter doesn't only cover the darwin/xnu kernel but also a lot of the OS X user space. All of them are quite technical and can be a bit dry, but they're certainly densely packed with information - and you can safely skip/skim most sections if you like. _Linux Device Drivers_ is probably only useful if you're actually trying to write a kernel driver, I can recommend the others for general interest as well, though.

I've also got _Windows Internals_ from MS Press, but I've only looked at it briefly so far. It seems higher-level than even the OSX book.

In general, I've found it extremely interesting to see how it all fits together, but I've got a general soft-spot for low-level hackery. (until recently that mainly involved game consoles)

</comment><comment><USER12> I care and I think I pretty much get what's going on under the hood of my Linux boxes as they seldom surprises me. OTOH, it's a complex system, with stack upon stack of hardware, firmware and software that makes really groking it (as I did with my Apple IIs in the early 80's) next to impossible. Even before the OS loads, an x86 PC is a very complicated animal.

As for the Windows notebook I am typing this in, it never ceases to amaze me and surprise me in almost always frustrating ways. It's indeed a box full of magic, but I am not sure its genies always work for me rather than against me.

I have tried a couple times to move to FreeBSD, but I always got frustrated with, what I perceived, a purist view of what a Unix machine should be - clean, simple and somewhat bare. I kind of like the magical things that happen in Linux, particularly package management. I utterly dislike the way it handles wireless networking, but I guess this is a feature nobody got right.

</comment><comment><USER13> I do understand my OS, but it's probably better to not think about it. Knowing too much about UNIX leads you to want to throw it away and write something sane... but that is time consuming. Better to close your eyes and not think about the details.

</comment><comment><USER7> Windows: yes Linux: pretty much (90%) Mac: nope

When I started my current job in computer forensics and security it shocked me how much I didnt know. There is a LOT of stuff going on in the internals that is pretty smart.

Believe me: you have no idea how bloody complicated a discussion of the Windows file system (a fairly simple high level subject right? :P) can become when you put a couple of forensic guys in a room :)

EDIT: I like a lot of the ways the Linux device/file system is organised. It makes a little more logical sense (though it might just be that it is more accessible) than windows.

</comment><comment><USER14> Getting there with a little help from my friends: <http://inst.eecs.berkeley.edu/~cs162/sp10/>

</comment><comment><USER15> I've got a pretty indepth knowledge of every OS I've used for any length of time. My first instinct with all things is to unscrew the lid and find out what makes it tick and for me, operating systems practically beg to be tinkered with,

</comment><comment><USER16> I knew Windows inside and out, used it from 3.1 and could do just about anything I wanted to do and fix just about any issue. 3 years ago I moved to Mac OS and I am still working on getting myself to the same place.

</comment><comment><USER17> Windows: never tried to Linux: I know quite a bit but the important thing is that I know that I will understand everything I don't know. Learn by experience.

</comment><comment><USER18> I don't at all, but I reall wish I did. The more experienced I get as a web developer the more the low level stuff matters to me.

</comment><comment><USER19> i run mac os x. no i don't understand its internals. i got it cuz it "just works"!</comment>


Ask HN: Site idea for project matching - <AUTHOR>

I think it would be useful to have some sort of HN-centric site contains a database of users, interests, and skill sets.  The purpose would be to connect people interested in working on projects together.
For instance, I'd be interested in jumping in on any projects that are oriented towards finance or motorcycles.  I have some useful relationships in both fields and pay close attention to any posts on HN on those topics.  However, I sometimes go a few days without checking the site and I may miss some valuable material or worse even - a chance to connect with someone that has the same interests.
If there was a database out there, I could go quickly search it.  See who else has overlapping interests, maybe read their HN username to get an idea about the person, and reach out to them if we have something in common.
Does this strike a chord with anyone else?  Or does this idea exist in the wild somewhere that I am not aware of?  It seems fairly simple to build and I'd be happy to help out with css/html or basic php if anyone else is interested in slapping something together.. I'd do it myself but my coding isn't quite there yet.. <comment><USER2> HN user fsav and I have created a site to connect hackers interesting in working on small projects together -- <http://clusterify.com>. Check out some of the projects posted, and let us know what you think of the site.</comment>


'Sell me this pen:' The real answer to The Wolf of Wall Street's challenge - <AUTHOR> http://m.theglobeandmail.com/report-on-business/international-business/sell-me-this-pen-the-real-answer-to-the-wolf-of-wall-streets-challenge/article17946810/?service=mobile <comment><USER2> It sounded a lot to me like SPIN selling. A quick wikipedia search turned up Solution Selling (from the makers of SPIN selling). [http://en.wikipedia.org/wiki/Solution_selling](http://en.wikipedia.org/wiki/Solution_selling)

In all seriousness, while I found the book to be a really hard read, the tactics described are highly effective, not just in sales, but also in thinking about solutions that you're building. In hindsight it seems like common sense stuff, but is truly the wisdom of sages.

</comment><comment><USER3> >> _Most average or newbie salespeople think that they're supposed to sell you the pen, when a really seasoned salesperson will actually turn it into a qualifying session to find out what you need. That's the truth of it. It's like trying to sell someone a house and you don't know if they're in the market for a house, what kind of house they want, how many kids – so how can you sell someone a house? That's the point._

Probably the best distillation of customer development I have heard in one sentence.

Every sales pitch is a qualifying session. If you listen well enough your customer might just tell you something you want to hear...

<comment><USER4> That's funny. I was recently relating a story to my parents about my (past) experiences with online dating. I basically summarized it as "your first task is not to convince someone to go out with you, it's to determine if you're talking to a bot or not." And that's basically it, figure out if you're even talking to the right kind of person for what you're selling.

</comment></comment><comment><USER5> Arent these guys the wolves of Wall Street?

I was expecting the right answer to be for the salesman to take the pen from Belfort, sell it to someone in the audience, have that person sell it to someone else, and then the salesman turns to Belfort and says... I can get you a good deal on this pen right now before it reaches market cap but we have to move quickly.

Though I still think it's a shame because I wanted to see the movie but wasnt willing to sit through it because of how grotesquely inappropriate I heard it was.

*Oh wait, maybe market cap is the wrong term. Lol.</comment>


Windows 95 UI Design - <AUTHOR> https://twitter.com/tuomassalo/status/978717292023500805 <comment><USER2> A generation was raised on usable designs which clearly communicated interactability with a consistent visual language. It is only natural that they would come to think of computers as inherently ordered, understandable devices. Machines had always been this way.

It was obvious to this new generation that the affordances of youth were purely redundant. Clutter. Overhead. Junk! Widget by widget, pixel by pixel, bevels were smoothed. Tasteful gradients and transparency replaced harsh outlines. Explanatory text was tucked away. Manuals became brochures, then a lonely slip of paper with a URL. Maybe a QR code.

Now my screen is the very picture of elegance and sophistication. There are no extraneous details. Indeed, there are no details. I caress my phone's surface gently, hoping to see a sliver of its rapturous visage peel back, hinting that I have found the first step in the puzzle box of its interaction model.

Alas, no dice. Maybe I can hunt down a how-to video... to show me how to hunt down a video...

<comment><USER3> Compounding this frustration (on iOS at least) is stuff like "force touch" and hidden toolbars. Depending on how hard you press a button you might get a totally different UI interaction.

Are others good at knowing exactly how many newtons of force it takes to follow a hyperlink instead of triggering this horrid mini-preview window? Maybe that's why Jonny Ive made millions of dollars while I work like a stiff for a living.

Want to open a new tab in mobile Safari while on a webpage? Oh I must tap the invisible button bar at the bottom. So obvious.

I just wish Apple et al. didn't force these choices on us, that we could disable silliness like force touch and hidden toolbars. But alas one cannot.

<comment><USER4> Force touch is the best evidence we have that designers have lost their power at Apple.

The best thing Steve Jobs did was hire serious designers and defend their ideas against the rest of the organization. That's clearly not happening anymore.

My guess is that "Designer at Apple" became such a desirable title that the design roles have been taken over by wannabees.

<comment><USER5> Force Touch is on its way out. Has been for about two generations of iPhone. There's now Haptic Touch which is nothing but a long-press with better feedback.

<comment><USER6> It has the same problem: invisible, undiscoverable UI driven by seemingly random gestures. Who cares if you long press or press harder? You still can't tell it's an option unless you try it on everything.

<comment><USER7> So exactly like right clicking on items to see if a contextual menu pops up in Windows 95?

<comment><USER8> It's easy to discover when there are only two buttons on your mouse. If it had one and pressing strongly did something else, you'd be right.

<comment><USER7> It's just as easy to press harder "force touch" as it is to right click.

Sorry, but the Windows 95 user interface had the exact same discoverability issue.

<comment><USER9> Opening a Context menu was never a destructive action though, so you could click that other button on your mouse all day without risk. You have to be taught that a context menu exists once, but it's safe & consistent from then on

<comment><USER7> Force touching an item to see if there is a contextual menu isn't a destructive action.

That doesn't change the fact that neither interface gives you a way to know in advance which items have associated contextual menus.

<comment><USER10> But if you "hard-press" a button that doesn't support hard-pressing, won't it just detect a normal press? Depending on what the button is, that might be destructive or at the very least time-consuming.

<comment><USER7> Newbie Windows 95 users would quite frequently hide the entire start bar because they accidentally moved the mouse while trying to click on an item, and the system interpreted that as a drag intended to resize the start bar to a zero height.

At that point they could no longer use their computer at all until they got external help.

<comment><USER11> You still see a small bar even with "zero" height.

<comment><USER5> Which was of absolutely zero use to them now as it remains today; they don't understand what happened.

<comment><USER11> There is a different cursor when you hover it. At some point you can't help people anymore.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> > _The ellipsis hints that this button opens a dialog, instead of immediately > executing an action._

That's not exactly what the ellipsis is intended to communicate.

Have you ever wondered why File/Open... has the ellipsis, but in a properly designed app, Help/About does _not_ have it? Even though Help/About opens a dialog too?

The distinction is that the ellipsis indicates that a command will take some action after further user input. The user input may be anything like text entry, selecting from a list, or just a Yes/No or OK/Cancel confirmation. But the key point is that the command will _do_ something after that user input (unless the user cancels).

An About box should not take any action or cause any change to the state of your document or system. It's just information displayed that the user can dismiss with the OK button or close icon. So it doesn't get the ellipsis.

<comment><USER13> According to Apple HIG plain confirmations did not require an ellipsis:

"Don't use an ellipsis character if the command displays an alert box to warn the user of a potentially dangerous action, especially if the command displays an alert box only sometimes. In this case you are simply giving the user an opportunity to cancel a potentially dangerous action (such as causing a loss of data), not asking for more information."

<comment><USER12> Oops, thank you for the correction!

So the ellipsis is only when the user must actually enter or select some information, not if it's just a simple confirmation.

The Windows 95 guidelines seem a bit less clear about this, but I think they follow the same idea.

</comment></comment></comment><comment><USER14> The Windows 95 UI was inspired by NextStep. See [https://en.wikipedia.org/wiki/NeXTSTEP#/media/File:NeXTSTEP_...](https://en.wikipedia.org/wiki/NeXTSTEP#/media/File:NeXTSTEP_desktop.png)

Before Windows 95 was released there was CTL3D.DLL which gave a NextStep-like look & feel to Windows 3.1. See this image for the improvement made by CTL3D.DLL: [http://www.win3x.org/screens/15nvtbm.gif](http://www.win3x.org/screens/15nvtbm.gif)

<comment><USER15> Wow - does this bring back some memories.

I remember when CTL3D.dll was all the rage.

Good times.

To think we used to worry about VB programs needing a separate runtime to distribute them and Delphi programs, while stand-alone, took up almost 200KB for a minimal app!

<comment><USER16> Ah, THREED.VBX, good times indeed.

<comment><USER17> Hahah, yes! I was obsessed with THREED.VBX, but because I was learning C at the time ended up writing a whole library of Windows custom-drawn controls that looked exactly the same. I guess it was only later that I learned there was nothing special about VBX libraries and that you could (with some boilerplate) make them work from C.

Kids nowadays have it so easy with their Electrons and QTs...

</comment></comment></comment></comment><comment><USER18> Here is something else: The interface was "responsive". And I don't mean the responsive designs we have today for HTML but that when you click a button, you get a "response" very fast from the monitor.

Now, with these new interfaces and stuff, most of them are so lag-y that you can notice them with your eyes. It's very frustrating.

I tried Bisq a couple days ago. The application was apparently made with Electron and HTML/JS. First, it used around 4.1Gb of memory. The interface was not responsive and then it crushed.

I'm using a 16Gb/i7 2018 MacBook Pro and there is lags for most of the buttons in the Finder application.

<comment><USER19> > but that when you click a button, you get a "response" very fast from the > monitor.

This was important enough back then that some of the UI was implemented in kernel mode on NT-class operating systems, specifically in order to preserve that responsiveness. AIUI, Win9x did not have a complete user-mode/supervisor- mode distinction, but the UI code was written on a very low level and tightly coupled with the OS itself, for similar reasons.

</comment></comment><comment><USER20> Back then you also could create your own theme. You could set the colors for text, backround, buttons etc. and every App did respect and use it. Today you can choose dark or light mode and almost no App does respect it, instead they bring there own colors and options.

<comment><USER21> I've been a theme creator for a few decades now, and modifying how programs looked is what got me into development in the first place 30 years ago. The constant stripping of user definable visuals in modern computing is a legitimately depressing thing for me to see happen. It's just another step along the "you don't own the device or the software, we're just letting you borrow it" path.

The constant push with SAAS and cloud-based data and all the rest, just makes me think we're heading back towards a terminal/mainframe environment and soon we'll be "consuming" the Internet in the same way we consume interactive Cable TV.

<comment><USER22> agreed man, have fond memories of tweaking themes for daily drivers like irc client, winamp foobar2000, compared to like spotify or discord now feels so neutered and limited in terms of customizing appearance.

<comment><USER21> Yeah and everything now is so disjointed. It shits me. Eg not only can't you customise Spotify or Discord visually, but they don't even respect the OS controls. You can't resize them properly to fit windows 10 tiling, the menus are a broken mess, etc.

They insist on doing everything themselves and ignoring all standards which just ends up looking ugly and broken.

One of my main passions in theming is making your entire system look cohesively styled. Hell, I'd rather have standard Windows look but every program using the system UI so at least it all looks the same. I despise Spotify, Discord, and all Electron apps for this reason. They look so amateurish.

<comment><USER23> Same here. And it's not just theming. Windows has always had a lot of small, lesser-known conventions around UI elements, some accessibility features, and a way for additional software to hook up to the UI. None of that is respected when an application decides to draw its own UI on a canvas.

</comment></comment></comment></comment></comment><comment><USER24> I forgot how nice it was to have underlined alt keyboard shortcuts. We got so much right so early in the age of personal computing. Goodbye to all that, hello Ribbon and flatness everywhere.

It's as if we're in the Middle Ages now looking back at the great ruins of ancient Athens.

<comment><USER25> The ribbon is actually a good interface, for me at least, much more pleasant to use than toolbars.

The flatness and whitespace everywhere though, that can die in a fire.

<comment><USER26> But toolbars are essentially the same thing except they don't waste space, are moveable, resizable, typically customizable, and can be hidden.

<comment><USER27> Pretty sure having every toolbar open at once would use more space.

Ribbon is dynamic to your current task, using a table? Table tab is available.

<comment><USER28> > _Ribbon is dynamic to your current task, using a table? Table tab is > available._

So were toolbars in Microsoft Office were similarly dynamic.

<comment><USER29> Toolbars were not keyboard accessible, and usually unlabeled. The ribbon is a huge improvement.

<comment><USER30> Toolbars came with explanations that popped up if you hovered.

They also were primarily shortcuts as everything could be reached using the menus anyway.

<comment><USER31> Ribbon has explanations that popup if you hover

Ribbon contains everything that is available in the menus, and is collapsible. Ribbon also supports keyboard accelerators

<comment><USER30> They also swosh around.

They also aren't predictable.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER32> The old desktop approach had some cool things. List views tended to support common operations, e.g. sorting, drag-and-drop, multiselection, common ways to do renames and type-ahead-find. Tree views had some standardization, too. Crowded menus/toolbars could be ugly, but you could discover a lot of functionality going through them. Right-click tended to expose a set of verbs.

These things often exist now or have an analog (e.g. long press is right-click in mobile UI), but not everywhere and not always done the same way. Mobile has some inconsistency; the Web has a good bit.

The modern has plenty of its own UI/UX things--URLs and the Back button for the win, dev tools/view source are awesome, and certain cool things can come from services not living entirely on your device. Something like hiding clutter at the cost of discoverability is a _win_ for many people.

Still think it's interesting to compare and think about what can be usefully brought forward from the past.

<comment><USER33> 25 years later, we still don't have good, standardized, robust Ui controls for browsers.

Why is there no HTML tag for creating menu bar and nested dropdown menu?

Instead we have to search through thousands of libraries or plugins with mixed bag of accessibility.

Just that control alone will probably save companies globally billions of dollars in wasted labor searching, building, and maintaining.

<comment><USER34> > Why is there no HTML tag for creating menu bar and nested dropdown menu?

because HTML was never designed to be a application interface, and I don't see a menu-bar nor dropdown as necessary for a document display.

What's needed for the web is a common and standarized (i.e., browser provided) library for application UI that's distinct from the existing HTML markup. They should not mix, and if you have a document (rather than a web-app), you use HTML, but if you intend to write an application UI, you would use that library.

I forsee something like WASM compiled QT or some such to be the beginnings of such an api.

<comment><USER35> Just like XHTML was supposed to be, oh well.

I think WASM will bring "Flash" back, just in a different form, and now everyone will be happy because it is standard.

<comment><USER34> flash was only bad due to the inherent vulnerabilities and capabilities that browsers werent expected to have (such as being able to write to disk directly).

WASM can be sandboxed properly, unlike flash.

<comment><USER35> So much that you can easily compile Heartbleed into WASM, great sandboxing.

</comment></comment></comment></comment></comment></comment><comment><USER36> Sadly , this is a theme with tech, it progresses in cycles. FB replaces forums which replace yahoo which replace newsgroups. In terms of ideas, there is very few that wasn't there in the 90s, (infinite scrolling maybe; afforded by increased RAM - i can't think of others). Since CPU performance has stangated, the last few cycles of generic computing have focused on design. That's the main selling point now, and you see that in the proliferation of UX jobs and attempts to squeeze the last drops of user engagement with things such as 'onboarding' etc. Design has become inane, of course, it completely ignores human capacities such as contour-perception, response time, consistency, but it doesn't matter, because the game has changed: it's now about how you capture the user faster and then lock her in. Wasting their time trying to figure out the app is now a positive sign: "the user is engaged".

</comment><comment><USER37> I used to play with VB5 and VB6, the RAD process was better than any of today's separated backend/frontend antd CSS-layout scaffolding data binding frameworks bullshit.

The best part of the unified UI controls is you can use tools like Spy++ to discover programs on the fly. Today's Internet there are thousands of web frameworks and you need thousands of source mapping or else it's an ocean of minified gibberish.

<comment><USER38> Serious question: if it was so much better, why is it gone now?

<comment><USER39> I started my professional programming career in the Windows 3.x days. Some things that come to mind:

* The web solved the software distribution problem. There were some pretty good tools for building GUI apps in the 90s but the tools for getting software to the customer _sucked_. Complex installers, no autoupdates, "DLL hell" incompatibilities.

* There never really were any great tools for building cross-platform GUIs. You built for Windows on x86, that was it. Widgets were shipped as binary COM components. Now you need to be on multiple OSes, multiple hardware architectures, and multiple form factors. VB wasn't going to give you that.

* Formatting text sucked. Actually, formatting in general sucked - the RAD GUI builders built awesome fixed-size dialogs, but now screens vary from watch-sized to wall-sized. Embedded HTML components really made layout easier... and once you start putting things in HTML, it tends to take over.

* All those pretty 3d effects in Win 95 UIs? Those were a _bitch_ to get right. Hours of trial and error drawing extra lines of black and white and grey pixels. It looked good but it was a lot of effort that would have been better spent building real features.

<comment><USER40> Cross-platform is more of an excuse than a reason. The idea is always that you write an app once, and it magically works on Windows and Mac and phones, and toaster ovens.

Except that never actually works, for anything but the lowest common denominator trash apps. Unfortunately people are convinced that this is something that should be pursued; the only real result is lowering the bar across the board and eroding compliance with long-established platform UX guidelines.

</comment></comment></comment></comment><comment><USER41> The following link has been posted here before but is an excellent dive into the 95 UI for those looking for more to read:

Designing Windows 95's User Interface (2018)

[https://socket3.wordpress.com/2018/02/03/designing- windows-9...](https://socket3.wordpress.com/2018/02/03/designing- windows-95s-user-interface/)

</comment><comment><USER42> I see a lot of designers who are very creative but are creating artwork instead of interaction designs.

The problem is: it sells.

Customer wants a website, designer makes a peace of art, customer thinks it looks amazing, contracts are signed.

The the trouble starts when it is getting build.

Real texts are much longer than designed, the available pictures don't fit as good as the hand picked stock pictures, and the interaction.. well it all looked great on paper.

I believe it's dumb to get contracts this way because the project always delays because the client doesn't get what works.

It's better to sell customers a moodboard and then design interaction as the project moves along.

</comment><comment><USER43> Writing a post about usability design as a Twitter thread is horribly ironic.

</comment><comment><USER33> Even to this date, there is something oddly satisfying about clicking those buttons. It feels like I'm operating a machine and actually getting things done.

<comment><USER44> The startup I worked for in 2012 went with some skeuomorphic design elements like lit / unlit LEDs and I loved it then and still love it now.

[https://dribbble.com/shots/573197-Hal-90](https://dribbble.com/shots/573197-Hal-90)

</comment></comment><comment><USER45> I think about windows 95 at least once a month, wondering why the web apps I work on still can't match it in terms of performance and usability, never mind resource utilization.

One thing that has been a staple since win95 days is the ability to resize windows, sidebars, columns; almost everything, really. Rarely is this found on the web today, or so poorly implemented that it's thrashing the UI thread when one or more resize callbacks are triggered. Even without that, layout + painting alone would probably lose the race against 95 UI tech.

Another "legacy" UI that stood out to me is blender. It looks decades old (until it was revamped recently), is probably a hodgepodge of C/C++ but stays smooth as everything can be resized even on dated hardware.

I can't help but think that the UI engineers of old were a much more professional bunch, and that the field has mostly regressed since then.

</comment><comment><USER46> Windows 95 followed an extremely standardised approach to design. This allowed for incredible ease of use, but people get tired of standards and want to set themselves apart...

This is not always good for UX, but new and different GUI's are an inevitable progression from homogeneous ecosystems like; Windows 95, Bootstrap, Material...

People just want to be different from the standard

</comment><comment><USER47> All I can add to this is my experience with my daughter and the switch from iOS 6 to iOS 7. Our iPad was about a year old and I decided to upgrade to ios7. She was 3 and we would take her on walks and she'd hold her iPad and watch shows (bad parents I know). Anyways with iOS 7 she got so frustrated because she could figure out how to watch her favorite show (play button was nearly impossible to see and they started including shows that you need to be online to watch but with no clear indicator). She threw the iPad an amazing distance with unreal strength. I wished it was more obvious for her as ios6 a 3 year old could master...

</comment><comment><USER48> I use Windows 98 quite often and it's sad how crappy modern UIs have become and how we just got used to it.. really feels like a huge step backwards and it only gets worse

</comment><comment><USER49> Hey, at least Win95 UI wasn't based on Electron. I'd prefer this UI if it meant Win95's snappyness. (most of the time :)

<comment><USER50> Heck, the whole of Windows 95 has a smaller install size than any Electron app ...

</comment></comment><comment><USER51> Windows 2000 was the best... please bring it back (without the new tracking ideas, of course).

<comment><USER52> 64bit XP in classic UI mode was purty good as well. My Mate desktop is still not as good but one of the closest modern options.

</comment></comment><comment><USER53> Windows 95 had an obvious UI, but was rather cluttered.

The original Macintosh up through System 7 was perhaps peak of OS UI design, the simplicity and obviousness is a marvel. The modern Mac experience is no where near that simple, particularly since the Yosemite UI overhaul.

The original iPad had pretty great UI design too, until the iOS 7 redesign. Now I think it's probably the most confusing UI that exists on a modern OS. Nothing is obvious. Multitasking and copy/paste on iPad is befuddling to even the smartest and most technical people I know.

UI design that was perfected 30+ years ago has been completely shelved and lost by designers who are designing for other designers and their portfolios, rather than for users.

<comment><USER54> > "The original Macintosh up through System 7 was perhaps peak of OS UI > design, the simplicity and obviousness is a marvel."

I first used System 7 after having used DOS, Windows 3.1, and Windows 95 and a bit of SunOS. With that background, I found System 7 and the silly hardware limitations to be anything but intuitive.

To this day I find it annoying to have to go all the way to to top of the monitor to get to a menu. Arguably that was less of a pain on the tiny screen of a Mac SE, but becomes real where than one app is open in a way that the windowed app feature is used in a meaningful way.

An example of silly hardware limitations includes substituting an eject button on the floppy drive for dragging it to the trash. The same action used to delete files or folders is used to regain possession of my precious files.

The single button on a mouse to make it simple sounds nice, but then there are modifiers using command - giving the same functionality a windows user would expect from a right click.

<comment><USER55> > An example of silly hardware limitations includes substituting an eject > button on the floppy drive for dragging it to the trash. The same action > used to delete files or folders is used to regain possession of my precious > files.

1000x this. I remember using a Mac for the first time at school (1997-ish). I needed to put a file on a floppy, which was similar enough to Windows 95 up to ejecting the floppy. I ran my finger over the drive area and asked someone (a teacher, maybe), who said 'drag the floppy to the trash'. 'I want to eject it, not delete it!' I did it anyway (if it got deleted, just copy it again), and was surprised that it worked. I made another mental note that PCs were superior with their physical eject buttons, as I realized that a Mac could eat a floppy (like a stereo eating a cassette tape) if the drive (or OS or mouse) failed.

</comment></comment></comment><comment><USER56> It looks a bit ugly but it is very functional and straight to the point. Needed just a little visual touch to account for modern monitors. Instead we have fucking light gray text on white background, window borders/title area that are indistinguishable from the rest accompanied by great hunting game of: find an interactive element on on a screen

<comment><USER57> It doesn't look ugly to me. It looks better than most modern interfaces.

</comment></comment><comment><USER58> My two favorite things to hate about the windows UI: white on white text entry fields have been difficult to find since win 7 and have been held over into win10. Now the scroll bars are white on white and you have to hover your mouse cursor over the invisible scrolling square button to reveal where it is in order to see how far along in the scroll you are instead of referring at a glance. What were they thinking?

</comment><comment><USER59> I still make windows desktop software in my day job and a lot of these things are still there. Like ellipses for elements launching dialog. I also think resizable windows etc are still displaying a draggable corner as a hint?

All of this is pretty natural - so long as you design native desktop software using native controls.

</comment><comment><USER60> "Flat UI" is the bane of my existence.

</comment><comment><USER61> As a certified MSDE in the late 90s, I cringed frequently in the early 2000s as design guideline after guideline was violated and landed by the wayside. There was so much thought put into every element, and guidelines of placement down to the pixels. And you were tested on all of it to get/retain certification.

As others have said, targeting multiple resolutions and dpis, and supporting reactive/resizable canvases, has driven most of those guidelines to the curb. A different era.

</comment><comment><USER62> There's a React component library based on the Windows 95 UI: [https://react95.github.io/React95](https://react95.github.io/React95) [https://github.com/arturbien/React95](https://github.com/arturbien/React95)

</comment><comment><USER63> I still use Win98 daily for gaming and love it, fight me.

<comment><USER64> The last patch for Win98 was in 2013. I really hope you don't put that thing on the internet.

<comment><USER65> Who cares? If it is just for gaming, then if it gets infected it isn't going to compromise anything important.

<comment><USER64> The most common infection is the one where they turn your computer into a node of a botnet. From there it can consume your bandwidth, launch attacks on other people, or be used to distribute files, such as child porn.

Do you want to be implicated in a child porn ring, and have the evidence sitting right on your computer?

<comment><USER65> Chances are said Win98 box is off when not in use, and it is very unlikely that there is much of that kind of malware targeting Win98 anyway since it has a nigh-0% install base. What does actually run on it is probably going to be noticed because it's probably running on period hardware and the resource usage will not be nearly so negligible as it is today.

</comment></comment></comment></comment></comment><comment><USER66> I appreciate this analysis and agree with some of the points, although I have to add: for any interface that I use daily (such as a file management system), I prefer the modern version — flat design and all.

I don't want heavy borders to show that something can be resized (just show me a different cursor when I hover), or column titles styled like buttons, or an always-visible scrollbar (I rarely need to know a "vague" measurement of files in a folder). To me, this just makes an interface more confusing.

Although I've been spoiled by Mac over the last few years, so maybe this argument is more about Windows.

</comment><comment><USER67> The big innovations in Windows 95 UI were the Start Button and the Task Bar. Both were excellent additions proven most evidently by their continuing presence in Windows 10 today.

</comment><comment><USER68> Win 95 made me buy a PC, basically. I owned macs (from 7.5 to 9.2) but 95 made me buy a PC and start enjoying another kind of computing.

</comment><comment><USER69> > _The ellipsis hints that this button opens a dialog, instead of immediately > executing an action._

Can't believe I never noticed this.

</comment><comment><USER70> UI is different on the web and mobile devices but if you fire up the Win 10 file explorer, almost all of the items shown are still there or arguably better. Maybe resize (which you can now do from any window edge) is a little more finicky.

<comment><USER71> The most annoying thing about Windows 10 is how it makes _clear_ improvements in some areas, but then decides to be utterly brain dead in other areas. The task manager is hugely improved. The file explorer is better. The copy/move file dialog is far more useful. But then they abandon the Control Panel and give us this flat UI abomination that doesn't even support one of the original ideas that made Windows 95 such a hit: Multitasking. You literally can't have multiple copies of Settings open to modify different parts of the settings at the same time. I can't quickly open a new window to check something while keeping my focus on one main task ... as in, multitask. I'm forced to break my flow and traverse back/forward through a bunch of nested settings instead of letting me alt-tab between what I'm actually interested in. It's terrible and infuriating and I have no idea how this got released in this state.

And that's before even considering how incredibly wasteful it is with space. I hate myself and wonder where my life went wrong every time I have to open a Settings window on a device that doesn't have full HD or higher, because it usually results in copious amounts of scrolling for information that could be _easily_ displayed in 1/4th of the space. Hell, and you can forget about using it non-maximized, because then the "advanced" links on the right side disappear to wherever, because fuck showing you what you need at a glance.

And they _keep changing_ how you reach the actually sane, usable and functional Control Panel windows (like the sound devices settings) and alternate between making it easier and ridiculously obtuse. It makes me want to bash my head against things really, really hard.

<comment><USER72> I share so your frustration with Windows 10. It's reaching iOS levels of lack of discoverability of features.

I wrote to tell you that Control Panel itself still exists. You can get to it from using the hidden search in Start Menu. Open Start and begin typing Control Panel and it will show up eventually. Or you can right-click on Start button and select it. Or even type "control panel" in command prompt or powershell, without quotes. Apparently it shows up in File Explorer under Desktop as well, which makes the least sense of all to my intuition. Hope that helps.

<comment><USER71> Yes, I know it still exists. But they keep making you jump through hoops. There were major versions of W10 where the start menu search _didn 't_ list the Control Panel if you searched for it. Right-clicking the sound icon in the tray now directs you to the new Metro Settings, and they also keep changing how to reach the traditional Sound Control Panel.

Apparently, searching for sound now lists the old panel too, so at least there's that.

</comment></comment></comment></comment><comment><USER73> Here's some anti-UX I observed from Uber:

[https://twitter.com/bdcravens/status/1197220786156834817](https://twitter.com/bdcravens/status/1197220786156834817)

</comment><comment><USER74> Many people probably didn't notice that Microsoft Office at that time used custom controls and was a little off from this design.

The design was very nice, but a bit over complicated. Things looked like a control panel, which maybe makes us feel like pilots, but intimidates most users. The open dialog is a good example. Drop down elements, lists, directory list, label for selected directory. Later iterations fixed this and nowadays apps try to avoid selecting files altogether if possible. Overall, design has improved a lot since then, maybe except for the touch additions.

</comment><comment><USER75> old windows CUA allowed any ui interaction to be done with the keyboard. it was really well thought out

</comment><comment><USER76> it was easier to explain over the phone too. EXP: Click Start > Control Panel > Sound > Playback Tab > Right Click the Speakers > Set as default audio device. Grandma can hear her youtube videos again while i'm still at the beach.

</comment><comment><USER77> That Active Desktop with pointcast ActiveX control though...

</comment><comment><USER78> If you still want this kind of UI you can have it with a Gnome or KDE linux desktop.

<comment><USER79> I'd recommend LXDE or XFCE for this kind of desktop. With this theme, you can even make XFCE look just like Windows 95.

[https://github.com/grassmunk/Chicago95](https://github.com/grassmunk/Chicago95)

<comment><USER19> I'd like to see a KDE1/GNOME1/FVWM version of this. Something that could be packaged in a Linux distribution and be accessible out of the box.

<comment><USER79> There's a theme for Gnome 2/Mate that looks quite extensive. Pretty niche market these days I guess.

[https://www.gnome-look.org/p/1012363/](https://www.gnome-look.org/p/1012363/)

</comment></comment></comment></comment><comment><USER80> will a new OS come with W95 design ever? I would love that

<comment><USER81> ReactOS 1.0 perhaps.

<comment><USER82> You don't need to wait, the current version is pretty close, if not better.

</comment></comment></comment><comment><USER83> very true

</comment><comment><USER84> Looks like my entire wardrobe is coming back in style. About damn time!

</comment><comment><USER85> back before UI was designed by committee and guided by feedback from brain- dead iPhone users.

</comment><comment><USER86> . . .and then there was the BSODomy. . .

Less cheekily, I recall joy of not needing to look to the bottom for more commands and tabs.

First encounter with that paradigm was iTunes. It took me a week to realize that half the functionality was in the nether reaches of the screen. I felt I was the butt of some joke.

<comment><USER87> Idk, back then I had worse luck with Macs crashing on me than Windows.

</comment></comment><comment><USER88> I think, much of the recent developments in UI design (and its conceptual space) is owed to display technology. Modern displays have different contrast ratios from CRTs. Generally, fine details used to look softer on CRTs. So, when flat displays were introduced, bevels didn't look right, Apple got rid of realistic icons (formerly introduced in OS X), etc. On the other hand, extensive regions of flat color where always a bit of a problem on CRTs (too bright, maybe there were some artefacts from some interference – who remembers the stripes caused by a cell phone placed next to a CRT?), but rendered impressively on flat screens. Meaning, the old UIs didn't work like they used to be on the new technology, while the new displays provided for a few things which had always been a bit problematic on the old ones. Enter double resolution displays and the necessity to render the same content on varying resolutions. Flat design and parametric scaling seems to be the answer. However, there's now a limited range of ways to add unobtrusive visual clues and of compartmentalisation/grouping as compared to the old visual vocabulary. Moreover, with the old vocabulary, a single element could have multiple visual clues attached to it (e.g., a bevel indicated a button, the icon and its color a task and a category, an underline in the associated text a shortcut key, etc), while now a single element can have just a single clue added to it for the most. Reduced visual complexity, as necessitated by the display technology, also meant reduced conceptual complexity.

<comment><USER89> Not sure about that. I personally found Windows 95 (or XP/Windows 7 in classic mode) looked great on flat screens - better than on CRTs actually.

<comment><USER88> This is actually true for Win 95 / classic Win UI. (However, you may want to reconsider the bevels, since the graphics tend to be a bit too heavy on a flat screen.)

P.S.: Many (including them myself) consider Snow Leopard (OS X 10.6.x) as the epitome of a UI, which matched usability, conceptual space and visual design next to perfection considering the visual and stylistic preferences of the time. That said, I can also see, even if I do not appreciate the road taken specifically, why this wasn't sustainable with high resolution displays.

<comment><USER19> > However, you may want to reconsider the bevels, since the graphics tend to > be a bit too heavy on a flat screen.

They looked "heavy" on pixelated, low-res flat screens (lacking the natural Gaussian blur that a CRT gives you) but it's not like there was an alternative back then. OTOH nowadays, with resolutions, DPIs etc. varying so much, pixel perfect design is not the sensible choice that it was back then.

Flat design is just a bad choice, though. You can have softened bevels/3d effects in a modern design such as Adwaita in GNOME/Linux, and that looks quite good - perhaps the best feasible iteration on a Windows 95-like design, all things considered.

<comment><USER88> Mind that in the mid 1990s color CRTs still tended to be quite blurry, if it wasn't a Trinitron display. (E.g., dithered colors were next to indiscernible from solid colors, especially on larger RGB displays.) Also, pixels used to be much bigger (starting at 72 dpi, eventually tending towards 96 dpi with intermediary steps on multisync displays). With this kind of resolution on a flat screen, the UIs do not look how they used to look on a CRT.

> Flat design is just a bad choice, though. You can have softened bevels/3d > effects in a modern design (…)

I agree. However, I can see why we ended where we are now. Also, it's cheap (as compared to having to maintain various resources and various color definitions for various resolutions) …</comment></comment></comment></comment></comment>


In 1959, Edward Teller warned the oil industry about global warming - <AUTHOR> https://www.theguardian.com/environment/climate-consensus-97-per-cent/2018/jan/01/on-its-hundredth-birthday-in-1959-edward-teller-warned-the-oil-industry-about-global-warming <comment><USER2> At the time of course Teller was trying to get the nuclear industry out of the slump it was in rather than save the planet. And it didn't help that he was "wrong" in his numbers, we have already passed the additional 10% of CO2 (360 ppm) in the atmosphere and New York is not submerged, and Greenland and pole ice caps are not melted.

So I wonder a bit about what the Guardian is trying to tell us here. That we should have listened 100 years ago to Teller and taken action? How about to Pauling and his vitamins, or Toffler and his "future shock", or Erlich's "Population Bomb"?

All of these topics have the potential to be huge things and deserve the research funding they received but looking back 100 years and picking out one that was closer to the truth than the others isn't really helpful unless your advocating more funding for basic scientific research.

<comment><USER3> You wrote: "it didn't help that he was "wrong" in his numbers"

That is a misreading of the text.

He said: "Our planet will get a little warmer. It is hard to say whether it will be 2 degrees Fahrenheit or only one or 5."

The change in the instrumental temperature record from 1959 to now is about 1C, or 1.8F - well within his range of 1-5F.

He also said "there is a possibility that the icecaps will start melting and the level of the oceans will begin to rise". He did not, as you summarize it, say that Greenland and the polar ice caps will have melted.

We believe the ice caps have started to melt, and the oceans begun to rise.

This is within the range of his estimate.

It's possible to calculate what the sea level rise might be if the ice melted. However, he did not give a time frame for what that would happen.

You wrote "we should have listened 100 years ago to Teller and taken action".

This event was in 1959, which is only 59 years ago. The "100" is because the talk was on the centennial of the American oil industry.

100 years ago would be closer Arrhenius's original research on the topic, from 1896, than it would be to Teller's talk. [https://en.wikipedia.org/wiki/Svante_Arrhenius#Greenhouse_ef...](https://en.wikipedia.org/wiki/Svante_Arrhenius#Greenhouse_effect)

<comment><USER4> You picked 2 unimportant points he made and totally ignored what he was trying to say.

The point was that many people said many different things that didn't happen at all, it makes no sense to pick one that guessed it right 59 years later.

<comment><USER3> My complete answer is in several parts, based on the different threads which existed before I started.

This part of the thread was to focus on the incorrect reading by ChuckMcM.

I followed up on the "what [ChuckMcM] was trying to say" (I assume the 'he' refers to ChuckMcM and not Teller) at [https://news.ycombinator.com/item?id=16048733](https://news.ycombinator.com/item?id=16048733) , which was posted about 5 minutes before you posted your criticism.

I do not believe that a single wall of text would be a better way to get my points across.

</comment></comment></comment></comment><comment><USER5> This is from when I was a kid; Dr. Frank Baxter, Unchained Goddess, 1958, I saw it in the 1960s [https://www.youtube.com/watch?v=m-AXBbuDxRY](https://www.youtube.com/watch?v=m-AXBbuDxRY)

<comment><USER5> I mean, if kids were being told about this, why such a surprise that the oil companies were being warned?

</comment></comment><comment><USER6> Maybe euthanizing the oil industrial complex with cheap nuclear energy would have been a good plan. After it was gone- we could have started over.</comment>


De-Optimized Content - <AUTHOR> https://medium.com/lou-reeds-nephew/b167366c7e17

<comment><USER2> I thought this was going to be about all the sites on Tumblr that read like the copy was finalized on a napkin, make you hunt for tiny navigation arrows, and yet end up being full of some pretty cool stuff that shows up in Google results.

Edit: It's still kind of a cool idea anyway. I recently contacted a guy about his Perl-driven site to ask him how the plumbing worked, just because it looked like it was still going strong based on code that was written in 1995 and maintained to this day. There's something cool and comforting about seeing sites that aren't powered by Node or Wintersmith or some other zippy new thing --especially if they have become really popular for some reason or another.

</comment><comment><USER3> I am sorry, but what is the message here?

<comment><USER4> Don't employ hipsters to do your SEO

</comment></comment><comment><USER5> Satire or not, this is really not worth anybody's time. Move along folks.

<comment><USER6> Insightful!

</comment></comment><comment><USER7> What is the significance of Lou Reed?

<comment><USER8> Proto-hipster?

</comment></comment><comment><USER9> So stuffing sex-related words into the keywords tag is the SEO equivalent of drinking PBR?

</comment><comment><USER10> Satire, I think. Sadly, the idea that SEO has killed the art of artsy headline writing is pretty prevalent in the media industry, in which traditional j-school courses have classes devoted to copy-writing/headlines, and in which "Headless body found in topless bar" is the gold standard.

That is a pretty good headline, and one that doesn't need to be optimized (unless the body belonged to someone relatively famous), or the stripper bar was owned by a city councilmember. But the point of SEO is to make content accessible in the long-tail...A headline celebrating the home team finally winning the Super Bowl, "YES! FINALLY!", has some poetic power but its impact is in its _context and display_...that is, 160-pt font across the top with huge celebratory photos.

But "YES! FINALLY!" doesn't tell you anything about the story when viewed a week later in a search engine or archive results. It's strange that newspapers, which pride themselves on being the official recordkeepers of history, often have such a dim view of the importance of SEO...which really, when done with non-black-hat intentions, is _reader-optimized_ text.

Edit: one more point...many news editors who hate on SEO still seem to be unaware that you can do a SEO headline in the meta tags while preserving the pithy headline for he we page display...so it's not even really a dilemma between art and business, just technical ignorance.

<comment><USER6> > But the point of SEO is to make content accessible in the long-tail

It shouldn't be the job of editors to second guess search engines. A search engine that doesn't give you my article about the home team winning the superbowl because I titled it "YES! FINALLY!" is a poor search engine (all other things being equal).

The point is that content is _compromised_ by the all-too-widespread practice of making sure our content is accessible to machines first, and humans second.

If the home team win the superbowl, I want to say "YES! FINALLY!" without fear of losing audience.

In today's internet, I have to say "Home team win Superbowl 2013 sports news football usa teams stats"

<comment><USER10> You can do both, of course, with the use of metatags.

But that point aside, it _is_ the editor's job to second guess things, as you say. By writing a headline, an editor is implicitly saying, just in case you don't get to reading every story on this page, here's a 10 to 100 word summary of what it's about. The difference here is the medium...the print page makes it easy to convey meaning through design and photos. A search engine does not. And unless you want your search result pages to look like Myspace, I think it's important for the metadata to convey actual meaning that doesn't require the context (I.e. Buying a back issue of the newspaper) for it to make sense

<comment><USER6> > You can do both, of course, with the use of metatags.

says who? How do you know how Google works? Do they pay attention to metatags any more? Even if we knew they did, the rest of the algorithm is deliberately mysterious to the point that if Site A is ranking higher than Site B, and Site A happens to have more descriptive titles, Site B will start copying that style in the name of "SEO" and you're back to square one. Metatags indeed.

> it is the editor's job to second guess things

That's not what I said. I said it's not the job of editors to second guess search engines.

I think the theory of headlines goes far beyond "here's a summary".

</comment></comment></comment></comment><comment><USER11> Are there really people like this out there? Otherwise, I don't see the point of satire.</comment>


Show HN: Sumodrop, a better Airdrop for the Web - <AUTHOR> http://sumodrop.com/

<comment><USER2> Ugly share URLs :-(

</comment><comment><USER3> This is very cool!</comment>


In the startup world, Money is Time - <AUTHOR> https://medium.com/life-at-primeloop/money-time-e5dc820629d

<comment><USER2> Thank you for sharing Chuck!</comment>


Introducing Twitter premium APIs - <AUTHOR> https://blog.twitter.com/developer/en_us/topics/tools/2017/introducing-twitter-premium-apis.html <comment><USER3> Twitter already betrayed their entire dev base all those years ago when they effectively killed off all 3rd party clients by setting a lifetime cap on oauth tokens per developer just so they could force users to use their clients which inject ppa/ppc ads into the stream (and then didn't even bother keeping those clients up to date, pissing both the developers and their users off in one go). Stupidest move ever on their end. All they'd have had to do is mandate the inclusion of promoted tweets in the firehouse and they'd have kept developers loyal to their platform while raking in the cash.

<comment><USER4> Also, if I'm not mistaken, retweeting and hashtags were done first by third party clients. Even the word tweet was coined in an email Blaine Cook sent discussing twitter's auth API for 3rd party clients.

<comment><USER5> you were right in that they weren't Twitter's idea, but they were community driven.

@ and hashtags came from IRC and retweets (back when it was the RT....) just evolved

<comment><USER6> IRC then via Chris Messina [0]

edit: although disappointingly he seems to use this fact as quite a personal branding tool now

[0]: [https://en.wikipedia.org/wiki/Chris_Messina_(open- source_adv...](https://en.wikipedia.org/wiki/Chris_Messina_\(open- source_advocate\))

</comment></comment></comment></comment><comment><USER7> A few years ago, the free search API could retrieve tweets since the beginning of twitter (although twitter did not guarantee completeness of the results): [https://web.archive.org/web/20150311065138/https://dev.twitt...](https://web.archive.org/web/20150311065138/https://dev.twitter.com/rest/public/search)

Twitter then limited this API endpoint to data from the past seven days only, and now just introduces a paid version for only last 30 days data.

I find it fair to charge for elevated API access. On the other hand, the 30 days limit for the paid version is pretty ridiculous. Makes it more worth to just scrape the free online advanced search...

<comment><USER8> That's categorically not the case - the index for the search API has _always_ been around 7 days since Twitter acquired Summize (which is where the search API came from). There was never an artificial limitation such as the one you're describing. From the page you're linking to from the archive:

"The Search API is not complete index of all Tweets, but instead an index of recent Tweets. At the moment that index includes between 6-9 days of Tweets."

Scraping the Twitter website is against the terms of service and may result in permanent suspension of access.

<comment><USER9> > Scraping the Twitter website is against the terms of service and may result > in permanent suspension of access.

Scraping is always against the ToS, so no surprise there. I doubt it's really ever stopped anyone.

<comment><USER10> i would imagine it stops researchers.. who usually try do things legit

<comment><USER11> It does. We contacted them seeking academic discounts, and there wasn't. I was in a little university in Spain. No one is going to drop 20k like that.

</comment></comment></comment></comment></comment><comment><USER12> > I wish these premium APIs were available during our first few years. As we > grew, we quickly ran into data limitations that prevented expansion. > Ultimately, we raised a round of funding in order to accelerate our growth > with the enterprise APIs. With the premium APIs, we could have bootstrapped > our business longer and scaled more efficiently.

Quoting a company that is essentially saying they had to seek funding because of twitter limiting API access is an odd choice for this announcement.

</comment><comment><USER13> I wish it were true pay-as-you-go rather than starting you in a sandbox and then jumping immediately to $150. Working on a small side project, $150/mo is a lot of money in the beginning, especially if I'm doing a relatively small number of requests. I guess I need to see what the sandbox entails, but if it's not real live twitter data, this still feels like a big step function in cost from free to premium. Just charge me per-API call or on the amount of data transferred with no minimum.

<comment><USER8> The Sandbox is real live Twitter data, free access, but a smaller number of requests, no counts endpoint, and no enrichments.

<comment><USER13> Ok, cool, that might serve my development purposes, then.

</comment></comment></comment><comment><USER14> I don't know that the testimonial in the post makes me feel better about the product to be honest "they couldn't provide us what we needed so we had to give away part of our company to pay through the nose for the privilege for that feature, so it's great they've released this now, years after it'd have been useful. How's that feature you're waiting on working out for ya?".

I know it's the current thing to bash on Twitter, and I'm sure there are decent use cases out there, and glad they're finding extra revenue streams outside of ads, but the speed and level of iteration seems rather low considering the resources they have.

 _Of course, I 'm just a username on a website and have never scaled anything to 300m users, but like a lot of people, think Twitter could still be great... but seemingly still has a lot of miles to go. And highlighting that in an announcement post seems... strange_

</comment><comment><USER15> Twitter's biggest mistake was hiring thousands of people when they only needed 30. It doesn't need thousands of people. It doesn't even need 100.

Twitter is not a technological marvel. It's something Oprah promoted, and Donald Trump bitches on.

And now, it's an API with a (social) class-based access, and without irony, also promotes itself as a leader in conversation and exchange.

<comment><USER16> I often see these kind of comments and find them extremely myopic. Sure you can create a twitter clone all by yourself, but good luck scaling it to ~150k tweets per second writes[1]. All the while ensuring they're fanned out to all the respective followers some of whose tweets may need to be fanned out to tens of millions of users in a matter of seconds.

You'll need 30 engineers just to build and maintain the datastores, caching mechanisms, and service deployment infrastructure. You then have the actual services, real time streaming platforms, streaming applications, batch infra (hadoop), analytics pipelines, notifications, security, anti-spam, recommendation/machine learning pipelines, ads infrastructure etc to name a few. Can't find it now, but there should be a circa 2011 architecture of twitter in one of the blogs somewhere. I recommend you have a look at it.

If you're comparing it with WhatsApp, note that WhatsApp messages are mostly 1->1 and it's easier to shard the servers by recipient. Also, not having to bother persisting all the messages forever simplifies the system by a lot.

[1] [https://blog.twitter.com/engineering/en_us/a/2013/new- tweets...](https://blog.twitter.com/engineering/en_us/a/2013/new-tweets-per- second-record-and-how.html)

<comment><USER15> I think you're making a few assertions that would be more honestly served if you conceded as assumptions.

Twitter validated it's own employee count with an absurd overhead.

It has concerns of scale, performance and user experience. So does GitHub, Shopify, Pandora, Spotify, Snapchat, LinkedIn, MailChimp, WordPress.com, etc, and yet, manage will much less resources and overhead. Oh yea, and fucking Netflix - which - as far as I can tell - has much more and difficult problems to solve at a much faster pace. They employ 4,700.

As of this comment, Twitter employs 3,583 people.

What they needed to do was hire 100 talented people, allow third-party clients, try and occasionally acknowledge the developers who implement their platform, and stopped with the asinine "we're trying so hard guys" blog posts. We get it. You're having a hard time and you want everyone off of your grass. That's fine, but don't come asking for sugar at my house 'cause you ain't Beyonce.

<comment><USER17> Netflix has less "hard problems" in terms of operations than Twitter.

With Twitter everyone's data is interconnected. With Netflix, you could theoretically have each server just be completed isolated from each other (modulo account management).

Netflix has operational problems to solve in terms of bandwidth, though. There's definitely major difficulties there, but they're of a different variety to the high coupling Twitter deals with

<comment><USER15> I'll say what I've said in another thread on this matter, which is, no one outside of this bubble buys this shit. There are global supply-chain networks that move millions of products, and they don't employ as much as a micro- blogging platform. It's hubris to think we're so special.

<comment><USER18> I absolutely agree with you. Modern software "engineering" is much closer to craftsmanship than true engineering practice.

</comment></comment></comment></comment></comment></comment><comment><USER19> I always find it humorous that Twitter was the creator of the HTTP response code:

        420: Enhance Your Calm

Returned when an application is being rate limited for making too many requests.

[https://developer.twitter.com/en/docs/basics/response- codes](https://developer.twitter.com/en/docs/basics/response-codes)

<comment><USER20> Is this not what 429 is for? Their docs [1] also suggest 429 is what they are actually returning

[1]: [https://developer.twitter.com/en/docs/basics/rate- limiting](https://developer.twitter.com/en/docs/basics/rate-limiting)

<comment><USER19> Right, the joke is that 420 is a marijuana reference. "Enhance your calm", i.e. smoke a joint and chill out a bit.

</comment></comment></comment><comment><USER21> As the pricing appears to be based on # of requests and/or # of tweets consumed, does it have a `include_spambots=false` filter or do we have to pay for the pleasure of wading through spam?

<comment><USER22> I linked this elsewhere in this thread, but I reported this obvious spam account, with hundreds of spam followers, weeks ago and nothing has been done: [https://twitter.com/ksfAKBARI](https://twitter.com/ksfAKBARI)

I feel like twitter must not be taking spambots seriously, or has malicious intent to keep them there, because out of hundreds (thousands?) of employees they can't get a team onboard to shut these obvious accounts down. I mean, _it 's been reported_ and it still exists. Either the report log is huge or it's being ignored.

</comment></comment><comment><USER23> Is there an available history of Twitter's APIs over the years? IIRC it was initially open, and then they locked it down so many 3rd party apps for Twitter had to shut down, and now they're sort of opening it up again?

What's the deal?

<comment><USER24> They never "locked it down", they just rate limited some vital endpoints and never bothered to add endpoints for new, important features.

My own recommendation: disassemble any official app (for example, the Android one with apktool) and get the tokens and endpoints and do whatever the hell you want without paying a cent.

<comment><USER25> In the beginning you could post a tweet just by doing a http basic- authenticated post containing the tweet body, and there were unauthenticated rss feeds for most data feeds. These days you have to create app ids, tokens, etc etc etc. It really was a lot more open earlier.

<comment><USER26> Twitter was part of the reason I fell in love with development. The easy interaction with the whole platform changed my view on data. It broke my heart when they introduced v2

</comment></comment></comment></comment><comment><USER27> My experience with Twitter API has been horrible to say the least. Plenty of API errors, service over capacity, and instability. So now I have to pay to get access to an API that's stable?

Step 1 - build a product. make sure it has lots of bugs and is unstable.

Step 2 - roll out a premium product that's the same product, just stable, and less buggy.

Profit.

How is charging for an API not a finger to the developer community? Facebook for example doesn't charge for their API access. They charge for the products that the API has access to. If I have access to a product, I shouldn't need to be charged for the APIs to access that product

<comment><USER28> Interesting. I found Twitter to be vastly better than other social media companies. Far better documentation (though weird complicated auth where I get 4 pieces of info for some reason). Far more stable and understandable. Twitter returns a ton of data in each response so there's no need to go making multiple requests.

Compare to FB which is just a nightmare of trying to guess and figure things out. It's so bad. If it reflects their underlying model at all, their main codebase must be very difficult to work on.

Charging is a welcome improvement over the previous situation: Deal with Gnip or other data brokers. They're "Enterprise". Get no information, have to deal with a long sales cycle and sales team, have to wade through tons of BS to figure out what you need. It sucks.

<comment><USER27> In terms of documentation I do agree with you, although I suspect that's just due to the complexity of Facebook and its vast array of products, vs Twitter.

My bad experiences have to do with the actual API calls themselves which aren't stable and occasionally times out or errors out.

If anything I wish they would improve their API infrastructure as a whole instead of offering the improvements only on paid accounts. I can see charging for rate limits but not for system stability.

</comment></comment></comment><comment><USER29> Absolutely not. Never again will I trust Twitter as a developer.

<comment><USER30> Because once bitten twice shy and companies never change?

<comment><USER29> Perhaps it's as simple as that. I dumped too many resources into my last effort: time designing, flying out, sitting down with their dev advocates, all a waste of my time. I shan't reward them for pulling the rug out, or make the same mistake again.

Also, it's in solidarity with developers who invested even more than myself, years of time into apps, to be betrayed.

That's an emphatic "hell no" from me dog.

</comment></comment></comment><comment><USER31> Good for them, I honestly hope it works business-wise as they want and it makes developers satisfied. However, I'm afraid Twitter the company has got the same sort of trust issues as Google from the developers POV. They need to address this specifically, if they want people to believe their premium API move is for real.

<comment><USER32> Google is obviously a huge company with many different products, but I've had great success and satisfaction with many of their APIs. What sort of problems are you referring to?

</comment></comment><comment><USER33> This is a good start. Gnip seems to basically be invite only (I've tried contacted them multiple times and have not once received a response) and the public API is so limited it's near useless.

I'd still rather everyone move to Mastodon.

<comment><USER8> Gnip is Twitter's enterprise API business with annual subscriptions to firehose and decahose access. This is month-to-month billing for improved API access and data quality.

<comment><USER34> how does this address anything in the parent post?

<comment><USER8> It points out that Gnip is not "invite only" - it is an enterprise subscription product.

<comment><USER35> As someone who had a Gnip subscription for years I think "invite only" is close to a fair characterization.

It took huge amounts of effort to get them to return our inquiries. Given the huge amount of money we ended up spending that seemed ridiculous.

But I guess that just got us ready for the whole "everyone must move to Gnip 2.0, but no we won't merge the multiple pull requests to make _our official client work with our new API_ "[1] thing. Wow, that was fun...

[1] [https://github.com/twitter/hbc/pulls](https://github.com/twitter/hbc/pulls)

<comment><USER36> Wow... there goes the last shred of sympathy I had for Twitter for not being profitable.

</comment></comment></comment></comment></comment></comment><comment><USER37> I immediately checked the date on the article after reading the headline.

Thought it was a relic from the third party client days.

</comment><comment><USER38> Is everything starting around $149+, or only search?

I suppose that's understandable, but I think it would be cool if they implemented something more akin to the AWS pricing model (S3, for example, as tweet streams remind me more of this than of enterprise-level pricing).

<comment><USER39> Is that the price for Premium Search access? It's giving me a 404 error clicking the 'See pricing' link on [https://developer.twitter.com/en/pricing](https://developer.twitter.com/en/pricing)

<comment><USER40> Same here, both logged in and logged out.

<comment><USER8> Thanks for the note - working on that. [https://developer.twitter.com/en/pricing](https://developer.twitter.com/en/pricing) should work.

There's free sandbox access, and then tiered pricing for increased access and additional features like counts and the enrichments.

<comment><USER39> It's the 'See pricing' link under the Premium / Search Tweets cell on that page that goes to a 404.

Edit: The link points here:

[https://developer.twitter.com/en/pricing/search-30day](https://developer.twitter.com/en/pricing/search-30day)

<comment><USER8> thanks - we'll look into that.

</comment></comment></comment></comment></comment></comment><comment><USER41> Twitter's current plan is to execute on all the ideas their user base was talking about 5+ years ago.

</comment><comment><USER42> I'm still waiting for that webhook API they talked about 2 years ago.

<comment><USER8> the webhook-based Account Activity API is in beta now and on the roadmap for general availability.

<comment><USER42> I would be interested in that beta. I'm already in the direct messaging beta.

</comment></comment></comment><comment><USER43> Until info about the new endpoints and queries is released, I'm not rushing to get out my wallet, but at the very least it's encouraging to see _any_ movement regarding the API. This seems like a vote of confidence that the basic API will be around for at least a few more years.

<comment><USER8> [https://developer.twitter.com/en/docs/tweets/search/overview...](https://developer.twitter.com/en/docs/tweets/search/overview/premium)

</comment></comment><comment><USER44> Oh boy.

> However, this left a gap that made it painful for growing businesses to > deliver scalable solutions to customers

How about this: close your monetization gap yourself instead of pushing the problem downstream?

</comment><comment><USER45> I wonder how many people "we came up with a new way to sell your data!" will send away from Twitter.

</comment><comment><USER46> Anyone knows how much they charge for the gnip enterprise access.

<comment><USER47> It varies according to the requirements & level of enrichment (+ negotiations). Typically, a couple of thousand dollars for entry levels.

</comment></comment><comment><USER48> Is there a way to get copy of twitter entire dataset?

</comment><comment><USER49> I have a feeling in my gut that it's too late.

</comment><comment><USER50> Why is Twitter API so open ? I have been playing with it for a few weeks and I can find almost every data I want. How does it benefit them ?

<comment><USER51> Ecosystem lock-in. I remember shortly after Twitter launched there were many copycat microblogging services and the community had grand ideas of an "SMTP for Microblogging" so Mentions, Retweets and the like would work in a distributed fashion between service-providers, you could even run your own fully federated microblog off a Raspberry Pi in your garage if you wanted.

Twitter kept themselves in the lead - not just by delivering a superior user- experience (Nazis and trolls notwithstanding...) but also cultivating a developer community in a way that kept people off rival platforms - <USER2> stabbing them in the back in recent years (e.g. no support for polls in third- party clients).

This announcement is a continuation of the strategy: Twitter is making more data about _their_ platform available, other platforms aren't as open, so people will stick with Twitter because their data is available - and it also benefits them directly because these "Premium" APIs do cost money to access:

> Pricing for these elevated tiers of the Search Tweets API starts at > $149/month

<comment><USER52> They somehow bribed the media using it. Without the massive free advertising from media and President(s) Twitter would have been long dead.

</comment></comment></comment><comment><USER53> twitter is out of ideas.

<comment><USER54> API access to twitter is a huge business for a ton of different enterprises. Everything from customer support/happiness products to finance wants the twitter firehose. This is a totally reasonable and good business avenue for them to care about / explore.

<comment><USER31> Only if they mean it and intend to keep it sane, developers-friendly, in the long run.

<comment><USER54> Charging money for it is a good way to incentivize keeping it.</comment></comment></comment></comment>


Ask HN: Walls are closing in, I will work under market - <AUTHOR>

I am a Computer Technology grad working for a SaaS video conferencing company as a Helpdesk rep, and former sorta Junior System Admin role. After trying my longest to negotiate higher pay, I am looking for another job but now in programming. I am already very behind on bills and debts, and the sooner I can hustle some side jobs the better. I have experience with iOS, Ruby, Rubymotion HTML/CSS, some Javascript and Rails. Does anyone need any iOS apps,Ruby coding, maybe a Wordpress setup or maybe some coding work? My job's work schedule does not let me go to after-work meetups so it is hard for me to find mixer's and networking events currently. I'm based in Los Angeles and willing to come work for you, or bust my ass coding up some work remotely. Also I will relocate anywhere who can pay me at least 60-70k. Email is in profile, and I can send you resume, github, etc. Thank you. <comment><USER2> > Also I will relocate anywhere who can pay me at least 60-70k.

If you are OK with less than that, but a _crazy lower_ cost of living. I highly encourage you to look at the Midwest.

[http://www.hudl.com/jobs/](http://www.hudl.com/jobs/)

[https://up.jobs/](https://up.jobs/)

Actually, pretty much [http://www.siliconprairienews.com/opportunities](http://www.siliconprairienews.com/opportunities)

<comment><AUTHOR> Thank you, I will investigate this now.

</comment></comment><comment><USER3> 1\. don't work under market or signal that you will unless you are actually an under market-skills programmer. 60-70k for someone with no professional programming experience might be the market (which is currently flooded with junior devs from the various hacker schools) -- it really depends on your skill level.

2\. It might take a few weeks to land something -- have you negotiated a payment plan with your creditors. What is the least amount you need to make for a side project that will take some pressure off?

3\. your email is not in your profile. Contact me: loumfranco -at- gmail -dot- com

4\. I will tech screen you today (or this weekend) if you want and give frank advice. I can make intros in NYC -- I am a consultant and my clients are all hiring (as is nearly everyone). This would be full-time in NYC (contract and perm are available).

</comment><comment><USER4> Have you tried freelancer or rentacoder. I recently hired someone on freelancer to do some work for me. It's the first time i'm using it, but so far so good.

</comment><comment><USER5> Are you willing to consider (generally well-engineered, object-oriented), and do you have any experience with, PHP? What kind of experience do you have with Javascript?

</comment><comment><USER6> actually that's not unreasonable for midwest pay for a programmer.</comment>


The US relaxed its meat safety rules at the wrong time - <AUTHOR> https://qz.com/1790253/the-usda-is-recalling-more-unsafe-meat-now-than-in-2013/ <comment><USER2> Is there ever a right time to relax meat safety rules?

</comment><comment><USER3> The US relaxed its meat safety rules due to meat processing being shifted away from the USA to nations like china which have lower standards.

This shift began years before Trump took office btw.</comment>


Show HN: LaunchKit open source project - <AUTHOR> https://github.com/LaunchKit/LaunchKit <comment><AUTHOR> We announced yesterday that our team joined Google, and as a result we've open sourced pretty much our whole codebase. This also includes our in-app user analytics platform, [https://launchkit.io/users/](https://launchkit.io/users/) \-- as well as the more popular web-based tools. An overview of how it works appears in the README as well as a how-to guide for easily spinning up an instance with Vagrant/Ansible.</comment>


Help Your Users Vote - <AUTHOR> https://medium.com/voteplz/help-your-users-vote-6ee61dcf224d#.l9us594st <comment><USER2> Bias test: If you had a way to know with 100% certainty that a user would be empowered by this to go vote for a candidate which you vehemently oppose, would you still show them this banner?

Also see Mike Rowe's (of Dirty Jobs) thoughts on this:

> Remember - there's nothing virtuous or patriotic about voting just for the > sake of voting, and the next time someone tells you otherwise, do me a favor > - ask them who they're voting for. Then tell them you're voting for their > opponent. Then, see if they'll give you a ride to the polls.

[https://www.facebook.com/TheRealMikeRowe/posts/1254500967893...](https://www.facebook.com/TheRealMikeRowe/posts/1254500967893377)

<comment><USER3> We think it's really important that everyone votes and expresses the direction in which they want the country to go. So yes, we hope all companies share our tools with their users.

Our goal, as a non-profit, is to help as many people vote as possible - regardless of who/what they support.

<comment><USER4> If that is true then you are rare in the get out the vote world.

</comment></comment></comment><comment><USER5> Ugh, no. Not all tech companies should do this.

If your service actually helps me vote (provides information, gives me a ride to my polling place, etc.) then sure, it's part of the value you offer. But if your app has nothing to do with voting, it's spam to send me an email or push notification about voting.

</comment><comment><USER6> Not my job. There is an implicit contract between an online business and its users. That contract implies that the purpose of the relationship is to provide a specific service. It does not include preaching to them and telling them how to run their lives. If I choose to do the latter, I am breaking that contract.

</comment><comment><USER7> This is just asking people to spam their users. If someone lives in a truly democratic nation then they have the right to choose not vote, yes it surely would be nice to have everyone make a valid vote. Sometimes you just do not want to vote because you have to choose between two horrible choices and it doesn't matter at the end of the day because you seriously do not agree with either of the two choices.

Southpark did an amazing episode on this exact issue once. ( [https://en.wikipedia.org/wiki/Douche_and_Turd](https://en.wikipedia.org/wiki/Douche_and_Turd) )

<comment><USER8> I just don't agree. In a democracy, you have the right to hold any opinion, but not to stop participating. Everyone should vote. If all of the choices are terrible, turn in an empty ballot. It's really that simple. If people did that, at least we'd get some metrics about how dissatisfied people are.

But even if you think all of the candidates for all of the offices are too terrible to vote for, that doesn't excuse you from voting on the dozens of initiatives on the ballot.

<comment><USER9> It is not democracy if it doesn't have a none of the above option.

<comment><USER10> That's what writing in is.

</comment></comment></comment></comment><comment><USER11> If you send me a push notification unrelated to your app, I will immediately uninstall your app, and you will deserve it for being a spamming sack of shit. I strongly suspect I'm not alone in this.

</comment><comment><USER12> Voting, particularly for presidential elections, is the ultimate exercise in pointlessness. Not only is it statistically completely insignificant at your individual level, but in fact the US voting system is designed to not always reflect the opinion of the majority! Not to mention the uncountable cases of fraud.

Things you can do to make your political voice heard:

\- call/write to your local representatives

\- go out and join a protest (better, start a protest!)

\- donate money to a cause you care about

\- volunteer (i.e. donate time) for a cause you care about

\- write a blog, start a podcast, distribute flyers, etc. etc. etc.

But voting is certainly not in there. And not only is voting a completely insignificant act - its utmost importance is forced through the minds of children and adults all across the country as if it were the most important thing a citizen could do, and not voting is socially less acceptable than clubbing baby seals. Of course, those in power know that, but voting is convenient for them - it lets them give a semblance of control to the people, all the while the things that really matter can be controlled behind closed doors, where the average citizen has no leverage. A population that just goes out to vote when they're supposed to (with their votes easily manipulated by the media establishment) and forgets about the political machine the rest of the time is an easily controlled population.

A good essay: [http://reason.com/archives/2012/10/03/your-vote-doesnt- count](http://reason.com/archives/2012/10/03/your-vote-doesnt-count)

<comment><USER13> I don't understand this argument. They do count the votes. How many people have to stop voting before your vote is important enough?

I agree that those other things you listed are important, but most of them are important because they ultimately connect to votes. Next time you call or write your representative, be sure to add that you don't vote, and neither do the people you can persuade. I doubt your opinion will count for much.

Moreover, the presidential election isn't the only thing on the ballot. I'll grant you that many statewide races are a foregone conclusion on election day. (This may mean the primary is important though.) But a local race on my ballot in 2014 was decided by 561 votes. Now, I may not have been the deciding vote, but there's a decent chance somebody I know was.

The logical conclusion of this argument is that no one should vote, which of course would invalidate the argument if it happened.

</comment></comment><comment><USER14> I tried an Oregon address, and voteplz told me that "Oregon does not allow early voting", which is not true. The entire election process is conducted by mail starting several weeks before the election.

<comment><USER3> Hey gaur! Sorry for the confusion, the early voting tool is for voting early in-person (which is what the phrase "early voting" generally refers to). I just made a github issue to account for voting-by-mail only states too. Thanks for pointing out!

</comment></comment><comment><USER10> Or, you know, spend your time and money on making it easier for people to vote (like advocating for vote by mail in shitty states that don't make it universally available now) and stop wasting your time telling people like me, who aren't eligible to vote, about what self-righteous wankers you are.</comment>