This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-05-01
Channels
- # aleph (1)
- # architecture (7)
- # aws (1)
- # beginners (52)
- # boot (3)
- # cider (27)
- # cljs-dev (9)
- # cljsrn (16)
- # clojure (82)
- # clojure-dev (75)
- # clojure-italy (14)
- # clojure-nl (11)
- # clojure-spec (10)
- # clojure-uk (31)
- # clojurescript (49)
- # core-async (13)
- # datascript (11)
- # datomic (15)
- # duct (11)
- # emacs (8)
- # fulcro (46)
- # heroku (2)
- # jobs-discuss (27)
- # jobs_rus (1)
- # juxt (25)
- # keechma (1)
- # off-topic (59)
- # om (2)
- # pedestal (4)
- # portkey (113)
- # portland-or (1)
- # re-frame (14)
- # reagent (11)
- # shadow-cljs (278)
- # vim (2)
- # yada (2)
Please correct me if I'm wrong: iPads actually support OpenGL ES3 -- but we can't access it via web browser because web browsers onlysupport WebGL1.
although looking at the iOS 11 device compatibility chart it looks like the only devices supported by iOS 11 are the ones that support OpenGL ES 3, so I wonder why they havent bothered with updating WebGL yet
https://developer.apple.com/library/content/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/DeviceCompatibilityMatrix/DeviceCompatibilityMatrix.html#//apple_ref/doc/uid/TP40013599-CH17-SW1 <-- all the iPads listed there have 'x' next to opengl es3.0
This is bothering me to no end as 1. I really want webgl2 instead of webgl1 and 2. I really want to do CLJS dev + webapp instead of native.
@qqq What about http://impactjs.com/ejecta? @dnolen has given at least one talk about using it with CLJS
the quick summary is: the project's internals are complicated, only a couple people are familiar with the internals, and none of them have much time for it
im not aware of an article per se, but i think granger made some forum posts at one point outlining the problem with BOT architecture
@borkdude the editor was never in a fantastic shape. Each release seemed to rewrite whole sections of the app. So by the time Christ left to work on Aurora (eventually Eve) there just wasn't enough in the app to keep it going, imo.
then other editors came and crushed what little marketshare it had. Protorepl and Atom took over the instarepl stuff. Cursive took the professional users, and Nightcode took the new users.
The original had great ideas, but part of the reasons it kept getting rewritten was that the supporting framework for such an editor was being written form scratch. For example, they wrote their own async IO system, a few months before core.async came out. They built an editor on Electron, just a bit before Atom came out.
sounds about right... as for future updates, i've only got a couple hours a week i can devote to light table, so there is little progress being made
What is the difference in creating higher order functions by using partial functions in Clojure/Scala vs Calling functions in Java. Just syntactic sugar ?
@rnagpal Java doesn't have functions, so it's a bit hard to compare. Do you mean methods in Java?
So in Java (and C++) methods are more or less stateless. You can see this clearly in Python:
class Foo(object):
def do_something(this, arg1):
return arg1 + 1
Methods are function pointers that take an additional argument of "this" or "self"Higher order functions can contain enclosed state:
(let [x 42]
(fn [arg]
(+ arg x)))
In order to accomplish this, languages like Clojure and Scala normally define a interface (clojure.lang.IFn) that has a method called invoke
. So you could also rewrite the above code this way:
Where's the enclosed state in yoru example?
you inlined the 42 as a constant
(fn adder [x} (fn [y] (+ x y))
Is the same as this in Python (Java is a bit too verbose here:
class Inner(object):
def __init__(self, x)
self._x = x
def __call__(self, y)
return x + y
class Adder(object):
def __call__(self, x)
return Inner(x)
Adder(1)(2) => 3
but in the cases we dont need to pass functions, does it really make a difference if we combine partial functions vs calling them like in java
No, we wouldn't, and in Clojure there's a thing called static linking that removes the indirection of calling through IFn when you don't need it
You can do a lot of this in C as well with function pointers. But when you do need to bundle state with a function pointer, that's when you need something like IFn, or Callable (in Java)
Is Callable used(In scala and clojure) more for adding ability to create partial functions or more for handling futures etc ?
Also if I anted to read how clojure/scala which run over JVM enables us to pass functions. Can you please point me to couple of articles etc
Every function in Clojure implements Java's callable
and Runnable
its because it allows functions to be executed in any thread ? allowing the programmer to not care about concurrency
No, Callable is not related to concurrency.
I'm not aware of any such resource. Pretty much any functional language on a OOP platform impements functions by defining a Invokable interface clojure.lang.IFn
, and then implementing it so that closed-over values become private fields in the object, and the body of the function becomes a method on that anonymous class.
Other things in Clojure, like Keywords also implement IFn: https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/Keyword.java#L137
Thanks a lot for sharing the gist @tbaldridge
Pretty much any functional language on a OOP platform impements functions by defining a Invokable interface `clojure.lang.IFn`, and then implementing it so that closed-over values become private fields in the object, and the body of the function becomes a method on that anonymous class
If any other Clojure folks are at the CollisionConf in New Orleans I’d love to meet up.
Well shucks, I'm from New Orleans, but not currently living there. If I knew about it ahead of time I could have made the drive.
Sorry for the late ping @whoneedszzz. If it’s helpful at all I’ll be here until Friday morning.
Is the conference running all week?
Ah. thursday
I'm in Lafayette
@cfleming: looks interesting; unfortunatelh, http://impactjs.com/ejecta/supported-apis-methods looks like WebGL1 only