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
<meh`> adambeynon, ping
e_dub has joined #opal
ylluminate has joined #opal
<ylluminate> has anyone played around with compiling mri on asmjs?
<meh`> ylluminate, in what setting?
<ryanstout> there's this project:
<ryanstout> which is mruby with emscripten
<ryanstout> but its 3mb's compiled
<ylluminate> interesting
<ylluminate> after seeing unreal 3 engine running in pure javascript in browser i just can't shake the potential
<ryanstout> I think the web ruby stuff compiles the interpreter. What would work better is if we had a ruby implementation that compiled to LLVM IR. rubinius is built on the LLVM, but I think it has a big runtime
<meh`> yeah, it's not feasable for production stuff
<meh`> ylluminate, the unreal 3 engine is on a different level of use case, when it's a game you're used to huge load times, so you don't even care
<ryanstout> yea, I think opal is the better way to go
<meh`> if you want to write a website or whatever, having 3M of dependency is a no-go
<ryanstout> also, there's a bunch of overhead that emscripten imposes
<meh`> and it's just to have the core running, not even the dependencies
<meh`> with opal you can get a whole website going under 150K gzipped, including deps and the application code
<ryanstout> someone did compile ruby 1.8 with emscripten at some point, and I remember thinking it took a long time to start (just fyi)
<ryanstout> yea, the unreal demo is really cool. I think thats using webgl also right?
<meh`> yes
<ylluminate> yeah
GitHub150 has joined #opal
<GitHub150> opal/master 8d7f215 Strech (Sergey Fedorov): String#split ignores leading and continuous whitespace
GitHub150 has left #opal [#opal]
<GitHub150> opal/master 9669f3f meh.: Merge pull request #449 from Strech/master...
<GitHub150> [opal] meh pushed 2 new commits to master:
<ylluminate> yeah, dependency size is a bear. i've been so hopeful to use ruby on a large project my team has coming up that's going to be a mountain of a js app
<meh`> ylluminate, what's missing from Opal that you can't use it?
<ryanstout> ylluminate, where do you work?
<ylluminate> well, i'm not sure yet. i haven't yet scrutinized it closely enough and i see the projects in a lot of seeming flux right now from the commits
<ylluminate> i have a lot of push from folks to use angular right now
<meh`> yeah, that's not gonna work
<ylluminate> in the us, but some is in south america
<meh`> imho you should either use Opal from the start or forget about it
<meh`> unless you're ready for a lot of pain
travis-ci has joined #opal
<travis-ci> [travis-ci] opal/opal#1558 (master - 9669f3f : meh.): The build passed.
<travis-ci> [travis-ci] Build details :
travis-ci has left #opal [#opal]
<ryanstout> ylluminate, sorry, I was asking what company/product you work on?
<ylluminate> i have ultimate control; the projects going to be really big and we've got some potential investors floating around. it's got to be super performant on the js side; it's an exceptionally visual app that requires realtime dataflow between clients (looking at firebase right now for the fast stuff)
<meh`> and I can see angular playing badly with other javascript libraries as well
<ylluminate> oh, sorry, it's an nda-only project at the moment so i can't get into details
<ryanstout> no worries, was just curious
<ryanstout> angular is slow with a lot of data because of the dirty checking
<ylluminate> it's an exciting project for sure that was valuated at 700M, but it's early stage and we have to get an alpha out of the gates here before magic happens
<meh`> ylluminate, I'm working on a project with similar requirements and I really can't see Opal hindering performance
<meh`> it's obviously slower than javascript in some cases, but it's amortized over the whole thing
<meh`> and you can always write the hot path in inlined javascript
<ylluminate> interesting re: the dirty checking ryanstout
<ylluminate> i honestly started to lean towards cappuccino
<ylluminate> one thing that has concerned me is that of protecting the js adequately. has anyone worked with serious obfuscation methodologies that discourage reverse engineering?
<ryanstout> there are some obfuscators out there, but really I can't think of anything people are doing now days in JS that someone couldn't just duplicate
<ryanstout> I don't think too many people are stealing other people's JS
<ryanstout> but maybe I'm wrong
<meh`> ylluminate, is that really a problem?
<ylluminate> there are some questions i've been hit with from investors about adequate protection and it's been a real headache for me
<ryanstout> sounds like your investors don't understand the space (common problem)
<ylluminate> yes it is a common problem, especially from investors who are not grounded in the industry. but you can't just shrug them off
<ryanstout> as someone who has taken VC funding for stuff, I would suggest you make sure that if your investors don't understand stuff, they know they understand. Nothing worse than investors who think they get it, but don't. :-)
<meh`> ylluminate, what ryanstout
<ylluminate> well they don't get some aspects; they get the overall concept, but lack the details of implementation and honestly they're not really going to do the work from what i've seen
<meh`> I don't see how anyone could get something usable out of reversing an uglified js
<meh`> unless you're implementing some weird algorithms and whatnot on the client side, then you can just defer that to the server
<ryanstout> meh` yea, I just mean if you're trying to protect an algorithm or something, that could be extracted
<ryanstout> like I built a while ago, which is pretty complex JS, but no one has copied it yet, because there's also the backend component. Copying was a concern, but looking back I don't think thats an issue
<ryanstout> usually business wise you have first mover advantage too
<ylluminate> any particular verbiage that you might use to try to smooth over such an issue? most of this is ui stuff, obviously not the server proper, but a tremendous amount of logic will be happening client side as it's quite a complex app
<ylluminate> yeah, one of the main concerns is asia
<ryanstout> I would just tell them that trying to use someone else's JS is usually as much work as it is to build it again
<ylluminate> as a matter of fact, there has been talk of deploying in asia first and then moving to the rest of the world to overcome the ip theft problem
<ryanstout> copying stuff always happens, even in the US. I had a game copied by zynga when I did social gaming
<ryanstout> nothing much you can do
<ryanstout> usually I find competition isn't why things fail, but maybe thats my experience
ryanstout has quit [Quit: ryanstout]
meh` has quit [Ping timeout: 260 seconds]
<ylluminate> any good example opal apps floating around to sink my teeth into to see how someone's building out?
marcandr_ has joined #opal
marcandr_ has quit [Remote host closed the connection]
marcandre has joined #opal
marcandre has quit [Remote host closed the connection]
e_dub has quit [Ping timeout: 240 seconds]
e_dub has joined #opal
meh` has joined #opal
elia has joined #opal
meh` has quit [Ping timeout: 245 seconds]
kludge` has quit [Ping timeout: 252 seconds]
kludge` has joined #opal
GitHub176 has joined #opal
<GitHub176> opal/master 9a56545 Adam Beynon: Add lexer specs for string interpolations
<GitHub176> opal/master b1069b8 Adam Beynon: Clean up cli spec helpers
GitHub176 has left #opal [#opal]
<GitHub176> [opal] adambeynon pushed 2 new commits to master:
travis-ci has joined #opal
<travis-ci> [travis-ci] opal/opal#1559 (master - b1069b8 : Adam Beynon): The build passed.
travis-ci has left #opal [#opal]
<travis-ci> [travis-ci] Build details :
GitHub29 has joined #opal
GitHub29 has left #opal [#opal]
<GitHub29> [opal] adambeynon pushed 1 new commit to master:
<GitHub29> opal/master ab4a9d7 Adam Beynon: Cleanup various parts of lexer
travis-ci has joined #opal
<travis-ci> [travis-ci] opal/opal#1560 (master - ab4a9d7 : Adam Beynon): The build passed.
<travis-ci> [travis-ci] Build details :
travis-ci has left #opal [#opal]
jocke_ has joined #opal
GitHub23 has joined #opal
<GitHub23> opal/master 8e163c5 Adam Beynon: Escape before EOL in double quote strings now removes newline...
<GitHub23> [opal] adambeynon pushed 1 new commit to master:
GitHub23 has left #opal [#opal]
travis-ci has joined #opal
<travis-ci> [travis-ci] opal/opal#1561 (master - 8e163c5 : Adam Beynon): The build passed.
travis-ci has left #opal [#opal]
<travis-ci> [travis-ci] Build details :
GitHub183 has joined #opal
<GitHub183> opal/master 4eb5140 Adam Beynon: Make sure all changes are present in changelog
<GitHub183> [opal] adambeynon pushed 1 new commit to master:
GitHub183 has left #opal [#opal]
travis-ci has joined #opal
<travis-ci> [travis-ci] opal/opal#1562 (master - 4eb5140 : Adam Beynon): The build passed.
travis-ci has left #opal [#opal]
<travis-ci> [travis-ci] Build details :
GitHub122 has joined #opal
<GitHub122> opal/master 71843bc Adam Beynon: Support octal escape sequences in strings (#437)
GitHub122 has left #opal [#opal]
<GitHub122> [opal] adambeynon pushed 1 new commit to master:
travis-ci has joined #opal
<travis-ci> [travis-ci] Build details :
<travis-ci> [travis-ci] opal/opal#1563 (master - 71843bc : Adam Beynon): The build was broken.
travis-ci has left #opal [#opal]
elia has quit [Quit: Computer has gone to sleep.]
elia has joined #opal
<adambeynon> oops
GitHub148 has joined #opal
GitHub148 has left #opal [#opal]
<GitHub148> [opal] adambeynon pushed 1 new commit to master:
<GitHub148> opal/master 6ca583c Adam Beynon: Support hex escape sequences in strings (#437)
elia has quit [Quit: Computer has gone to sleep.]
travis-ci has joined #opal
<travis-ci> [travis-ci] Build details :
travis-ci has left #opal [#opal]
<travis-ci> [travis-ci] opal/opal#1564 (master - 6ca583c : Adam Beynon): The build was fixed.
elia has joined #opal
DouweM has quit [Ping timeout: 246 seconds]
GitHub141 has joined #opal
<GitHub141> [opal] adambeynon pushed 1 new commit to master:
GitHub141 has left #opal [#opal]
<GitHub141> opal/master dc98d0c Adam Beynon: Add very initial unicode escape sequence parsing in strings (#437)...
travis-ci has joined #opal
<travis-ci> [travis-ci] opal/opal#1565 (master - dc98d0c : Adam Beynon): The build passed.
<travis-ci> [travis-ci] Build details :
travis-ci has left #opal [#opal]
marcandre has joined #opal
jocke_ has quit [Remote host closed the connection]
DouweM has joined #opal
<adambeynon> elia: incase you're interested, Im just finishing adding some specs for an `opal-haml` gem
<adambeynon> I think the days of opal-erb might be gone ;)
ryanstout has joined #opal
<elia> adambeynon, gooood! yeah im interested
elia has quit [Ping timeout: 264 seconds]
ryanstout has quit [Ping timeout: 245 seconds]
ryanstout has joined #opal
ryanstout_ has joined #opal
ryanstout has quit [Ping timeout: 245 seconds]
ryanstout_ is now known as ryanstout
ryanstout has quit [Ping timeout: 240 seconds]
ryanstout has joined #opal
meh` has joined #opal
<meh`> adambeynon, ping
<adambeynon> Hi meh`
<meh`> adambeynon, I think we can support refinements
<meh`> they're lexically scoped
<adambeynon> I haven't looked at their implementation that closely, but if we can that would be awesome
<meh`> you'd basically have to go with something like the old method_missing stuff
<meh`> but since refinements are lexically scoped, it would only affect the scope where you use the refinement
<meh`> instead of everything everywhere
<adambeynon> Have you got a link to a relatively up to date overview? Didn't have some last minute changes before release?
<meh`> but again, since it's lexically scoped, it's easy to do without affecting everything
<adambeynon> hmm, I can't see how we are going to implement that without some dispatch method
<meh`> adambeynon, with a dispatch method
<meh`> adambeynon, the point is the dispatch method would only be used in the scope where the refinement is
<adambeynon> meh`: are rubinius and jruby implementing them?
<meh`> adambeynon, no clue
<meh`> adambeynon, it's obviously no priority, it was more of a "I figured it out and it's feasable"
<adambeynon> meh`: yeah. its a cool feature to have. Im still trying to wrap my head around those two linked docs ^_-
<adambeynon> well, that and getting haml templates working in opal..
<brixen> adambeynon: no, rbx is not implementing them
<meh`> brixen, ever?
<brixen> not likely
<brixen> it's an absolutely horrible feature
<brixen> to its core
<meh`> lol
<meh`> I kind of like it, not in its current form tho
<brixen> the last thing that Ruby needs is more ways to write shit code that eschews reasonable OO practices
<brixen> composition and layering, while respecting Liskov is the best way to write Ruby code
<brixen> trying to prevent people from doing that is stupid as hell
<brixen> refinements are explicitly intended to do that very thing
elia has joined #opal
elia has quit [Quit: Computer has gone to sleep.]
elia has joined #opal
<ylluminate> hah dhh replied to my tweet when i shared your activesupport link
ryanstout has quit [Quit: ryanstout]
elia has quit [Quit: Computer has gone to sleep.]
GitHub99 has joined #opal
<GitHub99> opal/master e6c944e meh: Implement String#squeeze
GitHub99 has left #opal [#opal]
<GitHub99> [opal] meh pushed 1 new commit to master:
travis-ci has joined #opal
<travis-ci> [travis-ci] opal/opal#1566 (master - e6c944e : meh): The build passed.
<travis-ci> [travis-ci] Build details :
travis-ci has left #opal [#opal]
fkchang has joined #opal
<fkchang> meh`: kudos on some docs for lissio, I just tweeted it
<meh`> fkchang, :)
<fkchang> adambeynon: I'm going to write an "opal-starter-kit" to make it easy to create opal projects via the command line, i.e. "osk new static myproject", "osk new opal-server myproject", "osk opalfy myrailsproject", etc. I.e you just do gem install opal-starter-kit, then run the cmd line. Make it easier for ppl to play w/opal, just 2 steps
<meh`> fkchang, +1
DrShoggoth has joined #opal
<fkchang> meh`: I'll add new lissio project, modelling from shekels too
<meh`> :D