This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-02-17
Channels
- # beginners (52)
- # boot (116)
- # cider (21)
- # cljs-dev (44)
- # clojure (104)
- # clojure-dev (82)
- # clojure-greece (5)
- # clojure-japan (4)
- # clojure-nl (14)
- # clojure-russia (65)
- # clojure-serbia (3)
- # clojure-spec (38)
- # clojure-uk (9)
- # clojure-ukraine (1)
- # clojurescript (65)
- # clojurewest (1)
- # community-development (1)
- # core-logic (3)
- # cursive (5)
- # data-science (9)
- # datomic (13)
- # emacs (45)
- # euroclojure (1)
- # hoplon (2)
- # instaparse (23)
- # javascript (1)
- # jobs (2)
- # klipse (43)
- # leiningen (8)
- # lumo (25)
- # off-topic (7)
- # om (13)
- # om-next (3)
- # onyx (11)
- # pedestal (12)
- # planck (19)
- # proton (1)
- # re-frame (26)
- # reagent (26)
- # remote-jobs (13)
- # ring-swagger (23)
- # spacemacs (1)
- # untangled (3)
If I want to learn Clojure with the intent of finding work in it, is web development my best shot at doing so?
Web development and big data use have both been heavily cited in past surveys.
Independent, really.
Though web services have a tendency to pop up in any system.
Oh ok because it makes a lot of sense that both of those fields go together in one developer role. Thanks
@jmb As someone who does my daily work in clojure, I'd recommend that if you don't know it yet, focus on learning vanilla clojure first. A monster<dot>com search for clojure returns 397 results, and clojurescript returns only 33. People associate "functional programming" with scala, clojure, erlang, etc, and even if the job requires scala, for example, if you know clojure, you're likely to be associated with someone who is a decent fit. Learning clojure lets you focus on thinking in a functional paradigm. IMO introducing the inevitable framework like reagent etc. into cljs will have you focusing more on the framework, than how to program clojure. Then once you know the language pretty comfortably, do a cljs project, and you'll find it enjoyable; I did this and found coding reagent/cljs to be a pleasure, but probably would not have found it so much that way had i learned it first
Btw @joshjones did you use the leiningen template or did you manually add it to your project.clj?
i use the lein figwheel template -- but have also set up a boot-based project. but particularly for integrating into intellij, a lein project works well
Ok. Because I know a moderately good amount of Clojure, but I was thinking of refining what I know just a bit more and then I was gonna pick up something like Reagent so that I can actually start build practical things
Perhaps a stretch Looking for 2 fulltime developers with clojure, clojurescript, cassandra, postgres and bigquery experience
@drbigdata there are two channels in Slack for jobs, one for normal jobs and one for remote ones.
I'm trying to run a shell command from the repl, but I can't get it to work. ag "\(deftest "
works from the cli, but how do I write that into clojure code? (sh/sh "ag" "\"\\(deftest \"")
@kauko you probably need to escape paren as well (`\(`)
ahh, nailed it. you don’t need double-quotes there!
so it should be (sh/sh "ag" "\\(deftest ")
you need quotes in cli to prevent (ba)sh from splitting your arg on whitespace. sh/sh
won’t do it, because you already pass args one by one
maybe your working dir is incorrect? “doesn’t work” means error or no results?
(sh/sh "/usr/local/bin/ag" "-f")
=> {:exit 1, :out "", :err "ERR: What do you want to search for?\n"}
`status 1 and no output means “nothing found” on my machine
Oh well, I don't really have the time to debug this anymore. It's not like it's really that important, just would've been nice to understand what I'm doing wrong. 🙂
@kauko I thought you figured it out? It seems like you can't run just ag
, you have to use the full path
well, it behaves the same on my machine - works in terminal, but not in sh/sh
like if I wrap the hikaris make-datasource to delay (def datasource (delay (make-datasource datasource-options))) I can run tests (they don't require the db connection), but then when the datasource is actually created when starting the application I get:
Caused by: java.lang.ClassCastException: clojure.lang.Delay cannot be cast to com.zaxxer.hikari.HikariDataSource
seems like you are trying to use the delay instead of what it wraps (missing a "deref" call)
I can't guess what your code looks like, but you're probaby doing something like (fetch-from-db datasource ...) instead of (fetch-from-db @datasource ...)
the latest trend is install lein or boot and then run lein repl
or boot repl
!
you should probably also install a jvm
@drbigdata well, it entirely depends on your preference. but if talking specifically about trendiness, my best bet will be atom+proto-repl + maybe sayid
as for me, boot + spacemacs + cider is a great combo
That’s not devenv setup I guess 🙂 Recently I was picking tech for a new back-end - ended up with mount + aleph + compojure. Compojure is good as always, mount is great IMO. Bumped into some rough edges of aleph, + need to adapt existing ring response (not request) middleware to use async features.
agree with @mpenet - go with jetty if you don’t need anything fancy
boot is great stuff too. adding deps when repl is already running - priceless
Getting automatic source code download of dependencies and being able to jump to the source from function call is priceless. This is what I do way more often than adding a dependency to my project.
sveri: cider does this
@residentsummer also for boot?
come on clojure 1.9, be released already!</random-rant>
anyone have any tips on hunting this down? I'm not sure where reader.impl.commons is being included...
clojure/tools/reader/impl/commons.clj:112:31 - call to method endsWith can't be resolved (target class is unknown)
@owen if you’re using leiningen, you could use lein deps :tree
to track down which dependency is using it
Where can you go to read about what will be included in future Clojure versions?
@bronsa @bostonaholic ah, looks like it's from the current version of ring
you could perform inception on Rich I guess @byron-woodfork
@byron-woodfork http://dev.clojure.org/display/design/Release.zFuture has things that have been talked about over the course of the last couple years
Cool, thank you!
but that page is unlikely to include things that spring unbidden from the mind of Rich
what are the pros vs cons of the following choice:
choice1:
[:vec2 x y]
[:rect x y width height]
choice 2:
{:tag :vec2
:x x :y y}
{:tag :rect2
:x x :y y :width width :height height}
choice1 is a sparse notation, optimized for writing, choice give each part a name, which is nicer for reading/accessing parts
and since it's keyed access, you can keep a map of :tags to their important (or required) keys
but if you don’t expect your data to change (say a [x y z]
coordinate) then choice 1 works just fine
and if you go vectors, you cannot easily (possibly?) determine what missing values you might have since its by position, whereas with keys its easy to identify missing entries
for precisely the above (easier to extend, keyed access) I like choice 2. However, the one thing that is frustrating with choice 2 is as follows: 1) my terminal is only 40-60 lines tall. For maps, I like each k/v pair to be on it's own line. 2) Choice 1 = it's "a third of a line // I can write the struct, and continue writing on the same line" Choice 2 on the other hand, takes up 4-5 lines every time I specify a data, which means I can read far far less code per screen.
if it's truly :x 5
length k/v pairs, consider for readability adding either commas or spaces (or both), then you can fit it on a line, and it's still readable:
:x 5, :y 10, :width 37, :height 44
@joshjones: good call, I'll try this for a few days and see how it goes
any suggestion on http://websocket.io client libraries for clojure? (not cljs)
my two favorite client libraries, based on both their interface, and their speed, are http-kit and aleph. for the client, I think only aleph has a websocket option, though i have only used the standard http client usage for both of these
joshjones thanks! I've started playing with aleph but AFAICT it has only support ws, it doesn't implement (web)http://socket.io that as far as I can tell is written on top of ws but has some encoding of its own
there is an official java http://socket.io library, I have been using it for testing a http://socket.io server, seems to work well with clojure, pairs nice with core.async