"My wife has complained that OpenOffice will never print on Tuesdays" (2009) - <AUTHOR> https://bugs.launchpad.net/ubuntu/+source/cupsys/+bug/255161/comments/28 <comment><USER2> Some years back I had a case where a co-worker complained his mouse didn't work in the afternoon. Eventually I went to have a look, and he demo'ed the issue; sure enough the mouse was completely unresponsive. Luckily I guessed the issue immediately and quicky demonstrated - with a shrug - that the mouse "works fine for me".

Thing was I'd spotted there was strong sunlight through the window hitting the mouse; guessing it was probably swamping the optosensors I made sure I covered the side of the mouse with my hand when using it. His puzzled looks as the mouse worked for me but not for him were priceless (I did let him in on the secret after a few minutes).

<comment><USER3> I was an admin for a company that had lots of open plan offices. In one of these offices a specific row of computers kept failing. Although they were cheap (Compaq Evos with NT4), they were pretty damn reliable throughout the rest of the company.

Lot of head scratching ensued about the fault. Nothing really made sense.

Totally by chance we found out what was wrong. One Saturday when the office was empty and with no a/c background noise one of the other admins noticed the PCs in the problem row weren't making any fan noise. A quick investigation revealed that the PSU fans had been blocked with paperclips and bits of paper causing the CPU to overheat.

An older member of staff who was in that row found the PSU fan noise irritating and just decided to take action to stop it. She genuinely didn't realise she was breaking the PCs.

<comment><USER4> I had a similar story. I set up a home pc for recording tv and hooked it up to the main entertainment system. I built it on a budget so it did it's job but later on as we switched to more HD content it struggled occasionally.

I went off to college. My mom noticed the fan noise was increasing and found it distracting. She wrapped the pc in a couple of blankets to cut down on the noise. When I came home the thing was in danger of burning down the house and the video card had failed.

<comment><USER5> I am not sure if the following is true or one of those stories that gets recycled.

While I was working at Best Buy - the Geek squad told us a story of an older Lady who brought in a computer wrapped entirety in plastic saran wrap, to prevent the virus from escaping the computer and infecting people. She thought it was okay as she containing the virus and continued to use the computer before it turned off and didn't turn on again, which is whys she brought it in.

<comment><USER6> Oh, never underestimate people.

On the Pentium Overdrive! days, a guy came to my father's shop complaining that the computer wouldn't turn on. Turns out that he had installed the process in a different orientation "to see if it would go faster". Spoiler alert: it didn't.

Neither the CPU nor the motherboard failed (nor did the fancy overdrive socket). Once the CPU was installed correctly, it worked again.

</comment></comment></comment></comment></comment><comment><USER7> I had a user once calling me real desperately saying she was hacked. Got to her desk and nothing was going on.

She then sit or her desk and started talking me through what she was doing, then suddenly the screen started to move by itself, stuff getting typed everywhere, applications opening and closing all around.

Turns out she had accidentally turned on speech recognition on her mac, and the laptop was simply trying to parse - in English - everything we were saying - in Portuguese - into valid commands.

Nice little havoc.

<comment><USER8> Gee, I thought she was a Perl programmer ;-)

</comment></comment><comment><USER9> Arguably the most famous example of a bug like this is the person who would drive to the store to buy ice cream and depending on what flavor of ice cream they bought, the car would or would not start back up.

[https://www.kepner-tregoe.com/blog/help-my-car-is- allergic-t...](https://www.kepner-tregoe.com/blog/help-my-car-is-allergic-to- vanilla-ice-cream-a-study-in-problem-solving-the-complete-case/)

<comment><USER10> That's an old urban legend:

[https://www.snopes.com/fact-check/cone-of- silence/](https://www.snopes.com/fact-check/cone-of-silence/)

<comment><USER11> 100% of what is in the link you sent is in the original link.

<comment><USER12> Except the part where it says that it's a "Legend", and the fact that the explanation and problem are reversed in older and newer versions of the legend.

\---

It's interesting to note how the "vapor lock" explanation reversed itself over time. Earlier versions mentioned a flavor of ice cream that required handpacking (while all the others were prepackaged and ready to go); the vapor lock was said to form because it took so much longer to get out of the store with this one flavor. In newer versions, we're told that vanilla was a popular flavor and was kept in a special case near the door, making purchasing it and getting back out to the car take considerably less time; the car then wouldn't start because the vapor lock did not have enough time to dissipate.

</comment></comment></comment></comment><comment><USER13> I had a 2011 Macbook Air that would go blank randomly. After some investigation, I determined it was often when I was moving it from one place to another (sometimes even just repositioning on my lap), and that it was going to sleep, not completely crashing.

Of course, MBAs have no moving parts, and there were no rattles when I shook the machine and listened. Apple also could not figure it out. After replacing several parts, they eventually replaced the unit with a newer model (it was 2014 at the time).

Soon after getting my new MBA up and running, it experienced the exact same glitch. I knew it had to be something environmental, since the odds would be astronomical that they would have replaced my unit with one that had the same rare glitch. But I was traveling, which eliminated anything relating to my house, neighborhood, power lines, etc.

Then I looked at my wrist, on which I wore a Seiko Kinetic watch. It was triggering the magnetic lid-closure detector, which is on the sides of the base of the MBA. When I picked up my computer with my left hand (I'm right- handed, so this was less common), it would trip the sensor.

Interestingly, there is a very easy fix for this (and similar issues, mentioned in other comments in this thread), which is to only sleep the machine if both left AND right sensors are triggered. If it seems like the left side of the lid is closed and the right side is not closed, probably it's a false positive!

<comment><USER14> My wife had effectively the same issue where her macbook would "die", but only during video calls. We replaced it, then it happened again with the new one. A smart Apple tech eventually had her bring in _everything_ on her desk and make a mockup video call in the store. The glitch happened when the magnetic cover she had curled up to use as a stand on her mini iPad (for her notes for the call) got a little too close to the latch sensor.

</comment></comment><comment><USER15> One of my favorite pieces of debug folklore was the story of a minicomputer or some other serious machine rebooting in the middle of the night. I can't remember exactly but it was in some university during the 70s/80s. An important server would spontaneously reboot in the middle of the night on some days but not all.

Finally, someone sat up all night to watch what happens and observed a cleaning lady unplugging the machine from power in order to plug in a vacuum. When she was finished, she plugged the computer back in and left.

Another on of my favorites, not bug but more malicious, was someone wrote a program to swing the heads on one of those old giant hard drives back and forth. At the right frequency, the back and forth momentum would cause the drive to walk away from the wall and eventually unplug itself.

<comment><USER8> Re: _" someone wrote a program to swing the heads on one of those old giant hard drives back and forth. At the right frequency...cause the drive to walk away_"

On some TRS-80 models I discovered a certain POKE command would make the screen flash, click, and "bounce" the image, similar to a power spike. So in the university lab I wrote up a small BASIC script with a delay timer to repeat "DANGER: Computer Overheating!" as the clicking/flickering increased in rate. I stood back to watch and waited for the timer to kick in. Nearby students would freak out. When the script was done, it deleted itself in case they got the lab assistant to come over. I was a stinker.

<comment><USER16> That was the port that switched the screen from 64 columns to 32. A different bit in the port also controlled a physical relay that was used to switch the cassette tape recorder on and off. Toggling the pair together quickly did indeed look and sound quite dramatic - and would probably knacker the relay if left for long enough.

</comment></comment></comment><comment><USER17> I had a bug on a small system (basically an embedded computer with some custom I/O hardware), where the report was a unit "wouldn't reboot if it was turned off for too long(!?)".

Focused testing easily reproduced the problem. If you power cycled the machine and the off time was less than 30 seconds, it always rebooted correctly. If the off time was greater than 2 minutes, it ALSO always rebooted correctly, but if the off time was around 1 minute, it would reliably hang during the boot process. This behavior was rapidly confirmed on a number of other units taken off the production line.

Needless to say this was very confusing.

The eventual root cause was that during boot, a file-system was created in DRAM, similar to what a modern system would use initramfs for. The file system creation routine had originally been written for non-volatile memory, so it would by default check for a superblock to see if there was already a file system in place at the creation location and if there was, just use that (after unlinking all pre-existing files). If no pre-existing FS was found it would create a new one.

But this was in DRAM, not non-volatile memory so:

\- if the off time was less than 30 seconds, the filesystem was STILL IN THE DRAM and the ramfs_create() routine would happily re-use it.

\- if the off time was over two minutes, there were enough bit errors in the DRAM that ramfs_create() would fail to recognize the superblock, overwrite it with a new one, and everything STILL worked fine.

\- in the critical timing zone, the number of bit errors in the superblock in DRAM would be small enough that the FS creation would recognize that there was a pre-existing filesystem, but large enough to cause the ramfs_create() function to error out. The boot would then hang when the DRAM filesystem was accessed.

Of course there was no error checking on the ramfs_create() return.

The solution was to change the flags to ramfs_create() to overwrite unconditionally. After that, booting was reliable with any amount of off time.

Lesson is - cold boot attacks on DRAM contents are real, and we managed to do it to ourselves by accident.

</comment><comment><USER18> I love bugs like this. As a developer or Sysadmin you'd think the users are crazy again but then you dig deeper until you lose all hope and already book flights to become a farmer in the midwest and then you find something like thís

<comment><USER19> Maybe you've already seen this one, but maybe there are some people who haven't... I get a kick out of it every time I reread it, anyway. :)

[http://web.mit.edu/jemorris/humor/500-miles](http://web.mit.edu/jemorris/humor/500-miles)

Edit: And the FAQ: [https://www.ibiblio.org/harris/500milemail- faq.html](https://www.ibiblio.org/harris/500milemail-faq.html)

<comment><USER20> Fun to read. Thanks for sharing!

With the risk of sounding a bit arrogant, am I the only one who immediately thought about a timeout issue on the first description of the problem?

As a fan of online gaming I'm painfully aware that ping (and distance to server) matter. Especially when I was in Japan and tried to play with my friends in Germany, the fact that packets were routed over the US to Europe resulting in ~250ms pings was a constant annoyance.

</comment></comment></comment><comment><USER21> I'm gonna argue that the bug is not in "file". The bug is that the workflow _uses_ file, which by it's very nature must be based on heuristics and will get things wrong occasionally.

EDIT: Well file really had a bug in this case, where they didn't detect what they thought they were, but the point stands.

<comment><USER22> I agree that you should use care when using file. My app relied on "file" to identify file types, and in some cases it mis-identified some Microsoft Office files. The problem was that Apple ships a very old magic file with macOS, and when I reported the bug they said they don't care.

<comment><USER23> Excel mis-identifies CSV files whose first column is named "ID" as SYLK files.

But who would _EVER_ think of naming the first column of a spreadsheet "ID"?

[https://www.optibrium.com/community/forums/6-general-how- do-...](https://www.optibrium.com/community/forums/6-general-how- do-i/21-unable-to-open-csv-files-in-excel)

>Q: I have saved the result table from admensa into .csv format. However I am not able to open in excel. It is said that SYLK: file format is not valid. Do you have any experience on it? Thanks.

>A: This is an Excel 'feature.' I would guess that the first column of your data is entitled "ID". For some reason, Excel interprets any CSV file beginning with "ID" as an SYLK format file (not really sure what that is!). If you edit the file in, say, Notepad and change the name of the first column in the header row, you should find that it will load without a problem.

>This will happen if you save a CSV file from any application with the first characters "ID". So, unfortunately, there's not much we can do about it, other than to recommend that users don't call their first column "ID"!

<comment><USER24> Excel actually mostly ignores the extension and relies on heuristics to detect the file type on load. Many web applications used to implement "XLS export" by writing out CSV file with .xls extension.

This magic detection of file type has one unfortunate side effect: it is not exactly obvious how to convince Excel to load plain text data that is not CSV with delimiters from the current locale. (which is major PITA with most European locales where Excel uses "Semicolon"-SV and not "Comma"-SV but still calls it CSV)

<comment><USER25> You'll have to excuse me because I'm not in front of a windows computer right now, but if you open excel first, there is a data tab on the ribbon and an import data wizard or something like that and you can tell it what the delimiter is. You can also apply types to columns and whatnot before importing. Not the quickest but does help extract the data.

<comment><USER26> This is a fairly new feature in Excel.

The lack of this feature pushed a lot of scientists to OpenOffice/LibreOffice Calc. At first, just to open the file and "Save as Excel", but of course, then they start using Calc.

(At least that's my experience writing scientific software in Europe. Excel localized not just display, but the input and output. With Calc you could just open a file as "pipe separated UTF-8" and be done with it.)

<comment><USER27> If you rename your .csv as .txt then you get a wizard where you can choose delimiters, etc. This works in Excel 2000. I don't have an older version to hand.

</comment></comment></comment></comment></comment></comment></comment><comment><USER28> I ran into another strange doesn't-work-at-this-time issue at my first job, network/systems admin in the early 00s. We had a point to point microwave link that would go down at about 4:30pm every day. It was really bizarre; this was on kit on the roofs of two hospitals, and a pain to physically access.

We spent quite a bit of time chasing down various options for it to be a software issue. Someone went and checked the kit and visually saw that we had clean line-of-sight for the link.

It kept happening.

Eventually, a colleague went out while it was down. It turned out that there was a crane on a building site, and when they parked it stationary it blocked line of sight.

<comment> mark-r I once worked with a guy who had been a computer tech early in his career. He told a story of moving a computer on a military base up one floor. After the move, the tape drive stopped working - it would glitch every few seconds. He tried everything he could to diagnose the problem. Then one moment while deep in thought he wandered over to the nearest window, where he saw a radar antenna sweep around. Sure enough, the glitches were occurring when the antenna was pointed his direction. The location on the lower floor didn't have direct line-of-sight to the antenna.

</comment></comment><comment><USER29> This is why one of my favorite features in the original MacOS filesystem was type/creator fields (four uppercase letters each). Yes, it was possible for developers to create collisions, but it was _still_ better than the UNIX method of applying fragile heuristics to the file contents. IMO it would still be a good idea to replicate this (minus the four-character limitation) with a standardized extended attribute, falling back to the heuristic method only when that fails.

<comment><USER30> The separation between type and creator had other beneficial side effects. The Type code told you which apps _could_ open a file (by drag and drop or via the file chooser dialog). The creator code told you which app _would_ be chosen when the file was opened in the Finder (e.g., double-clicked). So HTML documents I had created in some web authoring tool would open in it for editing, whereas those I had saved from a web browser would open in it for viewing.

I don't remember it being possible to change either code using tools that shipped with the OS. I obtained a tool on one of MacFormat's early cover disks...

<comment><USER31> ResEdit was the apple program that could change it. Unfortunately, I don't remember off the top of my head if it shipped with the system or only with some of the developer tools. I _think_ early versions had it.

<comment><USER32> Fairly sure later versions didn't include ResEdit, but you could also set them via AppleScript in a pinch and they did ship with Script Editor

</comment></comment></comment></comment><comment><USER33> In my first install of Arch linux, I figured that using the bleeding edge software meant everything was supported. Upon plugging in an external monitor into my Dell laptop, it, indeed worked.

Well, until I moved my mouse cursor over to that monitor. It then turned off. Move the mouse back to the laptop screen; external monitor turned back on. My first foray into Arch linux ended up with a bug report against Intel's graphics driver.

Luckily, it was fixed very quickly and I'm proud to say it's finally time for Linux on the deskt---- err laptop.

</comment><comment><USER34> Reminds me of the traditional "gimme gimme gimme" easter egg.

[https://unix.stackexchange.com/questions/405783/why-does- man...](https://unix.stackexchange.com/questions/405783/why-does-man-print- gimme-gimme-gimme-at-0030)

</comment><comment><USER35> I got some legacy applications of work. One of them needed a new feature for something. Including database update scripts. So it was changed, very carefull because it had to use a database trigger ( ms sql) which i haven't used before.

It was released in demo/test environment, for 1-2 months and there was never an error.

When it got deployed into production, the integrating applications with it went to shit. Rollbacked everything and it was fine again. Made me seriously doubt myselve. I contacted the older devs that touched parts of the database and application, they didn't saw any issues.

Fast forward 2 months, i heard it was deployed again into production without any issues.

1 month afterwards, a colleague found an "issue" with the deployments. In short: if you deploy to production, for some applications it would deploy and older version ( 50% chance since a swap happened).

Urgh

</comment><comment><USER36> Funny, but can someone add (2009) in the title?

</comment><comment><USER37> I wonder why anyone thought that `file` should have hard-coded custom behaviour on that one very specific type of Erlang file, and how something like that ever ended up getting accepted into the general code base. It sounds like either a very personal workaround for a personal problem, or completely the wrong way to solve a possibly more common problem.

Fixing the bug by properly escaping the string that matches the special file still sounds like the wrong solution to me.

</comment><comment><USER38> I hit a similarly puzzling bug a few years ago in Gwenview (an image viewer) when a user reported it could not open some PNG files of a certain width.

I wrote about it here: [https://agateau.com/2012/qt-image-decoders-stepping- on-each-...](https://agateau.com/2012/qt-image-decoders-stepping-on-each- others/)

</comment><comment><USER39> There is a GitHub repository that collects such debugging stories (this one included) [1].

[1] [https://github.com/danluu/debugging- stories](https://github.com/danluu/debugging-stories)

</comment><comment><USER40> Problems like this make us IT folk seem magical. I routinely remove blank spaces from "empty" fields, rename files without slashes, quit and reload applications "doing something weird." The list goes on. Just this morning I changed an exclamation point a "1" to fix an error with a calculation.

Many of these things can and should be programmed to work, despite the user error. But just as it can be hard for users to understand the fault in their ways, it is difficult for the programer to consider many of these possibilities when deploying applications.

</comment><comment><USER41> Reminds me of a bug in PostSharp.. After making some changes our app would throw a NullReferenceException Mondays. It turned out to be a bug in some optimisation, but it only occurred on Monday because they skipped licence checks unlocking "full functionality" on a Monday (Happy Monday!) which enabled the optimisation.

[https://plus.google.com/113181962167438638669/posts/QF5pDB4X...](https://plus.google.com/113181962167438638669/posts/QF5pDB4XY6F)

<comment><AUTHOR> i can't remember exactly now, but webpack had a monday-only bug as wellat some point last year.

<comment><USER42> Probably [https://github.com/webpack/webpack- cli/issues/962](https://github.com/webpack/webpack-cli/issues/962)

</comment></comment></comment><comment><USER43> I had a fun bug once where some functionality involving self sign certificates stopped working on Feb 29th. It came down to us simply adding +10 to the year for the expiration. There is no Feb 29th 10 years into the future, only 4, 8, 12, etc... That was a good lesson on why to always use a date library when adding or subtracting time. We weren't the only ones... Azure went down for the same reason that day.

</comment><comment><USER44> _So it 's not a problem w/ openoffice.org, cups, or the brother printer drivers. It is a bug in the `file` utility, and documented at [https://bugs.launchpad.net/ubuntu/+source/file/+bug/248619.*](https://bugs.launchpad.net/ubuntu/+source/file/+bug/248619.*)

</comment><comment><USER45> I used to work as a Network Admin at a big university in Cape Town years back, and one of the urban legends at the time (late '90s) was that one of the long distance wireless (microwave? Line of sight required) network links were reported to drop every day at the exact same time for a a few minutes only. Lots of hours of troubleshooting hardware etc. later, and still no solution. Eventually a site-visit was done at both sides of the link, binoculars entow. The problem? The line of sight was going dangerously close to the top of a hill where a farmer had led his cattle every day at the same time. The cattle blocked the line of sight for 5 minutes every day. No idea if this is true though.

</comment><comment><USER46> Windows 3.1 16-bit multi-functional modules app i.e. skeleton app which loaded multiple DLLs one for each type of functionality. When printing on a dot- matrix printer everything would work fine. However when printing on a (then new) Laser printer the entire system would hang randomly. Didn't matter which module was the initiator. Spent 2 weeks poring over the code in our common DLL used for printing and found nothing. Then started checking rest of the code in each module and found it. Each module called into the common "print dll" to print its graphs. On return back it would call a local function to print the "graph legends" and thats where the problem was. The last line of this function called "ReleaseDC" but the parameters "hWnd" and "hDC" were switched by mistake so Windows released some unexpected memory giving rise to the problem. This code was cut and pasted into each module with minor modifications and therefore existed in all the functional modules.

I was somewhat proud of solving this :-)

</comment><comment><USER47> I had an intermittent printer issue recently. As a Mac user I have to submit jobs to the University printers via a web portal. I try to print very little so it's not something I use a lot, however I end up printing large numbers of midterm scripts every semester.

On occasion I would log into the portal, upload my file and select the printer and it would tell me the file was printed. However when I went to the printer there were no jobs to be seen. IT insisted that my files were somehow corrupt but eventually they sent someone over to see my issue and they too were stumped.

Finally they logged the server side activity of my printer interaction and they noticed that there was a space appended to my username, presumably by iCloud Keychain and the behaviour was possibly changing between OS updates.

The web portal would let me log in, the server managed the files but the printer would ignore the job all because of that space.

</comment><comment><USER48> These are always fun. I've seen a number of them over the years.

1\. Speech Recognition typing random garbage - user claims to be hacked.

2\. Ambient light sensor on laptop turns off screen - user says my computer works at home but not at the office.

3\. Set email background and font to white - user says he can't type new emails but can type replies.

</comment><comment><USER49> That's disturbingly fragile filetype heuristic TBH. Couldn't they use _anything_ better?

<comment><USER50> The heuristic was _supposed_ to be checking for the full string "Tue Jan 22 14:32:44 MET 1991", but the bug was that the spaces weren't escaped in that string, and only "Tue" was checked for.

The proper heuristic seems odd but reasonable to me.

diff for reference: [http://launchpadlibrarian.net/27497360/hardy.diff](http://launchpadlibrarian.net/27497360/hardy.diff)

</comment></comment><comment><USER51> I love these debug stories. My interesting one was from a job repairing computers in high school.

My older colleague was upgrading a 486, and couldn't get the system to boot on the first try, but if you hit the reset button after it was already on then it would boot just fine. All the hardware tested fine in other systems.

I figured out the problem by listening to the hard drive. I could tell it wasn't spinning at full speed when it was initially booting. The system would get through the POST process before the hard drive could finish spinning up. So the initial boot from power-off would fail.

The solution ended up being to upgrade the hard drive (or downgrade the motherboard).

</comment><comment><USER52> I once spent quite a long time tracking down a bug that would only occur if the time between 10:00 and 12:59 because of the extra character that occurred in the date formatting, leading to an unexpected line wrap that led to a lookup bug later on during a session.

If I'd known that time of day was the variable causing the behavior change, it would have been fairly easy to resolve—but that wasn't the case. Instead it was only resolved by the large-scale collection of failure and success cases coupled with the careful correlation of bytes sent & received across an entire session.

</comment><comment><USER8> I now suspect he made it up for devious reasons, but I had a professor who told about the time random characters and cursor movements kept appearing during data input from a lady at a remote office at his org.

Phone support couldn't solve the problem after many tries, including asking her to try a different work-station. So they flew in a technician. The technician arrived and sat to observe the lady as she did data entry. The technician eventually realized her rather large breasts were bumping the keyboard from time to time.

</comment><comment><USER53> So the check for Erlang magic numbers ended up being passed before the _existing_ checks for other file types? Nice bit of pushing in, there. Still, it was accepted by the "file" devs . . . .

<comment><USER50> Looking at the patch ([http://launchpadlibrarian.net/27497360/hardy.diff](http://launchpadlibrarian.net/27497360/hardy.diff)), the issue was that the string "Tue Jan 22 14:32:44 MET 1991" is matched to check for an Erlang file, which seems weird but reasonable. The bug is that the spaces weren't escaped in the string, so it was only looking for "Tue" instead of the full string.

</comment></comment><comment><USER54> This thread from last July has a link about it. [https://news.ycombinator.com/item?id=20344655](https://news.ycombinator.com/item?id=20344655)

<comment><USER55> And this one from 2016: [https://news.ycombinator.com/item?id=11717010](https://news.ycombinator.com/item?id=11717010)

</comment></comment><comment><USER56> Previous discussion: [https://news.ycombinator.com/item?id=11717010](https://news.ycombinator.com/item?id=11717010)

</comment><comment><USER57> I've only had issues with the software for school in the nights before I had to submit work.

For exemple, I recently had to give back a work on matlab. And at 9 pm it didn't show up in the windows menu. So I tried to run the installer that was too long, until I found out you had to use a flash drive.

Then it returned a lot of errors saying I didn't have the modules.

And I have the same issue with every damn software.

What should I do ?

</comment><comment><USER58> From 2009-04-28. No activity on that bug, or on the bug it duplicates ('file' misidentifies a Postscript file as a Haskell file) for many years.

Any news since?

<comment><USER59> Looks like a fix was released in `file` later the same year [https://bugs.launchpad.net/ubuntu/+source/file/+bug/248619](https://bugs.launchpad.net/ubuntu/+source/file/+bug/248619)

</comment></comment><comment><USER60> Great! Reminds me of the bug with the car, that won't start if the owner buys a certain type of ice cream :D

<comment><USER10> That's an old urban legend:

[https://www.snopes.com/fact-check/cone-of- silence/](https://www.snopes.com/fact-check/cone-of-silence/)

</comment></comment><comment><USER61> 1\. Override `toString()` for a commonly used object in Java

2\. Run the program and attach a debugger

3\. Set up watchers for the object

4\. Watch the world burn for your profiler :)

<comment><USER62> Could you explain what happens there?

<comment><USER63> Infinite recursion.

</comment></comment></comment><comment><USER64> when i got the computer for the first time , there was mcafee antivirus that came with it, i scanned the PC and found a virus, i was shattered and cheated by the computer seller as i thought it would damage the PC and i wont be able to use it ever again.I'm a software engineer now

</comment><comment><USER65> Who needs to print on Tuesdays? Usually M/W/F are normal printing days. ;-)

</comment><comment><USER66> If you think the heuristics in "file" are sometimes a bit scary, take a look at how PC hardware used to work back before the PCI bus become dominant. The heuristics there ended up bricking two expensive motherboards for me.

The older ISA bus, which was quite common until at least the end of the '90s, did not have any way standard way for software to identify cards, nor any way for software to specifically talk to the card in a specific slot.

PCI cards have a required Vendor ID assigned by the PCI-SIG, and a Device ID assigned by the vendor, and the PCI bus has a way to address by slot. A driver that supports a particular kind of card can scan the bus by slot, checking Vendor ID and Device ID to find cards it works with.

With ISA cards, all that driver would know is that the card it is looking for has, say, 4 registers that appear at consecutive I/O addresses, and that there are jumpers on the card that can set the base I/O address to 0x200, 0x240, 0x280, or 0x2CO.

The safe way to use a card was to install it in the PC, noting the jumper settings, and then install the driver and tell the driver what jumper settings you used. To know what jumper settings to use, you had to know what other cards were in the system and what I/O addresses they used so you could pick settings that didn't conflict with an existing card.

No one wanted to make someone installing a new operating system on a working system open up the thing, find all the settings on all the cards, and report that to the OS. They wanted to just automatically work with cards that had drivers built-in to the OS.

So what the OS installer would do is go through each built-in card it supported, and use heuristics to figure out if it is installed. For example, take that card I mentioned earlier that can be at 0x200, 0x240, 0x280, or 0x2C0. The OS might now that after reset that card should have 0x1F in register 0, 0x00 in register 1, and random values in registers 2 and 3. So if it doesn't see 0x1F at 0x200, 0x240, 0x280, or 0x2C0, it knows that the card is not present.

But suppose there is 0x1F at 0x200 and 0x00 at 0x201. Then the card _might_ be there. So now the driver would have to write to some of the registers, and see if the card responds the right way. Mostly it would do this be setting various modes, and then reading those mode settings, and see if they are right. If the card is not the right one, hopefully some of those commands don't make any sense to it, and so its responses are different.

Think about this for a moment. Suppose the OS is looking for a network controller, and the card at that address is actually a disk controller that happens to have the same read values in its registers after a reset, so the probe for the network card has to go on to the writing part of the test.

It's then writing network controller commands to a disk controller. If the command for "set status" on the network controller happens to be the same as the command for "write to disk" on the disk controller--you may have just trashed your disk. Oops.

And so the OS vendors had to very carefully construct their device probes. If writing commands for card X to different kind of card Y could trash things on Y, they needed to make sure that they had probed for Y first, and so if any Y were present skip them when probing for X.

Note that this doesn't necessarily work if you have any cards that the OS does not know about. If you card is going to need a third party driver installed after the OS is installed, it was best to take that card out during OS installation if having random junk written to it could cause harm.

One day at work, we bought two very expensive top of the line motherboards. The box said that they required Windows 98 or later. I tried to install Windows 95 on one of them. The install went fine until it got to one of the places where it reboots, and the reboot failed utterly. It did not even show the BIOS messages. The system appeared to be thoroughly bricked.

Figuring one of the motherboards was defective, I tried the other one. Same damn thing. Bricked during Windows 95 install!

We eventually found out what happened. The Windows 95 searching for devices on the ISA bus ended up writing to some registers that on this machine controller the BIOS flashing. It had erased the BIOS. Windows 98 and later knew about the flash controller in the chipset used in this motherboard, and avoiding trashing your BIOS. (Not sure why the motherboards either didn't have a jumper to disable BIOS flashing, or shipped with that jumper set to enabled).

</comment><comment><USER67> Likely it was fixed in file

</comment><comment><USER64> i used to create virus on my school computer labs , a batch file with command to delete a critical windows file like ntldr.dll or somthing and restarts, then i rename it to fifa or GTA and put an icon of the game as well. someone from any other class when using the computer think they got a new game and click on it and it won't boot again. yeah , i was a bad kid

</comment><comment><USER68> It kinda pisses me off that the second line of the body became a sexist joke phrase title in hacker news.

If you're not clued in on sexism: The stereotype reinforcement that women are dumb with technology is the punchline. It doesn't matter that there was actually an issue with the pipeline from OpenOffice -> Cups, but the hacker news title was cleverly crafted to reinforce a stereotype.

I don't care that this will be downvoted to oblivion, but the seeds of sexism exist everywhere.

<comment><USER69> In general I agree with you that "unconscious" sexism is common, but TFA is not an example. TFA describes a user who has accurately isolated the conditions that generate errors. That is a capable user.

Arguably, the title would be improved by adding the third sentence as well...</comment></comment>


Python 101: easy_install or how to create eggs - <AUTHOR> http://www.blog.pythonlibrary.org/2012/07/12/python-101-easy_install-or-how-to-create-eggs/ <comment><USER2> Be careful: there does not exist an easy_uninstall. So if you have to use it, you had better only use it in a virtualenv (it won't be nice if you install something on the system Python which hoses anything, because you won't be able to uninstall).

Also, hope that nothing mysteriously goes wrong, because the error messages tend to be really cryptic and unhelpful.

New users should be pointed to pip by default.

eggs are really the only feature of easy_install. However, it is easy to think they are more indispensable than they really are. For example, the article implies that eggs are the only cross-platform install method. There is no reason why pure-Python source distributions should not be completely cross- platform. (This also allows you to run on PyPy, etc.) This is really about making binary packages work on Windows. But most major packages have available EXE installers which use Windows' native package management.

So eggs are pretty much one approach to a problem that faces Windows, not a uniquely cross-platform solution.

I am tired of the politics in Python which is always making people use broken software when there are clearly better alternatives. It is a major people problem with the language and it holds it back in so many ways.</comment>


The End of Guitar Center - <AUTHOR> http://www.ericgarland.co/2015/02/03/end-guitar-center/ <comment><USER2> I don't feel that bad since Guitar Center put almost all their competitors out of business. I remember being _furious_ on the days I had to go to Guitar Center because I needed something _that afternoon_ and there was nowhere else to go.

As companies like this are grabbing market share the story is always that if they fail the market can just go back to what it was. It rarely does.

Interesting is that some of the businesses that GC put under might have been able to compete in markets where GC can't, where customer loyalty is important. There's no reason to buy something from Guitar Center that you could order online unless you need it immediately. But a locally owned music shop where you've known the owner for 10 years and always go play guitars on your days off? It feels _good_ spending money there.

<comment><USER3> My main issue is that they've become the only place (locally) to shop for a lot of music gear. With things like musical instruments or sound gear, I don't want to order from Amazon, not get to play/hear it in person first, then pay for shipping a large item where I need to be home to accept delivery.

If I want a guitar I've actually got some OK options with a handful of pawn shops (the thrift store solution where you have to hunt but can get a deal) and maybe one or two smaller music shops with limited inventory. Then there's craigslist where I can look around and hope someone's selling what I want but at least I can go check it out in person.

But for stuff like PA systems and amp cabinets I don't want to just read reviews and order some massive shipment from Amazon or hope someone is selling the thing I need on Craigslist. New, current model audio gear isn't always easy to find that way and it's just too big and expensive to ship conveniently. I want to drive to a shop, listen to the different options, feel their build quality, and ultimately load something into the car.

For the past several years, GC has been the only place in my area where I can get that stuff. Granted it's not a problem I run into often since I don't go buying PAs with subwoofers every year but when I do need that stuff, I hate only having one store with any chance of carrying what I want.

<comment><USER4> Does showrooming not affect the music industry? Amazon does sell plenty of sound/music gear, most with prime shipping.

</comment></comment></comment><comment><USER5> A large bricks and mortar chain coming to grief isn't an enormous surprise. It's happening throughout retail. Radio Shack, Best Buy, Office Depot, Borders Books; everywhere you look chains of brick and mortar retailers are collapsing, closing, or merging.

But of course, selling musical instruments is different, for unspecified reasons. Guitar Center's problems aren't just because of a changing retail environment but a searing indictment of modern capitalism that is somehow linked to the housing crisis (what?), and somehow to the declaration of martial law (huh?) and the destruction of the US dollar (uh...) that apparently happened over the last few years.

Fine, the author thinks Guitar Center is about to declare bankruptcy. He's not alone; rating agencies have deemed their bonds to be junk. But neither is Guitar Center; there's a lot of failing companies around. Unless you're unlucky enough to own some of their debt (or, worse, the company itself), I have no idea why you'd care.

(...which kind of makes me wonder why the author cares. If he ownd a bunch of Guitar Center bonds, I'd assume he'd just sell them. What's his angle here?)

<comment><USER6> > What's his angle here?

Maybe he is short on GC stock.

<comment><USER7> That's what I assumed. It was written like such an amateur that I assume he's day trading.

</comment></comment></comment><comment><USER8> > "Second, it did so just as the housing fraud and financial insanity which > characterized the late 1990s and early 2000s nearly destroyed the U.S. > dollar and left us with martial law."

Er, what? Martial law? I guess I wasn't around for that one.

<comment><USER9> His writing is a bit melodramatic.

<comment><USER10> I couldn't finish the article. Terrible writing. Melodramatic would be an improvement.

</comment></comment></comment><comment><USER7> By the time it gets to this, it's hard to view the writer as anything other than a quack.

 _Second, it did so just as the housing fraud and financial insanity which characterized the late 1990s and early 2000s nearly destroyed the U.S. dollar and left us with martial law._

<comment><USER11> Martial law was declared in 2007 in the midst of the banking crisis.

<comment><USER11> Here's a house rep stating it being declared by the speaker of the house:

[http://m.youtube.com/#/watch?v=YMK- Ix5Ue24](http://m.youtube.com/#/watch?v=YMK-Ix5Ue24)

Either me and c-span are wrong, or the guys detracting me are. You decide.

<comment><USER5> You're completely confused.

What you're discussing is that the House (which under the constitution can set their own rules) decided to create a rule XIII(6)(a) that said that bills couldn't be passed by the House without a day to consider them except by a 2/3 vote. Later, the House changed that rule to waive the requirement to wait a day. Later still, they reinstated it.

Colloquially, the waiver of the rule is sometimes referred to as "martial law", in much the way that proposals to repeal or reform the filibuster rules in the senate are called the "nuclear option". The nuclear option does not involve nuclear weapons, and the so-called "martial law" rule in the senate does not involve martial law. It's not even related _to_ martial law.

Martial law would be a suspension of civil liberties and an injection of military personnel over civilian authorities; it would also necessitate a repeal of habeas corpus and the posse comitatus act. What you're discussing is a minor (and long since reverted) rule change governing when and in what circumstances draft bills could be brought to a floor vote in the house.

The bottom line is this: The minority party in the house wanted to delay and debate the bailout bill. The house—which is charged with setting rules about delays and debate by majority vote-set rules which didn't allow the minority party to delay and debate as much as they wanted. Some members of the minority party, in a fit of hyperbole, analogized the rule change to martial law. It wasn't. It wasn't even sort of LIKE martial law.

TL;DR: You're so wrong, you didn't even understand c-span.

</comment></comment></comment></comment><comment><USER12> I can't stand the way I get asked, "how much are you looking to pay?" every time I go in there...

Seeing Guitar Center flail is like seeing McDonald's flail... I don't feel bad at all and hope for a speedy decimation.

<comment><USER13> Haven't had that experience. They might ask about price range which only makes sense, no point showing you a $1500 axe when you won't spend more than $300. But I was in GC about a month ago and spent an hour fooling around with different guitars and got no pressure from the salesman at all. He knew I was looking at the $300 stuff but he was fine with me trying out the $1500 too.

Back in the 80's, Guitar Center was AWFUL. I'd go in to buy a pack of strings and the salesman would want to negotiate the price. Hated the place and would never go. I rediscovered GC a few years ago and was pleasantly surprised at the changes.

</comment></comment><comment><USER14> Funny, I just got a flier from them in the mail today. They recently (not quite 1 year ago) opened a second store in my area, about 20m down the road from another bigger Guitar Center. I thought it was a bit strange that they'd put them so close together.

</comment><comment><USER15> Maybe they'll just get bought by Amazon.</comment>


Open Build Service by openSUSE - <AUTHOR> http://openbuildservice.org/ <comment><USER3> I use OBS to provide Linux packages of the latest version of my project for multiple Linux distros. Because of the release cycle Linux distros usually come with older versions of the program, so when the user reports a problem it's handy to have an easy way for her to update and try the latest version. (Compilation from sources is not an easy way)

I spent many hours to write a spec file portable enough to build on OpenSuse/Fedora/RHEL/Mandriva (there was Mandriva Linux at that time), and to prepare debian/ directory, but after this initial work updating spec/debian and triggering builds for a new release takes only a few minutes.

I really appreciate that SUSE is providing resources to build packages for other distros. This is in contrast with Canonical refusing to build packages for Debian in PPA[1]:

"PPA builds consume a great deal of resources and it's difficult justify spending that amount of money as a gift, especially if the net effect would be to encourage people to build packages which don't necessarily work with Ubuntu."

[1] [https://bugs.launchpad.net/launchpad/+bug/188564](https://bugs.launchpad.net/launchpad/+bug/188564)

<comment><USER4> OBS looks great but somehow I always get hung at the learning phase. Is there some pointers that you recommend for new users to build their own packages ?

<comment><USER5> The first thing to look at is probably the tutorial[1], followed by the wiki page about OSC[2], which is the command-line tool that interfaces with OBS itself. The Packaging Guidelines[3] provide additional information for specific use cases, corner cases and packages and is also quite helpful!

[1]: [http://en.opensuse.org/openSUSE:Build_Service_Tutorial](http://en.opensuse.org/openSUSE:Build_Service_Tutorial)

[2]: [http://en.opensuse.org/openSUSE:OSC](http://en.opensuse.org/openSUSE:OSC)

[3]: [https://en.opensuse.org/openSUSE:Packaging_guidelines](https://en.opensuse.org/openSUSE:Packaging_guidelines)

</comment></comment></comment><comment><USER5> OBS is a fantastic service. As other comments have pointed out, you can build for other distributions as well, but as an openSUSE user, I use it for quite a bit.

Some of the packages I would otherwise compile locally but that don't need to be in the distribution itself, I simply compile on there, add my personal repository to my repository list and they will stay in sync with other build requirements etc. On top of that, this allows me to have them in the package manager proper, and I can easily build my packages for multiple openSUSE versions, usually current (13.1), Tumbleweed and Factory.

OBS also makes it really easy to fork packages to fix something and/or apply patches, and depending on what kind of changes one made, it also includes pull requests. That way you can fix or extend a piece of software via forking, and if it works and might be useful for everybody, you can send your changes to the maintainer, who can integrate it if they find them adequate. This makes it quite a bit easier and lowers the barriers of helping "upstream" with improving the whole distribution.

</comment><comment><USER6> Is this openSUSE only, or can you build packages for other distributions with this service? It's hard to tell from their documentation or website.

EDIT: The openSUSE instance [0] says:

The openSUSE Build Service is the public instance of the Open Build Service (OBS) used for development of the openSUSE distribution and to offer packages from same source for Fedora, Debian, Ubuntu, SUSE Linux Enterprise and other distributions..

[0] - [https://build.opensuse.org/](https://build.opensuse.org/)

So it appears they do support different distributions, although I can't seem to find download links or examples.

<comment><USER7> I've used it in the past to build software for openSUSE, Fedora, Ubuntu, Debian, Mandriva, Arch and more.

For example, the owncloud package is built for a whole load (list on the right of [1]) and can provide a download page like [2].

[1] [https://build.opensuse.org/package/show/isv:ownCloud:communi...](https://build.opensuse.org/package/show/isv:ownCloud:community/owncloud)

[2] [http://software.opensuse.org/download.html?project=isv%3Aown...](http://software.opensuse.org/download.html?project=isv%3AownCloud%3Acommunity&package=owncloud)

<comment><USER8> Can you actually build for Arch with this? I can't see an option for this, (thinking it might be a typo of yours). In addition, I'm trying to figure out how it works, what form do you need to upload the package as?

<comment><USER9> Yes you can. And for debian, ubuntu, fedora, RHEL, SLES, CentOS, UCS. Of course all of them in multiple versions and in X86, X86_64, ARM, s390, PPC.

Have a look here

[https://build.opensuse.org/project/add_repository_from_defau...](https://build.opensuse.org/project/add_repository_from_default_list/home:hennevogel)

for a (shortened) list of popular distros the OBS supports.

<comment><USER8> Thanks, I was trying to find a list like that, I guess my searching let me down.

</comment></comment></comment></comment></comment><comment><USER10> Quite remarkably, it supports Windows too (via cross-compilation). The Julia WinRPM tool [1] automatically downloads dependencies for various Julia packages from OBS - including some very interdependent, complex libraries like Glib and Gtk.

[1] [https://github.com/JuliaLang/WinRPM.jl](https://github.com/JuliaLang/WinRPM.jl)

</comment><comment><USER11> The SUSE engineers and community really make some fantastic tools. I was a long-time openSUSE user but I found the package repositories were not so well maintained and eventually I switched away, but tools like Zypper (the only mainstream Linux package manager that gives you fine-grained control on what to do if a package dependency cannot be fulfilled - a pet peeve of mine on Debian systems), SUSEStudio (web service for interactively building Linux appliances, Live CDs, etc) and it's back-end Kiwi, etc. - really very cool stuff.

<comment><USER8> Out of interest, what did you switch to? Debian?

<comment><USER11> Fedora

<comment><USER12> That surprises me. I've used Fedora for a while (it was preinstalled on a laptop that was gifted to me), and found that the repositories were both much smaller and much less well-maintained than the equivalents on openSUSE.

<comment><USER11> I have found a few handy tools that openSUSE had packaged long before Fedora. I think the credit for that goes to openSUSE's much more accessible build service :) Haven't had any issues with the repositories, myself, though - <USER2> using Fedora on and off since F11.

<comment><USER12> It mostly does. There are a few things that are in openSUSEs main repositories and not in those of Fedora, but in many cases the openSUSE packages were indeed in user repositories.

Fedora repositories were so bad for me that I ended up searching for Fedora packages on the openSUSE Build Service, and using those instead.

</comment></comment></comment></comment></comment></comment><comment><USER13> You can download packages from [http://software.opensuse.org/search](http://software.opensuse.org/search) Click on the button far right to go to the detailed search, which allows to select a distribution.

</comment><comment><USER14> Open Build Service has always been one of the more attractive features of OpenSuSe, along with Suse Studio.

Unfortunately, after spending some time with the newest release of OpenSuSe, I found it had become very bloated and I feel I will never return to the distribution.

The straw on the camel's back was finding out about the 'tmpfiles.d' or similar. Seems very messy and got me thinking about the direction some of the Linux distributions are going.

<comment><USER14> Of course, this is only an opinion, and in general the Suse engineers have always done some great work.</comment></comment>


Why is being "on hold" on the telephone not made less annoying? - <AUTHOR> https://ux.stackexchange.com/questions/113498/why-is-being-on-hold-on-the-telephone-not-made-less-annoying <comment><USER2> My "favorite" annoying hold queue was a couple years back when I regularly had to call the business support line of a big computer manufacturer. It'd go something like this:

<1 minute of epic flute solo> <sound of phone being picked up> Thank you for holding. One of our employees will be with you shortly <repeat from the start>

You'd basically get startled into thinking someone had picked up once a minute. The flute solo got especially grating after the first half hour of waiting.

On the other hand the ISP I'm currently using has probably the best hold queue I've ever used. You'll call in, be asked for your postal code at which point the system tells you if there are any known service disruptions in your area. Then there's about ~30s of ringing tone after which an actual human picks up the phone. It's the only big company I know of that has you connected with a human in <5 minutes.

</comment><comment><USER3> I have an Asterisk exchange at home (1 message asking people to choose a digit for the person they want to speak to cuts 99% of telemarketers)

The thing that annoys me the most about being on hold is that it requires attention from me that eats into me doing other stuff while I wait .... in fact if the people who you're calling are too bust to talk to you right now it's they who should be on hold.

So the thing I keep meaning to implement for my exchange is a feature that puts a line into a "waiting for hold" state - you do this and put the phone down - Asterisk keeps saying to the still open line "I still want to talk to you, please press ' _' when a real person is on the line" ... when they take you off of hold they press '_', your phone rings you answer and talk to them

</comment><comment><USER4> The best support queue experience I've ever had was with Sonic.net. The first thing they do is ask if you want someone to call you instead of waiting on the line. You still have to wait the same amount of time, but you don't have to be on the phone. You can also go to their website and put in your phone number and they'll call you.

</comment><comment><USER5> GoDaddy has an option to "mute the music" when you call in thank goodness. Nothing worse than being on hold for 10 minutes and can't do anything because the music destroys any concentration potential you might have.</comment>


The ``algorithmic'' Buzzword - <AUTHOR> http://bbs.progrider.org/prog/read/1447799270 <comment><USER2> I thought this had potential when I read the first couple of responses, but it wore out fast, and note there is some language in reply 17 that many people (virtually everyone) will find offensive.</comment>


Proposal: C.UTF-8 - <AUTHOR> https://sourceware.org/glibc/wiki/Proposals/C.UTF-8 <comment><USER2> Seems a mistake for LC_TIME, and LC_PAPER etc to remain the same as the US- centric way they are for C. I'd call the locale U and also have it indicate ISO date formats (YYYY-MM-DD), and metric units in general (such as standard paper sizes).</comment>


FPBase: The Fluorescent Protein Database - <AUTHOR> http://fpbase.org <comment><USER2> FPBase is a model for what open-access academic databases should look like for novel protein sequences.

It's a thankless job to do all of the comparisons/reviews of proteins with similar functions. And then even more of a challenge to take that hard-earned data and make it accessible and immediately useful. But it is foundational to moving the field forward.

Thank you, and keep up the good work.

</comment><comment><USER3> FPBase and Talley Lambert ( twitter.com/talleyjlambert ) are both awesome. I'm a physicist working with fluorescence microscopy, and I use tools that Talley developed or contributed to all the time.

Which reminds me, also check out napari.org for a nice viewing/annotation tool for N-dimensional numpy arrays.

</comment><comment><USER4> Really amazing resource that I've used before when pulling FP sequences. I really wish there were more bio databases like it! Simple, clean, great</comment>


Properties of expanding universes (1966) - <AUTHOR> https://www.repository.cam.ac.uk/handle/1810/251038 <comment><USER2> If you've ever wanted to read the HN 'Hug of death' phenomenon written up as a piece of national news, now's your chance: [http://www.bbc.co.uk/news/uk- england-cambridgeshire-41721585](http://www.bbc.co.uk/news/uk-england- cambridgeshire-41721585)

<comment><USER3> _" He added: 'Anyone, anywhere in the world should have free, unhindered access to not just my research, but to the research of every great and enquiring mind across the spectrum of human understanding'."_

I wonder when academics and public pressure will create a real change in how academic papers are distributed.

edit: I mean, isn't this comment the easiest achievable Utopia (oxymoron, I know) ever?

</comment></comment><comment><USER4> I will read it and I will comment here all the mistakes I find in this thesis. He is a bit messy in his writings

<comment><USER5> The hidden sense of humor in this sentence may be too much for taste of HN!

<comment><USER6> What do you mean?

<comment><USER7> People on HN are quick to offer criticism for karma, but slow in thinking about what function they aim to serve in offering it.

</comment></comment></comment></comment><comment><USER8> I like that it is plural, 'universes'

<comment><USER9> You never want to make your subject too specific :)

</comment></comment><comment><USER10> If someone did a nicely readable epub out of it, I'd be a happy reader.

<comment><USER11> Or a nice latex pdf.

</comment></comment><comment><USER12> ...

<comment><USER13> That's a bad, pompous, self-important comment.

<comment><USER12> It was a humorous observation, that apparently wasn't well received. My apologies.</comment></comment></comment>


Gormless geeks guide to good looks - <AUTHOR> http://lifehacker.com/5058823/top-10-easy-ways-to-look-sharp <comment><AUTHOR> I need a straight razor.

Their link on shaving didn't work, here's another I found:

[http://www.motherearthnews.com/Do-It- Yourself/1972-03-01/How...](http://www.motherearthnews.com/Do-It- Yourself/1972-03-01/How-to-Use-a-Straight-Razor.aspx)

Also tells what materials to buy, and how much to spend: looks like around $10-20.

<comment><USER2> A traditional safety razor is generally a much better idea than a straight razor.

<comment><AUTHOR> The author claims it gives a much better shave and doesn't irritate your skin as much.

</comment></comment></comment><comment><USER3> But... but... my hippie hairdo and unixbeard /are/ the things that make me look good!</comment>


Ask HN: Any suggestions for a secure password manager? - <AUTHOR> The last thread that I could find on this topic was about 18 months old, so I guess its a good time to seek the possibly refreshed suggestions. <comment><USER2> I'm still happy with KeePass. Currently using one of my cloud-drive folders to manage my password files (at this point I have some context-specific side files), but debating switching over to a Resilio Sync share (possibly an encrypted share with a "know nothing" backup node in the cloud somewhere).

<comment><AUTHOR> Have you used it with Darwin/OSX? How's the experience?

<comment><USER2> I don't have any macOS devices, but I did not have any trouble running the official KeePass 2 directly on Mono on Linux. I've heard there are good unofficial native clients for macOS, but I don't have any direct experience. (I have used unofficial iOS and Windows Phone/UWP clients and not had any trouble with any of them either.)

</comment></comment></comment><comment><USER3> 1Password. Can run 100% local(how I run it). It is Commercial, but on a Mac, especially with tools like [https://github.com/ravenac95/sudolikeaboss](https://github.com/ravenac95/sudolikeaboss) , it's totally the best there is, integration wise, and speeds up productivity an amazing amount while staying pretty secure.

<comment><USER4> They're not so great at fixes and adding features. I much prefer 1Password's interface to anyone else's, especially on Mac.

It took them a year to fix the metadata privacy issue with Android Dropbox sync, despite many asking in forum.

They recently added a TOTP generator. Years ago they talked of adding Yubikey, now they seem to dislike the idea of Yubikey or any 2FA. That seems odd.

<comment><USER3> 1password can support typing in the master password with Yubikey, if you configure the yubikey to output a static password. They have a blog post and an answer here about it: [https://www.quora.com/Will-1Password-ever-support- YubiKey](https://www.quora.com/Will-1Password-ever-support-YubiKey) that are worth reading.

</comment></comment></comment><comment><USER5> If you fancy a CLI and git repositories for synchronizing your password database, try the standard unix password manager : [https://www.passwordstore.org/](https://www.passwordstore.org/)

</comment><comment><USER6> I love pass (password store.org), which generates and files your password as a gpg encrypted file in a folder tree, is scalable to have the file decrypted by different gpg keys, comes with hit support, and a android app is available (fdroid) that integrates with openkeychain and yubikeys and fidesmo cards. Perfect.

</comment><comment><USER7> I'm fond of pwsafe. Runs on Mac and IOS and shares file in cloud. Like that it is not browser based (though they do have an optional browser plug-in). Excellent for storing hundreds of passwords and security entries. [https://pwsafe.info/](https://pwsafe.info/)

</comment><comment><USER8> I use yubikey with lastpass. There are a bunch of options at [https://www.yubico.com/why-yubico/for- individuals/password-m...](https://www.yubico.com/why-yubico/for- individuals/password-managers/)

</comment><comment><USER9> KeePass is great - no connection to the cloud, so can't get attacked. Though putting it on Dropbox or Onedrive sort of defeats the purpose.

LastPass is great but there was a breach last year, in which they claim nothing was compromised and they offer a free plan.

</comment><comment><USER10> Take a look at Enpass. [https://www.enpass.io/](https://www.enpass.io/)

</comment><comment><USER11> I've been using LastPass with a Yubikey for several years now.

It's never let me down.

</comment><comment><USER12> What about google smart lock?</comment>


How GE uses Hadoop to analyze big data - <AUTHOR> http://news.cnet.com/8301-13846_3-20016013-62.html?tag=mncol;title

<comment><USER2> This is complete fluff; he says nothing about _how_ GE uses Hadoop, just that they do. Whoopee. It's not journalism, or even good blogging, it reads like it's a straight-out reprint of marketing material for the Hadoop World conference.

<comment><USER3> I think I now have brain cancer from reading that.

It's important to "leverage" technologies such as hadoop which enable delivering critical business needs. Most people call that "using modern tools to solve pressing problems". If anything this article makes me much less likely to look into Hadoop, ever.

</comment></comment><comment><USER4> Did anybody else's head explode reading this? He used a mixture of buzzwords and big company speak to say ... almost nothing.

<comment><USER5> That's how GE operates. All communication (both internal and external) is absolutely devoid of content making it very hard to move forward on design decisions. That's one of the reasons that the project team I was on in 2005 is still in almost the exact same position 5 years later (minus the 2 team members + myself that left out of frustration).</comment></comment>


Interactive Big Data analysis using approximate answers - <AUTHOR> http://strata.oreilly.com/2013/08/interactive-big-data-analysis-using-approximate-answers.html

<comment><USER2> This is definitely interesting approach, but many domains are such that outliers are what we want to investigate. Take for example response times of a web service. From the usability perspective, we usually want response times to be predictable and minimize variability, not just that the average is good enough. You really want to know, if 1% of responses are e.g. over 20 seconds, because over time that gives to many users an impression that service that is not smooth.

</comment><comment><USER3> github code: [https://github.com/sameeragarwal/blinkdb](https://github.com/sameeragarwal/blinkdb)</comment>


Device for high-frequency sounds to prevent loitering by teenagers - <AUTHOR> http://www.movingsoundtech.com/

<comment><USER2> This device is not without controversy:

<http://www.bbc.co.uk/news/10412057>

<http://en.wikipedia.org/wiki/The_Mosquito#Opposition>

<http://en.wikipedia.org/wiki/The_Mosquito#Legal_status>

[http://www.liberty-human-rights.org.uk/issues/young- peoples-...](http://www.liberty-human-rights.org.uk/issues/young-peoples- rights/human-rights-and-the-mosquito.shtml)

[http://www.dailymail.co.uk/news/article-513822/Buzz- Outcry-C...](http://www.dailymail.co.uk/news/article-513822/Buzz-Outcry- Childrens-Tsar-says-ultrasonic-mosquito-device-breach-teenagers-human- rights.html)

</comment><comment><AUTHOR> I enjoyed scrolling to the bottom to listen to the different sounds the device can produce. The disclosed age/frequency pairs seem remarkably accurate and, of course, the sound is quite annoying.

</comment><comment><USER3> My local library solved this problem by blasting three different operas at obnoxious levels just outside the doorways.

It works, but it makes me cringe every time I walk into the library.</comment>


Swift open source – let the revolution begin - <AUTHOR> http://www.jessesquires.com/swift-open-source/ <comment><USER2> The open source release has been pretty amazing so far, and I believe it's without precedent in Apple's history (with the possible exception of ResearchKit).

I was afraid they would just toss a snapshot over the wall and leave the community to struggle with maintaining it (if anyone cared to). At best, I thought we might get some regular snapshots and discussion.

Instead, everything is out in the open, the team at Apple is apparently pushing to the same repository we get to see, they have an open bug tracker, they're actively soliciting and discussing proposals from the community, accepting patches from the community, etc.

This is business as usual for most open source projects, of course, but to see it coming from Apple blows my mind a bit. It's really great to see.

<comment><USER3> There is some precedent at Apple: WebKit is also developed in the open.

<comment><USER4> Didn't it have to be because of KHTML?

<comment><USER3> No, originally Apple just provided huge patch sets. Here is some history from 2005, a few months before WebKit moved to a public CVS repo: [https://blogs.kde.org/2005/05/13/webcore-khtml-firefox- know-...](https://blogs.kde.org/2005/05/13/webcore-khtml-firefox-know-your- facts)

<comment><USER2> Good example! And yes, KHTML's license requires Apple to release the source code for their changes, but it doesn't require them to do so in anything like a nice fashion. You can comply with the (L)GPL with tarballs and silence- implying-raised-middle-fingers rather than public repositories and bug trackers.

<comment><USER5> It goes even farther than that. They could have separated most of their work out into separate modules that linked with the LGPL code from KHTML, and all they would have to do to comply with LGPL is provide a way for the user to replace the LGPL code. They would not have had to release the source for their modules.

LGPL is quite friendly to proprietary code.

<comment><USER6> > They could have separated most of their work out into separate modules that > linked with the LGPL code from KHTML, and all they would have to do to > comply with LGPL is provide a way for the user to replace the LGPL code.

And indeed, they _do_ do this, I think; a lot of WebKit is BSD license.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Excellent summary.

I'm really happy that Apple open-sourced Swift in this way. However, most of the ~400 pull requests are fixes for single typos. I hope that managing the GitHub issues won't become too much of a burden for the main developers (those with write access to the repository).

<comment><USER8> It's not a very hard problem to solve though. Just fix the typos, and don't introduce (many) new ones.

The people contributing those fixes are doing so because they want to contribute, and typo fixes are very easy to be certain about that it's an improvement (without a chance of introducing regressions, etc.).

Of course, as the easy-to-fix problems are eliminated, focus will shift to finding more meaningful ways to make improvements, or just using the language which has fewer problems as a result.

<comment><USER9> Yeah, it's _looks good_ on your GitHub profile to be a 'contributor' to Swift.

<comment><USER10> This brings up an interesting problem to solve:

How to tell if something is a "real" contributor rather than someone who sends the occasional spelling fix. I imagine recruiters would be interested in some way to easily tell this.

<comment><USER11> All they have to do is ask them in the phone screen "So what did you contribute to Swift?"

<comment><USER12> "I analysed the swift codebase for character sequence problems and actively contributed in reducing these. My contributions were responsible for eliminating hundreds of possible issue reports to the project."

</comment></comment></comment></comment></comment></comment><comment><USER13> I'm excited about Swift but is there any reason someone who is not making money as an iOS dev but knows objective C well should drop everything in learn it (serious question)?

My initial opinion was swift does a lot of things much better, (no header files, new operators, etc.) but learning a new language takes a long time + it appears a majority of code is still in objC

<comment><USER14> sometime in the future, Apple will begin releasing swift-only APIs. it's unclear that one should "drop everything", but swift usage will only increase in the future. in addition, as a company, it will become difficult to hire new people if you don't try to move to swift at some point.

ymmv, of course. i'm new to iOS land and i write objective-c exclusively during my day job. that being said, the difficulty in iOS development (in my experience) is not in the language, but the APIs, abstractions, and patterns - and they are the same regardless of whether you're using swift or objective-c

<comment><USER15> I mean sometime in the future will probably be pretty far away for Obj-C developers.

"Objective-C is not going away. We still love Objective-C as a language; we still very much depend on Objective-C and do a tremendous amount of work in Objective-C here internally at Apple," Federighi told Ars. "We'll be supporting Objective-C and continuing to evolve it as necessary to fit into this evolving world. We do think that Swift is the language that we recommend for new developers to our platform who are investing for the future and building new apps. We think Swift is absolutely the right place to start. But we'll continue to maintain, advance, and support Objective-C for as far as we can see."

From [http://arstechnica.com/apple/2015/12/craig-federighi- talks-o...](http://arstechnica.com/apple/2015/12/craig-federighi-talks-open- source-swift-and-whats-coming-in-version-3-0/)

</comment></comment></comment><comment><USER16> Swift is a good language, but compared to things like Python, the syntax is still not as clean and intuitive.

It's definitely a much better improvement of Obj C and I would have never built 3 apps in the app store without it, but I don't see it going out of the iOS dev environment anytime soon.

<comment><USER17> I'm not sure that this is completely the same, but when node.js was introduced it provided a server-side programming language that a ton of web developers were familiar with.

Swift is doing something similar now that it's open source there is a huge community of iOS (and to a smaller extent Mac) developers who are excited that they can code on other platforms (or will be able to in the near future) using a language they already know and love.

<comment><USER4> Honest question: how common are non-GUI Objective-C apps? So far as I know, Objective-C has been available outside of Cocoa for a long time, but you never hear of people using it for non-Mac/iOS apps.

Is Swift different in this regard? Is more of the standard library open in Swift vs. in Obj-C? Any reason to expect it's non-Apple uptake will be better than Obj-C?

<comment><USER18> Objective C was poorly supported outside of the Apple ecosystem. Plus Objective C as a language hasn't been all that preferable to most developers. There was basically no reason to use Objective C at all outside of iOS and Mac development.

Swift, on the other hand, will now have full Apple support on Linux, and is a much nicer, and potentially more useful language. I think that with some effort on the community's part, it could become a serious contender for server side development.

<comment><USER19> I tend to agree. I've been using Swift off and on pretty much since its inception, and I like it well enough that I'd consider it for server-side stuff once the ecosystem's worth anything. My hope is that it brings a little sanity to things by presenting a sufficiently trendy alternative to Golang so I can deal with that a little less often (but that's only hoping).

</comment></comment></comment></comment></comment><comment><USER20> I wish I could use the Swift compiler from the command line instead of having to download a 10GB XCode monster over my shitty 14kb modem that will take a couple of years.

Is there a swifter option?

<comment><USER21> 14kb ? Are you still on 14.4k from 1991 ?

<comment><USER20> Well yes, I live in Venezuela.

Thank socialism for that.

</comment></comment></comment><comment><USER22> I love Swift, it's a great tool.

</comment><comment><USER23> It seems to be the same effect as people getting Macbooks because... they have an Apple logo on them.

Technically, either Rust, Python, or Go is superior to Swift in every usecase it has. It doesn't fill a niche, its just Apple would rather reinvent the book than use an alternative on iOS, and they wanted clean compatibility with their other NIH language Obj-C. Its a nice compromise language for applications, but it is currently an app language without a framework outside Apple operating systems.

Besides that ecosystem compatibility its just worse than the alternatives besides the whole Apple is behind it so everyone is developing in it because they dream of working at / for / with Apple for some reason. Are Mozilla, Google, and and Guido just not sexy enough anymore?

<comment><USER6> > Technically, either Rust, Python, or Go is superior to Swift in every > usecase it has.

How so, exactly? The only one on that list I'd say maybe to is Rust.

<comment><USER24> Swift as a language may not be superior to go in itself ( quite the opposite imho), but the fact that go chose a specific type of concurrent programming and built their language around it makes it more straightforward.

With swift, designers chose not to choose. Which means you'll resort to using libraries ( basic threads with gcd or C libraries such as libmill, or libuv), which means future incompatibilities between codebases that chose different models.

<comment><USER25> No. GCD is not 'basic threads', GCD is a concurrency model based on executing blocks (closures) on queues. Threads are abstracted away by GCD. NSOperationQueue abstracts even further to provide a higher level concurrency model. Or you can go down the stack to NSThread to actually get your 'basic threads'.

The programmer gets to choose the level of abstraction appropriate to the task in hand.

<comment><USER24> let's say gcd is still much lower level than channels+select or asyncio+single run loop or actors+shared nothing.

At the minimum, i would say it's much more flexible but also much less opinionated.</comment></comment></comment></comment></comment>


"Computers Are Useless. They Can Only Give You Answers" (2011) - <AUTHOR> http://quoteinvestigator.com/2011/11/05/computers-useless/ <comment><USER2> I'm not sure this quote is as insightful as it's made out to be.

Questions and answers are not a one-way system of thinking. Who hasn't thought of more questions after being given an answer?

For example, statistics require a computer to calculate. They answer questions like "what is the unemployment rate?". Once you get a number, say a time series, you are going to ask "what affects the unemployment rate", essentially asking what the generating function is. This in turn leads to more and more calculations, a whole web causality.

So computers are not providing questions any less than answers.

<comment><USER3> _You_ asked the question here, not the computer. There is causality there, but it's one-sided: ask a question, get a response, and use the response to inform a new question. In other words, nothing about the response _itself_ begs the question.

Edit: "One-sided" is probably ambiguous. What I mean: You don't ask the computer _why_ it responded the way it did to your initial question, at least in any meaningful sense. You understand, abstractly, that the organization of instructions in the computer's program interacted with the input to produce an output. You might ask _yourself_ why the response is something unexpected, but it seems strange to ask a state machine for a reason in the same way that we might ask a child to justify their dislike of brussels sprout.

<comment><USER2> >> You asked the question here, not the computer.

But the computer can be coded to do causal calculus. Which is an elegant way for it to reason about the observations it sees. The data tells the machine what is a possible graph of causality, and what is ruled out. Adding more data changes the graph. Now you could say the machine can't dream up what to try to measure that's not already there, but I don't see why it's terribly different from what a person does; a person just happens to have a very wide range of experiences to draw from.

About the child and the brussel sprout, it's because they don't like the taste. They don't like the taste because they're evolved to like certain tastes, where the term "evolved" hides a complex history of genetic interaction with the environment, and "taste" hides parameters discovered during this interaction. Essentially, the child has certain priors in his head about what's good for him. Not all that different from a calculating machine.

Now the child may not understand this, because he can't consciously examine the chemicals in his brain, but the computer is built in such a way that we can, so we tend to think the computer is somehow less complex.

<comment><USER3> > But the computer can be coded to do causal calculus. Which is an elegant way > for it to reason about the observations it sees.

I'm not convinced that number-crunching could be fairly cast into the same pattern of rationality as reasoning. For one, reasoning seems to imply the potential for a multitude of (not necessarily correct or even veridical) outcomes - it is possible to reason as a human being about what to eat for dinner without predicating that on an "acceptable" meal.

In contrast, there is only one (and necessarily veridical) outcome for the sort of "reasoning" that a computer does. You can make that outcome very complex by virtue of a very complex program, but any deviation from it would be something _wrong_ with the machine or program, not just another outcome.

> About the child and the brussel sprout, it's because they don't like the > taste.

Possibly. It could also be that they've never had them but have heard their friends complaining about them, or that they just don't like the way they look.

What's interesting is that any of these would be a reasonable response from a child (or an adult). Contrast that to the explanations we would accept for a machine failing to produce the correct outcome - would it be _reasonable_ to say (beyond in a colloquial sense) that my desktop "didn't like" the input I gave it?

<comment><USER2> >>In contrast, there is only one (and necessarily veridical) outcome for the sort of "reasoning" that a computer does.

Why? Say a human is driving a car, and a kid steps out on the road, you can swerve, or you can stop. Same goes with a computer. Except with a computer, you can have all the stats about the likely outcomes to hand immediately and choose whichever is marginally better. It's only the right choice to the extent that the data says one choice is superior to the other. You can easily imagine that if the choices are close to each other, the machine would just pick one of them. Or even do whatever improves the data gathering, eg if one of the choices had been picked a lot less that the other.

In general there's scope for optimization when you have data and calculation power, but there's also scope for satisficing, ie doing any of several things that will give an acceptable outcome.

>>would it be reasonable to say (beyond in a colloquial sense) that my desktop "didn't like" the input I gave it?

Yes. The only difference between the kid and the computer is the kid evolved naturally, and one of the things he got from evolution is self-interest. Of course a machine can have self-interest as well, but we don't use the language of preferences to describe it.

</comment></comment></comment></comment></comment><comment><USER4> Such fascinating comments on here. I think it would be interesting to find a provocative quote said by a computer scientist about art and then see how artists debate/discuss the quote's meaning.

My 2 cents on this quote:

1\. This quote is about art. Not about computers. Picasso was an artist (and a great salesman, PR-man, self-promoter btw). But he didn't know shit about computers or "calculating machines" or whatever octogenarians called them "mechanical brains" back then. This quote is about art.

2\. The quote seems to be widely misunderstood by a surprisingly large percentage of people who don't get it. Firstly, it's just a quote. I'm not sure why it gets as much attention as it does, but everyone needs to chill. I feel maybe people get offended quickly by it or get caught up in who said it and then everyone forgets to read it closely...Here goes:

The quote is illogical. The quote makes no sense. This is prima facie. Something cannot be "useless" and have a use. Even if a thing has one single use, it is not and cannot be called, "useless". Assuming computers only give you answers, that would be a use and so they cannot be called "useless". e.g. can you say "Thermometers are useless, they only tell you temperature" or "Easels are useless, they only hold the paintings"? Hopefully you see illogical structure and fallacy of what he is saying.

Funny how a computer would not accept the logic of the quote. But I don't think that was intentional.

Next: Without going into to much context on Picasso's view on art and technology (which he was not against), I think one way to understand the quote is to flip it: What is the point of art? A question asked by many for a long time..."Art is useless. It just gives you questions".

<comment><USER5> It's illogical, but surely you can see that it's a rhetorical device in the service of his message.

New knowledge comes from asking novel questions.

I haven't yet seen a computer pose an interest question, something no one has ever thought of yet. I don't mean questions about art, or meaning, or "What happened in 1750?" but novel questions in mathematics, cosmology, physics, etc.

They do seem to be answer-calculating machines.

</comment></comment><comment><USER6> This seems to be a restatement of Richard Hamming's motto expressed in _Numerical Methods for Scientists and Engineers_ (1962):

 _The purpose of computing is insight, not numbers._

See [https://en.wikipedia.org/wiki/Richard_Hamming](https://en.wikipedia.org/wiki/Richard_Hamming).</comment>


Cakes, Custard, Categories and Colbert - <AUTHOR> https://golem.ph.utexas.edu/category/2015/11/cakes_custard_categories_and_c.html <comment><USER2> _Cakes, Custard and Category Theory_ / _How to Bake Pi_ is very similar to _Zen and the Art of Motorcycle Maintenance_ : it has not much of anything to do with the subjects mentioned in the title. You will find some recipes, sort of, and you'll find some category theory, sort of. But if you're looking to learn anything about either, this is not the book for you.

As another reviewer said, this is a love letter from the author to mathematics. But, like most love letters, if you are not the sender or the receiver, it won't make a great deal of sense. There are many anecdotes from the life of a mathematician here, and many short vignettes of mathematics. But not enough details about either to make some kind of autobiography or some kind of informative math book. Unfortunately, since I'm neither the author nor Mathematics, I'm left with nothing but the feeling that I've been reading something that was not intended for me.

Here's one example of the former: "I once went to a party and decided to try an experiment: I refused to tell anyone what my job was. Telling people you're a mathematician produces all sorts of odd responses. Some people become afraid, and extract themselves very quickly, but others immediately start trying to demonstrate how 'intelligent' they are. Yet others immediately start trying to belittle me...." Unfortunately, she never tells us what happened in the experiment.

</comment><comment><USER3> Random, I just got this book from the library...</comment>


Buttons in UI Design: The Evolution of Style and Best Practices - <AUTHOR> https://uxplanet.org/buttons-in-ui-design-the-evolution-of-style-and-best-practices-56536dc5386e#.qri65umvj <comment><USER2> Other button trends:

1\. Hidden buttons that only appear when you mouse over them. These are used for options that reduce revenue, such as opting out of ads. Facebook does this.

2\. Dialogs where the only button options are "Yes, monetize me" and a much smaller "Close dialog". Google's "Switch your search engine to Google" popup does this.

It used to be that such obnoxiousness was confined to scam sites. Now it's mainstream.

<comment><USER3> The inevitability of AB testing for particular metrics will lead companies to create dark patterns.

<comment><USER4> Although creating dark patterns is quite different to deciding to actually keep and use them. Tricking users is no less scummy just because it's Google or Facebook (or Microsoft or Amazon, to name two other recent repeat offenders) doing it.

</comment></comment></comment><comment><USER5> I'm not sure whether I'd call most of that "evolution", as it's not like the most fit styles survive. It's mostly about fashion. Candy buttons today, flat non-entities tomorrow. Rarely is there something that truly _improves_ upon predictability/usability, it's mostly just bell-bottom pants and crinolines.

<comment><USER6> I'm guilty of jumping on the flat button band wagon a few years ago. I manage an internal application ui team at a pretty big company and despite their having less affordance than before, there hasn't been complaints.

Regardless, for our new version of UI patterns, I'm bringing back the rounded corners. Guess what? Pages are already looking more usable, and frankly easier to design.

It takes a very talented designer to create a beautiful looking page using flat, minimal motifs. And truth be told, most non-designers don't share the same aesthetics.

But if you throw in rounded corners and very subtle gradients and shadows... and all of a sudden, designing a good looking page is much easier.

And frankly, that's what I need in pressure cooker enterprise environment.

</comment></comment><comment><USER7> Missing the classic gel pills from web 2.0 days

<comment><USER8> Missing the classic Mac OS buttons to begin with. It's really strange to read about "early days" and see a dull Windows 95 button.

</comment></comment><comment><USER3> The real 'ghost' button in iOS 7 was unframed, and was just blue text on a white background, normally slightly larger. That's where most of the 'how do I know what's a button' complaints came from AIUI.

</comment><comment><USER9> I always considered ghost buttons to be ok, provided they are used as a secondary button in conjunction with a primary button. I'm not sure what the alternatives would be to indicate button hierarchy.

<comment><USER10> Yeah, you can definitely have your buttons look less like buttons if they are in places that people expect to see buttons.

For example at the bottom of dialog two short bold text items are move acceptable then text-only buttons in other places.

</comment></comment><comment><USER11> > Rectangular shaped buttons have been introduced into the digital world a > long time ago and users are familiar with them. Some research suggests that > rounded corners enhance information processing and draw our eyes to the > center of the element.

I found this bit pretty interesting, and anecdotally correct. It took me a while to figure out how to compose an email in Android's Gmail client when they made that button a circle. I still find myself looking for it a bit too long sometimes.</comment>


Surely You Must All Be Joking: An Outsider's Critique of Quantum Physics - <AUTHOR> https://arxiv.org/abs/1109.0880 <comment><USER2> Great read (takes 2 hours).

tl;dr Quantum entanglement may well be an artifact of Quantum Electrodynamic (QED) tools and not a real thing.</comment>


Seth Roberts' Final Column: Butter Makes Me Smarter - <AUTHOR> http://betabeat.com/2014/04/seth-roberts-final-column-butter-makes-me-smarter

<comment><USER2> This is very interesting information for me. I'll have to test it.</comment>


GE's Augmented Reality Page - <AUTHOR> http://ge.ecomagination.com/smartgrid/?c_id=Matter#/augmented_reality <comment><AUTHOR> Pretty cool! You can see it in action here: <http://www.youtube.com/watch?v=DkqtklABgGQ>

</comment><comment><USER2> This is pretty interesting, but it's been done before: <http://www.boffswana.com/news/?p=392>

Anyone else see find humor in having people waste paper in the name of Eco- Friendliness?</comment>