Fork me on GitHub

Just because it’s difficult doesn’t mean it can’t be done. Makes me think of:


Which sounds like a description of another system developed with nation state resources, if I am recognizing correctly what they are describing. Sure, I didn't say impossible. Expensive.


[Stuxnet is] incredibly impressive in my book, and yeah, dependent on unlimited resources.


I am trying to find a nice detailed article that I've read once about how USA broke Iranian spinners, I think they used Stuxnet then


They've used 0 day holes and targeted Siemens PLC drivers


I was thinking that although there's quite a few macros out there called defn-spec or such, there might be still opportunity for refinement:

(my/defn foo
  [::bar ::baz]
  (+ bar baz))
this one would assert that the first argument is a valid ::bar, and bind it to the name bar. That way one gains DRY / kills various boilerplate. Any reason what this could be a bad idea? I only find lack of destructuring clearly missing (to which I'd reply: destructuring in defn args make bad documentation, since they tend to be random implementation details. IDE documentation popups will be cluttered)


Does it account for repeat types like? (add [::Number ::Number]) On a side note, indeed I too made my own defn-spec aha which ended up looking like (sdefn add [ (::BigNumber a) (int? b)] (-> int?) …) . I figured it might have been a common thing


> Does it account for repeat types like? if I understood the question correctly, one would have to create a ::Numbers spec wrapping (s/coll-of ::Number)


-- your sdefn looks like (which I find one of the neatest)


sorry, I meant a function with multiple arguments of the same type, something like (defn battle-player [player1 armor1 player2 armor2] ..) which I think would problematically translate to (my/defn battle-players [::player ::armor ::player ::armor])


Good catch then! Seems a relatively common use case, making things awkward enough to question my library. Again one could (s/def ::armor1 ::armor), but this time I'm not so sure it's an acceptable price


hmm you could also make providing a parameter name optional (like (my/defn battle-players [ ::player ::armor (::player player2) (::armor armor2)])


Very nice 🙂 it also comes to mind the following: [::player ::armor ^::player player2 ^::armor armor2]


Oh, espera, eres de Barcelona?




Ohh aja saludos desde los EEUU! (Disculpa, aprendi Espanol con television, no soy hablante nativo y dire cosas raras aja)


🙌 encantado


Por cuanto tiempo has usado Clojure?


I hope you don't mind me spanglishing here aha, I speak a little Spanish and English everyday and now that its become habitual, it feels better in a conversation when I can switch back and forth


Hey general question here, what do folks think my best strategy is for hiring a Web Designer for is?


There are tons of services out there but I’d love to have a higher level of design.

👏 4

@bhauman I guess it depends what you're looking for exactly.


@dominicm illustration, typeography, branding design, resulting in photoshop artifact. Which I will use to do the implmentation


but I want something more along the lines of npm.js or heroku or reactjs website quality


@bhauman This designer did the design for and defn podcast


I got the link 🙂


(rephrased my wording)


I see she’s in Canada now, you are too right? Not that it matters 😉


yeah I’m in Canada as well, I just sent her an email


Be mindful of mobile when implementing designs based on photoshop! Too often you will need 2-3 alternate versions.


interesting discussion about CLAs on HN now. I thought the idea behind clojure’s CLA was that the contributor keeps his or her copyright but the project will have the ability to relicense if Rich Hickey wants to


That is my understanding as well. I think basically the issue raised in that article is: I trust that if Rich chooses to relicense Clojure for some reason, that it will remain an open source license. The CLA I signed doesn't restrict him legally from doing that, but that's ok by me. Sounds like some people have felt burned by a project with a CLA being relicensed under a license they didn't approve of.


The EPL already allows for relicensing to proprietary licenses. And after the recent Linux debacle, the consensus seems to be "you can't revoke the license you've distributed with code" and with EPL being more permissive, wouldn't that still be true?


The CLA seems more like a CYA, because none of us are sure about the legalities of license revocation


By "recent Linux debacle" are you referring to a law suit involving Sony and the PS3?


My understanding is that a project having a CLA doesn't let you "undo" previously released versions of source code under the original license they were released under. They can let future derived versions be released under a different license (or not released at all).


No, a CoC was introduced to Linux and it caused a kerfuffle where people wanted to pull their contributions:


Even for a project without a CLA, on the EPL, how can someone "undo" their contribution?

Alex Miller (Clojure team)18:10:28

You can’t. You’ve made the contribution.


That's what I figured


my understanding was that the GPLv2 did not contain a clause dictating so and thus the contribution was revocable. I have no knowledge one way or the other


Well, I'm glad Clojure is taking what most consider the "safest" approach, given the apparent legal uncertainty out there about the matter.


But in general, I think CLAs can be considered harmful, as they can bring into question the authority of the primary license of the project.


as a general matter, it is of course possible to grant a revocable license to your copyright. it just depends on what the agreement says, or, if not explicit, how it would be interpreted. the clojure CA expressly grants an irrevocable license


But that's only necessary due to perceived ambiguity over the revocability of contributions covered by the EPL. By most interpretations, the EPL already grants that your contributions to a vanilla EPL project will be irrevocable, regardless of the CA.


cla of Clojure is pretty good though, being dual copyrighted. Very fair terms really.


Unless you're NPM and you want to revoke a package named 'left-pad'.


IOW, a project maintainer could simply state that every commit to the project represents a license fork, where each new commit is a derivative of all prior contributions. And if the license allows permissive derivatives, it doesn't really matter.