Activity Graph

Page 1 of 119 | Next »


[12:51:28] dminuoso: has joined #RubyOnRails
[15:56:13] dminuoso: has left #RubyOnRails: ("WeeChat 2.2")


[09:03:03] dminuoso: Im trying to effectively build a phoenix app inside Docker and Im getting some bizarre problems about the phoenix digester not finding Jason:
[09:03:09] dminuoso: Can someone point out what might be going on here?
[09:06:49] dminuoso: (my mix.exs has a jason dependency)
[09:13:39] dminuoso: Wow! Okay I figured it out. The difference between copying from `foo/` and `foo`. :)
[15:52:04] dminuoso: has left #elixir-lang: ("WeeChat 2.2")


[19:54:01] dminuoso: has left #ruby: ("WeeChat 2.2")


[10:47:30] dminuoso: has joined #ruby
[11:02:11] dminuoso: Is there a canonical way to feed build flags into native gems?
[11:07:22] dminuoso: Specifically I see some mention of `gem install ... -- --build-flags [options]` but the behavior of those build flags is not clearly documented.
[13:33:03] dminuoso: adam12: Gotcha, I was already on that track patching a rather silly written library ruby-oci8 which simply fails to build on nix because the author thought it would be nice to deprecate and remove any dir_config controllable --with-oracle-instantclient flags..
[13:36:49] dminuoso: adam12: Ah that blows. Same library?
[13:37:36] dminuoso: At least LD_LIBRARY_PATH is patchable with no effort. On nix I dont even have /sbin and some packages have hardcoded paths for that..
[13:38:02] dminuoso: Not that Im trying to compare who is worse off..
[16:00:01] dminuoso: josevalim: Was that in RL?
[16:02:23] dminuoso: josevalim: What do you know about Elixir anyway. This guy is an expert.


[14:14:16] dminuoso: ariedler_: redux is the easiest part of those, redux-thunk is a completely useless library that is not needed at all (people using or advertising is are just 100% proof they did not understand redux at all)
[14:15:38] dminuoso: nox: Redux is not too different from say GenServer in a sense. :)
[14:18:22] dminuoso: ariedler_: All it does for you is reinject dispatch. Guess what, connect already does that for you.
[14:18:50] dminuoso: ariedler_: It's a 14 LoC library that is used because Web developers seem to have this invisible barrier preventing them from understanding what they use.
[14:22:07] dminuoso: ariedler_: Essentially it boils down to: I have a store. How do I dispatch a message to it?
[14:22:50] dminuoso: ariedler_: It's like using a library to call a function for you.


[08:21:25] dminuoso: Mmm. Why does Phoenix throw request body and URL params into one thing?
[08:21:33] dminuoso: This is rather annoying. :(
[08:24:47] dminuoso: I mean yeah I guess I can just pattern match on the conn and extract the body and params manually, it'd been much nicer if phoenix didn't pretend that throwing both into one argument was "the right thing to do"
[08:25:47] dminuoso: Nicd-: That's besides the point.
[08:26:16] dminuoso: Nicd-: Perhaps you want to preserve the body in shape.
[08:30:36] dminuoso: zakora: mix run?
[09:42:50] dminuoso: Does ecto have a way to f
[09:42:55] dminuoso: Does ecto have a way to find a record based on a changeset?
[11:22:05] dminuoso: Ecto queryables are constructed using `from u in "blah"`... what is that `in` inside there? Is that just a fragment of macro-based DSL?


[07:26:57] dminuoso: duoi: Just use a database driver directly? Ecto is not necessary in any way you know.
[07:27:11] dminuoso: Oh actually the question came from cmk_zzz.
[07:35:10] dminuoso: cmk_zzz: SQL.
[07:35:25] dminuoso: I never understood why all the hipster web boys are so afraid of a domain specific language that is actually not so bad.
[07:35:48] dminuoso: Sure, the syntax is a bit verbose, but it directly translates to relational algebra.
[07:37:24] dminuoso: And in larger companies you may have database teams that know SQL but not this weird ecto macro magic.
[07:37:31] dminuoso: It's easy to reason about SQl.
[07:39:16] dminuoso: cmk_zzz: What is wrong with ecto?
[07:39:19] dminuoso: What are you looking for?
[07:39:30] dminuoso: Maybe start with your requirements and reasons for not liking ecto.
[10:12:52] dminuoso: cmk_zzz: ORM in elixir does not make much sense.
[10:13:39] dminuoso: cmk_zzz: I have come to my senses years ago and stopped relying on ORMs. They just get in the way, lead to terrible query generation, force you to figure out how to solve problems using badly-to-no documented languages..
[10:13:50] dminuoso: SQL is easier to learn.
[10:14:00] dminuoso: And it's not much more code to write SQL from hand
[10:14:33] dminuoso: dysfun: Instead you embed large macros in your file.
[10:14:37] dminuoso: Not sure what you have gained but okay.
[10:16:37] dminuoso: dysfun: you are mentally switching syntax anyway.
[10:17:08] dminuoso: the ecto query language is not really elixir


[12:50:07] dminuoso: <- can someone point out to me what is happening here? The erlang in my environment is Erlang/OTP 21.
[12:51:22] dminuoso: dysfun: Oh wait. You mean the hex2nix application itself?
[12:52:12] dminuoso: dysfun: Yes. I was under the impression that the nix package for hex2nix was not broken that it wouldn't do exactly this.
[12:54:58] dminuoso: dysfun: When I asked about "You mean the hex2nis application itself" I meant: "So you are saying that hex2nix is compiled using a different erlang than the ssl module in my nix store"?
[12:57:48] dminuoso: What is "an erlang"?
[13:00:21] dminuoso: dysfun: Okay I originally assumed as much, dismissed this because I was under wrong assumptioned.
[13:00:26] dminuoso: dysfun: I found the bug.


[11:42:18] dminuoso: Mmm, not bad. I just segfaulted elixir.
[16:32:51] dminuoso: With Ecto, how can I emit queries that directly use Postgrex datatypes?
[16:33:32] dminuoso: Or do I really have to implement the Ecto.Type behavior in some shallow module that... doesnt do anything?
[22:49:54] dminuoso: Or maybe you are inserting a tuple that is 794MiB large.
[23:01:02] dminuoso: danieli: Im trying to compensate for the lack of specificity in their question.


[07:25:43] dminuoso: Mmm. Given a phoenix app with migrations, is there an elegant approach to triggering rollbacks through say gitlab-ci?
[07:27:12] dminuoso: I feel that I should be tracking the ecto version in a file in my repo, and then have the deploy script detect whether a migrate or rollback is needed.
[08:22:10] dminuoso: OliverMT: I have the advantage that downtime is acceptable in migration time (this is kind of crucial, since it avoids all kinds of consistency issues that would arise)
[08:22:31] dminuoso: OliverMT: Where do you propose these actions are carried out? Directly inside ecto migrations?
[11:50:58] dminuoso: OliverMT: How do you do rollback/migrate detection? (It would be wonderful to have a singular migrateTowards command that works in both directions)


[11:04:56] dminuoso: dysfun: "Where is *the* code that..." suggests that there is some canonical code that provokes that error message. Surely kapil____'s code is not the canonical code here.
[11:05:05] dminuoso: ACTION nitpicks back
[14:33:48] dminuoso: dch: It's not about "QT is too hard". Having to install a Qt application just to use some service is complicated.
[14:34:27] dminuoso: dch: What about dependencies? Suddenly you are looking at shipping an entire C++ runtime and half a dozen other libraries. How will that conflict with existing libraries?
[14:36:44] dminuoso: dch: Oh fair enough.
[14:36:55] dminuoso: dch: vscode and other electron apps is just.. ah well.
[14:38:05] dminuoso: dch: Unless you are on nix the linux concept of shared library is downright horrible.
[14:38:08] dminuoso: It's extremely brittle.
[14:38:23] dminuoso: It's a recipe of "oh I switch out this library and 3 applications break"
[14:39:24] dminuoso: nox: heh, my emacs uses 240MiB right now.
[14:41:02] dminuoso: dch: My slack uses 140 residential memory.
[14:41:09] dminuoso: So it's not "GiB of ram"
[14:43:03] dminuoso: dysfun: The virtual memory is irrelevant.
[14:44:06] dminuoso: dysfun: virtual memory includes shared libraries and memory that is not paged in.
[14:44:36] dminuoso: dysfun: Im not talking about swapped memory.
[14:45:49] dminuoso: And the residential memory includes shared memory too. So the actual footprint of some random process is much smaller.
[14:46:43] dminuoso: dch: is that executable size?


[07:44:53] dminuoso: has joined #ruby
[07:46:40] dminuoso: has left #ruby: ("WeeChat 2.0.1")


[11:33:29] dminuoso: has joined #ruby
[11:33:35] dminuoso: has left #ruby: ("WeeChat 2.0.1")
[14:57:05] dminuoso: has joined #ruby
[14:57:15] dminuoso: has left #ruby: ("WeeChat 2.0.1")


[06:31:26] dminuoso: has joined #ruby
[06:31:41] dminuoso: This is ruby for you.
[06:31:41] dminuoso: NameError: undefined local variable or method `getXTime' for main:Object; Did you mean? getXTime
[06:44:03] dminuoso: The right way.
[06:44:15] dminuoso: Where is apeiros. I need to complain some.
[07:55:02] dminuoso: has left #ruby: ("WeeChat 2.0.1")


[07:12:00] dminuoso: has joined #ruby
[07:12:11] dminuoso: has left #ruby: ("WeeChat 2.0.1")


[19:43:12] dminuoso: ivanskie: I dont understand the question.
[19:43:17] dminuoso: Just return it?
[19:44:03] dminuoso: begin ... rescue StandardError => e; return e.backtrace; end
[19:46:26] dminuoso: ACTION does not understand the question or the probilem
[19:46:28] dminuoso: ACTION does not understand the question or the problem
[20:37:30] dminuoso: has left #ruby: ("WeeChat 2.0.1")


[12:20:48] dminuoso: has joined #ruby
[13:24:39] dminuoso: has joined #RubyOnRails
[13:24:49] dminuoso: has left #RubyOnRails: ("WeeChat 2.0.1")
[13:36:10] dminuoso: baweaver: where is he?
[15:31:03] dminuoso: has left #ruby: ("WeeChat 2.0.1")
[16:44:39] dminuoso: has joined #ruby
[16:44:51] dminuoso: havenwood: where is apeiros :<
[16:44:56] dminuoso: Need to make fun of him


[19:49:26] dminuoso: has left #ruby: ("WeeChat 2.0.1")


[05:53:11] dminuoso: sevenseacat: 1. Delete specs. 2. watch failing specs count go down. 3. Profit
[05:53:17] dminuoso: Less work, more fun.
[09:02:11] dminuoso: ACTION gives za1b1tsu a docker
[09:47:38] dminuoso: dionysus69: asynchronous has nothing to do with REST.
[09:48:38] dminuoso: dionysus69: well yeah, but that has nothing to do with ajax.
[09:49:19] dminuoso: dionysus69: while some classical http might do something like: Request -> Result, ajax just turns it into: Request -> Promise Result
[09:49:30] dminuoso: It's still HTTP with all its semantics.
[09:49:41] dminuoso: The thing that changes is how you deal with responses in your client-code.
[14:02:57] dminuoso: amperry: Personally I recommend not making this a rails problemn
[14:03:31] dminuoso: amperry: Writing a simple 10 line bash script?
[14:04:48] dminuoso: amperry: The one line entry will just start a script, the script probably wont be a one-liner.
[14:08:33] dminuoso: amperry: Consider that you want at minimum: Detect running state. Cleanup if necessary. Pushing into prometheus/syslog the state that you had to kill and respawn. Do the respawn action.
[14:14:35] dminuoso: amperry: You shouldn't just probe for the PID. Scrabe the webserver.C
[14:14:48] dminuoso: amperry: The process might hang or possibly starved out of ressources.
[14:16:24] dminuoso: *scrape even.
[14:16:48] dminuoso: amperry: So use curl/wget or something along the lines. Ensure you get a 200.
[14:21:15] dminuoso: amperry: through what mechanism do you bring your server to live?
[14:21:40] dminuoso: amperry: Do you use upstart? systemd? Or perhaps do you have a docker based setup?
[14:22:55] dminuoso: amperry: you can make your life easy and ship a docker container then.
[14:23:06] dminuoso: amperry: it provides for a much cleaner solution to most problems.
[14:23:23] dminuoso: amperry: the idea of "it died" can be resolved with "throw the container away and make a new one"
[14:24:16] dminuoso: amperry: It also removes issues such as "but it works on my machine"
[20:40:30] dminuoso: has left #RubyOnRails: ("WeeChat 2.0.1")
[20:40:38] dminuoso: has left #ruby: ("WeeChat 2.0.1")


[07:47:12] dminuoso: za1b1tsu: Ask yourself what the problem is.,
[07:47:24] dminuoso: za1b1tsu: When your app cant load its dependencies, do you think it's problematic?
[09:39:11] dminuoso: dionysus69: I dont think it's a memory leak.
[09:39:43] dminuoso: You should probably tap into ObjectSpace, trace allocations
[09:39:45] dminuoso: Do some shenanigans.
[09:40:12] dminuoso: I suspect it might be some sub-optimal caching behavior.
[09:40:49] dminuoso: dionysus69:
[09:41:11] dminuoso: dionysus69: You have to dig very hard through objectspace I suspect.
[13:07:41] dminuoso: Criten: Stupid comments from my working colleague.


[05:31:05] dminuoso: havenwood: So that bug yesterday happened when I closed the lid of my macbook *while* running `bundle install` in a docker container.
[05:31:13] dminuoso: This should not happen. :(
[06:04:02] dminuoso: What is the best car.
[06:07:48] dminuoso: LiftLeft: What is the best airplane?
[06:08:49] dminuoso: LiftLeft: Without knowing what you consider "good", "useful" or actually need, it's hard to say really.
[06:09:43] dminuoso: The airplane easiest to fly with might not be the best to transport 10 cars with.
[06:09:53] dminuoso: The airplane easiest to fly with might not be the best to transport 600 people with.
[06:10:08] dminuoso: The airplaine easiert to fly with might not be the best in a dogfight.
[06:10:12] dminuoso: Notice a pattern? :)
[08:12:57] dminuoso: za1b1tsu: Seeing as I was instrumental to you getting the job, it would only be fair if I get say 20% of your salary.
[08:15:51] dminuoso: za1b1tsu: I can write you a bill for wedding consulting services. Would that do the job?
[08:16:53] dminuoso: 09:29 havenwood | za1b1tsu: You might suggest to them that using therubyracer to embed a V8 into Ruby isn't necessary when Node.js is available. Just using Node.js is preferable and should *just work*.
[08:17:05] dminuoso: havenwood: What if you wanted therubyracer to run RuScript to execute your ruby program?
[08:18:34] dminuoso: I dont know about being good at either..
[08:18:43] dminuoso: But I am good at running my mouth.
[08:20:14] dminuoso: Jeesh you make it really hard to be *financially* thankful to me.
[08:20:39] dminuoso: Next you tell me that I have to get stuff done to get paid.
[08:26:53] dminuoso: za1b1tsu: There better be a cake. And a thick envelope under the nametag "dminuoso"
[08:35:01] dminuoso: drale2k_: PUT differs from POST in that `PUT` can replace an existing resource.
[08:35:48] dminuoso: drale2k_: PUT is kind of like some "create or replace". That replace notion is also important, as you dont specify a diffset, but you rather specify the full representation of the new resource.
[13:08:02] dminuoso: tbuehlmann: Oh man I actually wanted to write that, but then decided that they are not worthy of my humor.
[13:08:32] dminuoso: tbuehlmann: but yeah installing ram is just a PITA.
[13:08:38] dminuoso: you could maybe use EC2 so the ram is fully elastic!
[13:08:50] dminuoso: I hear it scales up to 4TiB of memory
[13:11:46] dminuoso: dionysus69: With EC2 and 4TiB RAM your server will survive for a long time.
[13:37:39] dminuoso: dionysus69: That does not sound like a memory leak.
[15:24:55] dminuoso: jeromelanteri: There are some people that frequently use this channel to avoid learning Ruby or programming in general themselves.
[15:25:42] dminuoso: jeromelanteri: That person is such an example, and I strongly refuse to assist their behavior.


[09:04:58] dminuoso: has joined #RubyOnRails
[09:05:35] dminuoso: Is there some defacto prometheus instrumentation library for rack/rails? Or do I really have to roll my own?
[09:06:10] dminuoso: Oh wait heh. Nevermind.
[09:46:18] dminuoso: Okay so the official exporter shoves it into rack..
[09:51:57] dminuoso: So.. is it even possible to run two rack applications at the same time?
[10:02:36] dminuoso: tbuehlmann: Do you instrument your rails apps with prometheus?
[10:04:18] dminuoso: Oh well screw it, Ill just write my own /metrics route/controller
[10:04:24] dminuoso: tis just software.
[10:04:42] dminuoso: Though.. no I *really* dont want this inside rack.
[10:07:57] dminuoso: But I guess any security good enough to protect my administrative endpoints should be good enough to protect some /metrics endpoint
[11:36:45] dminuoso: tbuehlmann: I decided to expose the metrics inside a custom made controller, its a bit annoying still because..
[11:36:47] dminuoso: Well. Fuck devise.
[11:37:03] dminuoso: This is proper Javaism with forced "patterns".
[11:37:20] dminuoso: Authors must have taken seriously
[15:00:20] dminuoso: Turnikov: What do you mean
[15:01:24] dminuoso: bijan_: bootstrap is fine if you want to develop quickly and dont care about the app looking generic.
[15:01:42] dminuoso: Turnikov: My recommendation: delete automatically generated specs.
[15:02:07] dminuoso: bijan_: What do you mean?
[15:02:23] dminuoso: Turnikov: You have some static images that you carry around?
[15:02:32] dminuoso: Turnikov: I really do not understand what you have a problem with
[15:02:45] dminuoso: Turnikov: The syntax is a ruby problem
[15:02:47] dminuoso: not a test problem
[15:02:49] dminuoso: or a rails probelm
[15:03:05] dminuoso: bijan_: strictly speaking css does not reside in your markup
[15:03:12] dminuoso: unless you actually inline it into some <script>
[15:03:22] dminuoso: or do you mean the classes inside your markup?
[15:03:36] dminuoso: bijan_: why is that bad?
[15:03:48] dminuoso: bijan_: classes are for categorizing elements for styling
[15:05:05] dminuoso: bijan_: What would you prefer?
[15:05:50] dminuoso: bijan_: and how do you connect css to the dom?
[15:06:54] dminuoso: bijan_: give me a moment =)
[15:07:47] dminuoso: bijan_: class is just suggested to represent role rather than representation.
[15:08:01] dminuoso: It's only an encouragement.
[15:08:07] dminuoso: bijan_: At any rate, if you use sass you can achieve that goal.
[15:08:26] dminuoso: bijan_: you can write your classes for roles, mixin bootstrap classes
[15:09:38] dminuoso: bijan_: You dont have to use bootstrap if you dont want to.
[15:10:19] dminuoso: I use bootstrap. I infest my markup with classes everywhere.
[15:11:00] dminuoso: But then again my hate for webdev runs so deep that I enjoy every minute I can do other things nowadays.
[15:11:33] dminuoso: bijan_: also like I said, its only an encouragement.
[15:11:42] dminuoso: class is not *meant* for representational roles.
[15:12:29] dminuoso: bijan_: Im kicking so much web tech atm.. we have 2 rails apps remaining, one will be ported to haskell, possibly with some purescript for frontend things.
[15:12:41] dminuoso: the remaining rails app will probably stick around because its just too big to port.
[15:13:10] dminuoso: And I started moving things into server side as much as possible so I dont have to deal with the frustrating bit of client side development.
[15:15:58] dminuoso: bijan_: Yes.
[15:56:46] dminuoso: has joined #ruby
[15:56:54] dminuoso: Is there a way to have bundler only build a specific dependency from a Gemfile?
[15:57:36] dminuoso: In particular I want to use build the dependencies in multiple docker layers as to not screw myself too much when I decide to add a dependency.
[16:24:53] dminuoso: That would rid me of most the pain.
[16:24:53] dminuoso: havenwood: I suppose I could at least toss the native extensions into a group..
[17:00:42] dminuoso: invalid gem: package is corrupt, exception while verifying: undefined method `size' for nil:NilClass (NoMethodError) in /usr/local/bundle/cache/ruby-oci8-
[17:00:44] dminuoso: ACTION kicks back
[17:00:46] dminuoso: ACTION breathes
[17:08:24] dminuoso: havenwood: Better yet, running it *again*
[17:08:32] dminuoso: So now I have a non-determistic bug fucking with my docker container.
[17:08:41] dminuoso: ACTION sighs
[17:08:57] dminuoso: Probably should valgrind bundler.
[17:09:01] dminuoso: Who knows what goes on there.


[13:49:14] dminuoso: gray_-_wolf: Regardless of what you do, there's enough backdooring to undo what you do.
[13:49:52] dminuoso: gray_-_wolf: If you just want some basic "I dont want to shoot myself" protection, what you wrote is the best you can get.
[13:52:05] dminuoso: ACTION readies his fiddled thaw method..
[13:57:06] dminuoso: ACTION sighs
[13:57:31] dminuoso: havenwood: This is why I dont like Ruby.
[13:59:14] dminuoso: havenwood: why would you ever dup over cloning?
[13:59:33] dminuoso: to unfreeze I guess
[13:59:49] dminuoso: havenwood: But seriously, its regarded because it's unclear why that works.
[14:01:42] dminuoso: I mean the stuff Ruby does to block arity to *implicitly* always somehow fit..
[14:19:44] dminuoso: has left #ruby: ("WeeChat 2.0.1")