« Back to channel list

#ruby-offtopic - 10 November 2017

« Back 1 day Forward 1 day »
[00:03:29] nofxx: has joined #ruby-offtopic
[00:06:50] nofxx: has joined #ruby-offtopic
[00:10:21] nofxx: has joined #ruby-offtopic
[00:14:39] nofxx: has joined #ruby-offtopic
[00:21:37] nofxx: has joined #ruby-offtopic
[00:26:17] nofxx1: has joined #ruby-offtopic
[00:29:37] al2o3-cr: has joined #ruby-offtopic
[00:45:08] ruby[bot]: https://i.stack.imgur.com/1Vuvp.png
[00:45:15] RickHull: dminuoso: just added ^
[00:51:48] Technodrome: has joined #ruby-offtopic
[01:25:21] pwnd_nsfw`: has joined #ruby-offtopic
[02:19:39] elomatreb: This misses one thing I always run into when running subprocesses, the ability to have no shell
[02:20:10] elomatreb: I.e. like system and popen with multiple arguments
[02:20:50] elomatreb: Very useful if you have weird filenames, saves you having to escape
[02:21:27] RickHull: it mentions popen, but there is no diamond for "do I want shell ____"
[02:21:36] RickHull: shell um, expansion?
[02:21:47] RickHull: shell execution?
[02:22:25] elomatreb: Well, system with one argument opens a $SHELL subprocess and passes the string you gave it to that shell
[02:22:38] elomatreb: system with more than one argument starts the subprocess with the given arguments directly
[02:23:01] RickHull: yeah -- i much prefer the latter as a sensible default
[02:23:43] elomatreb: I don't know a good way to visually design this but you might consider an indicator which of the forms can do that (e.g. backticks can't)
[02:24:21] RickHull: I didn't make it, dminuoso linked it, and I petitioned for a factoid
[02:24:50] RickHull: it would be good to have a factoid about the perils of shell argument expansion string voodoo or whatever
[02:25:24] elomatreb: Ah, ok, sorry
[02:25:48] RickHull: no worries, good call, I agree
[03:12:13] guacamole: has joined #ruby-offtopic
[03:14:30] nofxx: has joined #ruby-offtopic
[04:58:40] Technodrome: has joined #ruby-offtopic
[05:21:41] enko: has joined #ruby-offtopic
[06:06:54] dminuoso: elomatreb: Mmmm.
[06:11:50] Exhiled: has joined #ruby-offtopic
[06:19:36] RickHull: dminuoso: you just volunteered to make the new diagram!
[06:28:07] Technodrome: has joined #ruby-offtopic
[06:34:52] Exhiled: has joined #ruby-offtopic
[06:51:34] baweaver: Fixed a ton of the images up, they look prettier now. Don't like the Shakespeare quote Lemurs yet, they need work.
[06:53:27] baweaver: https://baweaver.gitbooks.io/an-illustrated-guide-to-ruby/content/assets/haha_lemur.png
[06:53:33] baweaver: Isn't he pretty?
[06:54:08] dminuoso: baweaver: Awesome.
[06:54:15] dminuoso: That's a real troll lemur.
[06:54:26] RickHull: lemur all the things! \o/
[06:54:28] baweaver: It actually literally is in some areas
[06:54:54] baweaver: Still need to do the title and get some other sections stubbed out - https://www.gitbook.com/book/baweaver/an-illustrated-guide-to-ruby/details
[06:54:58] baweaver: Enumerable will be fun
[06:55:00] dminuoso: baweaver: So yesterday I have understood how lenses work. Im now writing a useful functional library somehat similar to Ramda but for ruby.
[06:55:12] dminuoso: Because, screw the ruby core library.
[06:55:16] dminuoso: Its written all wrong.
[06:55:18] baweaver: You should explain it with pictures
[06:55:22] baweaver: because pictures are fun
[06:55:32] dminuoso: baweaver: My drawing skills are as good as my punning skills.
[06:55:36] RickHull: baweaver: it would be fun to have "care bear stare"
[06:56:01] RickHull: right thru that rubygem
[06:56:10] baweaver: Ooo, I'll add that to the references to do
[06:56:19] baweaver: DBZ is coming up some time soon
[06:56:50] baweaver: Already got Batman, Shakespeare, The Scarlet Pimpernel (/ Pumpernickel), and a few others
[06:57:06] baweaver: and a hat tip to Tyrion in my author description
[06:57:17] baweaver: "That's me, I draw and you know things"
[06:57:37] dminuoso: I have just properly understood how lenses work and interact.
[06:57:39] dminuoso: It's super fucking fun.
[06:58:15] dminuoso: And unlike JS, with Proc#* you can create sexy code.
[06:58:28] dminuoso: baweaver: whats the deal with shakespear?
[06:58:50] baweaver: Making fun of quotes by quoting quotes
[06:58:55] baweaver: Then doing it again in French to make fun of myself
[07:14:10] dminuoso: baweaver: https://gist.github.com/dminuoso/32a41beb4ec2565b866315ab4e450fc1
[07:14:23] dminuoso: Even did both haskells fmap and <$> style
[07:15:03] dminuoso: Autocurrying completely of course.
[07:16:29] dminuoso: baweaver: Now. We need a good operator for <*> because I really do want applicative functors.
[07:16:59] baweaver: https://baweaver.gitbooks.io/an-illustrated-guide-to-ruby/content/assets/why_lemur.png
[07:17:14] baweaver: I have like my own personal arsenal of reaction images piling up XD
[07:17:36] dminuoso: Its interesting, I didnt know I was older than you.
[07:25:00] baweaver: Granted I'm not particularly old either,
[07:31:55] RickHull: who here is particularly old? raise your hand
[07:33:04] RickHull: zzak: you can't be a spring chicken forever
[07:33:37] RickHull: nofxx: gotta give up on that punk ideology sometime
[07:33:57] RickHull: Papierkorb: you're just grumpy
[07:35:34] RickHull: dminuoso: how is the grump factor these days?
[07:35:42] baweaver: Still in the under 30 club
[07:35:50] dminuoso: Im one year ahead of baweaver.
[07:35:50] RickHull: no fair, boo
[07:35:53] dminuoso: So I dont feel that grumpy.
[07:37:10] RickHull: relatively grumpy?
[07:40:27] RickHull: ljarvis: i could use some help here
[07:40:40] RickHull: manveru: ahem
[07:42:52] Exhiled: has joined #ruby-offtopic
[07:43:11] RickHull: Yxhuvud: pardonez mois but I feel like I've seen your nick splashed across in the innernuts
[07:43:46] RickHull: you can't be in your 20s
[07:53:34] baweaver: Radar is probably the only one online at the moment
[07:54:06] RickHull: Hi manveru, sory for pinging you
[07:54:16] RickHull: we haven't chatted in over 5 years :)
[07:54:22] RickHull: therefore, we are old :)
[07:55:06] manveru: it's been a while
[07:55:49] RickHull: do you still do ruby stuff? web stuff?
[07:56:51] manveru: no ramaze for quite some time now... people pay me to do rails though
[07:57:44] RickHull: what about open source -ish
[07:57:46] manveru: but the past few years i've been getting more into nix and functional programming
[07:58:36] manveru: right now i do some scheme and elm
[07:59:02] manveru: for a nixos installer, so also nix
[07:59:11] manveru: it's pretty fun :)
[07:59:25] RickHull: what about racket?
[07:59:41] manveru: can't say i've tried it
[07:59:44] baweaver: Only in Lisp can you be a Schemer, a Racketeer, and still get some Clojure.
[07:59:54] RickHull: ACTION snort
[08:00:08] manveru: i've done sbcl, chicken scheme, and guile
[08:00:27] RickHull: guix would seem natural
[08:00:51] baweaver: My worst one though RickHull: TCP is just SYNACKtic sugar
[08:00:52] manveru: if it weren't for the whole religious GPL thing
[08:01:07] RickHull: ah, inneresting
[08:02:03] manveru: there's just way more stuff in nixos, and it works with systemd, so packaging isn't as alien
[08:02:37] RickHull: yeah, kinda devopsish ?
[08:02:56] manveru: you could say that
[08:02:57] baweaver: We call ourselves SREs now for some reason
[08:02:58] RickHull: i like that stuff. been playing around with mruby for deliverable executables
[08:03:19] manveru: it's just fun to be able to write your whole OS in one file
[08:03:39] baweaver: Site Reliability Engineers. Google coined, everyone else jumped on and grossly misconstrued it as per usual :P
[08:03:46] RickHull: i remember looking at a hypervisor that executes erlang
[08:03:52] RickHull: thinking about elixir...
[08:04:01] RickHull: like a tiny little cloud thingie
[08:04:22] baweaver: Did you know Chef runs on primarily Erlang on their servers?
[08:04:41] RickHull: i would if I had a pile of hot garbage on my hands
[08:05:07] RickHull: sorry, that's probably unfair
[08:05:14] manveru: https://nixos.org/nixops/ :)
[08:05:53] RickHull: so what's the biggest headache you've found?
[08:06:05] RickHull: surely it must be painful to be so pure
[08:06:06] manveru: besides semicolons?
[08:06:15] RickHull: yes, besides semicolons
[08:06:57] manveru: well, the hardest part is usually software that insists on downloading shit while running the installation
[08:07:18] manveru: looking at you passenger!
[08:07:45] baweaver: manveru: Oooo I love those
[08:07:55] baweaver: Ah, you're talking for _legitimate_ purposes
[08:08:11] manveru: it downloads an entire nginx :P
[08:08:11] baweaver: nevermind then. *puts away DNS poisoner*
[08:08:52] baweaver: The one case where Apache was more sane
[08:08:54] manveru: otherwise... the nix UX isn't terribly good
[08:09:19] manveru: `nix-env -iA nixpkgs.htop` to install stuff takes some getting used too
[08:09:26] baweaver: UI/UX is danged hard to do right
[08:09:50] manveru: they're working on it, but it's taking a long time
[08:11:26] manveru: anyway, now i use nix to build tests running in qemu, docker images, virtualbox appliances, bare metal servers, development environments, my macbook and linux machines...
[08:11:38] manveru: it's pretty good once you get used to it
[08:11:47] manveru: and makes ruby dependency management sane again ;)
[08:11:59] baweaver: Better than trying RHEL-based anything
[08:12:11] manveru: i don't have to use rvm or bundler
[08:12:12] baweaver: ACTION glares at CentOS
[08:12:51] baweaver: To be fair though I kinda got a new job to get out of Ops, so... :P
[08:13:01] RickHull: nix sure looks solid from the outside. and where infrastructure matters, solid is key
[08:13:17] baweaver: Now I'm back to Rails and some EmberJS
[08:13:32] baweaver: and the phrase "on call rotation" is no longer nightmare inducing
[08:13:59] manveru: my dayjob is mostly ruby/rails/react atm
[08:14:17] baweaver: Ever seen Ramda?
[08:14:39] manveru: that currying thing, right?
[08:14:51] baweaver: I've been flitting around the edges of React a few times, tempted to use it for a lot of the composition and lensing features
[08:14:57] baweaver: dminuoso has strong opinions on that one though
[08:15:28] baweaver: He kinda... well, he drank from the Haskell pool and hasn't quite been the same since
[08:15:48] baweaver: keeps muttering things about Monads and Applicatives
[08:15:59] RickHull: endofunctors... *barf*
[08:16:26] baweaver: >> [1,2,3].map { |x| x * x } # Endofunctors?
[08:16:27] ruby[bot]: baweaver: # => [1, 4, 9] (https://eval.in/896944)
[08:17:18] baweaver: (Int -> Int) -> Array[Int] -> Array[Int]
[08:17:31] baweaver: ( dminuoso - I do that right? )
[08:18:51] baweaver: Though I guess you'd flip the function and the first array for Ruby
[08:21:42] manveru: Array.map [1,2,3] (\x -> x * x)
[08:21:46] manveru: you'd probably write it like that
[08:22:07] manveru: though at least in the languages i know, they take the array last
[08:22:09] baweaver: An Array is a Functor, and an Endofunctor is just a Functor that maps to a Functor with the same type signature
[08:22:43] manveru: elm doesn't even have arrays, only lists...
[08:22:51] baweaver: well, category, but common terminology
[08:22:52] baweaver: I'll probably make a Lemur tutorial for all of that too
[08:22:53] manveru: well, as builtin types
[08:23:31] manveru: and all lookups in lists/arrays result in Maybes
[08:23:38] baweaver: Sounds like Scala
[08:23:40] RickHull: https://guide.elm-lang.org/
[08:23:59] baweaver: Except Option types for everything and getOrElse
[08:25:23] baweaver: People here are fairly high on Kotlin as a Java-alt
[08:25:25] manveru: makes for extremely solid code
[08:25:41] RickHull: baweaver: how much Java-alt do people need?
[08:25:59] baweaver: Apparently a few more
[08:26:13] manveru: just staying away from the JVM is enough... imho :P
[08:26:35] RickHull: I think I must be crazy, but both java and javascript are like ugh. I like the idea of coffeescript and kotlin
[08:26:37] RickHull: so there's that
[08:26:50] baweaver: To be fair the JVM has had a lot of thought put into it
[08:26:51] baweaver: ES6 isn't bad
[08:26:52] RickHull: jvm is so good
[08:27:05] baweaver: Pretty much everything is good and bad in programming
[08:27:14] RickHull: baweaver: have you hit a GC wall yet?
[08:27:22] manveru: i'm staying away more for cultural reasons
[08:27:29] RickHull: you know it's just a matter of time...
[08:27:32] baweaver: Also a very fair point
[08:27:52] RickHull: gosh it's so much fun trying to read a GC trace
[08:27:53] baweaver: Had a script that literally restarted Tomcat every X Hours because reasons
[08:27:58] baweaver: and the devs thought that was a good idea
[08:28:06] manveru: but next i wanna try purescript :)
[08:28:09] baweaver: though to be fair they also managed to make recursive healthchecks
[08:28:11] manveru: once i'm done with elm
[08:28:20] baweaver: I'm still impressed by how stupid that one was
[08:28:28] baweaver: (recursive healthchecks that is)
[08:28:39] RickHull: baweaver: erlang genserver yada yada
[08:28:40] manveru: what could go wrong?
[08:28:49] RickHull: fail fast restart that b
[08:28:55] baweaver: Service A checked service B checked service A checked ......
[08:29:11] manveru: as long as you kill them both regularly, it's fine ;)
[08:29:26] baweaver: What do you think that Tomcat restart script was for X_X
[08:29:54] baweaver: They said they needed more AWS servers, we said what for, then we saw that mess
[08:30:18] RickHull: lambda architecture, fail fast
[08:30:51] baweaver: easier said than done with architecture that existed long before Lambda came out ;)
[08:31:21] RickHull: it's tough squeezing a squid shape into a square hole
[08:31:29] RickHull: but there is something to be said for it
[08:31:35] baweaver: Well they also used Squid so...
[11:42:56] Technodrome: has joined #ruby-offtopic
[12:00:36] guacamole: has joined #ruby-offtopic
[12:25:18] tcopeland: has joined #ruby-offtopic
[13:48:16] Technodrome: has joined #ruby-offtopic
[14:09:38] tcopeland: has joined #ruby-offtopic
[15:10:11] nofxx1: has joined #ruby-offtopic
[15:30:13] Technodrome: has joined #ruby-offtopic
[17:33:23] Exhiled: has joined #ruby-offtopic
[17:35:46] atmosx: would you buy the touchbar MBP 2017? How many years do you think will last?
[17:54:47] al2o3-cr: has joined #ruby-offtopic
[18:04:31] baweaver: Ha, no. Sticking with my 2014 for a while more.
[18:04:46] baweaver: Heard bad things about the keyboards among other things
[18:26:33] Exhiled: has joined #ruby-offtopic
[18:36:25] tcopeland: I had a touchbar mac keyboard go bad on me about 4 months after company bought it… the ‘command’ key would only work 2/3 of the time
[18:36:41] tcopeland: I left ’s’ and ‘c’ scattered all over the place
[18:43:03] Exhiled: has joined #ruby-offtopic
[19:01:26] guacamole: has joined #ruby-offtopic
[19:18:55] havenwood: dminuoso: what puts the "strong" in strong lax monoidal functors?
[19:20:00] dminuoso: havenwood: uh how well versed are you in category theory?
[19:20:08] havenwood: dminuoso: not very well at all
[19:20:36] havenwood: dminuoso: i've only dabbled, watching talks
[19:20:40] havenwood: i don't fee confident
[19:21:04] havenwood: i need to properly get up to speed
[19:21:13] havenwood: dminuoso: worth learning?
[19:21:32] dminuoso: havenwood: I'd say so, at least until a certain degree (beyond that it just depends on your curiosity).
[19:22:10] dminuoso: havenwood: Bartosz Mileswski has an excellent series of recorded lectures diving into category theory targeted at programmers, but mathematically correct. He's also published a small book and dozens of articles.
[19:22:26] havenwood: yeah, i could use a lecture series
[19:23:03] baweaver: dminuoso: Some time next year I may do an Illustrated guide to Catagory Theory
[19:23:22] baweaver: because too many mathy words and shorthand
[19:23:42] dminuoso: baweaver: Im not entirely sure how useful that is going to be.
[19:23:52] dminuoso: I feel the CT diagrams are as good as it can get.
[19:24:02] baweaver: The more abstract the concept the better it is to illustrate it
[19:24:40] dminuoso: baweaver: CT does this a lot with diagrams.
[19:24:41] baweaver: Speaking of: Array#each is going to be fun havenwood :D
[19:25:01] havenwood: baweaver: and how it ties into Enumerable
[19:25:02] dminuoso: What's that? What does #each do?
[19:25:12] baweaver: How do blocks work
[19:25:28] baweaver: Remember this one is super-n00b level
[19:25:48] havenwood: baweaver: I've wondered about not teaching #each up front. It seems to cause much confusion and mutation side-effects might not be the friendliest thing up front.
[19:26:09] havenwood: Like just show #map and totally neglect #each.
[19:26:13] dminuoso: havenwood: Once you've covered CT theory, go back to Professor Frisby's series of functional programming. It's amazing to see all these things being used to make complex programs with little effort. :)
[19:26:15] baweaver: I'd show it as a literal block with a lemur inside doing things with the input
[19:26:22] havenwood: baweaver: mmm
[19:26:40] dminuoso: havenwood: I think the lack of #each depends on whether you pursue a functional or an imperative approach.
[19:26:57] baweaver: They _do_ need to know how to do things with each element, but I'll avoid mentioning mutation
[19:27:08] havenwood: dminuoso: I'm tempted to just show a functional style in Ruby, with modules and functions.
[19:27:08] baweaver: That said, map may be fun to explain without it or recursion.
[19:27:40] dminuoso: havenwood: Honestly without a support library like Ramda, functional programming feels completely lackluster in Ruby.
[19:27:47] havenwood: I hate it when new folk want to do everything imperatively. There's a temptation to teach that first.
[19:27:49] dminuoso: It's mostly limited to Enumerable
[19:28:09] dminuoso: And when its not, things are annoying as heck
[19:28:20] dminuoso: 1..2.map(&:to_s)
[19:28:22] dminuoso: >> 1..2.map(&:to_s)
[19:28:23] ruby[bot]: dminuoso: # => undefined method `map' for 2:Fixnum ...check link for more (https://eval.in/897672)
[19:28:24] havenwood: dminuoso: I think using the functional stuff it has and focusing on that style of composition makes it a lot less prickly though.
[19:28:31] dminuoso: >> 1..2.map { |e| e + 1 }
[19:28:32] ruby[bot]: dminuoso: # => undefined method `map' for 2:Fixnum ...check link for more (https://eval.in/897673)
[19:28:37] havenwood: (1..2).map &:to_s
[19:28:43] dminuoso: Err yeah. That.
[19:28:47] dminuoso: >> (1..2).map &:to_s
[19:28:48] ruby[bot]: dminuoso: # => ["1", "2"] (https://eval.in/897674)
[19:28:52] dminuoso: This makes no sense.
[19:29:01] baweaver: was thinking: new_array = []; old_array.each { |i| new_array << fn[i] }; new_array
[19:29:07] havenwood: You mean the Range to Array?
[19:29:10] baweaver: but I could also show it with recursion
[19:29:11] dminuoso: havenwood: Yeah.
[19:29:14] havenwood: dminuoso: agreed
[19:29:16] baweaver: it may be a bit dense though
[19:29:18] Papierkorb: >> (1..2).map { |e| e + 1 }
[19:29:19] ruby[bot]: Papierkorb: # => [2, 3] (https://eval.in/897675)
[19:30:02] baweaver: Hrm. havenwood: recursion or simple iteration?
[19:30:20] baweaver: recursion would involve showing them head / tail and some other things
[19:30:28] dminuoso: havenwood: At any rate. I've gained a lot of intuition from my diving into category theory. One fundamentally interesting idea, is that functions/methods taking no arguments fundamentally cannot exist.
[19:30:34] havenwood: baweaver: I'd be in favor of completely omitting recursion, until the level is advanced enough for introducing TCO and stack trace.
[19:30:36] havenwood: baweaver: hrmm.
[19:30:52] baweaver: Remember: super newbies
[19:30:56] havenwood: dminuoso: right, they're nothingness
[19:31:05] havenwood: no receiver, no argument, no function
[19:31:20] dminuoso: havenwood: No I meant: -> () { ... }
[19:31:33] dminuoso: havenwood: This semantically takes an argument.
[19:31:40] dminuoso: Just in a very non-obvious way
[19:31:47] havenwood: as in zero arity
[19:31:53] Papierkorb: I think recursion as concept is fine (but maybe not that early), but just not as loop 'replacement'
[19:31:55] havenwood: so non-obvious i don't get it
[19:32:01] Papierkorb: teaching it ^
[19:34:55] dminuoso: havenwood: Let me change the perspective. A good way of looking at a "type" is just a "set [in the mathematical sense] of all possible values"
[19:35:39] baweaver: Papierkorb: So how would you show what map is doing "behind the scenes" for complete newbies?
[19:35:48] baweaver: I have a few ideas, still working them out though
[19:36:01] dminuoso: havenwood: Naive set theory now defines a function as follows: If f:X->Y, then for every element in X there is a corresponding element in Y.
[19:36:01] Papierkorb: baweaver: build one out of an #each
[19:36:11] dminuoso: The inverse means, if I can give you an elementm, it means you must have given me something.
[19:36:21] baweaver: that was my immediate thought as it most closely reflects what Enumerable actually does
[19:36:46] Papierkorb: Yes, and if they understood each, they'll understand that
[19:37:12] baweaver: Pretty much. That's why I hesitate to show a pure version of it right offhand
[19:37:15] A124: has joined #ruby-offtopic
[19:37:34] dminuoso: havenwood: The idea is that you could think of a type that contains only a single value. NilClass satisfies that property for example.
[19:38:03] dminuoso: Functions taking no arguments cannot map to anything, because they dont have any points in their domain to begin with.
[19:39:09] Papierkorb: baweaver: imho, the biggest issue at the start is that newbs have a hard time splitting the issue they're facing. The issue of #map can be reduced to a single-element step like recursion does for sure, but I think I'd be more confused than before in that stage
[19:39:22] dminuoso: So ->() { 1 } must semantically be equivalent to ->(NilClass: x) { 1 } (if that made up type annotation makes sense)
[19:39:39] baweaver: This is why I have a number of non-programmers reviewing parts of it too :D
[19:39:45] Papierkorb: Apart from that, nothing wrong with building a #map out of a #each, especially as yes, that's almost what actually the code's doing
[19:40:51] dminuoso: havenwood: so you still pass some kind of information to the function, the least possible amount. "nothingness" or more commonly called "unit". Just a single element which has 0 information.
[19:41:02] dminuoso: Which is more than nothing, but less than a bit.
[19:41:31] dminuoso: (Since a bit can contain at least two pieces of information)
[19:42:44] baweaver: havenwood: would you agree with that assertion?
[19:43:52] RickHull: has joined #ruby-offtopic
[19:47:40] mikecmpbll: has joined #ruby-offtopic
[20:26:16] guacamole: has joined #ruby-offtopic
[20:29:25] nofxx1: RickHull, hum?
[20:29:48] RickHull: sorry, i was rambling last night :)
[20:30:27] RickHull: making dumb callouts to people who probably don't remember me
[20:31:01] nofxx1: RickHull, ah, the nick..thought was something I said =D
[20:31:05] nofxx1: I remember you hehe
[20:34:09] RickHull: anyone messed with this or can explain why it's cool? https://en.wikipedia.org/wiki/IBeacon
[20:34:50] Papierkorb: you mean bluetooth LE in general, or just beacons?
[20:34:54] RickHull: it seems almost purely for marketing
[20:35:09] RickHull: the beacon thing
[20:36:14] Papierkorb: Well it's for many a boring marketing tool. IMO, the more interesting use-case would be doing geolocation with it in big halls, and then do navigation on that for big events
[20:37:14] Papierkorb: in the end, a beacon really is that annoying kid on the backseat asking "are we there yet?!"
[20:37:18] RickHull: i'm trying to figure out what a phone user gets out of this, besides marketing crap pushed to them
[20:37:28] Papierkorb: But you may be able to put it to good use while it does so :D
[20:39:54] Papierkorb: Some beacons also announce stuff like their temperature, so you can abuse that to build a cheap 'weather station' hehe
[20:40:19] RickHull: i'm still trying to think of some fun application
[20:40:27] RickHull: like geocaching, or finding your friends at a festival or something?
[20:40:40] RickHull: like you said, navigation at a big event?
[20:40:43] RickHull: i don't quite get it
[20:41:54] Papierkorb: Well you'd put a beacon every few m² or so, then measure the coordinates (GPS or w/e), and then you can triangulate your position and thus, do navigation
[20:42:10] Papierkorb: Might be interesting if your center has bad GPS reception
[20:42:34] Papierkorb: As those beacons have a pretty good battery life
[20:42:54] RickHull: what are some fun phone actions? like a beacon that makes everyone's phone vibrate?
[20:43:18] RickHull: or do you just get apple store coupon notifications?
[20:43:29] Papierkorb: not possible (thankfully). I don't know if phones even receive beacons by default - my doesn't
[20:43:35] Papierkorb: maybe iphones do, dunno
[20:43:52] RickHull: it kind of reminds me of cuecat or whatever that thing was
[20:44:03] RickHull: the barcode scanner that wired mailed to millions of households
[20:45:07] Papierkorb: They're not that useful in general though, outside of such special use-cases
[20:45:25] Papierkorb: There are like three different LE protocols for beacons
[20:45:48] RickHull: https://en.wikipedia.org/wiki/CueCat#Failure heh
[20:45:51] Papierkorb: So yeah, people can't even decide on a single protocol for a "I'M HERE" yelling piece of plastic
[20:46:07] Papierkorb: And it gets worse
[20:46:31] nofxx1: I don't think you can triagulate with beacons....sure?
[20:46:32] Papierkorb: Those protocols are badly documented, and on top of that, manufacturers tend to add their own stuff too
[20:46:52] nofxx1: it's very stupid actually, hence why it didn't made much success
[20:47:12] nofxx1: nothing out of ble can be good anyways, as there's nothing more stupid made by mankind than bluetooth
[20:47:16] Papierkorb: nofxx_: Beacons yell their uuid, which if you know their position, and the signal strength (which you phone can tell you precisely enough for this purpose), you can triangulate
[20:47:18] nofxx1: well, socialism
[20:48:06] nofxx1: Papierkorb, hmm... I see, makes sense, not much precise but possible
[20:48:45] nofxx1: there's some systems for meter precision, very expensive
[20:48:48] Papierkorb: being off by a few meters (you can boost that by adding more beacons, which are cheap) isn't that bad
[20:48:49] nofxx1: but you need only 4 antennas
[20:48:59] Papierkorb: beacons are dirt cheap
[20:49:04] nofxx1: Papierkorb, agreed, depend on the use case
[20:50:33] RickHull: ok, I guess if you're the mayor of your starbucks in foursquare, maybe it helps you check in more?
[20:50:41] RickHull: does anyone foursquare anymore?
[20:51:20] RickHull: or maybe when you visit the front desk of the hotel, it triggers the bellhop?
[20:51:24] RickHull: something like that maybe?
[20:52:14] RickHull: i think the public nature of the broadcast limits some usage which would be wrecked by spoofing
[20:52:21] RickHull: like capture-the-flag
[20:53:29] RickHull: ooh, how about smarthome stuff, like heat the room you're in?
[20:55:25] RickHull: you can't use it for anything competitive, it seems, due to spoofing
[20:55:57] RickHull: it would be nice if it "proves" you were there
[21:03:30] RickHull: smarthome, or non-GPS location seem to be the least user-hostile apps
[21:03:53] RickHull: i could imagine it being a feature in hotel rooms
[21:04:05] RickHull: get say a $10 discount on the room if you use the app and turn on the beaconator
[21:04:25] RickHull: and it can turn on your lights and TV and climate control when you enter
[21:04:29] RickHull: and turn them off when you leave
[21:05:28] RickHull: put one beacon in the lobby, and another near the elevator
[21:05:37] RickHull: so it knows if you're entering or leaving the building
[21:06:00] Papierkorb: Um that's not what a beacon is for
[21:06:03] Papierkorb: it never receives
[21:06:09] Papierkorb: it simply announces its presence
[21:06:11] RickHull: it meaning the phone app
[21:06:24] Papierkorb: no need for a beacon?
[21:06:30] Papierkorb: just use the hotels wifi
[21:06:39] RickHull: that's just stupid
[21:06:43] adaedra: Woah, I didn't know Textual put a reminder who's talking every ten messages
[21:07:17] RickHull: yeah, I can't see an application for beacons that probably isn't better served by wifi
[21:07:34] RickHull: so only in wifi hostile locations?
[21:08:05] RickHull: there is still something to be said for knowing the phone app user has crossed the threshold into the lobby
[21:08:10] RickHull: and is now waiting for the elevator
[21:08:23] RickHull: that's probably trickier for wifi and whatever other phone sensors
[21:09:05] Papierkorb: I wouldn't use such app for any money save lul
[21:09:42] RickHull: if it were totally hostile, I wouldn't take the $10, but if it's beneficial to me and the hotel, then maybe
[21:13:29] RickHull: I gotta figure out my IRC client. still using webchat.freenode.net
[21:13:45] RickHull: i'm usually on linux, but my main machine now is my windows gaming box
[21:13:52] RickHull: doing all my dev on vagrant
[21:14:30] adaedra: During my time on Linux, I really liked weechat
[21:14:33] RickHull: the webchat recaptcha is getting O L D
[21:14:43] adaedra: Never found anything good on Windows tho
[21:15:02] Papierkorb: Konversation <3
[21:15:15] RickHull: usually on windows i would have some general messaging client like pidgin (remember gaim?)
[21:15:37] adaedra: Last time I tried, Pidgin's IRC support was not very good
[21:20:08] elomatreb: weechat is nice, but it's a terminal one so takes a bit to get used to. But once you do it's incredibly extensible and nice to use
[21:20:22] RickHull: so, there's a windows build of Konversation
[21:20:39] RickHull: the download page for it goes straight to a Jenkins box :)
[21:20:39] Papierkorb: and of other KDE applications, making that OS almost bearable :)
[21:20:49] RickHull: https://binary-factory.kde.org/job/konversation-stable-win32/
[21:20:54] Papierkorb: (Haven't used kde windows in years)
[21:21:06] elomatreb: Hexchat is a nice cross-platform GTK client
[21:21:39] RickHull: what's the popular emacs one? i'm an emacs person but never got the hang of terminal based clients
[21:22:33] RickHull: i might be thinking of irssi
[21:22:44] RickHull: but that's not emacs specific I don't think
[21:24:37] RickHull: as far as a CLI goes on windows, I've been pretty happy with the git bash thing, MINGW64
[21:26:05] RickHull: though generally step 1 is always `vagrant ssh`
[21:26:46] RickHull: side note, my vagrant network never comes back after the computer goes to sleep. virtualbox has some very strange UX
[21:28:00] RickHull: also vbox prevents windows from shutting down from time to time
[21:28:05] RickHull: thanks Oracle!
[21:47:21] dminuoso: Oh my. It's adaedra
[21:48:09] adaedra: It's a me, adaedra
[21:48:24] dminuoso: Almost did not recognize you. Place was not the same without you.
[21:48:39] adaedra: I was looking over
[21:49:19] dminuoso: Lurking? You nearly made me cry about your absence. I have been terrorizing this place with functional ruby of the kind that apeiros has not seen before.
[21:49:27] dminuoso: As a kind of coping mechanism.
[21:49:47] adaedra: Coming and going. Not often active, but still looking from time to time.
[21:49:56] dminuoso: Busy with work?
[21:50:05] adaedra: Among other things, yes
[21:54:08] ruby[bot]: RickHull: I don't know anything about hangman
[22:12:46] dminuoso: I wonder, which bot was it?
[22:13:03] baweaver: ACTION shrugs
[22:13:32] dminuoso: DeBot: !hangman ruby
[22:13:44] dminuoso: baweaver: That was the one.
[22:13:47] RickHull: DeBot_: !help
[22:14:02] RickHull: DeBot_: !hangman ruby
[22:14:02] DeBot_: ␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣ [] 0/12 (ruby)
[22:14:10] DeBot_: ␣␣␣␣␣␣␣␣␣␣␣␣s␣␣␣␣␣ [] 0/12 (ruby)
[22:14:23] DeBot_: ␣R␣␣␣␣␣␣␣␣␣␣s␣␣␣␣␣ [] 0/12 (ruby)
[22:14:25] DeBot_: ␣R␣␣␣␣a␣␣␣␣␣s␣␣␣␣␣ [] 0/12 (ruby)
[22:14:33] DeBot_: ␣R␣␣␣␣a␣␣␣␣␣se␣␣␣␣ [] 0/12 (ruby)
[22:14:35] RickHull: DeBot_: I'd like to solve the puzzle
[22:14:36] DeBot_: URI␣␣␣ailTo␣set␣to ['d kvhpz] 8/12 (ruby)
[22:14:36] DeBot_: URI␣␣␣ailTo␣set␣to ['d kvhpz] 8/12 (ruby)
[22:14:41] dminuoso: RickHull: DIAF.
[22:14:57] DeBot_: URI::␣ailTo␣set␣to ['d kvhpz] 8/12 (ruby)
[22:14:57] RickHull: i'm so good at QA it's scary
[22:14:59] dminuoso: RickHull: Who are you
[22:15:56] RickHull: ACTION peels off mask
[22:16:01] RickHull: I'm Batman!
[22:17:25] RickHull: i can't stop giggling. poor DeBot_ wut hapn
[22:17:50] RickHull: DeBot_: !DIAF
[22:17:50] DeBot_: URI::␣ailTo␣set␣to ['d kvhpz!f] 10/12 (ruby)
[22:25:24] apeiros: o/ adaedra
[22:25:49] apeiros: nice to see you again
[22:26:27] dminuoso: See, you have been dearly missed
[22:26:41] dminuoso: ACTION gets the cake
[22:26:46] adaedra: Who are you calling a deer
[22:27:24] apeiros: typo, mistake on dminuoso's part. of course he meant you've been bearly missed
[22:27:49] adaedra: are you calling me a furry
[22:28:04] apeiros: aren't you?
[22:28:29] adaedra: I _do_ need to shave a bit
[22:28:45] baweaver: epochwolf be praised
[22:29:05] apeiros: haven't read epochwolf in ages either
[22:29:23] adaedra: So friday night is #ruby-offtopic night?
[22:29:37] apeiros: and saturday night
[22:29:40] apeiros: and sunday night
[22:29:42] apeiros: and monday night
[22:29:45] apeiros: and tuesday night
[22:29:53] apeiros: and… you get the idea ;-p
[22:29:54] adaedra: dude, spamming.
[22:30:00] havenwood: but not wednesday night, that's Ruby in Hollywood
[22:31:07] dminuoso: Ruby Wednesday
[22:31:11] dminuoso: That a new song?
[22:31:16] havenwood: ACTION sings
[22:31:34] apeiros: ruby ruby ruby…
[22:31:37] adaedra: Tuesday night _is_ Ruby night once a month here once a month though, as it's the Paris.rb meetup
[22:31:44] adaedra: I need to go back doing them
[22:31:57] havenwood: adaedra: ooh, i'd love to go to Paris.rb
[22:32:12] apeiros: 4h of travel… hm…
[22:32:23] dminuoso: apeiros: Okay, black colors on a black background.. that looks like airbubbles.
[22:32:47] eckhardt: has joined #ruby-offtopic
[22:33:03] adaedra: Next one is 5/12
[22:33:05] apeiros: dminuoso: your fault for having terrible settings
[22:33:27] dminuoso: Fair enough its not true black. It's solarize dark :(
[22:33:56] dminuoso: adaedra: If I wasn't afraid of the French, I would come.
[22:34:24] adaedra: We don't bite.
[22:34:30] adaedra: Well, most of us don't.
[22:35:16] apeiros: dminuoso: as long as you know how to pronounce crepes, you're fine
[22:35:31] adaedra: That's for Bretagne though.
[22:35:44] apeiros: adaedra: huh?
[22:35:46] dminuoso: ACTION smiles but apeiros is likely the only one to understand the jokes
[22:36:00] apeiros: dminuoso: die bart, die?
[22:36:35] apeiros: adaedra: I thought galette was from bretagne, also I got crepes and galettes in paris just fine last time?
[22:36:48] adaedra: The real test is how you call this: https://i.imgur.com/cqq9kzB.jpg
[22:36:52] apeiros: or is this woooshing over my head?
[22:37:02] apeiros: adaedra: easy:
[22:37:04] apeiros: schoggibrötli
[22:37:17] adaedra: apeiros: we kinda language abuse "crêpes" for galettes outside of Bretagne.
[22:37:49] adaedra: If you know where to look, you can find anything in Paris.
[22:37:50] apeiros: you're telling me a random swiss guy has a better grasp of french terminology than french people?!?
[22:39:27] adaedra: Crêpes are also from Bretagne too
[22:39:55] apeiros: good thing they're a part of france
[22:40:07] apeiros: snails & frogs ain't for me :o)
[22:40:15] apeiros: but a beautiful helenne…
[22:40:45] adaedra: Hey, we have to give these people some recognition, they still have ideas about getting independance...
[22:41:17] dminuoso: adaedra: I'd just be one of those hipster young folks running at you with google babelfish in his ears. It would probably translate my outrage about the weather into "Where can I find crêpes" in French.
[22:41:49] adaedra: We don't have weather in Paris though, just a thick layer of pollution.
[22:42:24] dminuoso: Helps block out UV light, not a bad idea.
[22:42:26] adaedra: Snails are OK, I guess. Never had frogs tho.
[22:42:32] dminuoso: Im sure skin cancer is down, lung cancer is up.
[22:42:44] apeiros: I admit, I could probably easier get me to try frog than snail
[22:43:03] RickHull: frogs > snails
[22:43:33] dminuoso: apeiros: http://iran-times.com/wp-content/uploads/2013/11/kalehpacheh2.jpg after having seen this, frogs or snails dont scare.
[22:43:48] dminuoso: https://cdn.instructables.com/F5J/GAWN/FN82X6X0/F5JGAWNFN82X6X0.MEDIUM.jpg this is a close up.
[22:43:58] adaedra: I'll keep »schoggibrötli« for latter use though
[22:44:00] apeiros: looks like the head of some animal?
[22:44:14] apeiros: ah, yeah, closeup confirms
[22:44:19] dminuoso: apeiros: Sheep head and feet.
[22:44:30] apeiros: dminuoso: yeah, had one of those stare at me at my wedding in mongolia
[22:44:37] dminuoso: You cook throughout the night so your stomach empties, and then you each all parts of that head with vegetables and bread.
[22:44:40] apeiros: best part of that wedding was the rituals, though
[22:44:44] dminuoso: In the morning
[22:44:53] dminuoso: You got married in mongolia?
[22:45:01] apeiros: "you have to hold a speech, but first, drink this glas of vodka in one gulp"
[22:45:08] apeiros: - great, that's it, right?
[22:45:24] apeiros: - no, you have to go to each table, drink a glas of vodka in one gulp together with the head of the table
[22:45:28] apeiros: - great, that's it now, right?
[22:45:44] apeiros: - no, at the end of the festivities, you have to repeat that
[22:45:56] apeiros: I have no idea, how much vodka I drank that night.
[22:46:17] apeiros: dminuoso: no, got married in switzerland. just "party" in mongolia. my wife's country of origin.
[22:46:36] elomatreb: That sounds horrible tbh
[22:46:40] adaedra: You drank to forget how much you drank?
[22:46:47] apeiros: lets just say I got complimented for still standing, walking and talking after all that
[22:47:45] apeiros: adaedra: no, I drank to respect the customs :D
[22:47:49] apeiros: also the vodka was good
[22:49:53] RickHull: I dated a Russian girl once who's father, every time we ate together without fail, would cajole me into drinking way too much Imperial vodka
[22:50:08] apeiros: impossible
[22:50:24] apeiros: it's never "too much" when you're still able to drink :-p
[22:50:27] havenwood: My little sister dated a Russian guy who found out what I drank then brought me liquor each time he took her on a date.
[22:50:42] apeiros: havenwood: lol, smooth operator :D
[22:50:45] havenwood: Admittedly in won favor... but she dumped him and my supply line stopped.
[22:51:16] apeiros: ACTION knows havenwood's price now
[22:51:29] apeiros: god damit, I need a house.
[22:51:48] adaedra: your house, in the middle of your street?
[22:51:58] RickHull: a very very very fine house
[22:52:14] apeiros: can't turn up the volume beyond 1/10th of my hifi device in good concsience
[22:52:23] RickHull: you need an iBeacon
[22:52:30] adaedra: There are only very fine houses in switzerland :p
[22:52:31] RickHull: to turn up your iVolume
[22:52:54] RickHull: also a couple decent looking lakes there too
[22:52:54] apeiros: is ibeacon still in use? the technology sounded interesting, though spammy
[22:53:04] apeiros: RickHull: and hills, and mountains, and girls
[22:53:17] baweaver: So we got a few remote spots over here :D
[22:53:38] baweaver: also we might got a havenwood
[22:53:49] RickHull: apeiros: i came across it today for the first time. discussed it above. looks pretty useless
[22:53:58] RickHull: the best application I can think of is smarthome type stuff
[22:54:13] havenwood: Looks like I'm going to work with baweaver! :-D
[22:54:34] havenwood: baweaver is Square's #1 recruiter
[22:54:38] baweaver: eam and eckhardt too
[22:55:07] baweaver: We could hire a few Germans too :)
[22:55:26] baweaver: or others of course
[22:56:24] havenwood: speaking of, i wrote a little ruby parser for the 23andme results
[22:56:37] baweaver: I know of a few spots that're full remote: Inventory management / ops type work with Rails, and Security Blue Team with Ruby in which they only require Ruby skills and would teach Security
[22:56:50] havenwood: the amount of data they give you is pretty neat
[22:57:08] havenwood: baweaver: "Security Blue"?
[22:57:19] baweaver: Blue team in security is basically defense automation
[22:57:28] havenwood: red/blue, right right
[22:57:38] baweaver: auditing, infrastructure, protections, etc
[22:57:46] havenwood: We just did a CTF at Ruby in Hollywood - that was fun
[22:57:53] baweaver: Honestly I'm half tempted by that one but I like my current team
[22:58:12] havenwood: yeah, interesting stuff!
[22:59:15] baweaver: We have fruit smoothies
[23:00:13] baweaver: well, maybe not the smoothies for remote
[23:00:18] eckhardt: one of us, one of us
[23:00:42] eckhardt: all the turmeric tea you could want
[23:00:47] eckhardt: ACTION sips some more
[23:01:01] baweaver: Was joking with eam that Radar was giving me a time about recruiting half of #ruby IRC. He told me to try and recruit Radar then XD
[23:01:15] baweaver: Or Black Currant if you're around my desk
[23:01:24] baweaver: speaking of, drop by some time eckhardt
[23:01:32] baweaver: in a meeting atm though wrapping up
[23:01:45] eckhardt: yeah actually i'm at a good resting point/save point
[23:01:58] eckhardt: wrestling with a gnarly rails app i didn't write
[23:02:08] baweaver: I hide on 6 by the entry in the cove
[23:03:01] baweaver: Also some Earl Gray and Pomegranite Oolong
[23:03:27] eckhardt: pomegranite oolang? That sounds interesting
[23:03:51] RickHull: <3 earl gray. bergamot FTW
[23:04:05] baweaver: Harney and Sons Earl Gray Imperial is good stuff
[23:04:20] baweaver: headed down to ze desk now