Custom string delimiters in Swift 5 - <AUTHOR> https://ericasadun.com/2018/12/26/swift-5-gives-us-nice-things-custom-string-delimiters/ <comment><USER2> I'm still learning Elixir, but the sigils approach to these kinds of problems is interesting.

[https://elixir-lang.org/getting-started/sigils.html](https://elixir- lang.org/getting-started/sigils.html)

<comment><USER3> Sure, that's not really unique to Elixir though. You've had things like that in Ruby (e.g. %w, %W, %r, etc) and Rust (e.g. r").

<comment><USER2> But you can make custom sigils.

<comment><USER4> Still similar things are available in other languages, e.g. [https://docs.scala-lang.org/overviews/core/string- interpolat...](https://docs.scala-lang.org/overviews/core/string- interpolation.html)

</comment></comment></comment></comment><comment><USER5> The article mentions being inspired by Rust syntax, save for 'skipping the ugly "r"', but neglects to mention that the leading r exists so that it's possible to have raw strings that have zero hashes at either end. IOW, in Rust, a string that allows escape sequences looks like "foo", and a string that doesn't allow escape sequences looks like r"foo". And note that Rust didn't invent this syntax, but rather took it from Python--though the addition of optional hashes around the string delimiters allows this single syntax to raw-encode not just backslashes, but also double-quotes (which Python has a separate, triply-quoted string syntax for (and which Swift appears to have used to denote multiline strings (which is just the default behavior of all string literals in Rust))).

<comment><USER6> Yes. In the article:

> _This system was inspired by the Rust programming language. Rust stacks one > or more pounds at each end of a string (and prefixes the letter "r") to > create what it calls "raw strings", that is strings without further escape > sequence interpretation. You cannot incorporate interpolation or coded tabs, > new lines, or returns._

"one or more" should be "zero or more", and the bit about the "r" prefix shouldn't be parenthesised, as _it's_ actually the part that makes it a raw string. Also its mention of _interpolation_ is poor: Rust doesn't have interpolation on plain string literals, but things like the format!() macro perform what is more or less interpolation on their first argument (which must be a string literal), and raw strings work just fine there.

<comment><USER7> The key thing is that raw strings don't have escape sequences.

</comment></comment></comment><comment><USER8> The only thing I want from Swift 5 is easier string handling. I just want an easy and concise way to do things like split a filename into parts, extract regex matches, etc. At the moment it's faster to write string handling code in Objective C...

<comment><USER9> > split a filename into parts

This is not something strings should do; you should be using URL instead. Foundation realized this long ago and has started deprecating string-based path APIs because treating a path as a string exposes fundamental misconceptions very quickly.

> extract regex matches

This is something that is being worked on/discussed, but has not been "solved" yet.

<comment><USER8> > This is not something strings should do;

I didn't mean that String should have a "pathExtension" property like NSString. I just want operations like "insert a number before the last period" to be easier to do.

Also, there are a lot more things that are a pain with String. I mean, just the fact that I can't pass a Substring to a function that expects a String boggles my mind.

<comment><USER9> Yes, like I said, you should be using URL for this, which will make it possible to extract the filename without the extension, modify it, and get the path string from that (which is semantically what I believe you are trying to do). Not only does this create self-documenting code, it also makes it harder to fall into a the many "gotchas" that handling paths entails.

<comment><USER8> Yes, I know that, but I was just using filename manipulation as an example, because it was the first thing that came to my mind. I now see it was a bad example, since URL has a couple of APIs for file name handling.

Anyway, these types of operations come up all the time when working with strings, and these operations are really really incovenient in Swift.

<comment><USER9> > Anyway, these types of operations come up all the time when working with > strings, and these operations are really really incovenient in Swift.

Again, what are these operations? I think most of the issues people have with String is due to hard to discover APIs rather than design issues with String.

<comment><USER8> Text parsing is something that comes up often (for me). For example parsing CSV files, or parsing tab separated data from the clipboard, or parsing various types of config files.

Swift has sweet solutions for a few special cases (eg. parse file names, parse dates, parse JSON), but parsing generic text is not something that Swift is good at.

NSString has a rich set of APIs for those tasks (NSScanner, NSRegularExpression, and all the rangeOfString... methods). Swift has pretty much nothing. (There is firstIndex(of:), but as far as I can see there is no way to find the next index, which makes it pretty much useless for most parsing tasks)

Maybe the problem is that I'm just not familiar enough with Swifts String, but until now every time I've had to work with Strings I became very frustrated.

<comment><USER10> I would strongly suggest that you don't write a parser for .csv yourself, it's a terrible format.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> I really wish Swift closures were more uniform. I remember Alan Kay (or maybe Dan Ingalls) was famed for saying "its ok to cheat, as long as you don't get caught" (re. Language implementation).

I really like swift, but there are times when I feel I need a magic decoder to figure out which edge cases apply. My biggest frustration is that something like this

        for view in self.subviews { view in
            ...
            return something
        }

Is very different from the naively similiar

        self.subviews.forEach { view in
            ...
            return something
        }

I just wish closures were a more first class part of the language like they were in Smalltalk. If language written in 1980 could use closures/lambdas all the way down even for things like if/else, and keep the deception pretty complete, I don't understand why swift can't do similiar.

<comment><USER12> I don't understand your syntax on the for-in. Is there some magic on an array that takes a closure and is nonobvious? Or is there a syntactic issue with the code in your comment?

<comment><USER13> tho I'm not familiar with swift: my guess here is that the first (for ... in) shares a closure / var, so stuff like this classic JS mistake can happen:

        for i=0;i<10;i++ { setTimeout(() => console.log(i), 100); }

and you get 10 calls logging "9". (most languages I've touched do this, JS just makes it worse since `var x` in the loop will not fix it)

The second won't do that, since the "view" var isn't "mutated" between calls.

<comment><USER14> A good try from a JS perspective however:

1) view is immutable in both cases

2) GGP is returning in a void block so both sets of code will fail

3) there is really no difference except iteration vs function calls as far as I can tell, you can iterate arrays and use higher order functions built into arrays... which seems normal

4) you can only access the index in (1) by calling .enumerated() I suppose.

<comment><USER15> I think the difference OP is pointing out is that the return behaves differently. In the forEach, the return exits the closure, but in for-in, it returns from the enclosing function.

<comment><USER12> First, to make arguments that rely on syntax, one must use correct syntax. If OP's syntax were valid, that return in the for-in would indeed exit the closure.

To address this argument: the fact that a 'return' within a loop exits the enclosing function and a return from within a closure exits the closure is not a Swift problem.

</comment></comment></comment></comment></comment></comment><comment><USER16> I am not familiar with the Swift world - a quick look at the site says "Objective-C not present on Linux" .. I assume that means the GUI parts also ?

I am not sure how this plays out, if you think.. Apple gets the GUI builder only on Apple products, but "community" builds the plumbing, while small groups at Apple or elsewhere, are paid to make sure plumbing + GUI is advancing .. ? If this is roughly true, what benefit does the non-Apple world get here?

<comment><USER17> The benefit is that Swift is a fantastic language that people want to use outside of macOS and iOS development. Remember that languages and frameworks aren't the same thing.

You can still use Swift to plug into other GUI frameworks and libraries to make apps on other platforms, and there are a few Swift frameworks for writing web applications such as Vapor and IBM Kitura.

Swift on Linux lacks the Objective-C runtime and therefore the Objective-C- based Foundation and Cocoa frameworks. In their place, the Swift project has been creating a pure Swift replacement.

Linux is also an easy target for cross-platform development in Swift, given that it's a POSIX OS and a first—class host for LLVM. It's a great testbed for the pure Swift and cross-platform developmen and tooling before it eventually moves to Windows as a first-class Swift platform.

<comment><USER9> > Swift on Linux lacks the Objective-C runtime and therefore the Objective-C- > based Foundation and Cocoa frameworks. In their place, the Swift project has > been creating a pure Swift replacement.

Clarification: Foundation is being reimplemented in Swift. Cocoa will continue to be written in Objective-C and be macOS-only.

<comment><USER17> Yes, I should have said "in their place _for non-Apple platforms_ ".

</comment></comment></comment></comment><comment><USER18> Perl has some similar features and they tend to make syntax highlighting and editor support more difficult. Will that be a problem with swift?

<comment><USER19> Ruby string interpolation (might be the exact same as Perl): %[string] or %^string^ or %(string), etc. Basically % followed by any pair of the same character around a string works.

[https://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Litera...](https://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Literals#The_.25_Notation)

</comment></comment><comment><USER20> This kind of feels like, "so we put a huge ice cube in the ocean and finally solved global warming."

Isn't it just yet another syntax for strings with another set of rules? What happens when my string includes """# ? Why not just make """ behave this new way and have one less type of string literal?

Why can't the solution be, "put the ASCII in a file to be read in." ?

<comment><USER21> """ can't behave like this, because it won't be able to include """ itself in the string. The """# case is handled by using more #s:

       ##"""
       in string """# still in string
       """## // out of string

Swift has two types of string "..." and """...""", either of which can have zero-or-more # at the start and end.

</comment></comment><comment><USER22> Perl 6 (Raku) takes it a little further with what's known as the Q lang[1]. In their most literal form possible, strings are created by using a Q followed by any pair delimiting surrounding the text.

        Q[This is a literal string.]        #=> This is a literal string.
        Q!The most literal-est of all.!     #=> The most literal-est of all.
        Q<So I say 'Hello'>                 #=> So I say 'Hello'

From there, adverbs are used to sort of expand a literal string's behavior. For example, `Q:q` (or its more verbose form, `Q:single`) means the string can interpolate \\\, \qq[...] and escaping the delimiter with \\.

        Q:q[A simple string]                #=> A simple string
        Q:q{Backslash: \}                   #=> Backslash: \
        Q:q!Backslash: \\!                  #=> Backslash: \
        Q:q{This is a \} so not too early.} #=> This is a } so not too early.

In the other hand, `Q:qq` (or `Q:double`) means the string can interpolate scalars (`$`), arrays (`@`), hashes (`%`), function calls (`&`), closure (`{...}`) and backslashes.

        my $bool = True;
        my @bools = True, False;
        my %bools = False => 0, True => 1;

        Q:qq[Scalar: $bool]                        #=> «Scalar: True»
        Q:qq{Array: @bools[]}                      #=> «Array: True False»
        Q:qq (Hash: %bools{})                      #=> «Hash: False	0␤True  1»
        Q:qq!Function: %bools.keys.join(' and ')!  #=> «Function: False and True»
        Q:qq<Expression: { 1.0 + 2.0 == 3.0 }>     #=> «Expression: True»

In order to prevent unwanted interpolation such as in "firstname.lastname@example.com" or "[https://es.wikipedia.org/wiki/%C3%87"](https://es.wikipedia.org/wiki/%C3%87"), only scalar variables are interpolated normally. As demonstrated, the array constructor `[]` is used to interpolate a whole array , the hash constructor `{}` for a hash, etc.

Since both `Q:q` and `Q:qq` are so common in the language, they have more usual and succinct forms: single quotes (`''`) for `Q:q` and double quotes(`""`) for `Q:qq`. Furthermore the Q can be dropped so `q` or `qq` (followed by a delimiter) can be used as well.

From here onwards, a small number of adverbs can be used on the quoting constructs `q` or `qq` to further restrict/expand a string's behavior. For example, for a string that only interpolates scalar ($) and closure ({...}) variables, the adverbs `:s` (or `:scalar`) and `:c` (or `:closure`) can be used. This results in `qq:s:c` (or `qq:sc`, `qq:scalar:closure`). For example:

        my $var = 25;
        qq:s:c<$var: { 3**2 + 4**2 }> #=> «25: 25»

Another example is the use of `q` with the `:to` (or `:heredoc`) adverb which seems to be the closest construct to Swift 5's custom string delimiters:

        my $billTheCat = q:to/BILL/;
        <</comment><comment>- ____
          &&&    /    \  __ _____,
            `-- |  o   \'  `  &&/
               `|      | o  },-'
                 \____( )__/
                 ,'    \'   \
         /<comment><comment>|.      |   .}<comment>\
          ,-----( .     |   .}--.
                | .    /\___/
                 `----^,\ \
                        \_/
        BILL

[1] [https://docs.perl6.org/language/quoting](https://docs.perl6.org/language/quoting)

<comment><USER23> That is slightly wrong; `:qq` implies `:q:b:c:s:a:h`, so `qq:s:c` is the same as just `qq`.

You probably wanted to use either `q:s:c` or `Q:s:c`.

You can turn off features using the exclamation mark `qq:!a`

<comment><USER22> Nice catch!

It's quite easy to get them wrong since `q` is just a `q` short to be `qq`. ;)</comment></comment></comment></comment></comment></comment>


Should you start with Swift or Objective-C to learn iOS development? - <AUTHOR> http://candycode.io/should-you-start-with-swift-or-objective-c-to-learn-ios-development/ <comment><USER2> Another thing to consider is what languages you already know, and whether Swift or Obj-C will have a lower learning curve.

My guess is that most people (trying to learn iOS) already know an imperative language, and the Obj-C will be easier. I'm really interested to find out if Swift is easier for complete beginners, who don't have preexisting programming experience. There are elements of it that look great (playgrounds being a prime example).

I believe that learning the Apple frameworks (and tools like IB) is going to constitute the majority of your time, regardless of which language you're calling them from.

<comment><USER3> Most iOS bloggers use Swift. Want to learn iOS 9 in 2 months? I bet most examples are in Swift. I've collected almost 1000 Swift articles in the past year.

[http://www.h4labs.com/dev/ios/swift.html](http://www.h4labs.com/dev/ios/swift.html)

Think Apple's demos at WWDC will in Swift, ObjC, or both? Apple doesn't do "legacy" for very long.

[http://ericasadun.com/2015/04/14/swift-in-case-you-didnt- thi...](http://ericasadun.com/2015/04/14/swift-in-case-you-didnt-think-that- swift-was-the-future/)

<comment><AUTHOR> Exactly, Apple doesn't do legacy for very long.

To tackle the argument that there is infinitely more Obj-C resources out there - think of how many iOS3, 4 or even 5 tutorials you'd still be able to fully use and implement in your app? I'd say close to none. :)

</comment></comment></comment><comment><USER4> I was in this situation last March. I had no native experience with only years of ruby and javascript under my belt.

I decided to begin my journey into the Apple world by starting with Objective-C. I made this decision because of the rich availability of learning resources, Stackoverflow's engaged community and the maturity of the language.

I moved over to Swift this January, and the transition couldn't have been better. I know I will take flack for this statement, because it isn't entirely true but: I feel like Objective-C and Swift are related to one another as Coffee-script is related to Javascript; so the time spent learning Objective-C was not wasted and only made my appreciation for Swift greater.

<comment><AUTHOR> Of course, you definitely didn't waste time spent learning Obj-C - once you dig into more advanced stuff, you find that knowledge useful.

Although, I think that considering Swift is only around 7 months old, there are already a lot of really good and high quality resources available online.

<comment><USER4> Good point. This is now totally true. It was not the case last year when I had to make this decision. The resources available is rich today.

</comment></comment></comment><comment><USER5> I don't know the correct answer but I fully agree with the autor: _" The wrong answer to this question is learn both. You're going to have a hard time simultaneously learning two programming languages with different syntax. You're going to feel overwhelmed and chances are, you're going to throw in the towel very soon."_

So true.

<comment><USER6> I would qualify that and say "learn both but not at the same time." I found that it was only after I started learning my second programming language that I really started to appreciate many aspects of programming and understand which concepts are specific to languages and which others apply to programming in a broader sense.

</comment></comment><comment><USER7> "Swift is the more beautiful language and it lets you write pretty code and bring you joy"

If you think code is "beautiful" then you don't know what you're talking about. You're anthropomorphizing a list of instructions. It's functional, not beautiful.

Go out and watch a sunset, and then try to compare that to a list of instructions, or better yet, compare your wife's beauty to that of a list of instructions - I bet she won't appreciate the forced equivalence either.

I've been programming for 30 years, and for me there is no beauty in code except for what it produces. Is buggy code written in Swift still "beautiful"? This is why it's not good to spend so much time in front of a computer, if you start to think of list of instructions as "beautiful" then you've lost touch with reality.

</comment><comment><USER8> I took C programming in college (10+ years ago) and from there on out, every language I encounter is so much easier based on the knowledge I've gained in C. I'm sure the same can be said about Objective C. It was considered somewhat of a high level language (or medium level) but now is a much more low level language.

Most of my college education is now really outdated with the exception of operating systems (mostly Linux command line) and C programming.

</comment><comment><USER9> Start with Swift because it's easier. Move to Objective-C when you are ready for lower level hacking. It's the same trajectory we all followed: first learning BASIC, then doing some grovelling in assembly, then moving to something like C or pascal.

<comment><USER10> When Swift is done... there will be nothing it can't do that Objective-C can.

Swift is not going to be just the beginner language for Mac and iOS programming.... it is going to be THE language for them in a few years

<comment><AUTHOR> Highly agree. It will grow mature in time (probably a lot faster than iOS did - 30 years) and will feature a lot of new and useful paradigms.

</comment></comment></comment><comment><USER11> A completely different suggestion: Neither - learn C# and use Xamarin. Lower learning curve than both Swift and Objective-C, you can port your apps to other platforms more easily, and your new skill will be applicable across paradigms beyond iOS development.

<comment><USER12> 1) Your app is now tied for life to a third-party vendor. 2) There's is a steep yearly licensing fee. (starting at 300 USD PER developer, PER platform). 3) Xamarin Forms is notoriously buggy if you're looking to also use it for cross-platform UI code. 4) It's debatable how much easier C# is to learn than Swift.</comment></comment>


Facebook to Buy Giphy for $400M - <AUTHOR> https://www.axios.com/scoop-facebook-to-buy-giphy-for-400-million-4a75a359-833b-484d-b15b-87e94d3de017.html <comment><USER2> Congrats to giphy I guess? But I'll be honest, any time I've ever used them as an extension in slack or anywhere, and tried to get relevant gifs, I got back some really bad results. I'll never fully understand why they're so successful short of just dominating the market through sheer popularity. I remember switching our team over to rightgif and the difference was astounding given the fact that giphy has millions upon millions and loads of developers.

<comment><USER3> I've always thought part of the "charm" of Giphy in Slack is that does give you those somewhat silly or "not exactly what I was looking for but actually this is funnier" type of GIFs.

The couple of times I have tried to use it to search for a very specific GIF (like searching for a specific clip from a movie) it hasn't really worked, but whenever I use it for more general stuff like "/giphy cardio sucks" or "/giphy hooray" I get some pretty pleasing results.

<comment><USER4> I'd just like this trend of sending reaction gifs to end.

<rant> People keep posting them in Slack all the time, but I find it about as appropriate as that brief time when all my uni teachers decided that it's hip to include rage comic faces into every other slide of every presentation.

</rant>, yes I know, I'm fun at parties…

<comment><USER5> I can't grok this trend at all. All these replies in the form of memes make me feel like I'm in the Darmok episode of Star Trek: The Next Generation.

I'm grateful communication on MatterMost at my company has not seen the need for reaction gifs emerge; the wildest thing we have is a custom emoji of a dancing banana.

<comment><USER6> "Grok" is actually a cultural reference; it is a made-up word from a very famous science fiction book.

When people use it, it looks the same to me like if they were using "Live long and prosper" in casual conversation.

<comment><USER7> I think one difference with "grok" is that, the way it's normally used, there really isn't IMO a perfect English replacement. To me at least, it implies a deeper and broader internalizing of something than saying "I understand it" or "I get it" necessarily implies.

<comment><USER8> Grokking being beyond understanding something is central to Valentine Michael Smiths understanding of the world, and therefore the plot, in "Stranger in a Strange Land".

Grok is not simply understanding or knowing a thing, it's knowing that thing so well and all the things related to that thing, and understanding all of your feelings associated with that thing, that it becomes a part of you. At least, that was my interpretation of it.

Heinlein's explanation and exposition is more detailed in the actual book. If you have not read it, highly recommended.

<comment><USER7> Oh, I've read it and it's on my bookshelf. Just something like 3 or 4 decades ago :-) It was never actually a particularly favorite Heinlein for me though so I haven't re-read in a very long time if ever.

<comment><USER9> Hey same here, and Heinlein was my favorite author for a very long time. That particular book just never really did it for me.

<comment><USER7> Stranger in a Stranger Land was probably more of particular time and place that a lot of Heinlein's works. Although it came out at in 1961--mostly predating the counterculture era in the US, its mainstream cross-over appeal was definitely tied in with the Summer of Love etc. later in the decade.

<comment><USER10> 1968 would indeed be about the right time period as "I grok Spock" bumper stickers appeared around then too.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> Congrats to Giphy, but honestly it baffles me they are worth this much money. Do they actually bring in decent revenue, or was this all about eyeballs? Is this content even decently monetizable?

Disclaimer: I am the jaded creator of Twicsy, a Twitter picture engine with many millions of visitors over its lifetime, and I apparently missed the boat on this trends and had to shut it down.

<comment><USER12> Read the privacy policy[1].

Think of Giphy images as a giant, organically shared version of web tracking software. Which complements the coverage of the FB Pixel[2] well, as it worms its way into privacy-conscious areas they might not have FB Pixel coverage such as private communications and security/privacy-minded apps. And without implementing something like a proxy server to pre-cache/sanitize images and strip tracking identifiers in both directions, it's a tracking vector that's hard to keep out of your app without introducing user friction.

Given that cynical viewpoint, the valuation makes a ton of sense.

[1] [https://support.giphy.com/hc/en- us/articles/360032872931-GIP...](https://support.giphy.com/hc/en- us/articles/360032872931-GIPHY-Privacy-Policy)

[2] [https://www.facebook.com/business/help/742478679120153?id=12...](https://www.facebook.com/business/help/742478679120153?id=1205376682832142)

<comment><USER13> Does the fact that it is integrated into iOS keyboard have any implications? WlWhat kind of data does this have access to when I send gifs from iOS keyboard?

<comment><USER14> Google messenger (the default texting app) has a gif search that includes giphy, and Discord and slack also use giphy. What I don't see is what data FB is getting when the gif loads. OK, so they can see I am using giphy in Discord. Now what?

 _edit: apparently wrong /outdated information._

<comment><USER15> I'm fairly sure this is False. GBoard uses Tenor (the next largest Giphy competitor), which Google also happens to have bought 2 years ago (undisclosed amount of money). I also just tested Messages and can confirm that the results look like Tenor too.

For Discord, while they initially used Giphy and has a /giphy command, it now uses Tenor too in the GIF picker.

<comment><USER16> The only difference with this acquisition and Discord is that Discord might now start proxying Giphy (they previously didn't to save bandwidth).

<comment><USER15> Again, Discord uses Tenor, not Giphy (unless you manually use /giphy instead of the GIF picker, which most people don't).

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> Last private raise \- [https://techcrunch.com/2016/10/31/giphy-the-platform- for-all...](https://techcrunch.com/2016/10/31/giphy-the-platform-for-all- things-gif-raises-72-million-in-new-funding/)

\- $600MM

\- $150MM raised

\- $400MM sale price

\- $400MM - $150MM 1x preferred = $250MM (assuming not ratchet up for selling below last preferred price)

\- $250MM net to shareholders.

\- 50% for preferred investor share holders

\- 25% to founders

\- 25% to individual contributors

\- 25% of $250MM = $62.5MM

These are all just estimates

<comment><USER18> I wonder what happened to employees who joined later on, with underwater options.

<comment><USER19> Why would any of their options be underwater? Going off of those estimates above, the pot split between shareholders after liquidation preference is 250million. Anyone who has shares is able to cash them out I imagine (how much profit dependent on how many shares someone is granted, which varies obviously but is still a positive net) — unless you're implying the strike price is less than the share value?

<comment><USER18> Their last round valued the company at $600MM, so anyone with options at that strike isn't going to make any money.

<comment><USER20> Only if 409A valuation was at referred price which it almost certainly wasn't

</comment></comment></comment></comment></comment><comment><USER21> Every time Facebook is buying something I feel sad and imagine Facebook like the black plague that will swallow that normal organism.

<comment><USER22> It's a great match. They're both hype-mongering companies which add no value whatsoever to society.

<comment><USER23> Am I out of touch? No, it's the 1.6B daily active users who are wrong.

<comment><USER24> Look at it as at a bad but addictive habit.

Hundreds of millions of smokers do harm their health, and through it their own and their neighbors' wealth. But quitting is indeed hard.

<comment><USER25> You can't seriously compare smoking and keeping up with friends and family, which is the reason that drives most of the usage of Facebook.

<comment><USER26> _You can't seriously compare smoking and keeping up with friends and family_

You must come from a nice family.

Some people don't. Some people are actively in hiding from their families and things like that.

Some schizophrenics go to in-patient treatment, get better, go home to their nutty relatives and get worse again. This is a known thing.

</comment></comment></comment></comment></comment></comment><comment><USER27> It's a Trojan horse play. Giphy is used by all of FB's competitors, including Tik Tok.

Scummy imo.

<comment><USER28> Let's not forget Signal, a competitor to WhatsApp.

<comment><USER29> Does Signal have enough of a userbase for Facebook to even care about? I doubt it.

<comment><USER30> Signal MAU is probably in the low two digit million range (probably because there are no public data), while Whatsapp MAU is 2 billion as of March [1]. So Signal has maybe 1% of Whatsapp's market share.

[1]: [https://www.statista.com/statistics/260819/number-of- monthly...](https://www.statista.com/statistics/260819/number-of-monthly- active-whatsapp-users/)

</comment></comment></comment></comment><comment><USER31> The Giphy integration that Facebook put into WhatsApp lets Giphy track who sends what GIFs to whom, so while the message is transmitted encrypted, a lot of context can be gleaned.

This acquisition makes a lot of sense.

<comment><USER32> Certainly they can't claim that communication is private and/or encrypted then?

<comment><USER31> They can, as it is end-to-end encrypted; the ends are always the most likely points of leakage. In this case, it's the sender's end.

This is part of the beauty of e2e encryption because you have reasonable access to the "ends". For unencrypted traffic you have no access to the "in transit" part so no knowledge about potential compromise. Since you're relatively confident with e2e that the message can't be read in transit, you only need to check the parts of the transaction you have access to.

In this case, we can check the sender's end by looking at what external entities are accessed (network & API requests from the client). For WhatsApp, there's a total of three I'm aware of:

1\. The OS keyboard API. This theoretically means Apple or Google can read everything you type (but not necessarily messages you receive).

2\. The Giphy search API for retrieving a list of GIFs to choose from (notable as this means Giphy also gets metadata about your thought process in choosing a GIF, even if you never send one).

3\. The HTTP request to Giphy to retrieve the chosen GIF (I'm not 100% sure if this is distinct from the above search request results, due to resolution differences, or if they're all one-in-the-same).

</comment></comment></comment><comment><USER33> Per Crunchbase, they raised $150M total, with the last raise being $72M in 2016: [https://www.crunchbase.com/organization/giphy](https://www.crunchbase.com/organization/giphy)

This might not have been a 10x acquisition.

EDIT: The Information is saying the price was $300M + bonus, and a 50% drop from the valuation in 2016. [https://www.theinformation.com/briefings/4fbc4a](https://www.theinformation.com/briefings/4fbc4a)

<comment><USER34> Most likely because their operational costs are borderline obscene due to reliance on Google Cloud for their ML pipeline and moving all their metadata to dynamodb.

<comment><USER35> ML? For what? It's not like it finds the GIF you're looking for. Serious question.

<comment><USER34> [https://cloud.google.com/blog/products/gcp/building-a- better...](https://cloud.google.com/blog/products/gcp/building-a-better-giphy- with-google-clouds-machine-learning-tools)

They are literally setting money on fire.

</comment></comment></comment></comment><comment><USER36> I wonder if Signal will now remove their Giphy integration...

edit: Guess they won't ...

      We have always used a proxy for our requests to GIPHY, and will continue to do so.
      There should be no harm in continuing to use it.
      https://signal.org/blog/signal-and-giphy-update/

Quote from a Signal dev [https://github.com/signalapp/Signal- Android/issues/9628#issu...](https://github.com/signalapp/Signal- Android/issues/9628#issuecomment-629360756)

<comment><USER37> I saw this on my twitter feed this morning. They don't include the Giphy SDK. They act as a proxy and (ab)use range requests so they don't even see the size of the returned GIF. It's a really interesting read.

And that blog post is from _2017_ so those measures have been in place for 2.5 years already.

</comment></comment><comment><USER38> So Facebook basically just bought inside usage info on a ton of direct competition, even if they stop their integration in the future.

Messaging: Signal, GroupMe, Telegram, Viber

Social Media: Twitter, Snapchat, Reddit, Pinterest, Tiktok

Dating: Bumble, Tinder

Video: Skype

Does anyone else kind of feel weirded out that this isn't illegal? Not surprising legally or for a move for Facebook, but this just feels incredibly wrong.

<comment><USER39> Are you saying that Facebook shouldn't be allowed to own any product that can be shared on a competitors platform? Seems kinda ridiculous.

<comment><USER38> No, I am saying that them retroactively buying it without warning and getting access to the historical data, which users and developers did not intend to give to Facebook, is the off part.

If Facebook bought this or developed it themselves and then these companies integrated Giphy, it's obviously very different. Basically this implies that any data you give to any third party can then basically be bought by your competition. I think legal language that prevents this would likely be a net good thing. I of course realize it's fair game, but that seems like a great way to discourage the use of any third parties generally.

The acquisition itself is very valid from a product standpoint, but I suspect a big reason for the buy was that data on competitors as Facebook claws back against pressure from rising platforms. I would bet a good deal of money this will be used to inform future acquisitions and fuel the black hole of Facebook acquisitions and squashing of any competitors.

<comment><USER40> > _I think legal language that prevents this would likely be a net good > thing._

Language that protects end user data across changes in company ownership basic doesn't exist.

For one thing, if the company goes bankrupt, the data is an asset of values, and the court will allow them to void prior contracts so that they can sell off assets and pay their debts.

This is legal for the same reason pensions get zeroed out during bankruptcies and acquisitions.

If the new owners can steal retirement money from current and former employees, you can bet they can sell whatever treasure troves of data the company has amassed.

</comment></comment></comment></comment><comment><USER41> I feel so bitter right now.

A recruiter asked me to join them back in 2016 and they were paying $200k+ for a senior backend role. I turned them down because I was on a visa and wanted a company with financial stability. A gif-search engine startup sounded ludicrous.

Well, here we are...

<comment><USER42> Were you offered any stock/options? How much would that worth now? (If you don't mind sharing..)

<comment><USER43> Giphy was valued at 600M in 2016 according to The Information, so the equity might not be worth much.

</comment></comment></comment><comment><USER44> Giphy shows good results but the search is quite slow IMO, I hope this improves in the future.

If you haven't read Facebook by Steven Levy I recommend it, the book explains quite well what happened after the acquisitions of Instagram, Whatsapp, and Oculus.

<comment><USER45> > If you haven't read Facebook by...

Thanks! This is exactly the sort of thing I love to read. Got anything else you can recommend?

<comment><USER46> Hatching Twitter, Elon Musk - Biography, The everything store (amazon)

<comment><USER44> Hatching Twitter is very interesting and has a lot of drama, I loved it. I found that Elon Musk had a boring writing style (very slow to start). I also recommend Bad Blood, it's hard to stop reading it once started.

One great aspect of Facebook is that Zuckerberg interviewed with the author for years and the cut into parts makes a lot of sense (Harvard and before, "Move fast and break things", Trump, aftermath).

</comment></comment></comment></comment><comment><USER47> Gif trends are likely infinitely mineable for consumer trends. This makes sense for Facebook- the goliath grows another inch.

<comment><USER48> It's important to have hard data on how many people like The Office

</comment></comment><comment><USER49> Damnit, I turned down a follow-up interview with Giphy years ago since I didn't think they were sustainable and I had been burned by startups in the past. Shows how much business sense I have!

<comment><USER50> It happens. I turned down a job at Shazam very early on because I couldn't understand what on earth their business model was. They were recently acquired by Apple for (coincidentally) $400m. [https://en.wikipedia.org/wiki/Shazam_(application)](https://en.wikipedia.org/wiki/Shazam_\(application\)) The actual start up I founded instead fizzled into administration.

<comment><USER51> Right but Shazam was founded in 1999 and took almost 20 years to exit.

You can't look at these numbers in a vacuum.

<comment><USER50> But also Shazam took about $100m in funding with no down rounds.

<comment><USER52> It wouldn't have been life-changing money for you, it would have been a minor bonus. Usually, only the founders make life-changing money from big deals except in very rare instances, like Microsoft and Google. I doubt any but a few very early employees did well at Shazam. Meanwhile, I'm sure what you learned at the startup you joined was far more valuable than whatever the bonus was. You made the choice with the information at hand.

Equity for employees is trash value. You would do well to just pretend it doesn't even exist when factoring decisions about where to work or if to change jobs. I never ask for equity, I never care about equity. I care about the salary.

</comment></comment></comment></comment></comment><comment><USER53> Imagine how many billions of Referrer headers Giphy gets every day. Imagine all the AI training material that comes in when people try to turn a search term into an image. $400mil for a human-curated dataset that pays dividends in ongoing harvestable data over time is chump change for Facebook.

<comment><USER54> Majority of the giphy usage probably happens on mobile apps —which don't send referer headers.

Similarly, if you use something like giphy on your Twitter posts, twitter mirrors the gifv image on their servers to avoid leaking user info to Giphy

</comment></comment><comment><USER55> Users: time to delete your accounts :P

Developers: Time to remove the Giphy integrations from your apps/services.

<comment><USER56> Haven't they already been selling the data?

<comment><USER38> My guess/suspicion is that in isolation the data's depth is pretty tame. The issue is when all the nitty gritty data is then tied with Facebook's.

IMO the bigger issue is that anyone integrating with them basically is telling Facebook about their app's usage stats now, which makes it easy for Facebook to see current and future competition as well as any emerging markets they can sink their fangs into. Adding Giphy is a great way to get your lunch eaten now as a startup in any remotely competitive space to Facebook.

To me it's kind of wild this type of acquisition doesn't violate some law (though not surprising) as this gives immediate historical data insight into dozens of direct competitors even if they stop integrating in the future.

</comment></comment></comment><comment><USER57> I would not be surprised if the blatant copyright infringement that is rampant on Giphy has scared off potential buyers in the past.

I know, I know, there's an argument that it's fair use, but that doesn't mean that legal costs won't be incurred to make that argument, nor that the argument will be ultimately successful.

I suppose if there's any company that's able to take on that legal risk, it's Facebook.

<comment><USER58> Ianal but isn't this what the DMCA safe harbor is about? Comply with takedown requests and you are fine.

<comment><USER59> Not when your whole business relies on exploiting copyrighted content, which someone from Disney might argue about Giphy.

<comment><USER60> Well, Facebook gets away with absolute murder in regard to copyrighted infringement (especially in the non-English parts of the site) so it's a good fit.

</comment></comment></comment></comment><comment><USER61> And the inexorable march towards tech companies owning everything continues. I wish anti-trust law wasn't such a joke across the globe.

<comment><USER62> In this case I'm not sure anti-trust would help? Giphy doesn't have a monopoly and the product is straightforward to replicate by doing the same thing they did - ie scraping and stealing content at scale.

<comment><USER63> It would because giphy is a great proxy to find out what people are CURRENTLY talking about, or how they are feeling, based on the gifs they're searching for.

This can fuel better ads. So consolidating this stuff further could have that effect.

To me it is so creepy how much of even our casual thoughts outside of facebook now are going into facebook servers. There's just no escaping these data addicts. That's the concern.

</comment></comment></comment><comment><USER64> These kinds of acquisitions intrigue me. what is valuation crieteria? from technical and innovation perspective, what part of it is worth millions?

<comment><USER4> Another commenter pointed out that Giphy is integrated into many products and buying Giphy is a way to get metrics about those products.

<comment><USER64> Makes more sense. But it is easy to replace it with another giphy. Especially when there is privacy reason.

<comment><USER65> Question os: How many will switch it out? Giphy has a big collection of images and works ... swapping is effort and brings different (unexpected?) results.

<comment><USER66> Create a proxy that exfiltrates their active database while providing anonymity.

<comment><USER65> Again, a small number of people might do that, if one gets too large by chance Giphy/Facebook will attempt to block them. Most users and integrations will be kept. As people stay on WhatsApp etc.

</comment></comment></comment></comment></comment></comment><comment><USER67> FB can utilize Giphy for pixel tracking (similar to FB Like button) since these low-brow, comedic incantations appear all across the webosphere.

</comment><comment><USER68> I've been watching this a bit in other sectors, but I'm fascinated to see if there's a real uptick in "Vulture Buying" as the effects of the financial markets really settle in. This may have been something in the works for a while but you have to wonder as some companies that have likely weathered the storm well start on a spree of discount shopping.

<comment><USER69> Public markets are low down 15% now. It's hardly a discount.

<comment><USER68> I've not been looking really there, most of my thoughts have been around the commercial real estate market and media entertainment private equity companies.

Giphy, could (total spitballing here) could be a company that was a bit overvalued in VC terms, and might not have consistent cash flows and solid fundamentals where an acquisition makes sense to take their money off the table now. There might be others.

Or this marriage has been in the works since December and just got pushed through now. Strange times.

</comment></comment></comment><comment><USER70> Ah shit, another site for my /etc/hosts

I wonder reddit would be even more useless for me since half the content is from giphy.

<comment><USER71> You're probably thinking of imgur, which lost some steam when Reddit added their own image hosting. Only a few dozen giphy links get posed each day: [https://www.reddit.com/domain/giphy.com/new/](https://www.reddit.com/domain/giphy.com/new/)

<comment><USER72> Adding to that, I think gfycat should be more used than giphy, at least based on how much gfycat content I see there

</comment></comment></comment><comment><USER73> [https://overcast.fm/+QLdurp-A8](https://overcast.fm/+QLdurp-A8) for a good overview of how Facebook treats its acquisitions. Absolutely disgusting. Throw Zuck in prison.

<comment><USER73> I notice someone went around downvoting _all_ critical FB comments I've posted recently. They legitimately have shills patrolling HN.

</comment></comment><comment><USER74> Wow, this is crazy to hear about! Back in college I worked on a fun way to share snippets of music with friends directly in iMessage called RapBits (essentially audio gifs). I reached out to Adam Leibsohn who was the COO of Giphy at the time. He immediately replied to my cold email excited about the idea and offered to help. He also asked about how we were handling legal. We didn't have an answer, in fact UMG had basically threatened to shut our app down in a meeting we had with them in LA originally thinking it'd be a great partnership meeting (the music industry kinda sucks). Really appreciated his response in that moment, he basically told us to keep going and see what we could do with it and just have fun!

Kind of wild to see such a fun / not-so-serious seeming product have such a huge exit and profound impact on the way we communicate now

Anyways, here's a quick demo of RapBits: [https://rapbits.com/video/ad.mp4](https://rapbits.com/video/ad.mp4)

Even had a brief stint of fame on /r/hiphopheads: [https://www.reddit.com/r/hiphopheads/comments/64ea1v/my_room...](https://www.reddit.com/r/hiphopheads/comments/64ea1v/my_roommates_and_i_are_building_this_rap_imessage/)

</comment><comment><USER75> There is a considerable amount of porn on Giphy.

I wonder if FB will ban porn on Giphy like how Verizon banned porn on Tumblr after that acquisition.

<comment><USER76> That was my first thought too.

More censorship.

Then again, I am very curious if Facebook's content board will do something about wearing a bikini being a account closure level offense for sex workers/cam models and completely okay for celeb influencers.

</comment></comment><comment><USER77> Instagram seemed expensive at $1bn in 2012 and ultimately turned out to be a very savvy buy, so I feel like I should trust Facebook on this one.

I'm kinda surprised Imgur hasn't sold in a similar way yet, it seems to have slightly more sense of community than Giphy which is more broadly known as a search engine for GIFs.

<comment><USER78> Yikes. Feels like my privacy is leaking again. Time to find some alternative.

<comment><USER79> How many times are you going to make the same comment on this thread? This is a pretty good angle for farming karma on HN but you have to be more subtle about it.

Other comment - [https://news.ycombinator.com/item?id=23192779](https://news.ycombinator.com/item?id=23192779)

<comment><USER78> I mistakenly posted it on the wrong reply. Should have deleted the other.

</comment></comment></comment></comment><comment><USER80> Any good alternatives to GIPHY?

<comment><USER81> Gyfcat?

</comment></comment><comment><USER82> Facebook and others should be put on hold for buying companies for a while...

<comment><USER83> Why on earth would they do that? There's practically a fire sale of startups unable to raise more cash.

<comment><USER82> Startup business models should not be to be sold...but to make money and be useful. And I am saying this because those companies are becoming too big and too powerful.

</comment></comment></comment><comment><USER84> Struggling to understand the value-add for Facebook here. For a while they were buying businesses for the coveted "screen time" \- VR, messaging, etc. Everyone expected that they would monetize or integrate those platforms, and they did for most apps.

So I guess if I post a giphy in a work chat they will now get an extra few seconds of ~100 people's screen time/day. What's the point? I doubt they will overlay ads. So what else? Some form of content control? Only show pics that ascribe to Facebook's agenda?

<comment><USER85> What kind of gifs you like/share/post would be a useful addition to your [shadow] profile, won't it? More training material for their AI projects.

</comment></comment><comment><USER86> Makes sense, it seems like a great way to inject ads coupled with facebooks profile information it's likely a goldmine

You start a campaign and suddenly you have people inserting meme-like-ads feature your content into their chat threads

It'll have a personal and convincing touch ( esp. with facebooks ad targeting) it's going to be amazing for our industry reaching customers, Pepe/Trump memes did win an election afterall

Also a great way to get ads into whatsapp messages without seeming intrusive

</comment><comment><USER87> Do slack and others pay Giphy when they integrate? Is that their main source of revenue or is it ads?

I am wondering what makes them more attractive than someone like imgur for example.

<comment><USER72> Yes, they pay. Because it helps keeping users active, in case of Instagram, for example. And in slack's case, I think when you install the app you can have it for free (with limitations), or pay to remove said limitations. In that case, slack may not (IMO) pay then.

</comment></comment><comment><USER88> It's a significant discount from previous funding rounds according to Techcrunch: "Giphy last raised $72 million at a reported $600 million valuation at the end of 2016"

[1] [https://techcrunch.com/2018/03/09/giphy-held-talks-to- raise-...](https://techcrunch.com/2018/03/09/giphy-held-talks-to-raise-a- massive-new-funding-round/)

</comment><comment><USER89> Duh. I am sure of one thing what is going to happen for pretty little Giphy service. Instagram was cool. now, I see sponsored Ads for every two posts. It is annoying to be in Insta nowadays. I suppose this is going to happen for Giphy as well. How frustrating if you are searching for quick witty gif and you see a sponsored ads in it.. you never know FB monster can do this.

</comment><comment><USER90> For me Giphy is the poster child of Google's infuriating decision to put videos in the image search results. It's almost impossible to find a gif you can properly embed an HTML these days. Sure, you can use search terms to filter out giphy.com but then a hundred other copycat websites only fill the void with more videos masquerading as image files.

</comment><comment><USER64> These kinds of acquisitions intrigue me. what is valuation crieteria?

from technical and innovation perspective, what part of it is worth millions?

<comment><USER65> The fact that it is embedded in tons of software and delivers information about usage and trends.

<comment><USER62> They don't have a "moat" though - no cutting-edge technology or even content licenses (it's all stolen). Anyone can build their own alternative to it very easily and I'm confident it'll quickly happen to any company that competes with and/or feels threatened by Facebook.

<comment><USER91> Err, no. This is a serious underestimation of the difficulty involved in acquiring users. Networks effects are a moat. Market share can be a moat.

You don't need to just "build your own alternative to it." You need to get all the content (this is actually not as easy as you make it seem - stolen or not), then integrate that into Instagram, WhatsApp, Slack, and hundreds of other platforms across the world as _the_ supported way of sharing gifs. Then you'll have to build a brand around the product that people remember, and whose website they actually visit when they want images and aren't using one of the hundreds of platforms that already natively integrates giphy.

And in order to do all that, you'll have to somehow manage to convince everyone out there that your gif search system is better than their gif search system that they already know, are comfortable with, and generally happy with. Your pitch will probably be that theirs is owned by Facebook, and is therefore a violation of their privacy. But you know who else is owned by Facebook? Facebook. And yet Facebook is pushing close to 2 billion daily active users.

Convenience trumps privacy in modern society most of the time. I'm sure there will be a changing of the winds - there always is - but there likely will not be significant competition for Facebook/Twitter/Instagram/Giphy/Google/(put any other company in here) until that comes. The network effects are too strong, and the convenience is too great.

There are so many posts about "(Twitter/Facebook/Giphy) clone in a (day/weekend/week/month)" and yet there's a distinct lack of commercial successes in these spaces.

Edit: a word.

</comment></comment></comment></comment><comment><USER92> [https://gph.is/g/a99MK06](https://gph.is/g/a99MK06)

<comment><USER32> I tried to find a The Social Network movie overlay with the words "Dumb fucks" on Giphy - though it doesn't seem to have it; [https://www.theguardian.com/film/2010/oct/20/mark- zuckerberg...](https://www.theguardian.com/film/2010/oct/20/mark-zuckerberg- the-social-network)

</comment></comment><comment><USER93> Giphy...by Facebook. [https://www.dropbox.com/s/2zmo6nl7mmtnhzf/giphy.png?dl=0](https://www.dropbox.com/s/2zmo6nl7mmtnhzf/giphy.png?dl=0)

Maybe they keep the ephemeral absurdity that was giphy...but it feels like the beginning of the end.

</comment><comment><USER94> Giphy was the reason why at my last job, a manager inadvertently posted porn to our slack channel.

Nevertheless, giphy was just a gif image host. They do have access to current meme culture, which I imagine is useful to FB. But for me, thats just a less of a reason to use them. Im data-mined enough already.

</comment><comment><USER95> The only GIF you need in Slack is this one: [https://media.giphy.com/media/n59dQcO9yaaaY/giphy.gif](https://media.giphy.com/media/n59dQcO9yaaaY/giphy.gif) for when a new user signs up :)

</comment><comment><USER96> Facebook has now got a foot into its competitor's data. Retrieving unique device ID from Android phones(below Android 11 of course) is a cakewalk and Giphy requires that for its client SDK

</comment><comment><USER97> Congrats Alex Chung! Met him a couple times in NYC and he was gracious and kind. I remember him mentioning that Giphy is the largest search engine behind google or so, which makes sense as everyone's searching for cool gifs in chat whenever they can. :)

<comment><USER98> Bigger than Bing?

</comment></comment><comment><USER99> Time to finally remove support for it, [https://github.com/slack-ruby/slack- ruby-bot/issues/261](https://github.com/slack-ruby/slack-ruby-bot/issues/261)

</comment><comment><USER100> Giphy does not make an effort to pay or credit the artists whose gifs are on their site.

</comment><comment><USER101> The amount of nuanced information available in this dataset is incredible.

<comment><USER32> I don't understand why someone downvoted you. Giphy is used by many services and Facebook owning, having access to that data and the insights it could provide into the whole landscape would lead me to looking for another solution, although them purchasing it will give them all of the historical data they'd need to find new niches, successful and growing competitors or market segments that they can just copy into FB. The laws certainly haven't caught up with this new age of anti-competitiveness that's possible with how a single entity is tied into so many competing companies, and so just a big competitor buying up that resource certainly gives an arguably unfair competitive advantage.

Edit to add - TLDR: this essentially gives a backdoor to Facebook for usage at other companies who integrated the service.

</comment></comment><comment><USER102> i hate giphy, its a SV solution to a problem that never existed.

gifs were fine, now some silicon tech forced them out and we get all the fun of copy rights and lack of saving the gifs for our personal use /s

</comment><comment><USER103> Gifs may be fun to watch the first time, but I have to say it drives me crazy to have a bunch of looping animations running all over the screen when i'm trying to focus on something.

</comment><comment><USER104> great, yet another way to get tracked

</comment><comment><USER105> It's a data grab. Just imagine how many places Giphy has "integration" with. And the contents of a gif might be really telling, they are already very well tagged.

</comment><comment><USER106> Any idea what level/compensation FB is offering to Giphy engineers?

</comment><comment><USER107> The only time I use giphy is through google keyboard (yes, I send a lot of memes). I guess google will have to pay them now? Or will keyboard stop supporting giphy?

<comment><USER72> IMHO they will migrate to something else

<comment><USER108> I read in this thread that Tenor is the Gif service owned by Google. I do wonder why they dont use it in the first place?

</comment></comment></comment><comment><USER109> And yet another domain I'll block with uMatrix.

</comment><comment><USER110> A few weeks ago I decided to completely stop using gifs and emojis in conversations, and goes what conversations got more meaningful and thoughtful.

<comment><USER111> Im working on a new conversation app and I'm explicitly never going to allow gifs or emojis as they degrade the conversation , distract, and prevent meaningful dialog.

</comment></comment><comment><USER112> Facebook might have been trying to / already have a data deal in play and probably decided to just buy it out right.

</comment><comment><USER113> [http://i.imgur.com/e8a5w9s.gif](http://i.imgur.com/e8a5w9s.gif)

</comment><comment><USER114> For a silly product, this is a great success despite its "down round". Congrats to everyone who has equities.

</comment><comment><USER115> So, what's next they'll buy? :D

</comment><comment><USER116> I hope this transaction undergoes a deep antitrust review. As Instagram should have.

</comment><comment><USER117> Wonder what will come of the Signal integration... not exactly a good look...

</comment><comment><USER118> This is the first (and I'm guessing last) I've ever heard of giphy.

<comment><USER119> weird flex but ok

</comment></comment><comment><USER120> Oh ffs. Where's the justice department when you need them?

</comment><comment><USER64> How many gifs does it host and does it have rights to It??

<comment><USER119> at least six

</comment></comment><comment><USER121> One more app removed from my phone now. Thanks Facebook.

</comment><comment><USER73> Could you stop? Don't you have enough? Let me guess. Giphy will now be used to spy on people, it won't be chronological any more, Zuck bought this because it threatens his internet empire, etc etc...

</comment><comment><USER122> use cases: \- monetize gifs \- suggest gifs to their users based on their feeds \- nothing relevant just #deletefb and save your brain and the planet

</comment><comment><USER123> And I thought Coronavirus would end that kind of deals.

<comment><USER124> Quite the contrary. Expect to see a lot of M&A activity this year. These are times where companies with positive cash flow can do strategic acquisitions at a discount.

</comment></comment><comment><USER125> Nice to know, their domains are going directly to my banned sites list. They have acquired gliphy to extend reach of their pixels and well... I can live without gifs.

(edit: they are already banned. Nothing to do.)

</comment><comment><USER126> \- "New York-based Giphy had raised around $150 million in VC funding."

\- "Its most recent private valuation was around $600 million."

Seems like Giphy took quite a haircut to pull this off. Their outlook must have looked pretty bleak.

</comment><comment><USER127> So now the intention is to map corporate org charts?

</comment><comment><USER128> Well, frig. Time to find a new very good gif source.

</comment><comment><USER129> Zuckerberg is really desperate paying $400m for this, this is worth $100m max. Like somebody said earlier Imgur would make more sense. And btw VCs who invested late stage in Giphy lost money.

<comment><USER130> No they didn't: liquidation preference.

</comment></comment><comment><USER131> Yay, now our memes will be monetized! +1 FB

</comment><comment><USER132> Its a multisided platform inside every app.

</comment><comment><USER133> Congrats. That's it for me then. Deleted

</comment><comment><USER134> Gifs in Slack (or anywhere) are a distraction imo. I disable them where possible and never post them. I encourage others to do the same :)

</comment><comment><USER135> I wonder what happens to Giphy porn.

<comment><USER72> probably it'll be gone. gfycat already banned it, creating another service (redgifs I think) and moving that content there

</comment></comment><comment><USER136> Signal uses giphy. Hope they stop.

<comment><USER137> I had the same thought. Although it looks like Signal uses a proxy for GIPHY requests [1] and has at least thought about the privacy implications of GIPHY support [2].

[1] [https://github.com/signalapp/Signal- Android/issues/9628](https://github.com/signalapp/Signal-Android/issues/9628)

[2] [https://signal.org/blog/signal-and-giphy- update/](https://signal.org/blog/signal-and-giphy-update/)

</comment></comment><comment><USER138> Welp. There goes the neighborhood.

</comment><comment><USER139> Is it for tracking purpose?

</comment><comment><USER140> Now that Giphy has a rich owner, will hollywood try to sue them for using their intellectual property?

</comment><comment><USER141> Giphy is so lucky. All the best to them.

</comment><comment><USER115> So, what's next they will buy? :D

</comment><comment><USER122> why on earth does fb exist?

</comment><comment><USER142> RIP giphy

<comment><USER143> Was it ever good?

<comment><USER32> Define good? The data's worth at least $400M to Facebook.

<comment><USER98> They probably mean from a user perspective. Most users don't care about the value of the data.

<comment><USER129> "Most users don't care about the value of the data." In a world of micro transactions every user could for example be paid fraction of a cent every time he or she sees an ad thus sharing revenue with Facebook.

</comment></comment></comment></comment></comment><comment><USER22> The title is misleading. It should be "Facebook executives give free money and Facebook shares to Giphy executives and save Giphy from bankruptcy."

</comment><comment><USER144> The web of surveillance capitalism Giphy has in every integration is worth _at least_ $400m to Facebook... Crazy!

</comment><comment><USER22> I can't help but think of all the millions of economically useful people who lost their jobs over the past couple of months because of COVID19... And contrast that with all the economically useless Giphy employees and executives who not only get to keep their jobs but get massive bonuses.

<comment><USER145> Could you please not post flamewar style comments to HN? We're looking for curious conversation, not denunciatory rants, and you've done this 4 times in this thread alone.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)</comment></comment>


OpenPush: A Free, Decentralized Push Messaging Framework for Android - <AUTHOR> https://f-droid.org/en/2020/02/03/openpush-talk.html <comment><USER2> I don't think it'll fly, here is why:

Our product is a XMPP client, which can't work if it is not actively running in the background, so we were working with making apps run in background on Android for over 10 years, since version 2.0.

The trend is clear: with every update, we get more restrictions. Not only bg services are killed off from memory by aggressive memory managers of crappy phone vendors, Google themselves push developers to rely on proprietary FCM services. The writing is on the wall, and one day background services in Android will simply cease to work, all in the name of better battery life and customer care. So this OpenPush service will be short lived, it'll likely be disallowed to work in this form in Android 12 or 13.

The only proper long-term solution here is an anti-monopoly legislation, that would make Google allow Android users to subscribe to a third-party push notification service. Such service is, actually, a relatively simple: current FCM is just a modified XMPP connection that a phone keeps, and it will be easy to replicate and deploy.

Apple is guilty of this, too. A proper anti-monopoly legislations should target them as well, and not only make them allow third-party app stores, but third party push notifications as well.

This control of push notification services and restriction creep that occurs on both platforms makes Google's and Apple's grip on their respective OSs much tighter than Microsoft's grip on Windows ever was. This tyranny must be stopped, and I don't believe it can be done without legal action, by technical means only.

<comment><USER3> The problem is that _every_ app thinks that they must run in the background. Every app must have millisecond push updates for their social media network that another Like was just received. Worse yet, most of them don't know how to do so in a symbiotic way. It makes complete sense that OS manufacturers have taken a stand to protect users from bad developers. They don't want the blame and they want to keep selling devices.

It is a tough spot. How do you have open app stores and not have them filled with malware? Android hasn't figured this out yet. Users are dumb and will just click on anything. They need to be protected from themselves sometimes.

<comment><USER2> Well, it's understandable that many apps want to run as a regular process. Good old UNUX was and it's GNU/Linux descendants are quite OK with it. The users have control and can choose which apps to run and which not. If some app misbehaved, it was up to a user to identify it and remove a problem.

But Google decided that it will be our nanny and will guard all users against misbehaving apps, whether the users asked about it, or not, and you can't refuse this care. That is tyranny and should be fought against.

Now, I don't think that push notifications are bad. They are rather good idea and let them be. It is the monopoly on push notifications which is bad.

> How do you have open app stores and not have them filled with malware?

Long before the 'app store' term was coined, Linux had software repositories, which worked like magic, and without issues:

        sudo aptitude install libreoffice

Boom, you now have libreoffice on your PC! If repositories had massive problems with malware, I'm not aware of them. So it was done decades ago and can be done again.

<comment><USER4> Comparing Unix/Linux running on a PC and a iOS/Android running on a smartphone is insanity.

And comparing software repos with app stores is just as bad.

I'm not even quite sure how to address what you're saying, because it's just so completely out of touch with how smartphones are used.

<comment><USER5> I like the idea of being able to connect my phone to different software repos.

Play Store would be one among many.

I think then there would soon be curated repos for well behaved apps that don't abuse push notifications and background abilities.

<comment><USER6> That is basically what f-droid allows you to do, add different repos. Though google play doesn't provide a repo that fdroid, obviously.

</comment></comment></comment></comment></comment></comment><comment><USER7> Running background services in Android is tricky. Most device manufacturers put their own battery management software on devices, which makes it almost impossible to run long-running services in the background. And since this framework would either perpetually run in the background or run frequently to check for new messages, your app is guaranteed to be throttled(force-killed) by most devices. And being force killed means that your app cannot receive push notifications even from FCM.

I'm curious to know if anyone is using this framework in the wild.

<comment><USER8> Author here (of that post and the framework).

The solution to the background limitations for now is running as a foreground service. This shows a persistent notification (which can be hidden by the user) but can then run indefinitely. The other option is to integrate this at the system level (via a custom rom, root, magisk, etc.).

> I'm curious to know if anyone is using this framework in the wild.

The client side implementation of this is still WiP, so it's not used yet in the wild. I hope to be at a point where I can work with some apps on integrating it there in the next few months.

<comment><USER9> Maintainer of Red Moon, a screen filter app, here. I've struggled with similar problems as others describe for a long time.

As far as I know, the only truly 100% reliable way to never be killed is to run as an accessibility service. I haven't implemented this in Red Moon but will likely add it as an option. I believe it has a large impact on bettery life.

You can also set alarms using AlarmManager to restart the service if it has been killed, and optionally wake up the device. This is what DNS66 does.

<comment><USER10> This might have changed since, but in 2017 LastPass had to work with Google to update how they run their app. Google introduced "a new policy restricting the use of Android Accessibility Services" [1]

I'd look into that before starting that implementation.

[1] [https://blog.lastpass.com/2017/11/lastpass-android- accessibi...](https://blog.lastpass.com/2017/11/lastpass-android- accessibility-services.html/)

<comment><USER9> I have a legitimate accessibility reason for it, to help epileptic users.

[https://github.com/LibreShift/red- moon/issues/253#issuecomme...](https://github.com/LibreShift/red- moon/issues/253#issuecomment-569219668)

</comment></comment></comment></comment></comment><comment><USER11> This is a great and important project for F-Droid.

The problem is harder than it seems on the surface as idle connections can be terminated by the network operator. There's a paper about this: [https://ieeexplore.ieee.org/document/8214213](https://ieeexplore.ieee.org/document/8214213)

I guess ultimately one should build a database about phone networks and store measurements of their maximum heartbeat intervals in there so that new connections can use those heartbeat intervals to save battery.

Also ideally the app should send its data via WiFi if available. So it has to detect when a WiFi connection is established and open a connection wia WiFi. Ideally the mobile connection is kept alive though for the case the WiFi proves unreliable. E.g. when I leave my home on foot I get further and further away from the WiFi and there's a short time span where my phone keeps trying to use the WiFi connection even though nothing gets through any more.

Detecting all these edge cases can be tricky. Fortunately the design makes the protocol between the push server and the on-phone app open to iteration and innovation. It's a good design!

<comment><USER12> Excellent point. So how does Google solve the problem? Do they just coordinate the heartbeat intervals with the carriers, or do they bypass the Internet altogether and use some cell-network-specific push mechanism? If the latter, is this mechanism available to everyone or just partners of the carriers?

<comment><USER11> > Do they just coordinate the heartbeat intervals with the carriers, or do > they bypass the Internet altogether and use some cell-network-specific push > mechanism?

IIRC they use the xmpp protocol, so standard TCP over IP. In threads about this topic you often hear claims that Google has special deals with carriers. Whether this is true or not, no idea. I haven't seen any confirmation of this. It would be interesting to conduct measurements whether FCM sends less frequent heartbeat messages than the timeout is for "normal" long lived tcp connections.

In any case, deals or not, I guess Google has built a database as I've mentioned. But I'm only guessing here.

</comment></comment></comment><comment><USER13> I am really excited about this project! Having a source of push notifications without routing them through the google servers will really advance the state of open source and/or google free android. It is great to see it being backed by f-droid and apparently funded by the German government (through prototype fund and Federal Ministry of Education)

<comment><USER14> Considering the BND's (German equivalent of NSA) love of intercepting traffic and gathering metadata about citizens, I wouldn't put "funded by the German government" in the Pro column.

<comment><USER15> It may be a case of German government's right hand not knowing what German government's left hand is doing. An open source distributed framework can't be coerced into routing its messages through a central server for surveillance.

<comment><USER16> Open Source and centralized are orthogonal to each other. Signal is both, just to name an example.

An open push framework only makes sense (for battery optimization at least) if it's centralized, and all applications make use of it.

<comment><USER17> >An open push framework only makes sense (for battery optimization at least) if it's centralized, and all applications make use of it.

Sure, from the perspective of a single device. But that doesn't mean all devices have to use the same push server.

<comment><USER16> So as an app developer, I need to integrate each of those into my app, or provide alternative builds for all?

<comment><USER18> No, you need to use a library that allows the user to configure the push server, which should be configured device-wide and communicated to the app server.

<comment><USER17> Exactly. I believe this is how Web Push works; the major browser vendors each run their own push servers, and the protocol is standardized.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER19> I have a tangentially related tip or suggestion of which many appear to be unaware: most (all?) cellphone service providers (at least in the US) let you send and receive emails over text message. For example, with Project Fi you'd use $firstname.lastname@example.com [0]. You can use this as a super simple alert or notification system for scripting and small self-hosted apps without having to setup any additional services or tools. However, it's important to keep in mind that both email and text messaging are unencrypted by default, so you should be careful with what you send.

Let's consider a situation in which this might be useful: You have a 15 to 30 minute task running, such as downloading a large file (e.g. Linux ISOs) from a remote server or compiling a small C++ project. Instead of sitting around waiting you could go outside for a short walk in order to get a bit of exercise and sunlight, which helps you get to the recommended minimum of 10k daily steps. Once the task is finished you receive a text message which prompts you to head back inside.

If you just want to send yourself notifications then you can actually get pretty far only using email and text messaging. However, I'm aware that OpenPush solves a few different problems, and I love that we're finally getting an open-source self-hosted alternative to GCM.

[0] [https://support.google.com/fi/answer/6356597?hl=en&ref_topic...](https://support.google.com/fi/answer/6356597?hl=en&ref_topic=6216184)

<comment><USER11> The protocol between the push server and the push app on the device is entirely up to those two. You can use e-mail over SMS if you want.

</comment></comment><comment><USER20> This is an interesting idea. Sadly, applications that use this are probably not eligible to be distributed through Google Play. One of the main reasons, as I understand, is that Google wants to discourage lots of apps from each having their own network connections open in the background.

[https://news.ycombinator.com/item?id=20145206](https://news.ycombinator.com/item?id=20145206)

<comment><USER21> There's really no good reason that a network connection open in the background _needs_ to use extra battery, if configured carefully. If configured incorrectly, it absolutely would, but a background connection doesn't need to regularly wake the phone up, just as Google's own push messaging service doesn't.

<comment> _-___________-_ More connections probably does mean more wakeups, in general, though. FCM will coalesce notifications that happen close together in time, for example. Even if OpenPush does that (I haven't read all the details yet), it still means two coalesced batches of notifications rather than one if you have some apps using FCM and some using OpenPush. The situation obviously gets even worse if every app implements push itself.

I still think it's worth it, to be clear, and for people who want a fully de- Googled device, hopefully eventually all their apps will use OpenPush and the battery life situation is the same as a device where all the apps use FCM. (Assuming OpenPush implements similar coalescing.)

</comment></comment></comment><comment><USER22> OpenPush could be very valuable for open source Android apps once it is fully developed. Currently, open source Android apps that do not depend on Google Play Services are using WebSocket or Server-Sent Events (SSE) for push notifications. For example, Signal falls back to WebSocket when Firebase Cloud Messaging (FCM) is not available.

Tutanota published a blog post explaining how they deliver push notifications to their Android app with SSE instead of FCM:

[https://f-droid.org/en/2018/09/03/replacing-gcm-in- tutanota....](https://f-droid.org/en/2018/09/03/replacing-gcm-in- tutanota.html)

OpenPush would reduce the amount of work needed to implement push notifications compared to the made-from-scratch implementations developed by Signal and Tutanota.

</comment><comment><USER23> I wish something like this existed that could additionally proxy FCM notifications. Allowing push notifications without any Google involvement is the ideal long term goal, but one transitional path I dream about would be forcing Google to proxy all their notifications through a host of your choice (ideally that you control).

I think I have about 30 false start projects with names like PushMux and rough outlines on potential ways to accomplish it.

Tangentially, I also dream of having true one-way push notifications. Send a minimal notification to the target device via FLEX/POCSAG or even one-way Iridium, and allow the device to connect to the internet as needed to fetch the rest of the notification.

</comment><comment><USER24> Can websockets be used as a self-hosted push notification alternative?

</comment><comment><USER25> Wow, I didn't know that the Apps on Android do implement their own push services in the background.

For all the edge cases out there, OpenPush is great news.

However, this is a huge no-no for me as it means that I would need to actively manage the device to make sure that things do work as intended.

Not happy with Google "owning" the push notifications? Then maybe the solution should be a non-profit independent corporation running it.

Having a service-per-app app cannot be as efficient as having a single service serving them all. Both in terms of device resources and user time & experience.

Surely having an alternative is a good thing but the issue seems to be institutional(You don't want to have Google in charge), not technical(Google's service works great), therefore the solution out to be institutional too. Or something that acts like an institution, something like bl_______n.</comment>


Ask HN: Review my startup, conceptcupboard.com - <AUTHOR>

Hi everyone,
I was looking to get some feedback on my startup Concept Cupboard. We're an online marketplace connecting businesses with student and graduate freelance creatives.
We've had some good clients and feedback to date but I need to figure out how to reach new users on zero budget. We're active on social media and blog but aren't finding the right fit yet.
Any suggestions on the core proposition / home page / marketing front? <comment><USER2> [http://conceptcupboard.com](http://conceptcupboard.com)</comment>


Being Present - <AUTHOR> http://nathanbarry.com/being-present/ <comment><USER2> >Instead I had things to talk about related to the books I had just been browsing

Ironically, it still required external ideas/stimulus to come up with topics of conversation. I was expecting the OP would say it gave them time to reflect, or be present to himself! One could just as easily browse books/news on a phone that would be of mutual interest for a coming conversation. There is some sort of "curation" that goes on in the bookstore, but nothing that couldn't be provided by software.

<comment><USER3> One a phone you would be distracted by email, social media, etc. In a bookstore, you can completely absorb yourself in a book.

</comment></comment><comment><USER4> The exceptionally cheesy but absolutely brilliant book FISH! Philosophy really nails the concept of being present.

 _Be There: When people need you, they need all of you. Setting aside distractions and judgments to be mentally and emotionally present is a sign of respect. It improves communication and strengthens relationships._

In all honesty, it's one of the few snippets of solid advice that has had a profound and noticeable impact on my personal and professional life.

<comment><USER5> The hard part is when someone doesn't really need all of you and themselves is peering at their phone, tablet or whatever. I guess I'm better off avoiding those people.

<comment><USER4> I find that the behaviour naturally reciprocates. When you're giving someone your undivided attention, they tend to find it difficult to be distracted without being acutely aware that they are being rude.

</comment></comment></comment><comment><AUTHOR> Many people indulge in activities like like reading emails, tweeting, messaging etc. when they are with their friends and family having dinner or just hanging out. There are some people who do this even while watching movies with friends! Sometime it give a negative impression that they want to be left alone undisturbed. This is really a problem with current generation people. Please be present when you are with friends and family!

</comment><comment><USER6> Oddly, I'm the other way around. I enjoy reading work emails while drinking beer with friends. It allows me a certain emotional distance to whatever problem has arisen and I can turn to my friends for help, and/or put the problems in the back of my head, sleep on them and deal with them in the morning.

</comment><comment><USER7> > Do I have really such a short attention span that I must find a way to > entertain myself for even two minutes?

I dislike this line of reasoning. He's not playing Words With Birds, he's checking e-mail and twitter to see if anyone is trying to contact him.

Is there some philosophical viewpoint that states that it is better to stare at a blank wall than to read your mail?

<comment><USER8> Yeah. I'm reminded of Schopenhauer's _On Thinking for Oneself._

Reading an email or Twitter forces others' thoughts upon the mind, but when a man stares at a blank wall and thinks for himself, he follows the impulse of his own mind. A blank wall does not, as reading a tweet does, impress a single definite thought upon the mind.

</comment></comment><comment><USER9> _I can't do anything about them. If a client needs help I have to wait until I am back at a computer_

Sounds like a problem with your phone.</comment>


Show HN: Is my power still out? My Sun. project for powerless Virginia residents - <AUTHOR> http://poweroutage.codemonkey.io

<comment><USER2> Earlier today I poked around at the ArcGIS API they are calling from the flex app - is this what you're using?

For my particular location there is one dot that is likely the one I'm waiting to have fixed, but it could be one of several surrounding my house. What are you using for your determination of if I'm fixed? Simply finding the work orders within a distance of the point dominion says my house is at?

I'd have a lot more confidence that this app would do anything useful if it gave me info like the work order numbers in my area, the number affected per each, and the estimated resolution (although they all say "no estimate").

Still, it's a cool little project to throw together - I wish I'd had more brain-working time during the weekend to do something like this - the best I did was automatically querying the JSON for local parsing. Ultimately, though, my computers / thermostat coming back online is going to be the real indicator!

For others who are curious, the Dominion outage map is calling some ArcGIS services that take a bounding box and returns all work orders (in JSON) with their statuses (number affected, etc). It's a horrible web interface, but at least the data can be manipulated queried fairly easily.

</comment><comment><USER3> This is definitely easier to use (and understand) that Dominion's maps. Some notes and questions:

"Severe" is spelled wrong. Some periods are missing at the end of sentences.

Why is the ZIP code required even if I enter a full address?

It also does not inspire confidence to enter your home address into a site that claims "no responsibility" when doing so proclaims that you are either at home without power or away from home. Sites like this need a privacy policy.

<comment><AUTHOR> Thanks for your feedback.

I updated the description on the front page to fix some grammatical and a few spelling errors, thanks. (English is not my first language)

I'll double check if the zip code is actually necessary, i'm hooking directly up the Dominions website, so it all depends on how they respond to my HTTP requests.

I updated the wording to be a bit more accurate. I take peoples personal information very serious, the phrase was meant to refer to the power outage status shown on the website.

Thanks again for the feedback, it's much welcome!

</comment></comment><comment><USER4> Even though this is obviously thrown together, it really provides a much easier UI experience than Dominion's Maps.

I signed up my email, and I'll definitely be recommending my friends. Thanks a lot for this.

It's little apps like this why I love Hacker News.</comment>


Ask HN: What's that annoying false myth in your industry that has refused to die - <AUTHOR> <comment><USER2> "The cloud" is the solution to any and all problems.

"Docker" is the solution to any and all problems.

"Javascript is a minimum requirement"

</comment><comment><USER3> Software engineers are useless after 40</comment>


Propose HN: monthly "This is my startup/sideproject" thread - <AUTHOR> There's "Show HN" but it's only for launching/one time. I think makers deserve a thread where the current status/updates for a project could be regularly posted.<p>EDIT. I meant to start a discussion if such thread should be posted on HN. I assume it would be handled by HN's admins. <comment><USER2> I know it's not HN, but if you're interested,

[https://reddit.com/r/startups](https://reddit.com/r/startups) has a monthly "share" thread:

[https://www.reddit.com/r/startups/comments/4vmkbk/share_your...](https://www.reddit.com/r/startups/comments/4vmkbk/share_your_startup_august_2016/)

along with a weekly feedback thread:

[https://www.reddit.com/r/startups/comments/4zgrcq/weekly_fee...](https://www.reddit.com/r/startups/comments/4zgrcq/weekly_feedback_and_support_thread/)

<comment><USER3> The problem of the monthly share thread is that there is no comment for each post.

</comment></comment><comment><USER4> I would suggest this as well, not only because I like reading what others are up to, but because I know whenever there's posts about this stuff they usually get a lot of upvotes and comments.

Also for companies that make it big and become well known, it would be awesome to possibly find entries from them on here and reading about their difficulties, pivots, growth, and the input that people have them in the contents at the time.

</comment><comment><USER5> My side project [https://bestfoodnearme.com](https://bestfoodnearme.com) is getting a new look with the help of the creator of bourbon.io I am also adding some new features to support pictures.

</comment><comment><USER6> What about a stand alone platform that is deliberately not development by committee, but rather collaborative, mining a pool of great minds for cross- discipline, deep integration on big ideas? I'd help found/build.

Google, Apple, Microsoft Next all do this internally...It would be interesting to do it in the wild without all of the secrecy (which might be the competitive advantage).

Tesla evolving to a modern renewable energy company from a strategic consumer product offers a practical example/case study of what I am talking about. However, only recently have they "come clean" about their intentions.

</comment><comment><USER7> There is a similar thread at lobste.rs AFAIK every start of the month. It's a bit more generic, "what are you working on this month" or something similar.

<comment><USER8> Is there an easier way to get an invite these days? Still don't have an in.

<comment><USER7> Drop an email I will send you an invitation.

<comment><USER8> Thank you for the offer! I sent you an e-mail (the one on your website). Not sure if you got it.

</comment></comment></comment></comment><comment><USER9> My side project is Genni.

Genni is a JavaScript file generator using ES2015 templates. To help automate component generation.</comment>


Predictions for 2018 from Rob Zuber, CTO of CircleCI - <AUTHOR> https://circleci.com/blog/predictions-for-2018-from-rob-zuber-cto-at-circleci/ <comment><USER2> Circle CI is a great product, but the new v2 YAML format is very clunky and leads to slower build times. I wish they would focus on their product rather than predicting tech trends.

<comment><USER3> Predicting customer needs is part of making a good product. Especially in a space so focused on speed and iteration.

Slower build times? That definitely isn't the norm for most projects which have transitioned over. Have you had anyone look over your config with you yet?

</comment></comment><comment><USER4> I refuse to jump on board with micro services based on faith. Docker/k8s are not free actions, in fact you will probably pay _dearly_ using them in a inappropriate context.

<comment><USER5> To be fair, neither docker nor k8s require you split your app into microservices. Get GKE and put your monolith on there, let k8s handle rolling upgrades. Or not if you don't think that's useful. :)</comment></comment>