adambeynon changed the topic of #opal to: - Ruby runtime and library on top of Javascript | 1.0.0 is near | This channel is logged at
elia has quit [Quit: Computer has gone to sleep.]
benyami has joined #opal
meh`_ has quit [Ping timeout: 272 seconds]
Liothen has quit [Quit: System of a down……]
Liothen has joined #opal
benyami has quit [Quit: benyami]
Liothen has quit [Quit: System of a down……]
Liothen has joined #opal
benyami has joined #opal
benyami has quit [Remote host closed the connection]
DrShoggoth has joined #opal
e_dub has joined #opal
elia has joined #opal
e_dub has quit [Quit: It's a hard knock life]
e_dub has joined #opal
GitHub65 has joined #opal
<GitHub65> opal/master a029afa Elia Schito: Add bundler cache on travis
<GitHub65> opal/master aa2403b Elia Schito: Avoid json 1.8.1 with Ruby 2.1 (debugging travis)
<GitHub65> [opal] elia pushed 2 new commits to master:
GitHub65 has left #opal [#opal]
travis-ci has joined #opal
<travis-ci> [travis-ci] opal/opal#1655 (master - aa2403b : Elia Schito): The build has errored.
<travis-ci> [travis-ci] Build details :
travis-ci has left #opal [#opal]
kludge` has quit [Ping timeout: 252 seconds]
kludge` has joined #opal
elia has quit [Ping timeout: 272 seconds]
e_dub has quit [Ping timeout: 240 seconds]
e_dub has joined #opal
adambeynon has joined #opal
e_dub has quit [Ping timeout: 240 seconds]
elia has joined #opal
<adambeynon> hi elia! :)
<adambeynon> do you have specs for Vienna::Views ?
<elia> adambeynon, hi there, all fine during holydays?
<elia> adambeynon, no specs, I attempted once, but the html/css setup was too hard
meh` has joined #opal
elia has quit [Quit: Computer has gone to sleep.]
elia has joined #opal
e_dub has joined #opal
e_dub has quit [Ping timeout: 240 seconds]
grios has joined #opal
grios has quit [Quit: grios]
e_dub has joined #opal
<adambeynon> elia: yeh, same for me. I have been writing some today though, and have a very capybara inspired dsl for opal-rspec which is helping a lot
<adambeynon> going to add it into vienna repo later
<adambeynon> you might find it useful
<meh`> adambeynon, found another bug with super
<adambeynon> meh`: just saw it :) didnt realise that was the intended behaviour
<meh`> neither did I until I hit it sincerely
<AndrzejKrzywda> I just wanted to say that what you're doing here is fantastic and can be HUGE for the Rails community one day :)
<AndrzejKrzywda> We've just had the 'Rails needs to change' discussion and I added an Opal section:
<meh`> AndrzejKrzywda, yeah, it would be nice, both adambeynon and elia are going in that direction I think
<meh`> I'm going my own direction ◕ ◡ ◔
fkchang has joined #opal
<adambeynon> meh`: as in, non-ruby based server? or?
<meh`> adambeynon, yes
<meh`> no integration with rails whatsoever
<meh`> I don't use nor care about rails
<meh`> I want to get rid of Ruby on the backend
<meh`> or complex backends
<meh`> I want a simple backend and a complex frontend
<meh`> and I want the frontend in Ruby
<adambeynon> meh`: what do you want to use on the backend instead?
<adambeynon> erlang?
<adambeynon> javascript? :)
<fkchang> meh`: and my 3rd direction is to do both sides in opal, in a meteor-ish fashion, though at the moment I lean towards the front end being lissio, because I like DSL/components
<adambeynon> fkchang: both sides is what Im liking at the moment
<adambeynon> render templates front + backend
<adambeynon> (render initial template server side, and go from there)
<meh`> adambeynon, Elixir or Erlang, yes
<meh`> mostly Elixir
<adambeynon> why not Elixir on the front end as well? Genuine question - I havent used it yet, so I dont know what its like
<fkchang> adambeynon: my biggest deal w/opal both sides, is I don't want to rewrite Rails
<meh`> adambeynon, I find it pointless
<meh`> the good of Erlang comes from OTP and the way it all scales and is resilient to errors
<meh`> the good of Elixir is a decent homoiconic language on top of Erlang
<fkchang> I figure it's easier to implement rack and sinatra on opal-node and then we might be able to use a lot of stuff from there
<adambeynon> fkchang: Nor me. I have very thin model classes client side. Basically attributes, with a glorified ajax system for save/delete/etc
<fkchang> adambeynon: rack on opal-node might be a worthwhile experiement to reuse stuff from the rack ecosystem
<adambeynon> fkchang: I did start writing an adapter for rack w/ node
<adambeynon> could be a fun weekend hack
<elia> adambeynon, yay! I think I have some opal-node updates locally, could be handy for "require" handling
<fkchang> elia: I was going to ask u about changes for opal-node, cuz I remember you mentioning something about it in irc. Updates forthcoming, I'm guessing
<elia> fkchang, yes, CBDD (crying baby driven development) isn't the fastest among agile methodologies, so I'm a bit late :)
<fkchang> elia: CBDD, I'm familiar w/that, several times over
<AndrzejKrzywda> practicing CBDD often as well :)
<fkchang> AndrzejKrzywda: I saw u had a question on new years, did u figure it out
<meh`> lol CBDD
benyami has joined #opal
<AndrzejKrzywda> fkchang: nope, I still struggle with this problem. you can see my code here:
<AndrzejKrzywda> maybe it was a problem of turning Ruby hash into a JS hash, it didn't work for me OOTB
<AndrzejKrzywda> so I used inlining, but I'm sure that's not the best way
<fkchang> AndrzejKrzywda: I did have an issue w/how to send a ruby hash to js, need to remember how I fixed that, it might work for you
<fkchang> adambeynon: probably knows off the top of his head, I'm sure he helped me when I had the problem
<meh`> Hash#to_n
<meh`> you need to require native
<AndrzejKrzywda> ok, let me try in a minute
<AndrzejKrzywda> and what about accessing the global Handlebars? how can I do it without inlining?
<meh`> $$.Handlebars
<meh`> $$.Handlebars.compile(source)
<AndrzejKrzywda> right, thx, trying
<meh`> again, need to require native
<AndrzejKrzywda> good, works
<meh`> AndrzejKrzywda, might I interest you in some lissio?
<meh`> AndrzejKrzywda,
benyami has quit [Quit: benyami]
<meh`> fkchang, yesterday night while sleeping I was thinking about reactive stuff
<AndrzejKrzywda> meh`: I'll have a look, thx. By default I'm sceptical to frameworks... Rails trauma
<meh`> AndrzejKrzywda, well, if you read the source you'll notice it's just a thin wrapper around opal-browser
<meh`> it's very barebone
<AndrzejKrzywda> hm, it seems like the web-component dream
<meh`> it is :)
<meh`> AndrzejKrzywda, this is a demo app
<meh`> AndrzejKrzywda, you can create a new lissio project with `lissio new [path]`
<meh`> and start it with lissio start --port whatever
<meh`> you need the master gems tho
<meh`> since I develop opal my stuff has to work on master, and there are some incompatible changes between 0.5 and master, mostly dependency wise
<meh`> AndrzejKrzywda, I've been working on standard components
<meh`> there are some already
<meh`> autocomplete is underway
<meh`> but they're all optional
<meh`> you can write your own everything if you feel like it
<meh`> and there are two standard adapters
<meh`> for REST and localStorage
<meh`> but since the adapters use promises
<meh`> you can VERY easily implement an adapter for websockets
<meh`> and it will work seamlessly independent from the adapter you're using
<AndrzejKrzywda> right
<meh`> and you can inherit them
<meh`> AndrzejKrzywda, this is what I have in something I'm doing now
<meh`> I don't like big frameworks either
<meh`> but I kept repeating the same boilerplate over and over
<AndrzejKrzywda> nice, declarative
<meh`> so I wrote lissio
<meh`> AndrzejKrzywda, the DSLs lissio uses come from opal-browser, which uses
<meh`> and it converts the IR that paggio produces into DOM nodes
<AndrzejKrzywda> was it Lissio example that was presented on RubyConf? I tried to find how to do this with opal-browser, but couldn't find how
<meh`> yes
<meh`> it was the demo app
<AndrzejKrzywda> btw, the talk was very good. was it you?
<meh`> nope, it was fkchang
<AndrzejKrzywda> fkchang: well done!
<meh`> if it was mine it wouldn't be that good :P
<AndrzejKrzywda> inspiring and entertaining
<AndrzejKrzywda> I like the Smalltalkish touch behind all of it
benyami has joined #opal
<meh`> yeah, we're still early in the tools side of things
<meh`> but I'm just the corelib/stdlib guy
<fkchang> AndrzejKrzywda: thanks, I retweeted your tweet on opal vision being more than you expected
<fkchang> meh`: tell me about the reactive stuff
<meh`> fkchang, I think the proper direction
<meh`> is having a Lissio::Component::Reactive
<meh`> that hooks into a model instance
<meh`> then have something in the DSL
<meh`> like
<meh`> html { div.sync(:property) }
<meh`> in that case it does an inner_text =
<meh`> with html { div { sync(:property) } } it does inner_html
<meh`> with html { div { sync(:property) {|property_value| ... } } }
<meh`> it puts back the DOM generated by the template relative to the property
<meh`> and it updates all things relative to the model
<meh`> there's already a #reload in the REST adapter
<meh`> it's just a matter of making sure #reload works correctly
<meh`> and add events to the models
<meh`> it's all fairly easy
<meh`> you can also have a collection or a model
<meh`> so you can easily have a reactive <table>
<meh`> the <table> is the Reactive object for the collection
<meh`> and the <tr> are the Reactive object for the models in the collection
<AndrzejKrzywda> welcome to angular ;)
<meh`> AndrzejKrzywda, yes, it was part of the inspiration all along :)
<meh`> AndrzejKrzywda, also when I started with lissio, I was going with mustache-like templates
<AndrzejKrzywda> my minigoal for the next days is to get Opal working with
<meh`> then I realized I could do it all with pure Ruby
<meh`> and the DSLs for CSS and HTML were born
<meh`> having a single file for everything related to the component feels good
<meh`> and you can do some mad stuff with the CSS DSL
<AndrzejKrzywda> yeah, I'm used to handlebars, but I like the idea of doing it in ruby
<meh`> you can do 2.px + 5.px
<AndrzejKrzywda> I used a templating lib in Ruby that did that on the backend - erector
<meh`> and all other operations
<meh`> didn't know about it, pretty good
<meh`> I like my DSLs more tho
<meh`> it's a mix of markaby and my own
<meh`> and the CSS DSL is all my own
<fkchang> speaking of tools meh` adambeynon any update on code/comments ?
<meh`> fkchang, not that I know of
DrShoggoth has quit [Quit: Leaving]
ryanstout has joined #opal
elia has quit [Ping timeout: 252 seconds]
<adambeynon> fkchang: no sorry. Times caught up with me and I have to leave that for a bit
<adambeynon> should be able to get working on it later next week though
<meh`> adambeynon, a lot of 0.6 bugs came up in the meantime
<adambeynon> meh`: those will have to be 0.6.1 fixes
<adambeynon> or .2 or whatever
<adambeynon> Im still intending to release 0.6 early next week
<adambeynon> but I havent got time for those bugs before then
<AndrzejKrzywda> my first YouTube video is about Opal, let me show it to you first: (1m 6s)
<meh`> adambeynon, I see
<meh`> AndrzejKrzywda, we know for sure angular is basically impossible with opal
<meh`> AndrzejKrzywda, they heavily rely on syntax bullshit
<meh`> like parameters having to start with $
<meh`> and it just smells all around
<ryanstout> meh`: I think we can do way better than angular with a framework built for opal :-)
<meh`> ryanstout, I know, that's why I'm working on lissio :D
<fkchang> adambeynon: next week is good
<fkchang> hey ryanstout what did u think of meh` s idea on reactive in lissio?
<ryanstout> I think reactive is the way to go, I might have not been around for the lissio reactive discussions
<ryanstout> fkchang: did you get a chance to check out that video I posted?
<ryanstout> I need to do a shorter video, I have a bunch more stuff working now.
<fkchang> ryanstout: sorry, never finished it, should've done it over the holidays but it got pushed out of my memory queue. I did have my coworker who is an ember enthusiast look at it and he thinks u'r going in the right direction. In general, he feels that up to a certain complexity level angular is fine, but past that u need an approach like ember
<fkchang> ryanstout: take a glance at the lower half of
<ryanstout> I have all of the reactive stuff working at the moment, except for handling blocks reactively, which I think I know how I'm going to do it.
<ryanstout> mine's kind of a way to do "reactive objects", where it lets you define how events propagate through your objects so its only updating what needs to be updated
<fkchang> AndrzejKrzywda: interesting, I may have to start making tech videos where I'm walking around outside. I think w/some small tweaks opal could be a really good default for Rails. Vienna on Rails is probably something that fits well as it feels pretty Rails-y/Backboney to me which fits the mindset for a lot of Rails devs now
<ryanstout> fkchang: if you get time, maybe check out the last part of the video:
<AndrzejKrzywda> meh`: interesting with angular and opal. that will be an ongoing problem or is just an implementation detail for now?
<fkchang> I think the direction I perceive lissio meh` is taking it in, OO components w/simple rest backend could also fit well, but I'm interesting in getting something meteor-like where the much of the same code is run on both sides, a lissio/opal-node sort of thing, but I"m loathe to reimplement all the stuff that's already in backend ruby
<ryanstout> fkchang: thats the goal with my framework
<meh`> AndrzejKrzywda, it will be ongoing, unless angular changes
<meh`> we can't do anything about it
<ryanstout> in the next week I should have it where I can get validations running on both sides
<ryanstout> and I have the data syncing working already
<ryanstout> have you guys seen derby.js?
<fkchang> ryanstout: yeah, I believe we voiced the same desires for a framework. I'm thinking, implementing rack on opal-node and using say sinatra on node as the backend might be a good thing
<fkchang> allowing reuse of rack stuff while trying to do the meteor/lissio thing
<ryanstout> fkchang: what do you think of doing mri/jruby/etc.. on the backend and opal on the front, but still sharing some code?
ryanstout has quit [Quit: ryanstout]
ryanstout has joined #opal
benyami has quit [Quit: benyami]
<fkchang> ryanstout: that's doable and probably a reasonable route. I think I wanted the node backed opal for 2 reasons 1) same code will run on both sides 2) the reasons ppl use node over ruby
<ryanstout> fkchang: what's the reasons ppl use node over ruby?
<fkchang> but w/MRI/JRuby there will be a subset that should work on both sides. It's a perk to not have to worry about what doesn't run on both sides though
<ryanstout> yea
<ryanstout> I personally liked the idea of having access to all of the ruby ecosystem on the backend (and with jruby the JVM ecosystem also)
<fkchang> ryanstout: I think it's mostly async io, the whole "my app is in ROR, but I made a node.js service to handle chat/websocket/blah"
<ryanstout> so like if I need html or xml parsing I can bust out nokogori
<ryanstout> etc..
<ryanstout> yea
<ryanstout> you can do all of that with ruby too though
<ryanstout> have you see vert.x?
<fkchang> vert.x has been on my radar for while
<ryanstout> I use jruby in production for everything, so its very appealing to me
<ryanstout> being able to have a cluster-ready actor framework is awesome too
<fkchang> I definitely had aspirations of a jruby centric SOA, jruby, clojure, scala all running in torquebox
<ryanstout> yea
GitHub182 has joined #opal
<GitHub182> opal/master 5538446 meh: Compliancy fixes for Regexp#match
<GitHub182> [opal] meh pushed 2 new commits to master:
<GitHub182> opal/master f7ee9a4 meh: Make Native exceptions about the value not being native actually useful
GitHub182 has left #opal [#opal]
e_dub has quit [Quit: It's a hard knock life]
travis-ci has joined #opal
<travis-ci> [travis-ci] opal/opal#1656 (master - 5538446 : meh): The build has errored.
<travis-ci> [travis-ci] Build details :
travis-ci has left #opal [#opal]
DrShoggoth has joined #opal
DrShoggoth has quit [Max SendQ exceeded]
DrShoggoth has joined #opal
ryanstout has quit [Quit: ryanstout]
elia has joined #opal
denysonique_ has quit [Ping timeout: 245 seconds]
lacrosse has quit [Ping timeout: 245 seconds]
lectrick has quit [Ping timeout: 272 seconds]
marcandre has joined #opal
denysonique_ has joined #opal
adambeynon has quit [Ping timeout: 245 seconds]