Slack Workflow Builder - <AUTHOR> https://slackhq.com/automate-tasks-in-slack-with-workflow-builder <comment><USER2> I think the devs at Slack have run out of things to do.

"Hey Jim, instead of a single email inbox with threaded travel requests, we are gonna throw them all in a single chat room with no organization or queuing system. Be sure to check it every 10 minutes, or you'll miss the ones that get pushed off the screen! It's designed exactly like a chat room, but it doesn't need any chat functionality at all (and actually operates nothing like it). Good luck!"

<comment><USER3> I get the impression they're going to get more into collaboration tools. Better document/file sharing, some light project management features, etc.

I'd settle for being able to manually sort my channels.

<comment><USER4> I use Slack sparingly (mostly on Microsoft Teams and Discord), but does Slack have a equivalent to Discord's Ctrl+K or Teams' command bar to search for a channel/user? That's mostly how I started getting around in those applications.

<comment><USER5> On macOS it's Cmd-J or Cmd-K, so I know it does exist, just not sure of the shortcut key on your platform.

</comment></comment></comment></comment><comment><USER6> This looks potentially pretty useful.

A couple things keep me from trying to manage issues in Slack (like the travel example): threads don't have a filterable status or a way to mark them resolved, and a channel can't be ordered as most recently updated. What workarounds are popular to address these limitations?

<comment><USER7> What if you set up 2 channels - #request-active (where task threads are submitted) and #request-closed (where task threads are archived and no other posts are allowed).

When the work is completed, the fulfiller inserts a reaction. X hours later, that work is moved from #request-active to #request-closed through an automated bot.

<comment><USER8> That's how we do moderation: [https://github.com/CareerVillage/slack- moderation](https://github.com/CareerVillage/slack-moderation)</comment></comment></comment>


The Pentium: An Architectural History (2004) - <AUTHOR> http://archive.arstechnica.com/cpu/004/pentium-1/m-pentium-1-1.html

<comment><AUTHOR> it seems that you have to manually edit the URL to m-pentium-1-2.html and so on for the other pages.

</comment><comment><USER2> This is pretty fascinating, but all the text piled on the right (in FF) and links to articles about Sims 2 and Far Cry make me feel like I've wandered off into the part of the building I'm not supposed to be in.</comment>


Ask HN: Launching a new site next week, what do you suggest to promote it? - <AUTHOR>

Hi,
I'm launching a site this Tuesday and was wondering if there was anyone from the HN crowd who'd like to share their experiences and advice. I followed some of the advice on the balsamiq blog (http://www.balsamiq.com/blog/?p=198). My projected ramp up is as follows:
1. Set up a beta test with about 30 users. This has started to die off a little so I'm going to try to get users motivated with number 3. 2. Contacted bloggers in the niche I'm targeting (Information Security) and the people hosting the platform I'm using to promote the site on launch. 3. Set up a competition for beta testers with £100 for the first to reach 100 posts/comments.
Is there anything else others would recommend? Have any HN users had any similar experiences, if so what would you do? <comment><USER2> Just launch. Don't promote at first, except to those 30 users. When you stop getting useful complaints from the 30, start expanding it. Eventually you'll have to think about promotion, but not yet.

<comment><AUTHOR> That's an interesting approach, similar to the soft/hollywood launch discussion earlier (sorry can't find the link).

Have you got any examples of startups that have launched successfully in this manner?

<comment><USER2> Google comes to mind. The traffic you get from bloggers/early adopters is rarely useful anyway, unless your service is particularly targeted at them. Before you spend resources on marketing, make sure you have your product where you want it. Unless you have a vast budget, the only way to do that is iteratively.

</comment></comment></comment><comment><USER3> * Start running AdWords even if for no other reason to start learning how to run it successfully 2-4 months from now (there is a learning curve)

* Set up a Google Sitemap.

* Crete your blog, post useful content, and get it indexed

* Make great products</comment>


Microsoft Monocles? Redmond to make its own Google Glass? - <AUTHOR> http://news.cnet.com/8301-17852_3-57578044-71/microsoft-monocles-redmond-to-make-its-own-google-glass/

<comment><AUTHOR> I would also like to point out an old comment I made: <https://news.ycombinator.com/item?id=4819045> :)</comment>


The Coca-Cola Wars: Can anybody really tell the difference? - <AUTHOR> http://daily.jstor.org/the-coca-cola-wars-can-anybody-really-tell-the-difference

<comment><USER2> By the way there is a huge tech connection to this story:

The man behind the Pepsi challenge was John Sculley, who while he is know for firing Steve Jobs also came up with a few amazing products like the Mac II, HyperCard and making CD-ROMs a standard addition to a PC.

</comment><comment><USER3> I feel like setting up a double blind cola-vs-pepsi test now. I don't like Pepsi, but maybe that's just being irrational.</comment>


China's Schoolkids Are Now Officially the Smartest in the World - <AUTHOR> https://fortune.com/2019/12/03/china-students-prisa-oecd-education-survey-smartest/ <comment><USER2> My country, Argentina, got down to 66 of 73 countries tested in the PISA tests. The education system there went on to a process of destruction in matter of 20 years.

</comment><comment><USER3> This kind of rankings are complete nonsense, why does anyone pay attention?

</comment><comment><USER4> Not all of China was included, just Beijing, Shanghai, Jiangsu, and Zhejiang.

</comment><comment><USER5> Germany fell even further, after massive amounts of money spent.</comment>


Ruby AMF on Rack - <AUTHOR> http://github.com/warhammerkid/rack-amf

<comment><USER2> AMF = Action Message Format (AMF) is a binary format used to serialize ActionScript objects. It is used primarily to exchange data between an Adobe Flash application and a remote service, usually over the internet.

source: <http://en.wikipedia.org/wiki/Action_Message_Format></comment>


10 Lessons Startups Can Learn From Superheroes - <AUTHOR> http://www.docstoc.com/docs/1939358/10-Lessons-Startups-Can-Learn-From-Superheroes <comment><USER2> A managing director of Draper Fisher Juvertson, Scott Lenet gave a talk at the University of Michigan on the same topic.

IMHO, the quality was better. Also, it's good to have sound/video attached to a presentation.

[http://inst-tech.engin.umich.edu/media/index.php?sk=ess-w08&...](http://inst- tech.engin.umich.edu/media/index.php?sk=ess-w08&id=1769&p=2)

(skip ahead)

</comment><comment><USER3> I stopped reading after the wolverine slide.

Seriously though, it's this type of stuff that helps me open up TextMate for another day of hacking. It's not so much the content that matters, it's the shot of "Yeah, let's do this".

</comment><comment><USER4> What a completely pointless presentation. And the site it was on looks terrible. I find it disappointing that all of the document-hosting sites have poor design aesthetic. Text needs good aesthetic the most.

</comment><comment><USER5> Wow, I can't decide if that was a great presentation or the greatest.</comment>


Rsync.net Warrant Canary (2006) - <AUTHOR> http://rsync.net/resources/notices/canary.txt

<comment><USER2> More info: [https://en.wikipedia.org/wiki/Warrant_canary](https://en.wikipedia.org/wiki/Warrant_canary)

</comment><comment><USER3> I don't see the usefulness. You can sign a lie cryptographically just as well as a fact.

<comment><USER4> The government isn't allowed to force you to lie; they can force you to be silent. By updating this regularly it then becomes apparent when you have been forced into silence.

<comment><USER5> _" The government isn't allowed to force you to lie"_

Is that actually the case?

<comment><USER6> If I set up a contract with you saying that I will not submit to any government subpoenas, and then the government subpoenas me, can I refuse, because "the government cannot force you to break contracts?" (The answer is No.)

If you want to practice civil disobedience, do it, and be straightforward about it. If Rsync.net were _really_ to try to exercise this silly clause, it would be a giant distraction from what I presume is their actual complaint.

<comment><USER5> I more or less agree with the second half of your post.

Regarding the first part, I've seen a couple places the claim that the government can't force people to lie - I don't know of any support for this, but also haven't conclusively heard that it's not the case (certainly not from a lawyer). I'm highly skeptical, but wanting to know what support the people claiming this think they have. The fact that you can name another potential constraint that doesn't hold is irrelevant, isn't it?

</comment></comment></comment></comment></comment><comment><USER7> Instead of the somewhat fuzzy method of dating via news, couldn't they combine this approach with that recommended by Errata Security to use bitcoin as a public ledger? [http://erratasec.blogspot.com/2013/05/bitcoin-is-public- ledg...](http://erratasec.blogspot.com/2013/05/bitcoin-is-public-ledger.html)

<comment><AUTHOR> Dating with news can be somewhat fuzzy, which is why we always take our news from the financial press, and attempt to datestamp with "material" information ... that is to say, news with a very high monetary value that the market is racing to receive.

You could (conceivably) make up plausible future stories, but not things like quarterly results, lawsuit outcomes, etc.

<comment><USER8> Another good source of fixed-in-the-past yet unpredictable data is the closing price of a collection of stocks from the previous day. This would make verification easier to automate.

<comment><USER9> Easy to automate might not be the best goal for a system like this :)

</comment></comment></comment></comment><comment><USER10> Feds: "Continue to update the canary or you disclosed the secret warrant and we throw you in prison."

<comment><AUTHOR> Yes, but note that this is updated not just on our website, but on the storage arrays themselves - some of which are in Zurich and Hong Kong.

So the above scenario is a possibility, but then imagine the followup:

Feds to Zurich Canton: Tell swiss national X to update the warrant canary or ...

We have it spread out geographically for a reason.

<comment><USER11> You'll be forced to tell your overseas colleagues that you have received no such warrants, and they should update the canary to reflect that. Unless your architecture is set up so they would somehow immediately become aware of these warrants, there's no way they're even going to know they exist.

Legal "hacks" like this rarely work.

<comment><USER12> Do you have any examples of them not working?

<comment><USER11> Well, the first thing I could think of was this gem: [http://www.loweringthebar.net/2013/01/can-you-carpool- with-a...](http://www.loweringthebar.net/2013/01/can-you-carpool-with-a- corporation.html)

Not the most perfect example, but it goes to show what happens when someone unfamiliar with the law makes "logical" (to them) assumptions about loopholes that exist. That blog is a treasure trove of gems like the above.

</comment></comment></comment></comment></comment><comment><USER13> As discussed in a previous HN thread, the courts might still see this as a notice that a warrant has been served, despite it being "said through not saying."

Has rsync.net had the opportunity to see these arguments play out?

<comment><AUTHOR> No, we haven't, and that was the reasoning behind the canary being posted on the individual storage arrays (not just individual foreign locations, but each individual storage array).

As of today, I know of no other firm running a warrant canary, and I don't think any of the librarians[1] were ever challenged with theirs. As with all of this, it is uncharted.

[1] [http://en.wikipedia.org/wiki/Warrant_canary](http://en.wikipedia.org/wiki/Warrant_canary)

<comment><USER14> I think you should try to come up with a url convention that other sites can adopt similar to /favicon.ico

This is too deep to be followed: /resources/notices/canary.txt

What about something like /warrant-canary.txt ?

</comment></comment></comment><comment><USER15> It's a neat idea, but you'd still need to trust rsync.net. If you start with the assumption that you cannot ever trust them, then you can use them(if needed) as a 3rd party storage site for encrypted files.

</comment><comment><USER16> You could become a lifelogger and have a realtime webcam that shows you reading incoming mail.

</comment><comment><USER17> "Attention! Today we have received no secret warrants _cough cough_

 _wink_ _wink_ "

</comment><comment><USER9> Why is there a 2006 date in the title?

<comment><AUTHOR> This document was first published in 2006. We've been operating the warrant canary for just over 7 years now.

<comment><USER9> Wow, that's impressive. I'm surprised that date is not mentioned on the notice page (or on wikipedia).</comment></comment></comment>


Disappointed at Google I/O. Are You? - <AUTHOR> http://blog.roozbehk.com/post/45274456197/googleio Second year in a row! I was unable to purchase a ticket for Google IO. I'm just amazed that Google keeps getting this so horribly wrong. This year I am blogging it so google can make a better experience for the rest of us developers. <comment><AUTHOR> I'm just amazed that Google keeps getting this so horribly wrong.</comment>


The old guard of Mac indy apps has thrived for more than 25 years - <AUTHOR> https://www.macworld.com/article/3327502/macs/mac-indy-apps-thrived-for-more-than-25-years.html <comment><USER3> I've maintained my Mac project for 20 years for free (despite paying $99/year these days) and I can say quite a bit about the experience.

It is a tremendous amount of work, far more than most people would imagine, just to _keep up_ (i.e. zero features, just keeping the code base in sync with the platform). I ported the entire code base from System-6-style to Mac OS 8, complete with fancy Appearance support and a lot of different callback mechanisms and other OS features of the day. I ported networking code away from deprecated layers. I ported from 68K to PowerPC, to Intel 32-bit, and now 64-bit is required. I ported file management code multiple times to entirely different APIs. I added tons of Objective-C. I migrated compilers from MPW, to CodeWarrior, to GCC, to LLVM. I replaced, painstakingly, _thousands_ of lines of Carbon-style code with entirely different Cocoa idioms. I redesigned interfaces that were once described by Rez input files, to use Interface Builder (multiple times, as IB kept changing). I added code-signing. I split a single-application architecture into sub-processes with OS services. And these are just things I can pick off the top of my head; I am sure there are many more. Again, this is just to _keep the damn code working as a nice modern app_ , before you even _add_ work to make it do whatever it's supposed to do.

Also, in every single case, it is noteworthy that the OS features I worked so hard to adopt were _eventually thrown out by Apple anyway_. This means I fully expect 10 years from now that even today's code isn't going to "last". Some of the changes were particularly insulting, I would add, since Apple at the time made bold statements about those APIs being "the future", and such; for instance, after completely redesigning an application to use the Mac HIToolbox "properly" in every possible way, it _really hurt_ when Apple just decided they didn't give a damn about Carbon to the point where it _wouldn't even compile anymore_ a few releases back.

I am fine with this because this is the kind of thing I like to work on. I do wish though that more people would realize how much effort software maintenance really is. Unfortunately, a heck of a lot is hidden behind simple- looking UIs and most programs will be a lot more effort to build than they appear to be.

<comment><USER4> As an iOS developer, I feel the same. To quote Steve Jobs:

"This is a field where one does not write a principia, which holds up for two hundred years. This is not a field where one paints a painting that will be looked at for centuries, or builds a church that will be admired and looked at in astonishment for centuries. No. This is a field where one does one's work and in ten years it's obsolete, and really will not be usable within ten or twenty years."

<comment><USER5> That seems by design more than anything. Outside of iOS, plenty of software doesn't become obsolete in ten or twenty years. Even on the Mac itself, you still have all the classic Unix utilities. Will grep ever become obsolete? People are still using vi/m after 42 years despite all manners of new text editors and IDEs popping up.

When it comes to hardware (which is probably what Steve was most concerned about), there's still plenty of electronics that can stand the test of time. I'd say the IBM Model M will be admired and looked at in astonishment for centuries - no modern keyboard has managed to make it obsolete it in the last 35 years.

If there's Amigas running infrastructure and DOS boxes still working in the wild, I'd wager there's still some shop somewhere using an Apple II as part of its inventory system.

<comment><USER6> _Even on the Mac itself, you still have all the classic Unix utilities. Will grep ever become obsolete?_

But you can't run 68K Mac software or PPC software on a modern Mac. Should Apple still include 68K and PPC emulators in MacOS.

</comment></comment></comment></comment><comment><USER7> For 11 years I've been selling a Mac app I created. It does get monotonous working on the same code base for so long. I find it unenjoyable having to update the app to keep up with modern UI trends, and to cope with changes to the OS.

Things that have happened in the last 11 years include the death of PowerPC support, the introduction of GateKeeper, the introduction and apparent temporary neglect of the Mac Apple Store, the switch to make codesigning effectively required, and the end of life of Apple's own Java distribution (which was bundled with macOS until a few years ago).

Dealing with these takes time but doesn't really make my product better. I typically need to have an update ready by the time Apple releases a major OS update, or I'll have frustrated customers.

This is something I didn't realise I was committing to when I created version 1 back in 2008.

<comment><USER8> Isn't that part and parcel with running a business? Else it would be "write once in 2008 and print money for eternity".

<comment><USER9> It's easier developing for the web, where your code is less likely to break or require drastic changes over time. But yes, almost all businesses need at least some ongoing maintenance.

<comment><USER10> Try running a PHP app from 2008, today, and let me know how that works for you. There are decent odds it wont run well on modern versions - I can go down and look at every other web technology and point out the same thing - <USER2> computer program lives in stasis (except possible on z/OS)

<comment><USER11> OTOH, an ASP.NET web app written in 2008 and not touched since then would probably still run happily now if you bumped its version up to .NET 4 or 4.5.

C# has had Linq and lambdas since 2007 so there's a decent chance the code would be decently pleasant to work with, too.

Some devs might find 2008 Web Forms apps a bit crufty in 2018 but if you squint and pretend your .aspx is inside a render method issued of a separate file, the mental model isn't all that different from a SPA.

<comment><USER12> With .net core the writing is on the wall that the full .net framework will go the way of .net 1.1 (the .net team highlighted that it is too burdensome to maintain both frameworks in parallel). I am not sure that the new Microsoft has the same commitment to support legacy code than the Microsoft of the last 20 years.

<comment><USER13> They've made it clear that .NET Framework will be supported for many, many years. It just won't be getting as many new features. The point of the discussion here is about depreciating and removing and breaking existing tech, which will almost certainly not happen with .NET anything. Note that even VBScript still gets security updates. It's unimaginable that anything targeting .NET Framework will break (short of a bug) for at least a decade, and probably much longer.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> I've been using BBEdit since OS9. I love precisely 2 things about it: it takes care to not break, and it takes care to avoid trends.

Everyone used TextMate, then everyone switched to Atom, then Sublime, now VS Code. I've played around with them and it's always a question of spending time trying to get the keymaps "right" and which plugin do I use on X to replicate the functionality of X-1.

You want to yell at Bare Bones and say, you must implement .tmLanguage or .tmTheme support now! You must support Python as a scripting language and get rid of AppleScript! You must, you must, you must!

But BBEdit doesn't break, and when it does release a feature comparable to the rest of the pack, it's solid and "fits", aesthetically and functionally. (Their recent "command-p-alike" is great, for example)

It doesn't have a giant themes or plugin site, but it can open files as big as your available RAM while staying fast. I'll give up a nice TM theme for "always works and never crashes".

(Please make JavaScript for Automation the defacto over AS!)

<comment><USER15> _but it can open files as big as your available RAM while staying fast_

This is BBEdit's (and TextWrangler's) biggest asset to me. When other text editors on any platform on any machine choke on large files, BBEdit just doesn't care.

<comment><USER16> Older versions of BBEdit and TextWrangler used to be able to open _enormous_ files (larger than entire system RAM) while remaining incredibly performant. I don't know how they did it, but it was magical and a killer feature.

Unfortunately, that stopped being the case since they refactored the text display UI somewhere around version 9.

<comment><USER17> Are you sure it was that good with large files? I used to be a TextWrangler evangelist until I noticed it was mangling large files. You'd change one character but the saved file differed by far more than one character. Medium- sized nowadays, hundreds of MB TSV files. About 10 years ago.

<comment><USER16> Yup. About 15 years ago, doing search/replace on multi-hundred-MB log files and SQL database dumps.

About 3-4 years ago it stopped being nearly as performant with large files (even a couple MB).

I've never had a problem with either BBEdit or Textwrangler mangling files. I can believe there may have been such a bug at one point, but I must have sidestepped it - perhaps it was caught and fixed quickly.

</comment></comment></comment></comment></comment><comment><USER15> For a lot of platforms, a company will produce a single piece of good software, and then milk it forever.

For the Macintosh, especially the small developers scene, there is a group of companies that consistently produce outstanding products. If they come out with a new program, you immediately give it weighty consideration because of the quality or utility of previous releases.

BBEdit, mentioned elsewhere in this discussion, is one of those. I'm also a big fan of Panic. I mention Panic because I spent the morning working with its terminal emulator Prompt on my iPad. I also use Transmit and Coda2 at work.

Can anyone recommend other companies worth keeping an eye on for new products?

<comment><USER18> _Can anyone recommend other companies worth keeping an eye on for new products?_

Anything coming from OmniGroup is generally great (if you need it). OmniGraffle has absolutely been a life-saver for me. When I have the time, I like doing slide diagrams in TikZ. But I've found that I can typically do in OmniGraffle in ten minutes what would take me hours in TikZ. So if time is a constraint, I will use OmniGraffle to create graphs.

I have also used OmniFocus for a while, which also worked great. (Though it was too strongly focused on GTD for me, so I switched to Things.)

<comment><USER19> Omnigraffle is why there's no Visio on Mac, which is probably a Good Thing™. ;)

Also, Omni has a cool name logo that almost reminds me of AVID's.

</comment></comment></comment><comment><USER20> This AMP link is barely readable on PC - this is the regular URL: [https://www.macworld.com/article/3327502/macs/mac-indy- apps-...](https://www.macworld.com/article/3327502/macs/mac-indy-apps-thrived- for-more-than-25-years.html)

<comment><USER21> Why do these amp pages not automatically redirect on desktop? They are becoming a plague.

</comment></comment><comment><USER22> Notably absent from this list is Ambrosia ([https://www.ambrosiasw.com/](https://www.ambrosiasw.com/)) and Panic ([https://panic.com/](https://panic.com/)).

BBEdit was my first "real" text editor, maybe along about 93 or 94. When it came out, it was far, far ahead of any other similar tools on either platform. It introduced a lot of future programmers to regular expressions -- whether that was a blessing or a curse might be debatable.

<comment><USER23> I tried to make a purchase from Ambrosia last night and it appears that their payment and fulfillment systems are inoperative. I had heard that was the case but I was being optimistic. They may have gone defunct without warning at some point in 2018.

<comment><USER24> It'll be a shame to lose gems like Escape Velocity. I know several people (myself included) have asked about acquiring the rights to the games but received no reply. It appears Ambrosia is indeed defunct.

<comment><USER25> You may be interested in [https://endless-sky.github.io/](https://endless- sky.github.io/)

</comment></comment></comment></comment><comment><USER26> If you're interested in this sort of thing, there's a lot of coverage in [https://secrethistoryofmacgaming.com](https://secrethistoryofmacgaming.com)

</comment><comment><USER27> Good article but I gotta ask why it says "indy" in the title and then "indie" in the article itself? Using "indy" is so obviously wrong.

<comment><USER28> There is also no such institution as "Dartmouth University," so I would guess that editors are in short supply over the holidays.

<comment><USER29> Well there was, but it was taken down by Daniel Webster in front of the US Supreme Court.

It's a surprisingly common mistake though. I think I see Dartmouth University more often than Dartmouth College when reading non-Dartmouth materials.

</comment></comment></comment><comment><USER30> It's been twenty years since I last seriously used macOS, but I'll always have a place in my heart for BBEdit. I still have the BBEdit T-shirt I got when I was in high school, and proudly wear it when I work out. I even have print- outs from back then (remember printing things to read them offline?).

It was an _amazing_ text editor way back then, before I discovered Emacs & when my computer was too slow to run Alpha (and honestly, I don't think that I really appreciated Alpha at the time). BBEdit was fast, flexible and did everything I could want.

I wonder if they still have my name in their customer database? Maybe my license is still good …

</comment><comment><USER31> I started using BBEdit in the last few years, and mostly prefer it. I used emacs and vim for a couple of years each, so it's not because I haven't seen/used "better" editors. I think using only AppleScript as a scripting language really holds it back from a broader audience, and personally, I just don't script it, although I do use the option to _run_ scripts on my text from menus, etc. (Any language, Python, perl, whatever.)

</comment><comment><USER32> I love BBEdit to death because it is the exact opposite of what things like Atom and VSCode stand for. A lightweight, bomb proof text editor that can scroll through 100k+ line documents without a sweat.

</comment><comment><USER33> Nice article indeed. Two amazing products missing, probably because they came with OSX OmniGraffle and OmniOutliner; both classics that keep innovating and nowadays also run on iOS: [https://en.m.wikipedia.org/wiki/The_Omni_Group](https://en.m.wikipedia.org/wiki/The_Omni_Group)

<comment><USER34> "Innovating" ways to make you pay more when you buy Omnigraffle on iOS, and six months later find it doesn't work any more, but there is a "new" version you can pay full price for all over again.

<comment><USER33> That sucks for sure. I bought both for iOS. But hardly use OmniGraffle, OmniOutliner has worked like a champ though.

</comment></comment></comment><comment><USER35> I understand people like BBEdit, and this article is more than just about the popular editor. FWIW, I tried it, but for me, BBEdit just can't "defeat" vim, even on mac. Vim is now 27yrs, and actively maintained, and once learned, its power is unmatched imho. As for graphics conversion, I've never used the app mentioned in the article, rather always turned to netpbm, which is available in homebrew on mac. Still. Much respect for developers sticking to, and maintaining their well liked apps for the long haul.

</comment><comment><USER36> Rogue Amoeba is another one [https://rogueamoeba.com/](https://rogueamoeba.com/)

</comment><comment><USER37> How many of these fit in the Mac App Store with its sandbox restrictions?

<comment><USER38> I know BBEdit, GraphicConverter, and Fetch use some system hooks to integrate with Finder. I've never used PCalc and can't think of a reason it wouldn't work in a sandbox.

</comment></comment><comment><USER39> No mention of Panic here - they're definitely the first group I think of when I think quality indie Mac software.

<comment><USER40> Too recent. Panic was very late 90's, IIRC.

</comment></comment><comment><USER41> Hmmm... I just noticed my name is listed under "unindicted co-conspirators" in the "About BBEDit" menu box on version 11.6.8.

I'm pretty sure that's not me, unless it's a "easter egg" trick that shows a registered user's name in there.

They did, however, add a feature I requested in BBEdit 7.0 (rectangular text selections) which I still find kind of astounding and use almost daily.

I don't remember exactly when I first bought BBEdit, but it was in the mid- late `90s so it's been more than 20 years I've been depending on it.

Honestly, BBEdit is the main reason I still use a Mac. I'd switch to Linux in a heartbeat if BBEDit made a version to run on it.

</comment><comment><USER42> Like many, I really appreciate the role that BBEdit has played on the Mac. There's just one thing about it that really gets on my nerves, and that's the fact that auto-indent... doesn't.

</comment><comment><USER43> Another I fondly remember is Red Sweater: [https://red- sweater.com](https://red-sweater.com)

</comment><comment><USER44> Add Little Snitch and Transmission to the list :)

<comment><USER45> Transmission is not an indie mac app, it's a cross platform open source program, free both as in free speech and free beer.

Little Snitch is a malware vector, pretty much like PC "antivirus" software.

<comment><USER46> > _Little Snitch is a malware vector, pretty much like PC "antivirus" > software._

Wait, what? I personally found it annoying and poorly designed to the point that I uninstalled it, but I'd like to see the receipts on "malware vector" please.

<comment><USER44> yeah malware vector is quite an accusation</comment></comment></comment></comment>


Are businesses stockpiling Bitcoins in case of ransomware? If so, they shouldn't - <AUTHOR> https://davidgerard.co.uk/blockchain/2017/09/13/are-businesses-stockpiling-bitcoins-in-case-of-ransomware-maybe-a-few-but/ <comment><USER2> >Telstra's Cyber Security Report 2017 (PDF) echoes that last point — "Our research found that nearly one in three of the organisations who paid a ransom did not recover their files."

Yep, which plainly means that in 2/3 of cases paying the Ransomware actually allowed recovery.

So, _you_ are in desperate need and you have 66% chances that by paying a little amount of money (proportional to the size of your operations) you can resume operations, what will _you_ do?

>You are vastly better served by proper backups. If you use Windows, keep up with security updates. You want to be in a state where if your machine is ransomwared, you can wipe it and start afresh, and lose no more than a few hours' work. It is not about being "better served", there is not only Ransomware, there are much more common software or hardware "catastrophic" failures, for which a good backup strategy is useful.

Still the point is that if you had this valid backup strategy you wouldn't be debating on whether to pay or not to pay the Ransomware.

And sure the FBI advises against paying the Ransomware, but besides being debatable if a US Governmenet Agency advice is suitable and should be followed in the UK, "their" (the FBI's) operations are NOT affected by the Ransomware that encrypted _your_ data, and I doubt that the GI guys actually care much about _your_ activities being completely paralyzed.

Everyone is good at this kind of advice, as long as the data compromised is _your_ data.

Whether 33% or 42%of UK companies actually bought some amount of Bitcoins is unknown, and certainly the (scarce) data comes from a non-independent source, makes it debatable, but that's it.

</comment><comment><USER3> >quite often you dont get the decryption key anyway

I'm not sure this is correct, aside from the larger poorly organised attacks the majority of Ransomware does successfully decrypt, this is what ensures a good return for the Ransomware developer.</comment>


Shoelace knots - <AUTHOR> http://fieggen.com/shoelace/knots.htm <comment><USER2> I've been tying Ian's "world's fastest shoelace knot" for a few years now. It took me about a week or two to get comfortable with it and it really is amazingly fast.

It's interesting to experience your brain relearning a habit that has become so ingrained. Reminds me of the Smarter Everyday backward bike episode [1]. In fact, I just tried to tie my old 2 loop knot and accidentally tied Ian's knot again.

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

<comment><USER3> I've just been practicing Ian's fastest knot for the last 10 minutes and I can definitely see the speed advantage already.

My only issue is in keeping the starting knot tight. I usually use the standard shoelace knot which makes it easy to keep tension on the lace at all times, and that keeps the starting knot tight. But I'm finding with Ian's fastest knot I lose tension when I'm pushing the two loops towards each other, which causes the starting knot to loosen slightly. Is that something that can be solved with more practice?

<comment><USER2> I don't know when I made this change, but apparently I use my middle finger to hold down the starting knot. I tie it exactly as pictured (left hand/yellow string behind, right hand/blue string in front), except starting at step 1 my left hand middle finger is holding down the starting knot. This keeps the tension while tying the knot.

</comment></comment></comment><comment><USER4> And don't miss the Lacing Shoes part of the site. [http://fieggen.com/shoelace/lacing.htm](http://fieggen.com/shoelace/lacing.htm) There's a section at the bottom of the comparison page for solving shoe problems by lacing them differently.

</comment><comment><USER5> The secure shoelace knot is delightful: [http://fieggen.com/shoelace/secureknot.htm](http://fieggen.com/shoelace/secureknot.htm)

<comment><USER6> As a teacher of 250 3-5 year old students every week I tie 25+ knots a week. This knot has saved all my fellow teachers a ton of time. Seems like they make shoe laces that are slick and won't hold a knot no matter what. Now I tie this once and that is it for the rest of the day.

</comment></comment><comment><USER7> I'm still waiting for the patent to expire so I can try this knot: [http://www.google.com/patents/US5997051](http://www.google.com/patents/US5997051)

(I just noticed it says the fee has lapsed. Does that imply it's free to use?)

<comment><USER8> Why would anyone patent a shoe tying knot? a serious question.

</comment></comment><comment><USER9> It took me until my mid twenties to discover that the reason my shoelaces would sometimes come undone, is because there is a "right" and "wrong" way to do the Standard Shoelace Knot. Doing it wrong results in the "Granny Knot": [http://www.fieggen.com/shoelace/grannyknot.htm](http://www.fieggen.com/shoelace/grannyknot.htm)

</comment><comment><USER10> I taught Ian's Fast Shoelace Knot to my 91-year-old grandmother a while back, when I first ran into this site. She liked it well enough that she still ties her shoes that way. It's a nifty knot.

</comment><comment><USER11> Reminds me of the TED talk on how to tie your shoes. I was surprised to learn I've been doing it wrong for a quarter century.

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

<comment><USER12> I never managed to learn that method. My father tried to teach me, and I just never could memorize it. He's also left-handed, which I think complicated it.

The square knot is basic knot tied between two rope ends; the first half of it is much like the first half of the shoe's knot. You then repeat the first half, but swapping which end is on top. Like the shoelace knot, if you do it right, it stays inline (and remains symmetrical and pretty); if you do it wrong, it gets ugly.

Really (at least to me) this is because the shoelaces knot _is_ a square knot; the "bunny ears" are simply added slipknots to make it easier to untie your shoe. But I've never seen the "standard" method taught to tie a square knot, likely because I've never seen the square knot taught with slip knots; those just being something you add if you want them.

Which is how I tie my shoes; I use what the article calls the "two loop knot"[1]. Two methods, same knot, though I always thought my way was the standard, not my dad's. Oh well.

[1][http://fieggen.com/shoelace/twoloopknot.htm](http://fieggen.com/shoelace/twoloopknot.htm)

</comment></comment><comment><USER13> Ian's Secureknot ([http://fieggen.com/shoelace/secureknot.htm](http://fieggen.com/shoelace/secureknot.htm)) is my favourite. I never again had to stop running during a marathon to re-tie my laces.

</comment><comment><USER14> I really appreciate this guy's devotion to shoelace tying, and I especially appreciate that this is the website where I figured out how to tie my shoes so that the laces lay horizontally rather than heel to toe. All my life nobody had ever explained to me that there was an order to tying shoelaces that would result in one or the other.

<comment><USER15> I was a Boy Scout and was (still am) a big fan of knots. But it never dawned on me until this site that the "bunny ears" method is just a square knot with ripcords.

<comment><USER16> We often teach Boy Scouts that tying their shoelaces correctly (a square knot) leaves the laces across the shoes, but if they go lengthwise along the shoe, it's a granny...

</comment></comment></comment><comment><USER17> As it hasn't been mentioned yet, I thought I'd point out Ian's book "Laces"[1]. I bought it for a friend of mine who collects sneakers and ended up re-lacing most of my shoes before giving the book to him.

>"Laces" comes with color-coded laces that match the lacing diagrams, and has an "interactive" front cover that can be used as a practice shoe. The pages are filled with trendy looking shoes laced in amazing patterns.

Out of print, but worth it if you can get hold of a copy![2]

[1]: [http://www.fieggen.com/shoelace/iansbook.htm](http://www.fieggen.com/shoelace/iansbook.htm)

[2]: [http://www.amazon.com/Laces-100s-Ways-Pimp- Kicks/dp/14027520...](http://www.amazon.com/Laces-100s-Ways-Pimp- Kicks/dp/1402752016)

</comment><comment><USER18> I'm honestly not trying to take anything away from Ian, but he didn't "invent" the "Ian knot", just renamed the handcuff knot: [http://www.animatedknots.com/handcuff/](http://www.animatedknots.com/handcuff/)

<comment><USER19> You should take a closer look. The so-called "Ian knot" is not a distinct knot; it is just a different way of tying the standard bowknot. It is definitely not the handcuff knot.

</comment></comment><comment><USER20> [http://fieggen.com/shoelace/secureknot.htm](http://fieggen.com/shoelace/secureknot.htm) will hold your laces ties where a standard knot will work itself undone. This is particularly useful for round, synthetic laces.

Takes longer, though.

<comment><USER21> I use this knot once every few years - when I get new shoes or new laces. This knot is so amazingly strong that I only ever tie it once, then I just slip my shoes on and off.

</comment></comment><comment><USER22> Late to the party ... but this is really one of the things that makes the little things in life a little easier. Found Ians site about a year ago and spend some time after that convincing people that they have been tying their shoes wrong their whole lifes. Was met with much skepticism, but ultimately most of them tried and never looked back. There is still one guy who "praises" me for showing him how to tie his shoes because before he had to retie his shoes several times a day.

I followed Ians suggestions and use the "fastest knot" on a daily basis. For hiking and sometimes also for running I use the secure knot, mostly because the fast one actually can become undone on very slippy laces.

TL;DR: Knots are great, rethink your habits from time to time

</comment><comment><USER23> A month ago I had to use the Spider Web Lacing[1] because my new Reeboks had ridiculously long laces[2].

[1] [http://fieggen.com/shoelace/spiderweblacing.htm](http://fieggen.com/shoelace/spiderweblacing.htm)

[2] [http://fieggen.com/shoelace/excesslength.htm](http://fieggen.com/shoelace/excesslength.htm)

</comment><comment><USER24> I think that learning of (and avoiding) the Granny Knot [1] is the best I ever learned about shoelace knots. If your shoelaces occasionally get loose while walking, check it.

[1] [http://fieggen.com/shoelace/grannyknot.htm](http://fieggen.com/shoelace/grannyknot.htm)

</comment><comment><USER25> Wish he would also put how easy they are to untie. I've realized that the ideal knot is optimizing not just how secure the knot is and how fast to tie it. But also how fast to untie it, which is often anti-correlated with how secure it is.

</comment><comment><USER26> I've been using the 'ninja' for years. [https://www.youtube.com/watch?v=Bt3dHE6-dYg&gl=BE](https://www.youtube.com/watch?v=Bt3dHE6-dYg&gl=BE)</comment>


Ask HN: what taxes/tax forms does a freelancer need to submit? - <AUTHOR> Hi all, in the US, what taxes/tax forms does a freelancer/independent contractor need to submit, to whom (Social Security? IRS?) and when (quarterly? yearly?)?
I'm checking into this subject and in my current location an independent professional needs to submit quarterly business tax forms (due to VAT, etc.), pay social security on a monthly basis and, of course, a yearly declaration to the IRS.
Thanks in advance. <comment><USER2> The KEY question here is, what are you?

Fed/State tax processes are dependent on what type of business you are e.g. sole-prop, LLC, corp, etc.

Since you don't know how to handle contractor income, I'm guessing you didn't file any business paperwork, meaning you are automatically classified as a "sole proprietor" (key term). Anyone in the U.S. who legally does business without filing any paperwork is considered by the IRS as a sole proprietor.

This means that you can use something called "flow-through" taxation. All profit (or loss) from your business flows through to your personal tax filing. There is no need for a separate filing for your contractor work, just an additional form.

So with that assumption, @hga is right. File a Schedule C EZ (you probably don't need the more complicated, full schedule C) form.

You'll end up paying a special little "Self Employment" tax that is an addition 7.5% on top of FICA taxes, since employers usually cover this.

As far as sales taxes, did you actually sell anything other than your time?

You will, of course, need to pay state income tax, but that is absolutely no different than personal tax. This is because it flows through to determine your AGI, which is then used to determine your state tax liability.

Taxes are actually a fantastic non-technical hacking area. I'm fascinated by it. I also have dated several tax accountants, which I'll admit comes in handy every year as an entrepreneur.

</comment><comment><USER3> To supplement the comment I left regarding TurboTax (<http://news.ycombinator.com/item?id=1783200>), I thought I'd lay out exactly how and when I interact with the IRS. About 50% of my income comes from freelancing; the other 50% from a full-time job.

January 15: Send the IRS a check for 28% of the gross freelance income you made between September 1 and December 31 of the previous year along with a 1040-ES (<http://www.irs.gov/pub/irs-pdf/f1040es.pdf>) Also send an estimated payment to your state of about 5-7%, based on your state's income tax bracket for your income. (My state, Minnesota, has easy online payments, so there's no paperwork required.)

Between March 1 and April 15: Do your taxes. Use TurboTax; it will simplify your life. Take appropriate deductions for everything that TurboTax asks, but make sure to have documentation.

April 15: Repeat what you did on January 15, but for income received between January 1 and March 31.

June 15: Repeat January's step again, but for income from between April 1 and May 31.

September 15: Repeat January again, but for income from between June 1 and August 31.

Note that you only really need to make estimated payments if you expect to owe more than $1,000 on tax day if you were to not make estimated payments. If you owe more than $1,000 when tax day comes, you may be charged a penalty if you didn't make estimated payments. (I'm not an accountant, so your mileage may vary.)

<comment><USER4> Where did you come up with the 28% figure for your estimates?

<comment><USER3> Based in part on the tax brackets shown here: <http://www.moneychimp.com/features/tax_brackets.htm> and several years of adjusting my estimated taxes in order to get as close to a zero-balance as possible when I do my taxes in April.

</comment></comment></comment><comment><USER5> Unless it's changed since I last did this sort of thing:

Every quarter you need to file and pay estimated taxes.

Every year you need to file your individual tax form, with your freelancing income minus allowable expenses (be careful here!) in a Schedule C and you'll also need to pay your self-employment tax in a Schedule SE (this is both parts (employer and employee, as the fiction goes) of your FICA (Social Security and Medicare) taxes).

<comment><AUTHOR> Thanks! Is there anything similar to sales taxes that are charged to the customer and then paid to the state?

<comment><USER5> That's an "it depends", as tax policy varies from state to state. So if your state has an income tax (most but not all do) you'll have some filing and payment(s) there which I forgot to mention. Some states or localities (county or city) may require something as well (perhaps a business license and fee if you're working out of your home, but it's often best not to ask about this since you might run into a zoning problem).

As a general rule states don't tend to levy taxes on computer services, but many of them are desperate. Maryland tried this in 2007 but repealed it before it could take effect (geographically it was complete insanity since the two big population centers are adjacent to other states) and in a Google search I found that the governor of Pennsylvania was proposing this earlier in the year. They did it from 1992-7....

<comment><USER6> Many clients require a business license to avoid having you classified as a Employee. (The IRS doesnt like you. There are a dozen or so traps that they lay for you, easily avoided if you know about them. See <http://ohioline.osu.edu/cd-fact/1179.html>) Better still, talk to an accountant. In general a business license isnt a huge hassle. The zoning requirements are usually waived if you have no employees and no visiting customers.

<comment><USER2> This really isn't true, at least on the IRS/fed level. You don't need anything to be classified as a business. It's merely "how you act" -- are you acting as a business, or are you acting as an employee. There's a list of definitions/guidelines to be aware of, but there is no business license you can get to help with this...

</comment></comment></comment></comment></comment><comment><USER4> i recommend an accountant. you may need to pay state income tax as well.

<comment><USER2> Honestly, if you're just an independent contractor without complex corporate structure and ownership, or depreciating assets, just buy TurboTax. It will be less than what you'll end up paying an accountant, and chances are you'll just end up watching them use it.

Of course, if you have any abnormal conditions (e.g. multiple partners, several large assets, etc.) then a tax accountant could provide some money- saving advice.

<comment><USER7> Have you used TurboTax for this type of tax return? How complex was your return when you used it?

<comment><USER3> I've used TurboTax for my return for the last five (?) years; I have a full- time job (W-2), but I also do a fair amount of freelancing (1099).

I doubt that I would be able to do my return on my own without TurboTax; it walks you through all of the deductions you can take if you have contracting income - the portion of your mortgage that applies to your home office, any whole-house improvements you made to your home (heating/roofing/etc.), any improvements you made directly to your home office, depreciation of assets used solely for your job, etc. I'm sure that the ~$50 I spend on TurboTax each year is more than offset by the money it saves me.

<comment><USER2> Honestly, even if you understand the forms well, TurboTax is decent software to manage the process. OK it's crappy software... but it's better than spreadsheets.</comment></comment></comment></comment></comment>


Why does Google Play need constant GPS? - <AUTHOR> http://www.theregister.co.uk/2016/09/12/turn_off_location_services_go_ahead_says_google_well_still_track_you/ <comment><USER2> FTA: "The same is true of Google Maps. Although it makes far more sense for Maps to have access to your location, the latest build doesn't give you the option of turning it off. To do that, you have to turn off GPS on your phone altogether."

You can, of course, switch off location for google maps on android, and I'm surprised this article wasn't fact-checked for that. Settings->Apps->Maps->Permissions. Same as any other app.

I'm assuming the confusion is because the 'location settings' option in maps settings takes you to the phone's global location settings screen, which does only offer a global toggle. I don't think there's anything nefarious there, it's just that the settings menu isn't terribly well thought out.

disclaimer: googler on maps, but not android maps

edit: The article has been updated and now reads: "Although it makes far more sense for Maps to have access to your location, the latest build doesn't give you a decent option of turning it off. If you do cut off Maps' access to your location, "basic features of your device may no longer function as intended," the operating system warns."

Not that they've bothered to update the rest of the article.

<comment><USER3> You assume everyone is on M and later who support this.

Classic living in the bubble.

<comment><USER4> How is that "living in a bubble"? The last two major versions of the software support the feature. It's nearly a year and a half old.

Classic finding things to be offended about.

<comment><USER3> Because lets not ignore the fact that more then 50% of devices won't ever see this update, which makes it moot to suggest how to work around something that was taken away. That's classic Google "ship it and fuck the rest" mentality bubble.

<comment><USER2> Nothing was 'taken away' for pre-M users either, at least Maps-wise.

This article (as originally written, they've updated it since) was stating that a privacy feature that never existed had been taken away. There never was a location services toggle for specifically Maps, and pre-M it's not possible to make one that works (at least, not one that someone who doesn't trust maps with their location should be using).

</comment></comment></comment></comment></comment><comment><USER5> > Needless to say, this is not making some users very happy. Security > researcher Mustafa Al-Bassam reported on Twitter that he "almost had a heart > attack" when he walked into a McDonald's and was prompted on his phone to > download the fast food restaurant's app.

Apple has iBeacons which can do this, sans GPS. I wonder if this user would be just as upset the prompt wasn't initiated from GPS location tracking?

Personally I think they are cool tech in theory but in practice kind of creepy.

<comment><USER6> Really, the only reason it's creepy is because it actualizes the difference between what a user thinks the location services know, and what they actually know. Your phone pretty much always knows roughly where you are, it usually just doesn't brag about it.

<comment> compiler-guy Your phone knows your location, of course, but doesn't have to communicate your location to a third party.

<comment><USER7> Mobile networks track the location of connected devices all the time. That's how they know where to find you if someone calls you or sends you a message.

The problem we have with a lot of modern technology, and particularly communications and payment technologies, is that while some degree of personal identification and association with specific locations or actions is necessary to perform their function, that same information is readily repurposed and easily shared if there are no rules to prevent it, or almost equivalently, if there are no effective sanctions if rules that do exist are breached.

<comment><USER8> Well said. I would add that while "Mobile networks track the location of connected devices all the time. That's how they know where to find you if someone calls you or sends you a message" this is at the cell level; Google knows what particular store you're in, by using its WiFi database and GPS: much finer grained.

<comment><USER7> _this is at the cell level; Google knows what particular store you 're in, by using its WiFi database and GPS: much finer grained._

For a single tower, yes. In practice, if you're within range of multiple cell towers, a little physics and mathematics will determine your location much more precisely, assuming knowledge of each tower's exact location, the relative signal strength received from your device at each tower, and ideally any confounding factors like awkward terrain or local sources of interference.

As an aside, if things are going wrong on the network, it's a fair bet that engineers will be out driving around with directed antennae that will find any given rogue transmitter even using a single receiver given a bit of time. This one's not so much of a privacy concern, though, given that it only tends to be used as necessary to resolve specific problems.

</comment></comment></comment></comment></comment></comment><comment><USER8> A bit off topic, but I also almost had a heart attack recently when I got a notification identifying a product that I had recently taken a picture of. I have Google Goggles installed (it does this), but I had taken this picture with the normal camera app. A recent update sends all the user's pictures to the Goggles service. That means that any picture you take with the phone is sent to Google's servers for analysis, unless you know it's happening and figure out how to turn it off. (I was also impressed, as this was an obscure product: a bottle of fermented rice drink from Korea.)

</comment><comment><USER9> I expect the location requirement is coming to Google from the media companies. As lots of media is licensed for a particular market, and there are a number of easy VPN solutions that can disguise your IP (and your nominal location) the only way to be "sure" of where you are is to ask the GPS unit. This allows Google Play to do "region coding" and for apps to call a standard API to enforce their own region coding requirements (say netflix or other streaming services).

</comment><comment><USER10> Wifi gives pretty good location data, and most Mcdonalds provide wifi.

By default, Android 5 lollipop constantly scans wifi (draining battery), and the toggle-off is hidden in some menus.

<comment><USER11> If it's Wifi, all McDonald's has to do is buy targeted ads against web traffic coming from the IPs of its Wifi routers.

</comment></comment><comment><USER12> The McDonalds prompting sounds more like a use of the Nearby Notifications API in Play Services ( [https://developers.google.com/nearby/notifications/overview](https://developers.google.com/nearby/notifications/overview) ) than simply due to location monitoring. I can't say for sure, though.

</comment><comment><USER13> "almost had a heart attack"

Did he figure out if it the Google location tracking or the McDonald's food?

:)

</comment><comment><USER14> It's weird that the writer is suggesting it's mysterious why Google Play would even need access to GPS, when at least one reason is obvious from the example in the article itself: to prompt people to download certain apps when they enter various locations.

<comment><USER15> There is no way to tell the Google Play Store where your stores are in the developer console. This is just a beacon, and the security researcher confused Google Play Services with Google Play Store.

</comment></comment><comment><USER16> Relevant:

[https://www.reddit.com/r/blackberry/comments/3s26ym/priv_own...](https://www.reddit.com/r/blackberry/comments/3s26ym/priv_owners_a_request/)

Google Play Services probably does it so that all Android in-app ads can use the location as well through it.

I doubt this is very legal in the EU, as the user hasn't given "explicit consent" for this. It might be worth mentioning it to _@vestager_ on Twitter, who's already been lining up official antitrust charges against Google.

<comment><USER17> So that is basically an end run around blocking location services on an individual app basis?

<comment><USER18> No, apps need the location permission to use Play location services.

</comment></comment></comment><comment><USER19> I wonder if there's a more sinister reason for this than simply, "we want more data for ads." It always freaks me out that Google asks me to review places where I eat, drink, and hang out.

<comment><USER2> The sinister reason for this is that Google wants better data about places (so the service is more useful, so more people use it, so more ads are served, and so on).

</comment></comment><comment><USER3> I see the location icon every time I launch the Google Play Store app and sometimes when unlocking the phone for reasons unknown. Nearby is disabled (which still leaves the Nearby Google Play Services (GPS) service running sometimes).

Google Play Services are a trojan horse and a mobile device battery murderer. It takes away the power over your device. Have issues with it? Tough luck, if you'll downgrade, it'll be updated back automatically.

I want Android before 2012 back and not this proprietary fuckup.

</comment><comment><USER20> Don't be evil. Well that's been thrown out the window...

<comment><USER21> Come on - evil? It's not like they're selling your location history to kidnapping gangs. It's just advertising - it helps keep the economy churning.

<comment><USER22> Yes, evil. It also keeps some folks' stomachs churning.

There is a certain segment of society who knows exactly what's being done with this massive surveillance network. That segment generally does not contain the people who are under surveillance. The fact that Google knows it has to be coy about it knows that it's unsavory. And exactly what assurances do we have that Google is properly vetting access to this information, given their complete lack of customer service and their historical inability to properly run adsense, their core business?

<comment><USER23> > And exactly what assurances do we have that Google is properly vetting > access to this information, given their complete lack of customer service > and their historical inability to properly run adsense, their core business? > reply

You could probably ask the thousands of ex-employees who'd love to make $$ by breaking the story to the media. Don't you think it would sell?

Also, often when I hear stories about that company not providing support, it's for a service that has at the very least hundreds of thousands of clients/users, a lot of whom pay very little or nothing. How would _you_ provide support to all of them? Would someone who spends $1Mil / yr on Ads have trouble reaching someone quickly?

</comment></comment></comment></comment><comment><USER24> I don't see what the issue is. Google knows your location, your phone provider knows your location without asking, and probably many other apps that you've given location access to knows where your location is.

They can use information like GPS, ip address and cell towers. So I don't know why this clickbait article is just pointing out these two google apps.

<comment><USER25> > I don't see what the issue is.

Seriously?

> Google knows your location,

Yes, that's the issue: you can no longer deny Google the ability to know your location as long as either Maps or Play is installed.

> your phone provider knows your location without asking

First, Google is not my phone provider, and second, my provider only has access to cell tower info, not GPS info. GPS info is _much_ more precise than tower info, and it's obviously not possible to deny cell tower info to the provider.

> and probably many other apps that you've given location access to knows > where your location is.

The key phrase there being "that you have given access to". You cannot turn off access to Maps and Play and more. That's the problem.

</comment></comment><comment><USER26> So, this is what murders my phone's battery? I thought it was weird that GPS icon has been always active recently, and that my battery juice tends to start rapidly dropping sometimes without any reason. Now the only way I can use my phone without constantly charging is turning GPS off completely.

<comment><USER27> It's really strange to me. I noticed yesterday that the Play app started leaking battery like crazy on my Nexus 5. 100%-0% within 10 hours _of idle_ , 33% due to Google Play Store.

Today, 6 hours since the full charge I'm looking again at the battery screen: 38% battery left.

16% Chrome (Background CPU: 1min 24s, Foreground CPU: 16s, GSM: 2h36min 58s)

16% Google Play Store (Total CPU: 10s, GPS: 6h 20min 6s, GSM: 1min28s)

6% Screen

4% Android system

Chrome is most surprising, as it's not usually there. I did a single web search three hours ago though. The phone is idle all day otherwise. There's something rotten in the mobile software industry that's literally making our pockets warm for no good reason.

Dear Google, please at least be a good citizen in your own ecosystem.

</comment></comment><comment><USER28> It seems like Google is trying to slowly boil the frog of location based ads. It started with Map Places reviews, which doesn't feel like an ad but it's annoying. I haven't seen anything like the McDonalds ad but that would infuriate me. At least I can disable permissions on the Play app.

</comment><comment><USER29> Is this a big deal? I almost always turn GPS off anyway. I turn GPS on when I am travelling, and very occasionally for a minute if I use Google Map. GPS runs the battery down. Is GPS something most users leave turned on?

I thought the article would be about tracking via wifi use, which they probably do.

<comment><USER30> GPS is nice to add exif info to photos. Also, who wants to turn GPS on and off, every time you're using maps?

<comment><USER31> Me. It's like two clicks. It used to be one when I kept a widget for that purpose on my home screen. I also turn off bluetooth and wifi if I'm not using them.

<comment><USER30> You know what happens when you force a user to do an extra two clicks to accomplish something that should take one? They don't do it.

<comment><USER31> Yes. I'm not sure how that's relevant. I'm not just "some user". I'm actually me, and I know what my actual behavior actually is. I'm just describing what I actually do, not prescribing what someone _should_ do.

</comment></comment></comment></comment></comment><comment><USER32> What do you expect from an OS developed by a company that only makes money by selling ads?

<comment><USER33> Thats not true! They also make lots of money dumping our private data and transactions into XKEYSCORE

</comment></comment><comment><USER34> On iOS you'll also be tracked 24/7 by Google if you have Waze installed. Hiding behind the "being a traffic crowdsourcing app, we need location data from everyone" it doesn't allow you to use the location sharing option "while using the app", it's either always or never. And there's a purple arrow next to it each time you're driving, a sign that it's currently tracking you, even if the app is closed. (Gray means past 24h). Probably they use accelerometer data to know when you've started driving.

</comment><comment><USER35> Well, I personally have my GPS off most of the time. That doesn't prevent mobile or WiFi location snooping, but it doesn't eat as much battery as it would if it was left on. Google Play Services are a terrible waste of battery. It's sad there are no options to opt out (provided by Google). Most people don't know/care about opt outs normally, anyway, so it wouldn't be a great loss of revenue to provide such an option.

</comment><comment><USER15> Google Play Services provides Google's aGPS abstraction. Whenever an app asks for location data and doesn't want to use much battery, it asks Google Play Services, which will return coarse location data, cached location data, or GPS data as requested by the app.

McDonald's uses a beacon protocol to suggest downloading an app without using location data.

This security researcher just doesn't understand anything about his phone.

</comment><comment><USER36> Seems to be Android's answer to iOS lock-screen app suggestions (since iOS 8; 2014) - [https://techcrunch.com/2014/06/03/apple-delivers-location- ba...](https://techcrunch.com/2014/06/03/apple-delivers-location-based-app- suggestions-on-your-lock-screen-in-ios-8/) ?

</comment><comment><USER37> I feel like this is the same thing that Samsung does with Bluetooth. Whenever you disable it, they make sure that the low-power Bluetooth stays on.

"Otherwise, how would our beacons and geofences work on the customers who explicitly don't want it?"

At least Google can claim that they are collecting location on behalf of the rest of the Android apps on your phone.

</comment><comment><USER38> My guess: GPS tells you what country and city you are in, so licensed Google play content can be restricted by geography. All hail our overlords the content restriction owners!

</comment><comment><USER39> I'm willing to bet that they're using the Nearby and Geofence APIs (or even the Awareness API) for this, as opposed to keeping GPS running all the time.

</comment><comment><USER40> Use Cyanogenmod sans Google, or Replicant. Use OpenStreetMap apps like osmand for navigation.

<comment><USER41> I've been trying to whittle down my Nexus to F-Droid only apps because I want to eventually get on a ROM without Google. I'm stuck on the native phone and messenger apps because I'm on Project Fi and the way they run that stuff is odd but I know there are good replacements for those once I get off that. The one app I can't get seem to give up willingly is Maps and it's all because of search. OsmAnd does navigation just fine for me, but finding the place I want to go is really, really difficult. In a pinch, I don't want to be stuck doing web searches to find addresses and then figure out how to turn them into coordinates. I've got AddressToGPS which is ok but it doesn't always find what I'm looking for and there's no ability to search near my current location that I can find, which is a key feature. Is there a better solution?

</comment></comment><comment><USER42> i bought an android 6.0 device a couple days ago. (Moto G4) On android 6 you can enable/disable individual permissions on each app, however Google Play already had location disabled.

</comment><comment><USER43> You can use Android phones without a Google account or Google Play. But, as an act of revenge, Google broke voice dialing for people who do that.

</comment><comment><USER44> When people ask me why I want my next phone to be an Ubuntu device, I point them at articles like these.

<comment><USER45> If you're thinking Canonical wouldn't sell its users down the river, there's a bridge for sale in Brooklyn you might like...

<comment><USER46> Unfortunately you are right. "GNU/Linux inside" is not sufficient to guarantee your privacy (not to mention that Android is Linux-based too): what we would really need is a community-developed mobile OS.

<comment><USER47> Hopefully eventually this will become more prevalent [https://wiki.debian.org/Mobile](https://wiki.debian.org/Mobile) .

Also, I will say that some of the AOSP-based distros, such as Cyanogenmod, run just fine without Google Play installed; you get most of the (open-source) apps from F-Droid or if you need something from the Play store, sideloading or downloading from APKPure is a possibility.

<comment><USER46> Thanks, as an Android user I should probably go for Cyanogenmod. I have used it in the past and I liked it.

</comment></comment></comment></comment></comment><comment><USER48> No comment from Google as to why they do this.

<comment><USER49> Give you two guesses and the answer is "Your data as a guinea pig is worth a lot"

<comment><USER50> The data is not even worth that much. Estimates are that it's less than $1 / user / month.

But Google does it anyway, because it costs them less than that to implement.

edit: For instance, Facebook says each user is worth about $0.73 / user / month. [1]

[1] [https://www.theguardian.com/technology/2016/jan/28/how- much-...](https://www.theguardian.com/technology/2016/jan/28/how-much-are-you- worth-to-facebook)

<comment><USER51> North americans are worth over 4 dollars a month according to that.

<comment><USER50> 4 dollars per 3 months:

> If you happen to live in Europe, including the UK, you're only worth one- > third of a North American to Facebook, at $4.50 every three months, while > the "rest of the world", which includes most developing nations are only > worth $1.22 per user.

That's about $1.50 / user / month... which is higher than I thought. brb, going to start social network

<comment><USER51> > You may be surprised to hear that a US or Canadian user is worth $13.54 each > quarter to Facebook,

4 dollars a month.

</comment></comment></comment></comment></comment></comment><comment><USER52> It's time to switch to Apple.

<comment><USER37> Apple does this too. They just bury it 4 or 5 system levels deep before you can see that they track you everywhere and recognize your home, work, and other frequently visited locations.

<comment><USER32> > Apple does this too.

Do you have any proof that Apple uses this information for advertising purposes? Their privacy statements say otherwise. This would be a huge deal.

<comment><USER37> I have no proof that it is being used for advertising, but they do still have a copy of everything. Who's to know what their future thoughts about advertising will be. It's their Frequent Locations feature.</comment></comment></comment></comment>


Does category theory make you a better programmer? - <AUTHOR> http://debasishg.blogspot.nl/2012/07/does-category-theory-make-you-better.html <comment><USER2> I think it does. Of course, I think this as somebody who has just begun learning about it, so I certainly don't speak from any experience :P.

Particularly, category theory seems to center around _abstraction_. I think abstraction is essentially the core of CS (but maybe that's just because of SICP) and exceptionally important in everyday programming. Learning this sort of math (along with some related fields like abstract algebra) essentially allows you to unlock a higher level of abstraction.

This can help in two ways. For one, it allows you to write more general code and create extremely useful libraries. The Haskell standard library, naturally, is a great example of this. Additionally, it helps with _thinking_ about conceptually difficult concepts in programming. For example, even just the basic ideas of category theory really helped me to understand and work with non-deterministic programming. Thinking about composing non-deterministic functions, and how these functions behave much like normal functions, made life much easier.

Category theory is one of the more abstract branches of math, so it's no surprise that it lends itself to great programming abstractions. Understanding and using such abstractions in a uniform and systematic way is extremely useful, so I think it's definitely an area that would be beneficial for programmers to study.

It's also fun, but that's another story entirely :).

<comment><USER3> I was learning Haskell for last six months (part of my undergraduate studies).

It was (and is!) fun and challenging but I had hard time seeing any measurable profits from learning what are and how to use functors, monads etc.

Until recently when I was writing asynchronous communication framework in Python and I was searching for simple solution to sequence actions in this heavily callback-based environment.

Now everything looks so simple... (I am looking at you, monads!)

The bad part is that many people do not know what I am talking about when I try to describe them the design ;)

<comment><USER4> I had the exact same experience! A light went off when I figured out how to elegantly sequence asynchronous calls in Scala, and it was then that I realized I was using Monads to do so.

However, I am curious if python's solution looks ugly (since they don't seem to have a 'do' or 'for' expression that Haskell and Scala have respectively)?

<comment><USER5> I'm guessing you can't really do a 1:1, although maybe the OP can clarify.

They do stuff like this in jQuery, so I can't imagine it's all that difficult in Python.

My initial thought would be to write something analogous to Maybe. You can't pattern match in Python, which is a shame, but you could make it so that foo.bar().baz().quux() will return MaybeResult, which everything involved in the transaction inherits from. MaybeResult might have a "success" variable on it indicating whether it ought to be treated as Nothing. Otherwise, check "result."

This is naive but it gets you a little bit closer to fault-tolerant chaining of interdependent methods. Not as nice as Haskell, obvs. :)

<comment><USER3> I wrote 'monad-inspired' structure because of lack of syntactic sugar (do notation). So it basically looks like that:

      login_action = Write('PASS') >> \
                     Read('pass') >> \
                     Guard(lambda v: v['pass'] == 'mysecret') >> \
                     Write('WELCOME')

      register(socket, login_action, on_success=func1, on_error=func2)

Of course you can develop this idea futher:

      cat = Read('line') >> Write(lambda v: v['line'])
      cat.append_action(cat)

      register(socket, cat, on_error=handle_error_cb)

<comment><USER6> Nice!!

</comment></comment></comment></comment></comment></comment><comment><USER7> In my experience, programmers who try to "think generically" tend to write overly abstract code that just gets them into trouble and leaves a mess for the next programmer. So maybe knowing category theory makes you a worse programmer?

It seems like this question would be more convincingly answered by showing how a practical program can be improved by knowing some category theory.

<comment><USER2> I think the opposite is true: more abstract code is _easier_ to maintain. Why? Because the abstractions constrain what you can do in well-defined ways. Code for your particular domain tends to be somewhat undefined. What sorts of behaviors should you allow? What sorts shouldn't you allow? The answers are going to differ with each domain.

On the other hand, these questions are _very_ well defined for mathematical concepts. If all you know is that you're operating on a functor or on a monad, the possible behavior you can rely on is based on concrete mathematical laws. As a simple example, take lists. If you just treat lists as lists, there are all sorts of possible problems you can run into: off-by-one errors, not accounting for empty lists and so on. If you write code across all functors, on the other hand, you _cannot_ make any of those errors.

Essentially, abstraction like this lets you concentrate all the possible errors in a very small portion of your code. You can write the abstract code assuming that the functor laws or the monad laws or whatever applicable laws hold. Moreover, since the code is polymorphic, the type system guarantees that you cannot do anything not provided by the abstraction you chose. Code that does something beyond the abstraction is simply not well-formed--it relies on properties of the type you simply cannot access.

This means that all your code will be valid given that the type behaves like a proper functor or monad or whatever. Now the only code you have to test for your particular domain is the functor or monad instance. Once you prove that your monad instance follows the monad laws--which really isn't very difficult in most cases--you know that all your abstract code _also_ works for this particular domain. So now the only place you can have an error in is the code making your type an instance of some type class. This should be much easier to maintain than having a bunch of ad-hoc code for each particular domain!

In short: more abstract code is _easier_ to maintain because it restricts the programs you can write. If you rely on as little knowledge about your particular domain as possible, you will have far fewer places to make a mistake. Mathematical abstractions are particularly good because they tend to be far better defined and understood than purely programming abstractions. Something like Iterable doesn't have the sort of mathematical laws that classes like Functor and Monad do.

<comment><USER7> I'll agree that if you have an important invariant then it's nice if the compiler can check it. But the question to ask is: where did these constraints come from? How do you know they're true? What if they change?

If they're business requirements: can you undo them if the business changes? If they're environmental constraints: do you really know mobile phones or browsers or the server OS that well, and what do you do when a new version of the environment comes out and invalidates your assumptions?

Generally speaking, it seems better to take our inspiration from scientists doing empirical work, rather than from mathematicians. Use tests to figure out how the code you depend on really behaves, not how you wish it would behave.

</comment></comment></comment><comment><USER8> This is a very well written post and I have a great deal of respect for its author. I also happen to find Category Theory to be extremely beautiful, but its beauty (much as the beauty of many other theories in physics and mathematics) does not rest upon its applicability to programming.

The ultimate answer to the question is more nuanced: understanding functors and monads is probably only moderately correlated with programming skill and not just in an enterprise software context (would it be of any use to an embedded programmer or a kernel hacker?). Additionally, using and applying a limited subset of category theory in practical context (lifting, functors, monads) does not really require understanding category theory per-se, although I'd imagine it's a good "gateway drug" (learning Haskell had this effect on me).

</comment><comment><USER9> Yes. It can also make you a better topologist, physicist and logician, as this paper states it[1]: _Physics, Topology, Logic and Computation: A Rosetta Stone_

This paper is also a very good introduction to Category Theory.

[1] <http://math.ucr.edu/home/baez/rosetta.pdf>

</comment><comment><USER10> You don't need Category Theory to tell you that there is a duality between structs and unions, any C programmer could tell you that.

Mind you I spent a lot of time working with Haskell in an academic environment and never understood the first thing about category theory. Especially those bloody diagrams that were supposed to be proofs.

It is entirely possible to understand functional programming and abstraction without understanding any category theory...

<comment><USER11> I disagree. I think that if you understand functional programming and abstraction, you understand a certain amount of Category Theory even if you don't know to call it "Category Theory".

<comment><USER12> Analogously, "you don't need maths to tell you that one and one is two."

<comment><USER13> As soon as you have an understanding that one and one is two, you have maths.

</comment></comment></comment></comment><comment><USER14> Every new way that you can impose a schema on the world helps you as a programmer, as long as you know that it is just another way of looking at things.

</comment><comment><USER15> One of my CS teachers is very bold on saying that understanding program calculation can increase the quality of code, though he fails completely to help his students apply the knowledge he "preaches". Anyway is a very intelligent guy(genius like), and is making a book on the subject (still incomplete). Here's the link if you're interested: [http://wiki.di.uminho.pt/twiki/pub/Education/CP0809/Material...](http://wiki.di.uminho.pt/twiki/pub/Education/CP0809/MaterialApoio/pdbc_part.pdf)

My teacher does bring up interesting points, such as the lack of programming quality these days, and the lack of precision in what should be very precise and defined, namely "software engineering".

</comment><comment><USER16> It seems like you get most of this stuff from a basic abstract algebra course. How does category theory help me beyond what I got from modern algebra 101?

edit: this is from the perspective of someone who knows a little abstract algebra, and wonders if it would be sufficient to brush up on my algebra to get these ideas, which seem a little familiar, or if category theory is really important to get these ideas. I'm not trying to be a contrarian.

</comment><comment><USER17> Although some aspects of Category Theory will apply to Programming, it seems to me to be a slight abuse of language in that the majority of the theory does not correspond to physical and/or digital systems.

More importantly, Category Theory is a language that allows you to describe behavior and qualities, abstractly; it does not prescribe a specific methodology.

</comment><comment><USER18> Do any of the following awesome programmers know _and purposefully use_ category theory:

\- Linus Torvalds

\- Joshua Bloch

\- Fabrice Bellard

\- John Carmack

\- Alan Kay

\- Peter Norvig

\- Paul Graham

\- Rich Hickey

If not, then I think there are many different things that would make you a better programmer, before learning category theory is worthwhile to learn.

Let's also ask the reverse question: name an awesome programmer, preferably with an open source example of his code, that knows and uses category theory.

<comment><USER19> Did any of the following awesome scientists know and purposefully use calculus: Galileo, Kepler ...

<comment><USER18> Calculus didn't exist in their time, so it couldn't be used by them. Moreover, much progress has been made in science, partly due to calculus. In fact, an awesome scientist today is much more powerful than an awesome scientist back then.

Can you show examples of practical progress made in computer science due to category theory? A bugfree web server, a secure web browser, an OS perhaps?

</comment></comment></comment><comment><USER20> this is a bit of a stretch in that the concepts used in category theory are surely useful to programmers, but in reality programming is often sufficiently complex that category theory is too general to apply. you can spend all day drawing diagrams about morphisms, direct products, pullbacks, etc but the real work is in coding the api, not drawing pretty pictures.

most programmers don't have the time or inclination to complete an undergraduate degree in mathematics, which is essentially a prerequisite for taking a legit category theory course. category theory is usually taught at the graduate level.

category theory definitely helps in theoretical physics :)

</comment><comment><USER21> Yes, in the same way learning anything can make you a more well-rounded person. Learning category theory would also make you a better basket weaver.

<comment><USER22> But short of evidence (say, a randomized controlled trial) there is no reason to believe that the baskets would be better in any way.

<comment><USER23> But at least you will know what a braided monoidal basket looks like and whether it is rigid enough to belong to the strongly ribbon category.</comment></comment></comment>


Restartable sequences - <AUTHOR> http://lwn.net/SubscriberLink/650333/c11e717760bccd73/

<comment><USER2> Anyone have questions about this? Paul and I are responsible for this tech at Google, and we use it extensively for speeding up low-level tricks up to and including userspace RCU without any memory barriers _anywhere_ on the read paths.

<comment><USER3> You should join one of the threads :) (Also, ping me if you'll be in the Bay Area any time soon.)

P.S. Figuring out you are would have been considerably less annoying if Google+ was actually compatible with Google's multiple-account-at-once single sign on. Oh well.

<comment><USER2> I've been chiming in on LKML periodically, is this getting discussed elsewhere too?

<comment><USER3> There's a bit of discussion on ksummit-discuss, too.

</comment></comment></comment></comment><comment><USER4> This is a brilliant idea and an astonishingly bad function signature.

<comment><USER2> Historical reasons--it's an adaptation of a (weirder, but uninteresting) internal interface which we couldn't really put good types on for ~reasons.

</comment></comment><comment><USER5> If the compiler emits instructions that don't trample on registers used in the special section, couldn't the restart handler just be a nop just before the start of the section? No cleanup/prep necessary. I suppose that would severely limit the size of the special section.

<comment><USER2> In principle, yes, but then you'd need considerable coordination with the compiler. The two things you'd need

\- "Don't use these registers in this scope": not out of the range of possibility, but not well supported to our knowledge.

\- "Be OK with an unpredictable jump to this label at any time": not going to happen without a LOT of work. This means that the whole crit section can't change the stack pointer, can't stash a register value on the stack, can't...etc. It wouldn't be impossible by any means to write a compiler that does this, but I don't know anyone who has and good luck managing it now.

(Before someone mentions asm goto: a) not supported in Clang, which is a dealbreaker, b) only supports jumps from particular points, not anywhen. The compiler is free to require such a jump to emit cleanup code to match local state to the label being jumped to; we can't do that.)

But we definitely considered trying it that way--it's just not quite practicable, and the workarounds we came up with more expensive than just having the whole crit section be inline assembly. That does work pretty nicely in the latest version (to be posted sooner or later.)</comment></comment>


Ask HN: Should I change my Co from C Corp to S Corp? - <AUTHOR> I formed a C Corp anticipating funding but things didn't happen. Now it has become a huge liability. But the product is on track and the revenue will be small. I somehow plan to bootstrap. Should I convert C to S Corp or any other advice if you ever had dealt with such a situation. <comment><USER2> In my experience, this is mostly a taxation question. Just do the math for both options and see which way you'd pay less taxes.

It used to be that an S Corp would be more efficent up until your total personal income/wages from all sources hits $120k a year or so. Only after that, a C Corp becomes more efficient.

* This is mostly about wages but if you also pay yourself dividends, you should factor them in too

</comment><comment><USER3> How is it a "huge liability"? Best to ask an accountant.</comment>


You can ring my bell Adventures in sub-GHz RF land... - <AUTHOR> http://adamsblog.aperturelabs.com/2013/03/you-can-ring-my-bell-adventures-in-sub.html

<comment><USER2> Now this is hacker news!

Wonder why it doesn't get upvoted more, while we have 2 friggin SimCity posts on the frontpage :(</comment>