Fork me on GitHub
#off-topic
<
2015-07-28
>
bozhidar04:07:12

Then I can start market CIDER is a tool for intrepid developers who like solving puzzles before they get down to the actual work simple_smile

bozhidar04:07:36

regarding the ticket - as nothing dep related happens in CIDER my guess is this is actually some weird nREPL issues or something

bozhidar04:07:57

but without a repro case it’s pretty hard to say anything more

borkdude08:07:43

I looked some more at Scala code, but I don't think taking on a job with that language would make me very happy. It's just my irrational gut feeling

cfleming08:07:03

@bozhidar: Haha - the editor for people who like crossword puzzles

bozhidar08:07:59

something like this simple_smile

mitchelkuijpers09:07:09

I have done a lot of scala in the past @borkdude It mostly a lot of waiting for compilation 😛

borkdude09:07:41

@mitchelkuijpers: haha... even when I used Play Java that was the case...

mitchelkuijpers09:07:42

But to be honest that was 2 years ago

mitchelkuijpers09:07:50

Yeah that is what I used

borkdude09:07:12

@mitchelkuijpers: Me 2. It's one of the few projects that made my Macbook Pro sweat 😉

mitchelkuijpers09:07:12

The compile times on heroku were also a lot of fun, for the first compile you had to contact heroku so they would run the build longer then 15 minutes 😛 @borkdude

cfleming09:07:26

I’d probably use Kotlin these days for anything I’d be tempted to use Scala for, or just Java 8

borkdude09:07:23

one of the few things I would 'use' Scala for is getting a job in The Netherlands, Kotlin would be even harder I guess.

borkdude09:07:53

I mean one of the clear benefits of Scala is that it's more popular

cfleming09:07:42

Yeah, for sure. Although to be honest, if I’m allowed to use Java 8 I’d probably rather use that.

cfleming09:07:55

And there must be more Java 8 jobs than Scala jobs.

borkdude09:07:06

@cfleming: I hear a lot of people say that. I think I must look into Java 8.

cfleming09:07:48

I mean, it’s nothing like Scala (even Kotlin isn’t) but it has most of what I’d want from Scala with none of the craziness.

cfleming09:07:15

Much better tooling etc

mitchelkuijpers09:07:40

Java8 is not that bad, especially with a nice webframework like ratpack

cfleming09:07:52

I think of it like this: do I want to get a job just because I want to learn something new, or do I want a job where I care about the product and want the best chance of making it great?

cfleming09:07:16

If the first option, I might look for a Scala job, because I’d definitely learn new things.

borkdude09:07:34

@mitchelkuijpers: nice, I'll check that out

cfleming09:07:09

But if it’s the second option, I think Java 8 is a clear win. I doubt that there are many products where Scala would help make the product better, and I think that Java 8 removes a lot of potential headaches and risk.

cfleming09:07:39

The older I get, the more I’m interested in the second type of job rather than the first.

borkdude09:07:29

@cfleming: I was inspired by the post of Rich Hickey that switching stacks does not necessarily mean deeper understanding of things.

colin.yates09:07:30

@cfleming: +1 - this age thing takes away all the fun. I expect Java 8’s compile times to be significantly better than Scala?

cfleming09:07:59

@borkdude: Right, and I think you have to decide whether you need to understand the language you’re using or the problem you’re solving

cfleming09:07:27

@colin.yates: Yeah, probably. And obviously IntelliJ is top notch for Java 8, and all the related build tooling etc.

borkdude09:07:02

take Ruby on Rails: in terms of deeper understanding it brought me nothing, all I learned were a few tricks. (I had to learn it for my current job for a project or two)

borkdude09:07:08

so I think it's good to think about it: if I will take on a new job in a new stack, do I have to re-learn everything I already could do, or do I learn conceptually new and deeper things

cfleming09:07:41

@borkdude: Or, do you find a job in an interesting field where what you’re learning isn’t directly related to programming, or requires some aspect of programming you don’t know much about (algorithms, or machine learning, or something)

cfleming09:07:30

Rather than learning another programming language, I think programmers would generally improve much more by understanding data structures and algorithms better, and by having a job where that sort of knowledge is an advantage.

cfleming09:07:32

I certainly don’t know everything there is to know about programming, but I wouldn’t become a much better programmer by learning Scala at this point.

cfleming09:07:11

The only language that I might learn a lot from is Haskell, I think, because it has some interesting concepts that other languages don’t.

cfleming09:07:44

But even then, I’d better better bang for my time by studying algorithms

cfleming09:07:53

I’m sure of it.

colin.yates09:07:33

I think that is the key though right? Learning different paradigms, and learning languages in those different paradigms is an efficient way of doing that.

cfleming10:07:30

Maybe, but once I’ve learned Java and Clojure and dabbled over the years in ML variants enough that I have a pretty good idea of the pros and cons, what’s left? Logic programming?

cfleming10:07:31

Hehe, right, or ATS or something like that.

colin.yates10:07:29

I might then spend my focus on how to ensure software correctness, contracts, tests, prototyping etc. Not so much about tooling but how they [are|should be] used I guess

zoldar10:07:02

I think that it's not always about general paradigm but other features exceptional for a given environment (not even a language) that may make it worth learning - take for example Erlang/Elixir/LFE and its' let-it-fail approach to writing systems

cfleming10:07:01

Sure, I mean I’m sure I’d learn a fair amount from that, but it seems like something I could pick up in a couple of weeks, right? It’s not like something that’s going to make me a radically better programmer.

cfleming10:07:16

It’s still an incremental improvement.

cfleming10:07:48

On the other hand, I feel like understanding dynamic programming would have a ton of applications for problems where I pretty much just throw my hands up right now.

mitchelkuijpers10:07:25

Haskell is pretty much the only other language I would like to learn for the paradigma's

colin.yates11:07:17

I would love to have the time to dive deep into Haskell. It’s really hard to make generic and broad sweeping statements, but major transitions in my journey happened because of unit testing, understanding the principles behind Agile, realising software is only ever a means to an end (sorry ;-)), data everywhere systems, functional programming, events sourcing, recognising truely inherent complexity and Rich Hickey’s simple/easy video. Lots and lots of other minor transitions, but those were ‘wow’ moments for me.

colin.yates11:07:07

bizarrely, one of the major jumps came from using emacs. Until then I had been able to jump around the project so seamlessly that whilst ‘of course I cared about coupling’ the presence of it didn’t really cause me too much pain. Suddenly in emacs I had a laser focus on a small area and many bad code smells suddenly hit me smack in the face simple_smile.

colin.yates11:07:34

I wish there was a plugin in Cursive/IntelliJ which allowed you to measure the coupling, integration with jdepend for example?

cfleming11:07:25

@colin.yates: IntelliJ does all sorts of things like that for Java, Cursive doesn’t for Clojure sadly

colin.yates11:07:58

I tend to scan the imports manually but yeah, it isn’t scalable. I do find namespaces tend to much flattern in Clojure so it isn’t such a big concern maybe.

cfleming11:07:18

Yeah, I think few Clojure projects are big enough to need that at the namespace level

andrewhr12:07:05

my 2cc about Scala, languages et al: Scala doesn't bring much to the table since it's very permissive about the way you conduct your problem solving. The best thing I think Scala could teach you - the type system - you could learn better at Haskell or Idris or whatever the cool kids are doing these days

andrewhr12:07:12

and they can do better not by the fact that they are more capable at this "feature", but because they restrict your options: you don't really have a reasonable choice other than following their principles

andrewhr12:07:50

it's like learning Clojure for Clojure's sake: not worthy if you already have some understanding about functional programming or immutable data structures.

andrewhr12:07:58

that being said, I would love to do more Clojure in anger just to learn about being more data-driven, something not exclusive to the language but pursued as a desired property by the community

colin.yates12:07:10

@andrewhr: +1 my thoughts exactly. That is why I chose Clojure over Scala; I could see myself writing Java code in Scala syntax. Clojure was hugely jarring, but in a good way. And the learning is never about syntax but about different thoughts.

colin.yates14:07:14

for the Apple guys - I really like the new spaces management in El Capitan. If you maximise one (or two) app(s) then the name of the space is automatically the name of the application(s). I tend to use a bunch of spaces and this is quite nice.

scriptor14:07:55

is there a reason so many people seemed to have moved to slack

scriptor14:07:00

as opposed to #C03S1KBA2 on freenode?

cfleming14:07:24

@scriptor: It’s just easier to get started.

cfleming14:07:05

For IRC to provide anything like Slack’s persistence, you need a bouncer, which means you need a server and the desire to read a fair amount of arcane documentation.

scriptor14:07:08

there's no mention of it on http://clojure.org, though

scriptor14:07:16

that's true

cfleming14:07:22

It’s pretty new, and it’s not an official channel I guess.

cfleming14:07:55

It should probably be there by now since it’s now very popular, what do you think @alexmiller?

cfleming14:07:30

Link to this community on http://clojure.org?

cfleming14:07:15

That’s the fastest bugfix ever.

mitchelkuijpers14:07:10

Nice that was fast

scriptor14:07:11

very fast, awesome

borkdude14:07:49

@alexmiller: I have another great idea. Why not add this webinar https://github.com/cognitect/async-webinar to the list of presentations in the README.md of https://github.com/clojure/core.async simple_smile

cfleming14:07:51

Is H2 the preferred embedded Java database?

cfleming14:07:25

@mitchelkuijpers: Did I speak to you on the beach in Barcelona about this?

cfleming14:07:38

Awesome, I didn’t get your name simple_smile

cfleming14:07:50

So I’d like to use Xodus, but there’s literally no doc

cfleming14:07:10

Did you say you had a Clojure wrapper for it you might be able to OSS?

mitchelkuijpers14:07:44

It is very thin wrapper but it is basically let's you save maps

mitchelkuijpers14:07:47

and take them out

mitchelkuijpers14:07:57

And do some simple queries over them

cfleming14:07:58

Sounds awesome

cfleming14:07:19

What’s the durability like? You mentioned you’d lost some data? Are there recovery tools?

mitchelkuijpers14:07:24

I fixed the lost data by adding a queue for the writes, but the problem with our wallboard is that it's basically pushing data all the time

mitchelkuijpers14:07:10

And I turned of the cache because Our data is changing so fast that it was more busy with flushing and filling the cache

cfleming14:07:49

If I really don’t want to lose data can I configure it to sync on write?

cfleming14:07:58

(sorry, I should really read the doc before asking all this)

mitchelkuijpers14:07:08

There is none so you don't need to say sorry 😉

cfleming14:07:14

I’m worried by the data loss - MVCC should prevent that.

cfleming14:07:18

Haha, fantastic

mitchelkuijpers14:07:30

Do you want to use it for cursive btw?

cfleming14:07:58

Possibly as a backend for a license server, or for the backend to the payment website.

cfleming14:07:07

It’ll be a small amount of data but I don’t want to lose it.

mitchelkuijpers14:07:19

Our wallboard server is a database of 3 gigabytes now, and since we put the queue in front of it we have not experienced any dataloss

cfleming14:07:07

Cool. I’d like to think I’ll have massive write volume from Cursive sales, but realistically concurrency is unlikely to be much of a problem simple_smile

mitchelkuijpers14:07:09

I'll create a small gist

cfleming14:07:19

Great, thanks!

mitchelkuijpers14:07:30

I'll create a github repo later on

cfleming14:07:11

Cool, thanks - I’m not in a huge rush if you’re busy, just investigating options

mitchelkuijpers15:07:29

@cfleming: I also have some tests hold on ill add them too

cfleming15:07:42

Great, thanks, I’ll read through that and play around with it.

mitchelkuijpers15:07:33

Have fun with it! It is a pretty capable database that could really use some documentation 😛

cfleming15:07:46

Yeah, I’ll say. I’ll write to JetBrains with my questions and let you know what they say.

cfleming15:07:14

Did you consider using Nippy and using the k/v layer rather than the Entity layer?

mitchelkuijpers15:07:46

Yeah i did but I needed the query capabilities that the entity layer gives, I save a lot of data in xodus and then query withing a particular range of time and the process as needed

mitchelkuijpers15:07:59

And my model is very simple

{:timestamp 0 :updated-at 0 :key key :value value}
this gives you the possibility to query for all of these properties so you can simply get a entity by key or value or what I use the most get all entities between a range so for example: all in range from 0 to 100

mitchelkuijpers15:07:48

But if you only want to get something by key I would definately use that with nippy

cfleming15:07:55

I guess since writes are atomic you can index by just using another map as the index

mitchelkuijpers15:07:38

You can also create indexes on particular properties if you like

mitchelkuijpers15:07:13

But if you simply save a map with a key prop you can just query on that, and it will be freaking fast

mitchelkuijpers15:07:25

Btw it is running in production for 4 months now and now 1 month for a customer. So it is production ready 😛

cfleming15:07:14

Hehe, yeah, and JetBrains run their production YouTrack with it

mitchelkuijpers15:07:32

Yeah pretty cool stuff

mitchelkuijpers15:07:17

And the code is very readable that's how I figured out most stuff

borkdude15:07:37

@mitchelkuijpers: are there a lot of people using Clojure at Avisi?

mitchelkuijpers15:07:32

We have 3 now because they are part of my team (We are creating an atlassian connect addons with clojure, clojurescript and datomic!). But I used to be the only one writing Clojure back when I wrote http://dash.avisi.com/

mitchelkuijpers15:07:42

Lol should fix that

mitchelkuijpers15:07:57

Avisi is mostly a Java company

mitchelkuijpers15:07:21

But they keep up they are all using java8

mitchelkuijpers15:07:27

@borkdude: How do you know Avisi?

borkdude15:07:00

@mitchelkuijpers: I looked at your gist and saw the company name.

borkdude15:07:30

@mitchelkuijpers: I've heard of it because I taught a Clojure guest lecture at Hogeschool Arnhem

borkdude15:07:41

@mitchelkuijpers: and the guy who invited me, also works there part time

mitchelkuijpers15:07:34

@borkdude: a colleague of mine who is now learning Clojure saw your guest lecture 😉

borkdude15:07:07

@mitchelkuijpers: if he needs something in Dutch, I have some material here: http://www.michielborkent.nl/clojurecursus/index.html

cfleming15:07:47

@mitchelkuijpers: Thanks for all that BTW, it’s much appreciated. I’ll let you know how I get on.

ericnormand21:07:40

is there a twitter bot lein template?