Facebook adding "fbclid" parameter to outbound links - <AUTHOR> http://thisinterestsme.com/facebook-fbclid-parameter/ <comment><USER2> This is breaking some links. You might believe it "shouldn't", and a server "should" ignore the added params, but the reality is it's breaking them. This past weekend, I posted a link to an image on Facebook, and FB generated the preview fine, but created a link that 404's.

My link: [https://pbs.twimg.com/media/Byv5uWSIIAEf38C.jpg](https://pbs.twimg.com/media/Byv5uWSIIAEf38C.jpg)

Facebook made: [https://pbs.twimg.com/media/Byv5uWSIIAEf38C.jpg?fbclid=IwAR2...](https://pbs.twimg.com/media/Byv5uWSIIAEf38C.jpg?fbclid=IwAR2MX56GldkA2L5lM94VMK_A420E4FBWsoL7lBlHdtgHs03SpXZQ2rDRUQk)

I guess if FB really wants, they could make a second fetch to ensure that their added params don't break the third party server. Or could they add a whitelist of domains that use their first-party tracking?

I really don't like the end result right now, looking like "the web works" from inside FB, but not when you try to follow this link out of it. I don't believe at all that that is FB's intent here, but it's just one more time that some silo breaks another part of the ecosystem, and to an untrained eye it looks like the third party is the culprit.

<comment><USER3> I believe it was breaking all NYMag links today, appears fixed on NYMags end now.

[https://www.facebook.com/NewYorkMag](https://www.facebook.com/NewYorkMag)

<comment><USER2> Sure, where "fixed on NYMags end" means "NYMags has implemented a workaround because FB broke things".

</comment></comment></comment><comment><USER4> There are a number of comments here who seem genuinely happy about this. This is a perspective that is hard for me to understand, largely because I'm strongly in the pro-privacy, anti-tracking ideology.

So if you are part of the group who sees this as a good thing, I'm genuinely interested to understand why you see this as a good thing and whether you view the mass surveillance of the general public by advertising companies as bad?

<comment><USER5> Engineer here: I used to be completely anti-tracking.

Then, I started needing analytics for my own business. Without analytics, I wouldn't be able to sell with efficiency, and therefore, I wouldn't have a business. Granted, the anti-consumerist in me thinks maybe as a society we shouldn't be so concerned with our efficiency to sell. But, we live in a capitalist world, and I don't see that changing any time soon.

The way I see it now, I'm less concerned about tracking than I am about how big some businesses are -- especially in this space.

At every start up I know, they use analytics, and no one is doing anything spooky. But, I'm sure there's plenty of spooky stuff going on at the FAANGAMUs.

<comment><USER6> TL;DR version: I like tracking now because it now makes money for me.

<comment><USER7> As in "I was against child labour, but then I've inherited textile factory in China and paying adult wages is not efficient".

<comment><USER5> The point I was trying to make is: before I worked in the growth team at several mid-sized startups, I had this naive assumption that tracking data was basically the food for an evil monster.

I had this idea of an evil group of people getting together everyday and looking at this data and somehow using it to puppet my entire online-life.

Sure, this group of people exists at every decent sized online company, and sure they're trying to get you to spend more time and money on their site/app/whatever, and sure this tracking data helps them.

Sure, SOME of these websites are peddling fake news or selling scams or preying on the poor/unfortunate/uneducated/etc. But I think that's the exception, not the norm.

Most successful companies make a product people genuinely like. There are millions of people that would buy and enjoy this product if they knew about it. Most companies are just trying to use this tracking data to get their product in front of as many of those people as they can, and as few people that don't want their product. They're trying to fine-tune their messaging to make sure it appeals to the people that actually like their product. They're trying to use it to figure out how to BETTER make a product people actually want!

Again, if you're saying that increasing our efficiency in sales is a bad thing, you're saying that capitalism is bad. But I've just come to see this data as something that enables product evolution to occur much faster. I see this data as something that's helping the world, mostly, get more of what it wants.

Like everyone says, Capitalism is the worst economic system, except all the others we've tried.

<comment><USER8> > Again, if you're saying that increasing our efficiency in sales is a bad > thing, you're saying that capitalism is bad. But I've just come to see this > data as something that enables product evolution to occur much faster. I see > this data as something that's helping the world, mostly, get more of what it > wants.

Unfortunately, I've seen too many product decisions catering to the manipulative aspects of adtech. UX often suffers, not improves with ads. Online platforms all seem to follow the same game ad monetization plan these days which results in messes like Frankensteinish apps--see official Twitter app.

As for actual hands on manufactured products or services, I'd like to know how ads improved the UX.

</comment></comment></comment></comment></comment></comment><comment><USER9> FB has already publicly announced some of these changes:

[https://www.inc.com/peter-roesler/facebook-to-allow-for- firs...](https://www.inc.com/peter-roesler/facebook-to-allow-for-first-party- cookies-on-october-24th.html)

[https://digiday.com/marketing/wtf-what-are-facebooks- first-p...](https://digiday.com/marketing/wtf-what-are-facebooks-first-party- cookies-pixel/)

Basically, FB is expanding its tracking, allowing 1st party vs. their third party cookie tracking. I suspect the click-id query string is part of that rollout. This helps it get around things like Apple's new ITP (Intelligent Tracking Prevention). 2.0 in Safari.

</comment><comment><USER10> This is actually fantastic news for advertisers that have their own data warehouses and need to create a better 1-to-1 click tracking to internal user data. This allows much better attribution and testing of incrementality so businesses can tell where their value is truly coming from.

I'm pretty excited to see this roll out more broadly.

<comment><USER8> And another reason for me to avoid FB links. I'm sure blockers will begin stripping that out.

FB just doesn't understand the optics they create.

<comment><USER11> They do, and we do. But the mass sheep audience does not. All they know is: "Does the link work?" and "Can I share it?" That's all.

<comment><USER8> True enough, even though there is nothing but negative sentiment these days toward the Facebook brand.

I suppose there is someone even thinking that Portal will be good for their home.

<comment><USER12> I actually ordered a Portal device for each of my family households (parents, grand parents, siblings and in-laws) for Christmas.

I think it's a great product and can't wait to have mine at home.

All the fuss about tracking is non-sense. Ads are a great way to monetize products that you want to make available to a large audience. And obviously as a user you want meaningful ads and not just a bunch of garbage. To do that tracking is necessary...seems like a straightforward value exchange!

I also want to note that I buy stuff frequently from ads...some of my most loved items found me through ads! It's frankly a great way to discover great stuff.

Do I sometimes see ads that are not relevant? Sure, just as I see post from friends/family that are not relevant...I just scroll by, easy as that!

<comment><USER13> Nice try, Zuckerberg.

</comment></comment></comment></comment></comment></comment><comment><USER14> I can see urls eventually being thousands of characters long with referral links daisy chained.

<comment><USER15> I use Neat URL[0] with Firefox to strip things like that from URLs.

0: [https://addons.mozilla.org/en-US/firefox/addon/neat- url/](https://addons.mozilla.org/en-US/firefox/addon/neat-url/)

<comment><USER16> That's cool, but only really protects the surfer. Instead of stripping them, you could also either fill them with garbage values, or with more effort, swap the parameters with another link. This would degrade the analytics results, but might be harder to detect. And if enough people used it, you'd get some kind of herd tracking immunity.

</comment></comment></comment><comment><USER17> I wonder why would fb move away from the well-established utm [1] link parameters to this? From the article, I can't see any functional difference.

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

<comment><USER18> First time I read about UTM. It looks like those parameters are used to track ad campaigns. They provide metrics over which campaign works best.

The "fbclid" parameters on the other hand seems intended to track individual clicks. That is, Facebook wants to keep tracking individuals when they follow links to off-site pages.

<comment><USER19> It's no different than what every other major player is already doing, they're just now catching up.

<comment><USER18> I'm not aware of this, but maybe I'm behind the curve? Are you saying that if somebody posts a link on Twitter, that link gets a tracking-parameter appended when people click through? Ar what is it they ar all doing?

</comment></comment></comment></comment><comment><USER18> So they're modifying URL? Facebook is breaking things. But sure, they've run the numbers and decided they don't care.

Browsers will now have to resort to removing query parameters to prevent tracking. And websites should really use click-to-enable sharing buttons to prevent Facebook from snooping on everything.

<comment><USER20> My guesstimate is that the number of URLs that are shared on Facebook AND that already have a completely orthogonal "fbclid" parameter is infinitesimal.

Maybe among the URLs shared on Facebook there are a few whose servers only respond to a fixed amount of parameters, changing their behaviour when additional unused parameters are appended to the query string, but I imagine that the number of such cases is so low it's not even worth considering.

What exactly is Facebook breaking, in your opinion?

Would Facebook also break things if they were instead making an async request to the destination and appending a custom header to it, something like "X-Coming-From-Facebook"?

<comment><USER21> > What exactly is Facebook breaking, in your opinion? > > Would Facebook also > break things if they were instead making an async request to the destination > and appending a custom header to it, something like "X-Coming-From- > Facebook"?

Extra headers are typically ignored, not only since different clients send different headers since the beginning.

I know multiple systems which however decode the query string and complain about unknown options or don't accept a query string at all for some resources. On the later case it is ignorance on the other case it is intensive input validation.

<comment><USER22> This is the reason why Google Analytics can be configured to read marketing parameters out of the hash fragment instead of the query string. A surprising number of sites will choke when unexpected data shows up in either the query string or the hash fragment, but very few will choke on both (most sites that mishandle query parameters are from an era before rich use of fragments became common).

Notably, most links with GA marketing parameters are under the control of the website owner. Facebook links are not. This makes such a work-around less feasible.

</comment></comment></comment></comment><comment><USER23> Author failed to do any research, instead of going for the typical "FB is doing something secretive and cryptic" angle. Related links that explain this:

[https://www.facebook.com/business/news/facebook- attribution-...](https://www.facebook.com/business/news/facebook-attribution- a-measurement-tool-for-todays-digital-advertising-landscape)

[https://marketingland.com/facebook-attribution-now- available...](https://marketingland.com/facebook-attribution-now-available-to- all-advertisers-250249/amp)

[https://old.reddit.com/r/adops/comments/9pycuk/facebook_atti...](https://old.reddit.com/r/adops/comments/9pycuk/facebook_attibution_now_available/)

This hn thread is a perfect example of a news bubble. Googling "fbclid" returns the answer in the first result, but hn votes up an article that has no information and treats it as some secret tracking that fb has implemented. HN is excessively biased against any discussion of tracking/analytics on the internet. The community allows no room for true discussion - only blatantly biased opinions.

[https://www.reddit.com/r/analytics/comments/9o52yw/parameter...](https://www.reddit.com/r/analytics/comments/9o52yw/parameter_called_fbclid_appearing_in_referrals)

Edit - reworded to be less aggressive

<comment><USER24> This article was posted days before any of the links you've given.

According to the metadata for the site, it was originally published on 2018-10-14 and last updated 2018-10-16.

Facebook's own article about the feature came out 5 days after this article was published. So, at the time, Facebook _was_ being secretive about it. Aside from that one line, the entire article reads more like "this is new, I wonder what it does".

Lastly, when I googled "fbclid" the top 3 articles are completely unrelated to Facebook (but, then, I'm not in marketing so this doesn't surprise me) and the forth is this very article.

<comment><USER23> That is fair, I didn't check when the author posted.

The first link (for me) when googling fbclid is the reddit post in r/analytics I linked to, which doesn't have a ton of info but gives more than what the author had. Though you're correct, it was posted after the author originally posted, and I can't fault him/her for not checking in again a few days later.

</comment></comment></comment><comment><USER25> > you should always explicitly set the canonical URL for each page.

Could someone explain or give a reliable article that explains this well?

<comment><USER26> When Google crawls your site, it doesn't know the difference between two urls with the same path, but with different GET params.

Theres no way for them to know whether or not the extra params on the URL change the result page. (i.e. example.com/index.php?post_id=1 and example.com/index.php?comment_id=1 could be very different pages, or they could be the same; you don't know).

So in comes the canonical url! This tells Google the proper url required for a specific page. That way if Google gets to a page using two different urls, it can tell that they are the same page.

You can list it by adding a tag to your HTML head.

You can even do face things like rewrite urls entirely (i.e. If the crawler hits example.com/?category_id=1&item_id=2, you can correct the ugly url by listing the canonical url as example.com/category/1/item/2)

[https://support.google.com/webmasters/answer/139066?hl=en](https://support.google.com/webmasters/answer/139066?hl=en)

</comment></comment><comment><USER27> This might cause issue of duplication for sites which do not have canonical URL implemented.

<comment><USER20> Google is pretty good at automatically determining which qquery parameters actually modify the response content (pagenb=, id=, q=, etc.) and which do not really (sortby=, highlight=, utm_source=, gclid=) so that should not be a problem.</comment></comment>


Instagram and self-esteem - <AUTHOR> http://www.slate.com/articles/technology/technology/2013/07/instagram_and_self_esteem_why_the_photo_sharing_network_is_even_more_depressing.html

<comment><USER2> Bit of a rant:

I believe social media has created a medium of indulgence to engulf yourself in, fueled by the insecurity of knowing that if you're not on it, you won't be "fed". I see so many teenagers and people that only instagram/facebook/twitter/tumblr. All the time. All. The. Time. All the motherfucking time. It's really sad. I see groups of friends hanging out all on their phones? I've noticed this trend with my friends too so much so that we created a rule to dispose of our phones temporarily when we're hanging out. Nobody reads anymore. Nobody cares. They just care about themselves. What has been previously Math and Science is now Social media.

Social media opens up the floodgates to jealousy and envy. Just recently my friend called me crying because two friends she was supposed to hang out with recently said they had other priorities, which is fine, but then on Facebook she saw they were doing something together.

I remember myself in my state of depression. I'd be on Facebook constantly. I'd always have a chat going, always some sort of interaction. I lost about 2 years to this bullshit where previously, I was able to sit down, load up some ancient textbook and have fun sitting around and poking through it and hacking and experimenting. Loneliness never creeped in. Depression never creeped in. This was back when hanging out was only arranged by calling someone and saying "Be at X at Y time." And that's it.

Social media has created a culture of absolute drones and it greatly saddens me to see its influence on the young. It permeated a volatile culture of instability and insecurity.

I've since deleted my social media accounts and strictly you use email/text/phone which is way more than enough. My life has never been better. I am able to do work again and have fun. Good riddance. I am no longer found caring about every aspect of others lives and all the intangibles that surround it. Friends literally ask me "Yo this girl I was talking to liked my status, does she want to fuck?" Is this where we are going?

I also believe social media is responsible for the apathy of our people in light of recent events. If you were going to tell someone in the early 1900's that all their communications were being monitored, they would fucking flip a shit. Why? Because communication is the central most important thing, ever. If you don't have communication, you have no way to organize, no way to anything. No way to organize an uprising, no way to fight the government.

Now that we take communication for granted, while maintaining all other aspects of our lives (able to buy food, work a job, watch TV, do whatever menial things), then nothing will change.</comment>


The idea of "cultural appropriation" is a silly, harmful concept. Bin it - <AUTHOR> https://www.economist.com/blogs/openfuture/2018/05/open-ideas <comment><USER2> The title of this should really be the tagline of the linked article: The idea of "cultural appropriation" is a silly, harmful concept. Bin it</comment>


How Much Is a Professor Worth? - <AUTHOR> http://www.nytimes.com/2012/04/02/world/europe/02iht-educlede02.html?pagewanted=all

<comment><USER2> Thanks for posting this. Have you read the book?

I'm from Canada and am very surprised at Canada's high rankings. Wondering if the authors took into account the relative differences between university / college systems across countries. Canada has a lot more "colleges" (i.e. technical schools) relative to universities -- our terminology is literally different here. Curious if it in any way affects the results.

There's also a related issue of brain drains / gains to related industries (e.g., banking or corporate analytics) within countries.</comment>


Three FinTech Startups - <AUTHOR> http://www.forbes.com/sites/yoavvilner/2015/06/18/3-fintech-startups-youll-hear-about-soon-enough/2/

<comment><USER2> Page doesn't seem to work. I get "undefined". Which are the companies mentioned?

<comment><USER3> The three are: CrediFi, City Falcon, and TransferWise.</comment></comment>


Show HN: A tool to personalize pages with geolocational data in pure HTML - <AUTHOR> https://targetingmonkey.com/

<comment><AUTHOR> Hey everyone, I created a tool to personalize a webpage with geolocational data using only HTML.

You can do things like showing / hiding content based on the location of the user, or incorporate their location into a headline or text, with an elegant, ruby-looking syntax.

I would love some feedback :)

</comment><comment><USER2> What if the product is not available in each visitor's country? Can you customize a list of countries where it is available?</comment>


Show HN: Instant Targeted Youtube Playlist – Try Searching A Band - <AUTHOR> http://neverendingvideos.com

<comment><AUTHOR> For those of you having trouble:

So if you want to do a related music video seat like pandora:

Type in one or more bands or band members (make sure to actually select them from the drop down menu

If you want to search for something custom then press shift enter

If you don't search for music you can get regular videos about anything you want!

You can customize the sorting function by typing special keywords and pressing shift enter like:

This week Or View count

</comment><comment><AUTHOR> I also think you guys may have already broke it! I'm working on it but thank you for trying it out. It was a proof of concept I plan on taking in a different direction!

<comment><AUTHOR> Nevermind youtube api issue. It's fixed now</comment></comment>


Ask HN: How do you motivate yourself? - <AUTHOR> <comment><USER2> I don't think trying to "motivate oneself" will bear a lot of fruit. Motivation is a combination of beliefs: belief that a thing will be beneficial, and that it's possible.

That's at the macro level. On the micro level, structure helps a lot. Some of the more go-getter people you know are just on autopilot, but have done the work beforehand to hack their motivation, mostly by forming habits and setting themselves in social environs that reward achievement.

Motivation is a fickle, mercurial beast. Trying to run on it at all times won't work. Use motivation wisely, for short bursts of work that get/keep autopilot-you on track. Things like: going to sleep when you want to stay up, making a plan for issues you don't want to think about, setting habits to do things you don't like to do.

<comment><USER3> Holy moly +1 for this answer.

Forming habits and getting to the point of autopilot is how it happens for me. At some point you don't even notice it because you are so focused. It's just like getting up to go swim every morning. It's cold as hell and you don't feel like it, but you know that after 10 minutes in, you will feel great. And then you just get into the routine.

The last part by _dropit_sphere_ is a particularly good thing to understand about oneself. Can't have it all the time and you gotta use it efficiently when you do.

</comment></comment><comment><USER4> By avoiding triggers, that demotivate you. I see myself as a stupid machine, which behaves like it does in certain situations. If you want change in the long term, you have to change the situation and preconditions instead of trying to reprogram the machine, that will follow. Exercise, eat healthy, sleep enough, see enough sunlight, do what you like. If you have a setback, try to find out, how it started and try to avoid that situation, don't try to master it.

<comment><USER5> > change the situation and preconditions instead of trying to reprogram the > machine

Kudos on recognising the prevalence of this phenomenon. When people are running in a reactionary mode, trying to reprogram the system is asking for failure. Just like with a black-box program, the input parameters need to be changed if you want the output to change. Your _environment_ (including objects, TODO lists, people, emails, texts, location, food, and drugs) constitutes the input parameters. The environment must be changed for the output to change. If you forget to change your environment after recognising a problem with the output, then you fail to make a lasting change in the system. Essentially, your environment is a part of the extended _you_ that you can pretty easily "reprogram".

<comment><USER4> Exactly. Also, if you are successful in altering your "extended you" your inner you will also change. E.g. if you want to become good at tests, you have to set the environment to be better at tests, once you have done that, you will become better at tests, but you will also be more likely to do more of these tests with your initial success behind you and feel more confident etc. making you actually better beyond the environment you created.

<comment><USER5> > better beyond the environment you created

That sounds like an interesting approach to life: Improve your environment; watch yourself improve; then repeat. It's like a big optimisation problem slowly working its way toward the maximum. It's like a personal singularity.

Sometimes I spend so much time in my head that I forget to change my environment. It would be nice if our best thoughts could somehow be put into effect more quickly without necessarily interrupting other planned activities. I guess that's where self-control and sequential execution come in. At the same time, the original plans may have become invalid.

Sometimes after you change your environment, it's like you have to re-compile the kernel before you can run the program you were initially planning to run. The trick is in not losing state information during that recompiling process. Sometimes writing cookies (aka, notes) can help here. Conversely, some changes are so big (or time-consuming) that your whole plan needs to be re-wired.

They say that teaching is one of the best ways to learn. My experience seems to confirm this advice. Perhaps when you go and explain something to someone else, not only do you organise and solidify the understanding in your own mind, but since you pull something out of your brain and stick it to the extended you (and beyond), that knowledge can take on a life of its own in the outer world. Your very awareness that the knowledge has been transmitted to the outer world seems to have a strengthening effect in your "inner you". It's as if the outer "awareness" links back to hidden parts of the inner you, as were it virtual dendrites connecting your brain to the collective consciousness.

</comment></comment></comment></comment><comment><USER6> One thing that works for me. I keep a legal pad for each project I'm working on. I write a to do list in pencil on a sheet. When a task is complete I cross it out with red pencil.

So I say to myself just pick something and do it. The reward is the gratification of crossing it out. If a sheet gets filled up, I transcribe the remaining items to a new page, which engages visual, verbal and kinesthetic learning modes and refreshes my perspective on where I'm at with the project.

There is most always a space to the right of my mouse for the current pad. The system breaks down when that space gets cluttered for whatever reason. But when it's there I jot down tasks that come up while I'm coding. I keep the pads organized in a flat file that is just big enough to hold papers.

It works for me. Also getting enough sleep, exercise and eating properly helps.

</comment><comment><USER7> Motivation means creation of incentives to do something. To be successful in that, you need very few things: 1\. You should know what you are going to achieve. That is, you should have SMART goal (see Wikipedia article "SMART criteria"). Unclear of definition of the goal may become the biggest obstacle: you will always try to avoid the uncertainty by switching to other activities. 2\. The benefits must seem to you realistic and the path to them short. For example, if you set the goal as "build 1 billion dollar business in 5 years", it will be SMART, but will look like a fairy tale to you. Building MVP in 3 months won't make you richer, but you'll be rewarded with positive feeling of creating something working and useful, something that will enable you to go further. 3\. Not doing what you want (let's call it "A") must be painful. If life is good enough and you won't be harmed by just living it, you'll probably will not start, because there's no real reason for it. Some people are saying that you'll need to move out from your zone of comfort - they are close to what you really need to do: you need to move your zone of comfort, not yourself. Imagine, how good life will be when A is done. Think, how bad is your life while A is not done. Now you have real incentive! But don't do that until you've done 1 and 2.

</comment><comment><USER8> It's a bootstrapping manouver, so it's kinda expensive and nonintuitive. First I try to find another body of work to slingshot around. Then the key is to keep structural integrity and life support systems on full. Then, as long as I'm pointed in the right direction, and don't run into any distractions (which fall away if I have enough inertia), I should be good for a little while.

The target is flow, the enthusiastic engagement in that activity I so desire to be motivated to do.

</comment><comment><USER9> I envision the end goal in detail. e.g. if I'm building a business, I envision the office we are in, the staff, the levels of income and the services we provide, etc.

</comment><comment><USER10> What is the problem you are trying to solve?

</comment><comment><USER11> Just do it.</comment>


We all love RVM! - <AUTHOR>

Let's give Wayne a big hug! C'mon he deserves the recognition. <comment><USER2> Even if Wayne decides not to work on RVM anymore, he deserves huge kudos for what he has helped create.

</comment><comment><USER3> _hug!_

Thanks for your awesome work, Wayne. :)

</comment><comment><USER4> HUUUUUUUUUUUUUUUUUUUUUUUUUUG! :D

</comment><comment><USER5> Un abrazo grande! Buen trabajo.

</comment><comment><USER6> thanks for the awesomeness of rvm wayne! here is my enormous HUGGGG!

</comment><comment><USER7> humungus Hug for you Wayne !

</comment><comment><USER8> Hug!

</comment><comment><USER9> Hug!</comment>


Ask HN: How does your company organize your slack channels? - <AUTHOR> More and more collaboration is being put into Slack, but as orgs grow, it seems unnecessarily hard to find the right people or the right place to talk. Additionally, the amount of workflows pumped into Slack in a unorganized, unstructured manor seems absurd. It's impossible to find knowledge in Slack. How do you organize your slack channels to be able to make use of the knowledge being shared later on? <comment><USER3> So I literally just reorganized our slack channels because it had gotten out of hand and didn't have a pattern that was easy to recognize, just random channel names etc. You had to have some institutional knowledge to know where to look for what.

What I wound up doing was creating more a naming scheme and limiting access to Slack channels which didn't need broad audiences. This removes a ton of unnecessary chatter and means messages won't get missed as easily.

e.g. I created ask_execs, ask_engineering, ask_marketing etc, team_engineering, team_sales, team_"region" (we have a few sub regions). Then we have are more generic channels, like announcements where company wide announcements are made, and press for press coverage, random for just that etc. I also setup bot_xyz channels for bots we have running for specific tasks.

I think that pretty much covers it. In the end we archived like 50% of our channels and it is a lot cleaner now. My opinion is this should be something that should be done every so often to keep some control over it and to make sure channels are used for the right purposes and not hijacked routinely by off topic discussions.

</comment><comment><USER4> With too many channels.

For the most part my company breaks things out into \- public / general channels (IT, chit-chat, culture, annoucements, etc) \- team-public - <USER2> you go to chat with a team directly \- team-private - used mostly for internal discussions (tech discussions, PR requests, eng-to-eng questions, etc) \- monitoring / alerting channels - where all the pings happen if something breaks, CI related info, etc

In general this approach works. Everyone in the company has permission to create a new channel (private or public).

>Additionally, the amount of workflows pumped into Slack in a unorganized, unstructured manor seems absurd.

this just requires someone to usher slack to an organized state. If you're having trouble finding the right people / channels, that's a Garbage In - Garbage Out problem.

> It's impossible to find knowledge in Slack. I don't find this to be true at > all. The built in search feature is pretty decent, and has led me to solve a > ton of issues without having to re-ask the question.

If you're company is using Slack as a knowledge dump, you may want to consider a wiki.

The amount of plugins, automation tools, and information you can pipe through slack is quite astounding. I know every one likes to bemoan how distracting it is, but honestly it's my favorite business-driven chat client to date.

</comment><comment><USER5> In a previous position, our slack was organized by project channels.

In another position, it was organized by teams and sub-teams when relevant.

But in both cases, knowledge was stored somewhere else - like a wiki, or knowledge base. Slack was always used for immediate concerns.

</comment><comment><USER6> Fortunately, my company doesn't use Slack (or similar).

<comment><AUTHOR> So no realtime chat at all? What do you use to communicate, instead?

<comment><USER6> Email (plus tools such as a wiki, Bugzilla, etc.) Aside from a handful of people, realtime chat was ditched because it was too intrusive.

If there's really something urgent enough that an immediate answer is required, then people either call/text or physically walk over to the person whose attention is needed.</comment></comment></comment>


Lambda: The Ultimate Imperative (1976) [pdf] - <AUTHOR> https://dspace.mit.edu/bitstream/handle/1721.1/5790/AIM-353.pdf <comment><USER2> I love reading these older papers, because since there wasn't a whole lot of prior implicit understanding of computer-science, they're a lot easier to read for a wannabe-intellectual like myself (someone who loves the academic world but who isn't smart enough to actually be an academic).

Guy Steele's papers in particular are almost always an entertaining read. My favorite by him is basically a glorified rant about how the programmer shouldn't have to manually handle tail-recursion (I'd link to it but I cannot seem to find it...If someone here knows where it is I'd appreciate it).

<comment><USER3> LAMBDA: The Ultimate GOTO [http://dspace.mit.edu/bitstream/handle/1721.1/5753/AIM-443.p...](http://dspace.mit.edu/bitstream/handle/1721.1/5753/AIM-443.pdf?sequence=2)

<comment><USER2> Thank you!

<comment><USER4> [https://en.wikisource.org/wiki/Lambda_Papers](https://en.wikisource.org/wiki/Lambda_Papers)

</comment></comment></comment></comment><comment><USER5> > A third possibility would be to pass the SQRT function as an argument to > QUAD (don't laugh!)

:)

I was excited to see the heading "3.3.1 Free (Global) Variables", considering the amount of work people do to avoid those (interpeters and runEnv and so on), but it seems they end up using top-level bindings and assignments …

</comment><comment><USER6> Escape Expressions and Fluid Variables? Call by need? Looks like I'll have to read it.

</comment><comment><USER7> Didn't realize the blog was named after a thing. I guess I feel young now.</comment>


Changes in Arctic sea ice coverage from 1978 to 2008 - <AUTHOR> http://www.guardian.co.uk/environment/video/2009/oct/14/arctic-sea-ice-coverage

<comment><USER2> I think I'm going to be sick.</comment>


US visa applicants will have to provide social media handles - <AUTHOR> https://www.helpnetsecurity.com/2017/06/02/us-visa-social-media-handles/ <comment><AUTHOR> "Individuals who fail to submit this form or who do not provide all the requested information may be denied a US visa. Although furnishing this information is voluntary, failure to provide this information may delay or prevent the processing of an individual via application."

So it is required but it is not required? ...

<comment><USER2> It would be so much easier on everyone if they would just ask are you a terrorist?

You'll catch the same amount of people.</comment></comment>


Apple drives iPhone app developers to the brink - <AUTHOR> http://www.theregister.co.uk/2009/05/05/iphone_devs/

<comment><USER2> Is this enough to short Apple?

Probably not yet, but it will be if Apple continues treating its developers like this. This is not a question of being polite or kind to their developers, it is a failure to meet their legal obligations as a corporation. The fact that they see anger over a legal breach on their part as an annoyance, shows that they are starting to think they cannot fail.

The developers are the single biggest part of Apple's competitive advantage in this space. They know this at some level, because the commercials are about all the cool apps you can get for your iPhone. However, I do not think they are in such a dominant position (yet) that they can do anything they want to their developers and not suffer any consequences. This gives their competitors an opportunity to poach the best developers and apps for their systems, and get back in the game. All they have to do is _actually pay_ for the apps that are sold.

We'll see if those competitors are smart and disciplined enough to actually do this, and whether Apple will shake off the complacency evidenced by these actions.

As one more note, this is part of what did in the Mac. Microsoft did a better job catering to Windows developers. Microsoft eventually screwed over their developers, but only when they were on the verge of monopoly and it was too late for developers to go anywhere else. I don't think iPhone is at that point, yet.

<comment><USER3> _a failure to meet their legal obligations_

Does the App Store agreement actually put an upper bound on when payment will be made? All of the similar agreements that I've seen (e.g. AdSense) only specify an approximate date.

<comment><USER4> yes, 45 days

</comment></comment></comment><comment><USER5> Sadly, having been in the mobile industry for the past 6 years, Apple treats its developers much better than any of the previous stores have. This isn't to say that this kind of behavior is right, it just helps to have a little perspective.

</comment><comment><USER6> Do you guys think that there is getting to be enough backlash about this that developers might start looking at targeting Android / Blackberry / some other smartphone platform?

I know it would make me pretty nervous dedicating all my time to iPhone development if I thought this is how Apple was going to do business.

<comment><USER7> Developers knew what they were getting into; Apple has a history of opacity and secrecy. Look at the NDA debacle, the seemingly arbitrary app review process, or the way they silence dissent on the forums. Developers wrote apps knowing that Apple development is risky, and so they will continue to write apps; there won't be significant backlash.

<comment><USER6> I knew that getting an app into the store was a bit tricky, and I also knew that the forums were... heavily moderated.

But it is a little shocking to me that huge company like Apple is playing these sorts of games with paying people. That's something I'd expect from a shady backroom sort of company, not a huge corporation like Apple.

<comment><USER8> I don't think there is an evidence that Apple is "playing games", they're just inexperienced at processing and delivering payments and thus are doing a bad job at it. As they say, never blame malice where incompetence is a sufficient explanation.

<comment><USER6> I don't personally see much difference between incompetence and malice when they've made it seem like they really don't care all that much about their incompetence.

</comment></comment></comment></comment></comment><comment><USER9> That sounds like Apple is really screwing up, but considering the source (The Register) I may as well have read this in a supermarket tabloid. Is there any other source citing problems like this?

<comment><USER10> As much as The Reg likes to exaggerate, they are usually pretty accurate. In this case they link developer discussions in forums.

</comment></comment><comment><USER11> Not getting paid? Wow. I wish I had that problem. I'm stuck under the $250 threshold. _sigh_

<comment><USER12> What's your app? Why not put it in your About section

</comment></comment><comment><USER13> I can't wait until Android becomes a threat.

<comment><USER14> At least according to (browser usage)/(units sold), it appears there will be _more_ of a market for (at least some kinds of) Android apps:

[http://blogs.computerworld.com/android_iphone_apple_google_m...](http://blogs.computerworld.com/android_iphone_apple_google_market_share_web_share_safari_chrome)

</comment></comment><comment><USER15> It doesn't "border harassment", it is harassment. It's also perfectly reasonable that you should be getting harassed when withholding people's livelihoods due to your incompetence. Stop your whinging today; pay up today (through another means, if needs be); _then_ sort your failure of a payment system out. Anything less is a harassable offence.

<comment><USER16> I don't see how that could be anywhere near harassment. If that's the case we all get harassed daily with hundreds of spam emails. I don't remember any lawsuits against spammers on basis of harassment.

<comment><USER17> From reading the article, the phrase "bordering on harassment" came about when a single individual sent 22 emails within a 2-day timespan. (Perhaps they forgot to take their meds?) It makes no sense to compare this to a collection of spam from various, automated sources. If I were that engineer, I'd have had similar thoughts. I realize the squeaky wheel gets the grease, but at some point you'd think a neuron would fire to make them ask themselves "does sending another email this hour really help?"

<comment><USER14> If my family's income depended on getting the money I made from Apple, I'd be doing a lot more than sending 22 e-mails. It might be tricky if you're in Europe, but legal action is certainly appropriate in this case.</comment></comment></comment></comment>


EU votes to extend music copyright to 70 years - <AUTHOR> http://www.bbc.co.uk/news/technology-14829373 <comment><USER3> Are musicians not incentivized enough in Europe? Or are we trying to incentivize music creation in 1950s and 60s? :P

I can see the court in Brussels going, "Mm, yes. I know what will motivate them to create better music! We'll make sure they own it when they are 105 years old! There's just too little good music these days, and this will make all the difference."

Joking. Obviously it's special interests pushing to make money from their 1950s creations after having been incentivized enough to make them in the first place, at the expense of the public.

</comment><comment><USER4> Why? To better incentivize people to make music in the 1940s and 50s?

<comment><USER5> It also means You can trust your music will be your own, for most of your life.

<comment><USER6> "Your music" is just a remix of sounds and words from earlier artists. Extending copyright like this stifles innovation and future creativity.

<comment><USER7> Please explain this nonsensical argument. How does the Rolling Stones holding the copyright to Paint It Black stifle someone else's innovation and creativity? Seriously. Innovation and creativity go with being original, and you're encouraging being derivative.

Look at Disney and don't tell me that a lack of copyright makes creativity. A lack of copyright just enables corporations to mass produce drivel from non- copyrighted works and cut out the talented people. Disney is barely a step away from just an algorithm that creates film scripts from Brothers Grimm stories.

</comment></comment></comment></comment><comment><USER8> An illustration of why some of the software industry wants to be more like the music industry and why the music industry doesn't want to be like the software industry.

Imagine if you were still making money off a program you wrote in 1960. Almost inconceivable in any mass market.

<comment><USER9> Let alone that most people that made popular music 50 years ago are dead nowadays. It's not the original artist who gets the money but some persons that didn't even work for it!!

<comment><USER10> They bought the license. Are business deals not work? Do you need proximity to the creation to profit from it?

<comment><USER11> Can you make a convincing argument that copyright ought to be transferable in the first place? I'm not certain it shouldn't, but this thread has made me realize I've never heard a good reason for it.

<comment><USER12> Liquidity for creators, without which some wouldn't have the time and money needed to create and publicise their creation. Its analogous to being allowed to sell [in part or whole] the ownership of your startup before accruing any profit.

<comment><USER13> Still, those who provide liquidity for creators should not be able to profit from a work any longer than the original creator would have, given the same resources. In other words, copyright should expire after the same fixed amount of time, whether it's owned by a person, an estate, or a corporation.

</comment></comment></comment></comment></comment></comment><comment><USER14> What would happen to music that is currently say 60 years old? That would have been copyright-free for 10 years and all of a sudden it is under copyright again?

<comment><USER7> Once the copyright has lapsed, it has lapsed. Unless they did something special beyond simply extending the period then there's no way to renew the copyright.

<comment><USER15> I'm not sure about this case, but that's not always been true everywhere, historically. In the UK, at least, when books were extended to life + 70 that was retroactive for books originally published there. It was not retroactive in the USA, however (and more sensibly, I would say - whatever your views on term extension).

This has affected me and my business in the past - <USER2> [http://blog.th.ingsmadeoutofotherthin.gs/eucalyptus- availabl...](http://blog.th.ingsmadeoutofotherthin.gs/eucalyptus-available- again) (halfway down, "A Note on Copyright" has an explanation of this oddity).

<comment><USER7> That's actually quite the oddity. It seems to go against conventional wisdom (but then when has the British Government done anything wise lately?) and copyright law itself in that once copyright lapses it is supposed to be non- ownable from that point on.

</comment></comment></comment></comment><comment><USER16> The pension argument is lame, if a performer wants a pension they should do what everybody else does, save for it.

<comment><USER17> Yes, "people will still play my present music in 60 years" is not something I would recommend as your pension plan.

<comment><USER18> While it's not necessarily a solid plan, if your music attained popularity, it's not unreasonable to think it will be played regularly in sixty years.

Here in Denver (2M population in the larger metro area) there are at least:

\- One AM swing/standards station (Benny Goodman etc) playing music from the thirties to the sixties.

\- Two FM oldies stations, one of which is also AM, playing music from the fifties to the seventies.

\- Two primarily classic rock FM stations and one progressive station that sits partly in their Venn diagram, playing music from the sixties to the eighties.

\- A public FM station that plays folk/bluegrass/world, back to the thirties.

That's not to say that the retirement plan is any more solid than an NBA career, but the music itself, if it once had traction, will likely be played for a long time.

</comment></comment></comment><comment><USER19> If you ever happen to find yourself wondering if copyrights are about to be extended again, just remember, The Beatles and Mickey Mouse will _never_ be entering the public domain. Either of these events about to occur? Dude, you're getting an extension.

</comment><comment><USER20> How long until patents never expire either?

<comment><USER21> We shouldn't confuse causation with correlation, but the slowing of "big" ideas is roughly correlated with the outer limit of the patent age. 1900 seems archaic, but 1960 still seems relevant (Minus those pesky, non-consumption- friendly social movements). Cars, telecommunications, miniskirts. It's like we're seeing our culture enthrone its mores in the way Americans know best: litigation, and the legal system. Our culture is slowing down in some sense, but in reality it's just becoming "legitimate" and stable.

For example: where's the big new music scene? It's not because there's no musical avenues left to investigate. It's because our culture is so laden with ideas, we're incapable of propagating new ones into the mainstream. Why not an exploration into pure acoustic tonality, a la Yoshida Brothers? Because our culture is not capable of accepting it. We've become static. Hell, the whole concept of a "hipster" was in thrifting old, expired cultures. The vogue was in retro. Bruce Sterling, eat your heart out.

So, to answer your question: if we don't see any major cultural revolutions? Soon, but genesis will always be around 1900-1960.

If we get cyborgs and AI? Never. It would be like trying to rehash ragtime. Eventually patents will melt away, and reform at the beginning of the new age.

 _Basically_ : patents are the cultural realization that old ideas are still valid and commercially viable today. I don't like that, but there it is.

<comment><USER22> What you describe is largely a Red and Blue ocean issue <http://en.wikipedia.org/wiki/Blue_Ocean_Strategy>

</comment></comment></comment><comment><USER23> I can't stop being amazed at how powerful those lobbies are.

<comment><USER24> The idea of free music is non-existent in the minds of most people. Pretty much all our musical "culture history" is those who were commercially successful (history of the winners). In Germany pretty much all you hear on the radio is music industry.

I think people would not even know how to handle it if eg the Beatles recordings would suddenly be free. They would probably still buy CDs in the stores.

<comment><USER11> I fail to see how this holds any water at all, considering that music _is_ free for a substantial number of people.

<comment><USER24> Sorry, I was being unclear. I meant music that is free and legal to download and share.

</comment></comment></comment></comment><comment><USER25> Just think about all the now 50-year old music that would become parts of mash-ups and remixes everywhere, creating a lot of new cool music. Now this just won't happen. :-(

</comment><comment><USER26> Does the legal justification for copyright differ in the EU vs the USA? In the USA, the nominal basis is to give a creator a monopoly over reproduction for a time, to encourage that creator to make more.

<comment><USER20> That might have been true about the USA once upon a time, but ...

 _The [Copyright Term Extension] Act extended these terms to life of the author plus 70 years and for works of corporate authorship to 120 years after creation or 95 years after publication, whichever endpoint is earlier._

\-- <http://en.wikipedia.org/wiki/Copyright_Term_Extension_Act>

I'm not sure that extending copyright from lifetime+50years to lifetime+70years was really aimed at encouraging creators to create more.

<comment><USER27> It has also been regularly extended every time Mickey Mouse was about to enter public domain, the realistic expectation is that copyright in the USA will never expire.

<comment><USER20> I actually googled for "Mickey Mouse protection act" to find the name of the legislation.

Steamboat Willy was released in 1928, so expect the next extension in around ten years time.

There have only been 3 Mickey Mouse cartoons in the last 56 years and the cynic in me suspects that they are only being made to boost their moral justification for continually extending the copyright on the character. <http://en.wikipedia.org/wiki/List_of_Mickey_Mouse_cartoons>

<comment><USER20> And maybe I was a touch too cynical. If she were here, my niece would be jumping about and down right now to remind me about <http://en.wikipedia.org/wiki/Mickey_Mouse_Clubhouse> in which Mickey has had a starring role for years.

</comment></comment></comment></comment></comment><comment><USER28> What music from the 1940es is such a great moneymaker today that copyright holders can't bear to lose distribution privileges? Rarely are even 2 year old tunes really big sellers.

<comment><USER29> From the 40s, I don't know, but that's not really the question. Before this vote, the limit was set at 50 years, which meant that all those bands from the 1960s, who _are_ still making decent money, would start to lose income. Think the Beatles, the Rolling Stones, the Beach Boys, the Supremes, Bob Dylan.

Of course, I don't feel terribly much sympathy for them - they've all lived lives of privilege that I will probably never know, and I don't see why they should be able to continue making even more money from something they did half a century ago.

I wouldn't mind so much, except that in the music world, the idea of a derived work has received such a broad definition by the legal system. I mean, I don't think it unreasonable that the Beatles should continue to receive money for copies of _their_ performance of Hey Jude, but why can't another artist do a cover without having to pay them, 50 years down the track? IP was supposed to aid creative expression, not stifle it!

<comment><USER30> "IP was supposed to aid creative expression, not stifle it!" IP is supposed to benefit creators not plagiarists. Copying someone elses' work is not creative expression.

<comment><USER31> Tell that to Walt Disney -- last I checked, he built his fortune by "plagiarizing" out-of-copyright stories. And what about all those movies based on Wells, Verne, Conan-Doyle, Christie, Austen? One of the most successful songs ever, in economic terms, is "Whiter Shade of Pale" by Procol Harum: a blatant riff on two compositions by Bach. The likes of Rolling Stones and Eric Clapton would have gone nowhere without the ability to ransack the humongous catalogue of blues classics -- if the original black musicians and composers had enjoyed modern copyright terms, you wouldn't have had any of that. Same for Bob Dylan and folk songs.

All art is derivative, originality is a myth.

<comment> robert-boehnke To quote Lawrence Lessig, "No one can do to the Disney Corporation what Walt Disney did to the Brothers Grimm."

<comment><USER7> It's important to note it isn't just Walt who raped the Brothers Grimm, but the entire corporation has the mentality of pillaging myth and legend like it's their 90 year old grandma's jewellery box and they need another hit of meth.

<comment><USER32> Pillaging? There's absolutely nothing _wrong_ with giving a new voice to stories that have become part of our cultural consciousness. That's precisely how cultures evolve. We build upon the creations of those who went before us, adding our own unique touches and flourishes.

The only pillaging here is being done by politicians and lobbyists who are preventing new developments from being adapted and evolved. The creative contribution of Hendrix's recording of "All Along the Watchtower" is something many of us appreciate, but we've also seen glimpses into what sort of creations can be made with it (e.g., Battlestar Galactica's adaptation at the end of Season 3) and we're now being denied that by decisions like these.

<comment><USER7> You're discussing a problem with the licencing price for a copyrighted work and suggesting that it being out of copyright is best for all parties. It would be more prudent to resolve the licencing issue so that artists can build upon others work and net the original artist more money.

The problem is that the music industry is too engrossed with its 'potential profits' that it can't find any 'actual profits'. They'll sell the licence to a 10 second segment of a song for a million dollars, which no one will buy and the record will get more obscure and less in demand just because the licencee could make huge money and their work is integral on that licence.

This could be resolved simply by saying the licence fee is $1 per unit sold per year. A song that sells a million copies in its first year maybe should have a licence fee of a million dollars for valid reasons. A 40 year old recording that shipped 10 units last month, definitely isn't worth a million, and $120 in a licence fee is probably the most money the artist or studio has seen from it in a long time.

I'm sorry, but the abolition of slavery took a civil war to resolve and it didn't have nearly as much money entangled in it as the copyright industry does. So unless The Pirate Bay launches an army, I don't think copyright is going anywhere. It would be more commendable to actually get the clauses exploited by corporations for (and sometimes against) their own gain fixed.

<comment><USER16> You are assuming that perpetual copyright is beneficial to society.

Time limited copyright (say 10 years) almost certainly is beneficial, perpetual copyright is harmful both culturally and in the long run economically.

<comment><USER7> No in fact I am not, and have said multiple times I am not in favour of perpetual copyright.

Perpetual copyright on copyrights as they are today would cause a great amount of work to be lost due to the owners greed and stupidity.

As per my suggestion on licencing a work could become free-use much sooner than the copyright period expires. Anything with no units shipped would mean its a free license.

As I've said elsewhere, and originally, I'm in favour of 20 years and extensions for derivative works, and perhaps then only on the right to produce derivatives and on no other rights like reproduction.

<comment><USER16> I think we are basically on the same page.

Copyright should be granted for free for a short amount of time.

Once that is up, the copyright holder should have the option of extending the copyright. They should be made to pay for this right, since the extension of the copyright only really benefits them.

This would allow copyright holders to keep a hold of stuff that is obviously profitable, at the same time the vast majority of stuff would enter the public domain.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER33> It would be interesting if for new laws, there were some sort of judicial opinion that could state to their best of their ability what the purpose of the law was.

i.e. Some legislators write a law, then pass it to a panel of judges, the judges attach a note indicating what they determined the purpose of the law was, and then the law went on for a vote. The opinion wouldn't have any legal effect, but it might provide for a bit more honesty.

</comment><comment><USER34> Apart from whether or not this is fair, I really hate the EU taking any part in this. I know their authority is not well-defined, but in my view they are overreaching. I've flipped from pro-EU to anti-EU on my voting agenda.

</comment><comment><USER35> It logically follows that the legislative body who produced this law would also have dreamed up the EU's anti-cookie law. It seems that Brussels sincerely doesn't understand the current role of technology in the world. It makes no sense to pass a law that will extend the enforcement period of a law that is relatively unenforceable today. Increasing the persons, actions or time-period to which a law applies, also increases the potential "criminal class" in the application of that law. This is effect these laws have/or will have on previously innocent populations.In this case a big portion of that population are the technology innovators. I have not spent anytime living in Europe, or paying attention to their pop-culture, but I find that this is a disturbing phenomenon. I imagine that if these laws have been able to pass through the EU legislature, they must somehow fit into a larger trend in European political culture. If these two laws are any indicator, I believe that they won't be the last to deter tech innovation and opportunity in Europe</comment>


JavaScript Power Tools: Real-World Redux-Saga Patterns - <AUTHOR> http://formidable.com/blog/2017/real-world-redux-saga-patterns/ <comment><USER2> I worked on a fairly large and high traffic React app. It had some complicated async flows, so the team moved from redux-thunk to sagas.

The claims that testability is improved do not ring true to me. Some of those tests were just awful to write and maintain. I'm sure someone will say "you were doing it wrong" but there were many folks on the team following advice from the maintainers themselves on Discord. General understanding of Sagas by less seasoned developers was also worse than trying to teach them promises.

After the codebase was converted, the team generally concurred that sagas were a waste of time and effort, especially with async/await gaining steam. They also felt that maintainability and debug-ability suffered with sagas. Reasoning about what code runs next is easy, until it's not.

YMMV, but I've tried all the async patterns, and I think sticking with async/await and promises is probably the best bet these days. The code might not "look" as pretty - but aesthetics should hardly be the main goal.

<comment><USER3> > After the codebase was converted, the team generally concurred that sagas > were a waste of time and effort, especially with async/await gaining steam.

To be fair, I'd almost certainly recommend async/await for simpler use cases- in particular, an application in which API calls are the only async behavior. However, in our situation, redux-saga turned out to work pretty well. We needed to coordinate some relatively complex UI flows (the user would draw on a map, then the app would POST the coords to the server). Before introducing redux-saga, we were starting to get lost in a daisy-chain of Redux actions.

> Reasoning about what code runs next is easy, until it's not.

This was the general idea behind "navigationSaga"\- to set things up so there's as little as possible happening at a given time.

> The claims that testability is improved do not ring true to me. Some of > those tests were just awful to write and maintain.

I dunno. On one hand, I wish there were better tools for testing sagas, but on the other, testing long chains of Promises has caused me all kinds of headaches in the past, as well. I find that it's easier for me to keep responsibilities separate when using sagas than it is using promises or suchlike.

And for what it's worth, I'm not trying to bill sagas as a be-all-end-all solution for all life's problems. :) I was just trying to sorta explicate an approach that worked for us.

<comment><USER2> It sounds like you guys made the right moves - trying promises first until that fell apart, and then carefully picking a new path forward.

My comment was mainly intended as a "cautionary tale" for those folks who get really excited about the latest and greatest, and don't apply that base level of skepticism to new tech.

</comment></comment></comment><comment><USER4> This is an excellent series of posts! Parts 1 and 2 give a ground-up description of the core concepts that redux-saga uses (generators, describing effects, etc), and Part 3 covers some real-world use cases. One of the best tutorials on redux-saga I've seen.

If anyone's interested, I do have links to other tutorials and articles on redux-saga in my React/Redux links list, at [https://github.com/markerikson/react-redux- links/blob/master...](https://github.com/markerikson/react-redux- links/blob/master/redux-side-effects.md#sagas) .

</comment><comment><USER5> A whole class of problems you wouldn't have in the first place with MobX. So much code in the article for doing so little - where good design could solve the issues much more elegantly using plain function composition and JS concepts.

<comment><USER3> Author here.

As I mentioned in other posts, I don't believe redux-saga is the be-all-end- all solution to every problem in client-side Javascript. It's a good solution for codebases which need to coordinate among several different asynchronous processes.

And for what it's worth, I wanted to err on the side of verbosity. I find that a lot of blog posts kinda elide over too much, and so I was actively trying to break down my thought process into very discrete steps. At the end of the day, I think you'll find that the final product involves less than 300 lines of code. If that.

On a different tack, MobX is an excellent library, and we've actually used it to great effect at Formidable! Ken Wheeler has a great post about the topic. The point of _this_ article, though, is simply to share something that worked well for us on a complex project, where replacing Redux with MobX wouldn't have been that helpful.

Along those lines, I ask you in complete honesty: what would you like to see out of a "Javascript Power Tools: MobX" article? I'd love to dig into it a little bit, find out what makes it tick, and share that with folks. :)

<comment><USER6> I think it would be great for the community to see a writeup on how complex async flows can be handled with MobX reactions and data atoms, two pretty powerful concepts IMO

</comment></comment></comment><comment><USER7> I'm going to use this opportunity to plug my Redux Saga testing library: redux-saga-test-engine[0][1]. It makes saga tests much less verbose. Let me know if you like it (or don't)! :)

[0] [https://github.com/DNAinfo/redux-saga-test- engine](https://github.com/DNAinfo/redux-saga-test-engine) [1] npmjs.com/package/redux-saga-test-engine

<comment><USER8> This is awesome! I'm definitely going to give it a try on my next side project. :) Thanks for sharing!

</comment></comment><comment><USER9> I don't understand.

Why not simply observables?

<comment><USER3> Author here.

Saying "why not simply observables" kinda glosses over a lot of details, but I'll try and answer as best as I can.

I've always found it a bit difficult to use Observables in application-style code, both in a conceptual sense (handling Redux actions as an observable stream) and in a practical sense (actually building and debugging streams and transformations over those streams). I do think they're excellent tools for dealing with cross-cutting concerns like logging, analytics, and debugging. But as I mentioned in the article, "business logic is inherently procedural, and expressing it as such makes our intent clearer." That's the major advantage, I think- being able to use simpler tools (e.g. loops and local variables) in a powerful new way.

And don't get me wrong, I'd love to learn RxJS properly one of these days. :) This article isn't about saying "well this approach is THE BEST APPROACH", it's more about saying "These tools turned out to be super helpful. Here's my thought process, maybe this approach will help you as well."

<comment><USER9> Yes, this article assumes (rightfully) that people are using redux saga and need help with it.

I just found the whole concept of redux and redux-saga a bit strange. It seemed like people don't want to use observables for whatever reasons and try to push Redux to solve these async problems.

Your article is good, I just had the feeling it wouldn't be needed if people would use better suited abstractions in the first place.

<comment><USER4> I'm still not sure exactly what you're trying to say there, particularly by "push Redux to solve these async problems".

Redux itself is about synchronous state updates, as inspired by the Flux Architecture. Because of that, async behavior and side effects are handled via middleware.

Most developers are not overly comfortable with FP concepts or code. Redux was intended as a lightweight intro to FP principles, and React also helps push people in that direction. Even fewer people are comfortable with observables, although Angular is maybe starting to change that somewhat. So, it's not just about "better suited abstractions", it's about what developers understand and can use well.

To be honest, your comments seem to be leaning towards the common stereotype of an FP enthusiast: "This approach is clearly superior and correct, why would people do anything else?"

<comment><USER10> > Because of that, async behavior and side effects are handled via middleware.

It shouldn't be though. The middleware pattern makes a lot of sense for transforming data (communication between mismatched APIs etc), or using it in some way before passing it on (logging, analytics etc). IMO it's totally wrong for this use case though.

All redux-thunk is doing is taking some "action", clobbering it, pretending it doesn't exist, and running some arbitrary function that it's passed.

dispatch(higherOrderFunctionThatCreatesAsyncFunction())

is identical to

asyncFunction()

What people are looking for is some way to get the data store dependencies into asyncFunction in a testable way. This can easily be done without middleware.

<comment><USER4> Yes, yes, we've had this argument about redux-thunk in prior threads :)

That said, it's worth noting that the explicit design goal for middleware _was_ for async behavior, per the comments from Dan and Andrew I've quoted in [http://blog.isquaredsoftware.com/2017/05/idiomatic-redux- tao...](http://blog.isquaredsoftware.com/2017/05/idiomatic-redux-tao-of-redux- part-1/) . To pick out one specific quote from Andrew:

> [the] reason the middleware API exists in the first place is because we > explicitly did not want to prescribe a particular solution for async." My > previous Flux library, Flummox, had what was essentially a promise > middleware built in. It was convenient for some, but because it was built > in, you couldn't change or opt-out of its behavior. With Redux, we knew that > the community would come up with a multitude of better async solutions that > whatever we could have built in ourselves.

> Redux Thunk is promoted in the docs because it's the absolute bare minimum > solution. We were confident that the community would come up with something > different and/or better. We were right!

<comment><USER10> Yeah I'm under no illusions that me and Dan Abramov are operating under a vastly different model for how we think an application should be structured. The concept of a data store having a "solution for async" is, to me at least, absurd. It's like asking why my fridge doesn't have a solution for next day grocery delivery.

I don't see why my fridge needs to be concerned about whether my broccoli is sitting on the bench ready to be put in, or still being washed down at the green grocers.

From the fridge's point of view, a piece of broccoli is inserted into it at a specific point of time. The contents of the fridge can be defined as an ordered set of insertions and removals. The fridge's state depends on knowing whether a piece of broccoli was inserted at 12:58pm or 1:03pm, since that may change the order things were stacked in, but it doesn't need to know whether I placed an order for that broccoli this morning, yesterday, or a week ago; or how it arrived at my house. Making my fridge responsible for that process would seem to violate the concept of separation of concerns.

<comment><USER9> Finally someone sane, thanks.

Funny thing is that Dan himself said Redux could be implemented in 5 lines of RxJS and was also rathere interested in observables til he met some haters on a conf.

I remember him asking a question about observables being the next thing or future or something and the speaker just didn't know what to say.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> The codebase for redux-saga is a dream to read through: [https://github.com/redux-saga/redux-saga](https://github.com/redux- saga/redux-saga)

<comment><USER12> could you actually get anything done in js before es6 !?

<comment><USER13> Quite happily, ES6 is 90% sugar.

<comment><USER14> Was that a yes or a no? :D</comment></comment></comment></comment>


Ask HN: Please review my new website: Truthy - <AUTHOR>

We just finished working on a new political meme tracking website based on Twitter: http://truthy.indiana.edu [1]
The goal is to automatically detect and track political memes that are artificially injected in the system by a group or organization to achieve some goal.
Such political machineries have been seen in the past http://journal.webscience.org/317/ [2] and had a significant contribution to the final outcome. By detecting and exposing such "Truthy" tactics, we hope to contribute to the discussion of real issues to everyones benefit.
Any feedback will be greatly appreciated.
- What do you like/dislike?
- What would you have done differently?
- Any bugs we missed?
- Any suggestions on feature that would improve it?
- Something that is not clear? <comment><AUTHOR> Clickable links:

[1] <http://truthy.indiana.edu>

[2] <http://journal.webscience.org/317/>

Edit: Fixed now

<comment><USER2> I still had to copy/paste.

</comment></comment><comment><USER2> Interesting...</comment>


Show HN: Journalist – Telegram bot for creating real-time broadcasts - <AUTHOR> https://journali.st <comment><AUTHOR> Hello everyone!

Today i want to introduce the new Telegram bot called Journalist.

[https://telegram.me/JournalistBot](https://telegram.me/JournalistBot)

JournalistBot allows you to create real-time broadcasts with media content. For every broadcast you created you got public link to share broadcast with your readers and html code to embed broadcast into your website or blog. Your public broadcast will look like this demo: [https://journali.st/broadcasts/1944389149](https://journali.st/broadcasts/1944389149)

You can create posts just by sending messages to the bot. It supports texts, links, photos, videos, voices and locations. Also you can use Markdown (just enable it from Settings). Readers will get all updates immediately after they are published without needing to refresh the page. It works very fast. Of course you can edit and delete your messages. Also you can invite another editors to your broadcasts. So, you can work on broadcast with your team. You don't need any additional web interfaces or apps to control your broadcasts. This makes it a truly mobile and one of the most advanced bot for content creation. Target audience of JournalistBot are bloggers, newsmakers and online media portals. Embeded broadcasts can be easily customized with css that makes it look like native. Is's in free beta for now. Many features are coming in future. Any feedback is greatly appreciated.</comment>


Intel's First 10nm Cannon Lake CPU Confirmed - <AUTHOR> https://www.forbes.com/sites/antonyleather/2018/05/16/intels-first-10nm-cannon-lake-cpu-confirmed/#1736391255a7 <comment><USER2> > Interestingly, there doesn't appear to be evidence that the CPU includes an > integrated graphics processor - something that's listed in detail on the > product page of the Coffee Lake-based Core i3-8109U. This could simply be > down to the fact that Intel does not wish to reveal details of the onboard > graphics of Cannon Lake CPUs at this time, or it's decided to cut the > feature out of certain product ranges in favor of using separate graphics > cards.

I wonder if they may have cut onboard graphics to increase yield by lowering the bar for a QA pass in the lower product ranges. If they are having process difficulties at 10nm, that would allow them to push some of what would normally be rejected to market.

<comment><USER3> This seems like the most likely case.

If the GPU part has a failure, you can disable it and rescue the CPU. If the CPU has a failure you might rescue GPU. Pairing failed GPU-CPU's together for cheaper products and selling fully functional ones for the top of the line products makes sense.

The same happens with multi core ships and even with failed caches. Just disable them and sell them as low end chips.

<comment><USER4> Or they knew that they were going to have yield issues, and these dies don't even have a GPU in the first place rather than binning them after the fact.

<comment><USER3> The solution they pick is typical linear programming problem using die size, yield and price of different options after disabling failed areas.

<comment><USER4> They also layout with some understanding of the yield (yield is almost entirely a function of die area at a given node). So if they decide to just entirely bin off the GPU, and they know this ahead of time enough, it makes more sense to not have a GPU in the first place. The GPU is about half the die area, so you would get better yield by just not having it at all (but all of this depends on having enough lead time to decide this before layout).

</comment></comment></comment></comment></comment><comment><USER5> There's a _tiny_ bit more information in the recent short article about this CPU at WikiChip.[1]

[1] [https://fuse.wikichip.org/news/1285/intel-launches-cannon- la...](https://fuse.wikichip.org/news/1285/intel-launches-cannon-lake/)

</comment><comment><USER6> "confirmed" seems a little strong for them pointing to a single article in German citing an un-sourced ad in Chinese...

<comment><USER5> Check out ark.intel.com for confirmation.

[https://ark.intel.com/products/136863/Intel- Core-i3-8121U-Pr...](https://ark.intel.com/products/136863/Intel- Core-i3-8121U-Processor-4M-Cache-up-to-3_20-GHz?q=8121U)

<comment><USER7> I did not expect to see AVX-512 support for a Core i3.

<comment><USER8> They need to drive up adoption somehow, right?

</comment></comment></comment></comment><comment><USER9> This is a dual-core 2.2GHz processor at a TDP of 15 Watts, how does it compare to modern ARM mobile processors?

<comment><USER10> The _highest_ ARM TDP available now is 2w from the Cortex-A75. That's 7.5x as efficient.

The current Intel 8109u scores about 2x the IPC of the A75 (the main core in the Snapdragon 845). So assuming a generous increase of 15%, the same story as the last 5ish years. ARM is much more efficient; but Intel has more total processing power (especially in the higher power envelopes).

<comment><USER11> That's 1/7.5x the TDP, not 7.5x as efficient. Efficiency is measured in units like requests served per joule. ARM processors typically use less power but also do less work per unit time.

</comment></comment></comment><comment><USER12> I was under the impression that i3 were the weaker dies, where for any reason there were some defect on some part if the cache they would disable it and sell it as i3. I don't know if this is true or not, but in any case is there anything to read in the fact that i3 would be released before i5 and i7?

<comment><USER13> Easier to produce lots of i3s because of high failure rate?

<comment><USER12> That was my thinking given the yield problems they had with this process but I am not qualified.</comment></comment></comment>


The Lawyer, the Addict a High-Powered Silicon Valley Attorney Dies - <AUTHOR> https://www.nytimes.com/2017/07/15/business/lawyers-addiction-mental-health.html?mc=adintl&mcid=keywee&mccr=intdesk&ad-keywords=IntlAudDev&kwp_0=465730&kwp_4=1697329&kwp_1=727712 <comment><USER2> Some really shocking lines in here:

…[based upon self-evaluation,] 21 percent of lawyers qualify as problem drinkers, while 28 percent struggle with … serious depression. Only [25% of] lawyers answered questions about drug use… "It's left to speculation what motivated 75 percent of attorneys to skip over the section on drug use as if it wasn't there."

Of all the heartbreaking details of his story, the one that continues to haunt me is this: The history on his cellphone shows the last call he ever made was for work. Peter, vomiting, unable to sit up, slipping in and out of consciousness, had managed, somehow, to dial into a conference call.

At Peter's memorial service in 2015, [q]uite a few of the lawyers attending the service were bent over their phones, reading and tapping out emails. Their friend and colleague was dead, and yet they couldn't stop working long enough to listen to what was being said about him.

</comment><comment><USER3> This is a sad, sad recitation of a man who lived to work rather than worked to live. The following was the saddest to me:

"Peter battled his own brand of melancholy, something I found attractive in a tragically poetic, still-waters-run-deep kind of way. He used to tell me he wasn't someone who ever really felt happy. He had moments of being "not unhappy," he said, but his emotional range was narrow.

When something great happened, he didn't jump for joy. When something sad happened, he didn't break down and cry. The only times I ever saw tears in his eyes were in the hospital, right after each of our children was born."

For all he did, for all he gave, he never allowed himself to just breathe. Sadly, he missed so much in life including what life is all about.</comment>


Brain controlled spelling machine implementation using Vue and Electron - <AUTHOR> https://github.com/dashersw/brain-bits <comment><AUTHOR> This is a demo video: [https://twitter.com/dashersw/status/909559411693228038](https://twitter.com/dashersw/status/909559411693228038)

<comment><USER2> Here is the GitHub repo [https://github.com/dashersw/brain- bits](https://github.com/dashersw/brain-bits)</comment></comment>


Ask HN: What does mid level product manager comp look like in SF? - <AUTHOR> I'm interviewing with a non-FAANG that gave me a range of $250-$350k per year in SF for a product manager role. Is that average or low?  This is with 5+ years of tech experience <comment><USER2> That seems crazy high to me, personally.

<comment><AUTHOR> Yeh but its specific to bay area. For bay area with the crazy taxes and living cost it's not as much as you'd think.

<comment><USER3> 300K - (130K taxes) - (70K rent) - (10K food) - (40K w/e other expenses/spending) = still saving 50K/yr.

Maybe that isn't as much as I'd think, but that sure looks like putting the 25th percentile's entire salary in the bank.

[https://en.wikipedia.org/wiki/Affluence_in_the_United_States...](https://en.wikipedia.org/wiki/Affluence_in_the_United_States#Top_percentiles_of_income)

</comment></comment></comment><comment><USER4> Try this [https://www.levels.fyi/?compare=Google,Facebook,Microsoft&tr...](https://www.levels.fyi/?compare=Google,Facebook,Microsoft&track=Product%20Manager) You can add location and experience filters.

</comment><comment><USER5> Just FYI, unless the company is eminently filing for an IPO, or is already public, I would not include RSU as a liquid benefit.

It is (unfortunately) likely that the stock will be worth something approximating zero in a couple years, rather than maintaining or increasing from the current funding valuation.

You should also consider burn rate, current runway, and health of competition.

<comment><AUTHOR> public company

</comment></comment><comment><USER6> I know it wasn't one of your options, but I would say high (just going off what some of my PM friends make so I could be wrong).

<comment><AUTHOR> Thats total all in so including Base + RSU vesting per year + Bonus. Is that what your all in make?

<comment><USER7> For your YOE the low end of the range is somewhere between low and average, and the high end is high. Specific business and technology results should drive the negotiation though, not YOE. If YOE is your lever, I'd expect you to land in the bottom third.

My sense of low and high here is relative to other offers, not compensation generally (i.e. what you'd find on levels.fyi). Plenty of people with roughly the same YOE make a lot more thanks to RSU appreciation.

</comment></comment></comment><comment><USER8> That's at least a bit north of average, IME.

PM friends of mine are in the 150-180 range for base pay. Can't speak to equity comp.

<comment><AUTHOR> Thats total all in so including Base + RSU vesting per year + Bonus

</comment></comment><comment><USER9> It's on the higher end for 5 years, but it depends on a lot of factors -- if you're really concerned it's low, get multiple offers.

</comment><comment><USER10> Damn, I'm switching to product mgmt as soon as I can!

<comment><AUTHOR> That's all in, not base lol so a lot of it is stock

</comment></comment><comment><USER11> What is the base salary?

<comment><AUTHOR> Not sure as I don't have an offer. Thats total all in so including Base + RSU vesting per year + Bonus</comment></comment>


AsyncDisplayKit – iOS framework that keeps complex user interfaces responsive - robert-boehnke http://asyncdisplaykit.org/

<comment><AUTHOR> I have no desire to layout everything in code (I know some people like this, I don't) so it's not very interesting to me. It would seem to require you to write your app in a completely different way. I wonder what debugging would be like with it, given that threaded code is always more painful. It might be more interesting once people release actual apps with it (outside of FB).

<comment><USER2> Most iOS UI at Google is laid out in code as well. It makes it much easier to review code, see diffs, and have multiple people working on the same part of the app without causing crazy merge conflicts.

<comment><USER3> Yeah. I acknowledged that storyboard is easier and faster for simple to moderate UI, but merging using git/vcs is horrible. Plus, it's difficult to build cool animations with those.

</comment></comment></comment><comment><USER4> Full blog post announcing the framework is here: [https://code.facebook.com/posts/721586784561674/introducing-...](https://code.facebook.com/posts/721586784561674/introducing- asyncdisplaykit-for-smooth-and-responsive-apps-on-ios/)

</comment><comment><USER5> The flip side of something like this is that it creates a "floaty" feeling, due to delaying UI update for several runloop passes (jumping from one queue to another). Sometimes this is more acceptable but often it is not. If you played with Paper, and felt it was "floaty", now you know why. If it didn't bother you, I guess you are less sensitive to this. Not to say this library is useless, like most things, when not abused, good can come from it.

<comment><USER6> Curious to better understand what you mean—in my experience, this is not true at all. All touches / gesture handling are direct manipulation with no delays at all. All the asynchronously-prepared content is rendered in advance with a large offscreen buffer, so in general it should be done rendering before it's onscreen. In the cases where you scroll really fast and get to something that hasn't finished rendering, the alternative in a regular app architecture is to simply stutter (block the UI) until it's done rendering.

This framework can be used in very flexible ways, such as "try to render everything offscreen, but if it's going to come onscreen and hasn't finished yet, block and wait for it to be done". Even that approach will result in a much more responsive feel while ensuring that you have the same guarantees as a synchronous UI about content being finished rendering when it is visible.

</comment></comment><comment><USER7> Awesome stuff, though it's a pity autolayout cannot be used along with this framework. Anyway, it's worth to take a look.

<comment><USER8> Seriously, is autolayout actually used by a lot of people? I tried doing something semi-complex a few weeks back and I spent hours fighting with it. Then I spent 10 minutes writing 10 lines of code and it worked.

When you finally grok it, does it become worth it?

<comment><USER9> Once you "get" doing AutoLayout you will never want to go back. I'm speaking as a guy who swore up and down to frames. All it takes is doing some adaptive stuff for 3.5, 4, 4.7 and 5.5 inch screens to make you want to jump out your window.

By the time you create a good system to get the frames to work with an adaptive layout, you just implemented a poor man's version of AutoLayout.

Just my $0.02. I think it saves me a lot of time. I try to avoid AutoLayout in IB and just use code, either a third party DSL or apple's own visual format language.

<comment><USER3> How do you do animations with autolayout? Isn't it kinda hard compared to frames?

<comment><USER10> It's actually easier depending on the animation you want to do. You can set an NSLayoutConstraint to an IBOutlet and then change it's constant in an animation block.

</comment></comment></comment></comment></comment><comment><USER11> It's really neat to see facebook's iOS team releasing so much of their work. This framework is probably not going to be that relevant to tons of use-cases, but even if you'll never use it you'll probably get a lot out of looking at it closely and thinking about why it makes the decisions it does.

</comment><comment><USER12> On Safari, the entire site seems to have no content and just re-directs to itself in a loop over and over: meta http-equiv="refresh" content="0; [http://asyncdisplaykit.org"](http://asyncdisplaykit.org")

<comment><USER4> it's now launched; thanks for your patience :)

</comment></comment><comment><USER13> Very cool! This bears quite a resemblance to the way React.js constructs a virtual DOM so that it can optimize drawing. Do you guys have a way you're benchmarking performance improvements? Are you just looking at time spent on the main thread?

<comment><USER6> Yes, there is a broad similarity: abstracting away from performance or threading limitations of common UI building blocks. However, React has a declarative, single-directional data flow model. AsyncDisplayKit is imperative.

Declarative code is great for a lot of things, but interactivity and animations are definitely not one of them. Also, ASDisplayNode was designed to be as similar as possible to UIView (also imperative).

We don't have a benchmark suite, largely because it is so easy to use Instruments to do CPU traces and look for any chunks of main thread work that threaten frame drops.

</comment></comment><comment><USER14> Would it be possible to build an alternative to AutoLayout that works with AsyncDisplayKit? How could it this be done?

</comment><comment><USER15> Doesn't seem available either on Github or Cocoapods yet.

<comment><USER16> The GitHub page is up now.

<comment><USER15> Thanks!</comment></comment></comment>


Bing TV ad - <AUTHOR> http://www.istartedsomething.com/20090603/microsoft-bing-tv-ad-wtf/

<comment><AUTHOR> Out of character, MS was handling this launch pretty well. I don't think this is going to help them _at all_. It looks like a parody video.</comment>


Boost your self-development with ongoing feedback - <AUTHOR> Instantly turn every feedback into feed-forward Intact is a feedback-oriented social networking platform. It enables its community of users to build up meaningful connections across the world. Intact simplify feedback. A powerful tool to collect feedback in a centralized place, enables them to convert feedback into visual insights with personal analytics that allows users to understand their regular growth with ease. <comment><AUTHOR> [https://intact.world/our-startup-story](https://intact.world/our-startup- story)

<comment><USER2> why can't I see your website with javascript blocked?</comment></comment>


How can hospitals stay relevant? - <AUTHOR> http://axialexchange.com/blog/article/how-will-your-hospital-stay-relevant

<comment><USER2> I feel as though healthcare professionals should get themselves teams of experienced programmers and work closely with them to create some sort of mobile app.</comment>