Fork me on GitHub
#off-topic
<
2019-02-06
>
andy.fingerhut00:02:20

I would guess that he may still be open to volunteers now, too. I believe he open sourced the code that generated the site.

andy.fingerhut00:02:54

Yes, here was announcement and additional details on why, from the creator of the site: https://www.reddit.com/r/Clojure/comments/a99jwn/crossclj_is_shutting_down/

🔥 5
john00:02:44

That service is super useful

seancorfield00:02:02

Anyone remember ClojureAtlas? I loved that. Paid for it too. But, again, time for maintenance/support/upkeep just wasn't there as I recall and no one wanted to take it on. Happens with a lot of projects. Maintaining these things is "expensive" in far more ways than money.

borkdude14:02:09

Clojure Atlas was maintained by Chas Emerick, who stepped away from his Clojure activities, it seems.

seancorfield17:02:44

Yup, I didn't want to name him, but it's indicative of a lot of projects whose maintainer has gone away. With libraries, it's a lot easier to find new maintainers. With online projects, it's a lot trickier.

john00:02:42

I wonder how hard it would be to run something like that over IPFS with something like https://github.com/ipfs-shipyard/cube

deep-symmetry04:02:14

If you read the thread, the hosting costs are not the issue. The large amount of research and coding that will required to update it to work safely and well with the current Clojure ecosystem is the problem. The source has been released for anyone who wants to take that on.

Alex Miller (Clojure team)05:02:30

man, wish I had the time to spend on that. it’s been super helpful to me over the years.

10
cvic07:02:41

Would love to work on a https://crossclj.info 2.0

cvic07:02:08

> CrossClj is shutting down on 31st December.

Robin Nagpal16:02:20

What is the best way to include diagrams in Github (Markdown) I want to save all the design docs in the code in docs folder. Markdown allows to format nicely. Just stuck to find a way to embed the diagrams. I dont want to include an image as that will be an extra step in first updating the diagram and then exporting the image

3Jane16:02:29

I don’t know if there is a best way, but here are two that I’ve used before

3Jane16:02:34

http://www.gravizo.com/#howto this lets you generate svg using DOT syntax

3Jane16:02:55

(you just link to an url as if it were an image)

3Jane16:02:38

http://asciiflow.com/ and this lets you draw and copy ascii graphs.

Daniel Hines17:02:44

That is so cool!

3Jane17:02:00

Handy 😄

3Jane17:02:04

Hard to edit though

chrisulloa18:02:10

It’s always interesting to hear ycombinator commenters take on Clojure

chrisulloa19:02:02

I'll offer a different take: Clojure is settled. It found its niche: a small/medium group of experienced professionals who like its practicality and power. There's a comment somewhere else in this section that Clojure devs are more experienced on average than JVM devs. I'd like to add another stat from the State of JS survey[0] that went out a while back. Developers who used ClojureScript had the highest salaries and most years of experience when compared to other compile-to-js languages.

Chase19:02:15

"interesting" I gotta say discovering and browsing HN while researching science fiction topics got me back into trying programming so it has a special place in my heart but the FUD there can be as bad as anywhere. I avoided Clojure for quite awhile because of a lot of misguided negativity towards it that I found on HN and reddit. I regret that.

chrisulloa19:02:32

There is definitely a lot of negativity

chrisulloa19:02:39

Especially towards the maintainers

chrisulloa19:02:59

And I agree it can definitely scare people away from Clojure, I have had friends refuse to try it out because of what they read on Reddit or HN

Chase19:02:27

and even still, the comments there about needing to know java to make any kind of robust clojure project concerns me. I don't plan on really learning java. hahaha. Damn you HN!

Alex Miller (Clojure team)19:02:00

I’ve written multiple projects with 10ks of locs of Clojure with no Java. that’s just wrong.

vemv19:02:33

depends on the definition of 'robust', but I could easily imagine that if doing e.g. big data, understanding the docs/apis of all those Apache projects is a huge plus or maybe you need to use a very specific library for which no clj wrapper exists...

andy.fingerhut19:02:14

I believe it might be more accurate to say that you need an understanding of how to read and use Java APIs in order to make use of Java libraries, and for big projects taking advantage of existing high quality Java libraries is more productive than developing their capabilities from scratch. If there are subtle bugs in those Java libs that you have source for, and it is business critical to diagnose and/or fix them, sure, you probably need good Java knowledge. But using Java libs requires much less knowledge than writing or debugging them.

👍 30
andy.fingerhut19:02:46

I have used several Java libs from Clojure, and Python libs from Python programs I have developed, but would probably be the last person you want to ask to develop such a library from scratch.

🍻 5
seancorfield19:02:39

Part of the "you need to know Java" stuff comes from aspects of the tooling (Maven, running Clojure on the JVM) and, in particular, stacktraces which are full of (irrelevant) Java-y stuff. And it's a bit misguided because a) you don't need to know Java for that and b) you don't really have to know much about the JVM either (you just kind of need to know what you can/should ignore around it).

👍 5
Mitch20:02:21

As a novice, I can probably speak to this a little. One of the small growing pains of learning Clojure is that most resources make the implicit assumption that you are coming from an OOP background. So especially when learning about things like datatypes, multimethods, etc. I find myself having to step out of Clojure land for a bit to learn about interfaces, classes, etc. from external sources.

Mitch20:02:59

But that's probably not what the HN people are really getting at since they are mostly professionals.

Alex Miller (Clojure team)20:02:27

the meta-problem with all learning resources is they have to assume some context, which is likely different than your own. sometimes it takes time to find the resource with a set of assumptions that is a reasonable match.

👍 5
dpsutton20:02:53

i've asked a few times for JVM for Clojure developers. From the survey, lots of people come from java. So they know about classpaths and classloaders, resources vs files, how to profile and give jvm args. That's all foreign to me. I want a book that will assume you are bright and familiar with programming and go through those quickly and succintly

dpsutton20:02:37

I think there's a need in the community out there. Be a nice book on the bookshelf i think

Alex Miller (Clojure team)20:02:44

several people have written “JVM for Clojurists” talks or articles

dpsutton20:02:38

i'd like to peruse those. if you happen to have a few off hand. I know ghadi gave his talk on this at the conj

Alex Miller (Clojure team)20:02:43

I think Eric Normand has one, can’t find a link atm

Daniel Hines01:02:25

I took this and can testify it was tremendous for getting past a certain fear of Clojure on the JVM (I had no prior JVM experience).

👍 5
dpsutton20:02:37

> What's PermGen? i already like this description. I've seen tickets about leaks into this from class generation but I couldn't follow them

Alex Miller (Clojure team)20:02:20

I feel like I’m missing at least one more obvious one but maybe it will come to me

Lennart Buit21:02:42

In CS, I have written a toy compiler to java byte code. Knowing how your code is translated is such a boon in understanding why a language can and cannot do certain things

Lennart Buit21:02:51

Things like the accessors the java compiler generates for accessing private fields of outer classes in inner classes because a class in a class doesnt exist in bytecode

Lennart Buit21:02:49

the JVM, and the Java ecosystem as a whole is such an interesting platform

Mitch21:02:19

That is pretty interesting. Were you just following the Oracle specification or what?

Lennart Buit21:02:11

I remember a mix of decompiling java programs (and tricking the java compiler in not deleting my toy code) and trying to find resources on instructions. I think I used jasmin at the time: http://jasmin.sourceforge.net/

Lennart Buit21:02:18

horribly outdated now, but pretty fun

Mario C.21:02:15

What are y'all working on today? Any interesting tasks at work?

eggsyntax22:02:54

This is fun, I'm glad you asked this 🙂

👍 5
seancorfield22:02:21

@mario.cordova.862 Does testing our codebase against spec2 count? 🙂

seancorfield22:02:35

(not exactly "off-topic" but...)

eggsyntax22:02:06

Working on adding mount to an existing project that's been around for years, which is definitely proving to be more of a slog than using it in a project from the beginning (which is marvelously easy!). But we'll be better off afterward, so I'm a-sloggin' ... 🤷

seancorfield22:02:24

@eggsyntax Yeah, it was a major pain when we started introducing Component into our legacy codebase but we're slowly getting away from global state 🙂

👍 5
eggsyntax22:02:24

Interestingly, a lot of the pain has been in tests, which are reliant on an implicit ordering of state setup in a way that's not obvious.

seancorfield22:02:59

For us, with tests, it was mostly a straightforward matter of ensuring our fixture built the correct Component(s).

eggsyntax22:02:28

Yeah, I think in the end it'll be the same here, but it's gonna take a while to figure out.

Mario C.22:02:55

I like seeing what people are working on. I am re-working how we handle errors when we are doing DB look ups or API reqs

lilactown22:02:11

I'm working on an alternative to mount and component 🙃

eggsyntax22:02:41

What are your design goals?

lilactown22:02:14

mainly making systems that are more composable

eggsyntax22:02:14

and/or what's the value prop over existing alternatives?

lilactown22:02:50

mount and component focus more on resources than "components" a la component-oriented design and architecture

✔️ 5
seancorfield22:02:06

I was looking at Integrant this morning... And decided to stick with Component since I don't like DSL-as-data which is what Integrant brings. Definitely subjective tho'...

lilactown22:02:07

what I'd like to have is, for example, a "featureX" component that is it's own subsystem with its own complex startup/teardown and be able to compose the larger system out of these pieces without them knowing about each other

lilactown22:02:52

there should be a clear way for parent components to provide resources to child components, but other than that they should be opaque

eggsyntax22:02:55

Can you name a few components that you might imagine in such a system? Trying to make sure I understand what you mean.

eggsyntax22:02:48

(Just an arbitrary example system)

lilactown22:02:44

sure, so the syntax isn't finished but I've been moving my personal site to this library I've been building

lilactown22:02:48

the point is, within our applications we can usually split them into discrete "components" that make sense to split from a domain perspective, but often share resources

lilactown22:02:15

e.g. all of my components need to add a route handler to be used by a web server

lilactown22:02:54

I'm using element in this code as a stand-in for the word "component" but just go with it 😛

lilactown22:02:51

it's not fully fleshed out, so it's probably a horrible example

eggsyntax22:02:12

Gotcha. I don't typically think of "components" in that sense being the same sort of thing as "components" in the sense of shared system state. I'm at least used to thinking of those as separable concerns. I could potentially be convinced otherwise, though 🙂

lilactown22:02:45

right, they're not the same. I'm trying to steal the word "component" back to mean what it means in component-oriented design, and use the word "resource" to denote shared system state

eggsyntax22:02:33

ie to me mount (& probably component, although it's been a good while since I've used it) feel to me like their whole value proposition is handling state that other things have to depend on. A chunk of a website doesn't seem to me like that sort of thing. I can see value in cleanly separating out those chunks (seems like it provides some of the same value as microservices, while having a lower impact), but it doesn't seem like the same sort of value.

lilactown22:02:35

my library would help you build "components" in the component-oriented design sense, while managing your "resource" dependencies in a reloadable way

eggsyntax22:02:55

Right, gotcha.

lilactown22:02:17

so it subsumes the functionality of component and mount, but builds on top of it by helping you do this in a composable way

✔️ 5
lilactown22:02:34

e.g. adding a new resource and providing it to parts of your application should be a 3 or 4 line thing

lilactown22:02:17

you should only have to add it to some parent in the component tree, and then the children that want it can explicitly consume it

👍 10
eggsyntax22:02:35

Cool, I'll be interested to see where it goes 🙂

lilactown22:02:48

yeah I'll stop jabbing at you 😛 I'll have something worth looking at with documentation in a few months

🙌 5
john22:02:04

@U4YGF4NGM since you mentioned "suspense" in your hx announcement, I could use your advice regarding a component I'm trying to make (that I mentioned earlier)

john22:02:35

I basically am working on a suspense component that uses cljs/closure module code-split system to hot load components

lilactown22:02:35

a React component? sure, shoot me a DM

eggsyntax18:02:25

@U4YGF4NGM I saw a short demo today of Duct (which is built on Integrant), and it looks like Duct's concept of "boundaries" may be a bit similar to your approach. Caveat: I have no knowledge about Duct other than this short demo by someone pretty new to it, so big grain of salt 😉

dpsutton22:02:22

meeting with users and feeling their pain and working on features to make their lives better

seancorfield22:02:38

Luckily our engineering team has another team between us and our actual users, but we have a lot of discussions on Slack between engineering and customer support about the users' pain.

dpsutton22:02:21

as long as that feedback happens. i happen to really like talking to users though. today's users were particularly nice as well

🙌 5
seancorfield22:02:17

Alex's most recent Inside Clojure Journal http://insideclojure.org/2019/02/02/journal/ talks about some of the missing pieces that we're looking forward to taking advantage of, but at this point we have our entire test suite passing except for one nested s/cat test that I've given Alex a short repro for. The changes haven't been too painful.

john22:02:20

I'm working on code-split modules for cljs. Trying to make a lib that streamlines the process and makes it a little more predictable and easy.

dpsutton22:02:55

@seancorfield its really cool that yall spend company time using beta builds for clojure and spec. The rest of us really benefit from your canary in the coal mine

☝️ 10
eggsyntax22:02:54

This is fun, I'm glad you asked this 🙂

👍 5
seancorfield22:02:03

@dpsutton We gain a lot of value from using prerelease Clojure stuff. We were heavily reliant on clojure.spec in production long before 1.9.0 was final. The same has been true of stuff in almost every single release since we first went to production on an alpha of Clojure 1.3 🙂 We don't do it for altruism -- it's just a happy side effect that it may benefit the community!

seancorfield22:02:38

But, yeah, I feel blessed that the company sanctions my time spent on OSS that we leverage -- hence java.jdbc, core.cache, core.memoize, tools.cli, honeysql and, previously, congomongo and clj-time. And probably others.

seancorfield22:02:34

We're trying to get to a point where we can release more of our internal libraries as OSS but pulling them apart from the "proprietary" (i.e., business) logic isn't always easy, and then we have to document them etc.

sova-soars-the-sora23:02:59

My band released a 38 minute EP called Sonic Fountain of Youth. Please have a listen, and please give feedback if you have a strong opinion any which way! https://soundcloud.com/super_lounge/sonic-fountain-of-youth

👍 10
eccentric J06:02:22

Not terribly far off from what I’m into. Kinda sports a stream of consciousness noise-jazz vibe. It never lulls, has some atmosphere to it, but keeps shifting and building in interesting directions. If I had any criticism it would be that it feels a bit tame and chill the whole way through but that may be just a personal bias towards more dramatic music with a lot of bite and snap. https://www.youtube.com/watch?v=gdMP5ExA-Ik

Eric Ervin21:02:52

The title prejudiced me before I even started listening. I'm the worst listener since I'm too old and I've listened to too many records. I'm biased towards this dramatic music with a lot of bite and snap https://soundcloud.com/rinsefm/thegrimeshow231218#t=38:34

metal 5
Eric Ervin21:02:55

My music opinions are such garbage. My ladyfriend calls some of the music I like "an air conditioner thrown down a flight of stairs"