Fork me on GitHub
#off-topic
<
2017-01-03
>
qqq05:01:15

@beppu: so the only reason I did not go with space-macs was that it seemed too magical

beppu05:01:37

It's definitely a radical reconfiguration.

notanon05:01:44

qqq is always off-topic 😛

beppu05:01:55

I gotta take some of the blame.

beppu05:01:13

The thing is, though, all the classic emacs keybindings are still there.

qqq05:01:14

I also recently swithed from emacs to clojure

qqq05:01:21

err, from vim to meacs

qqq05:01:33

I used vim for 15+ years, then saw someone develop clojure in emacs using cider, and went 'oh shit'

beppu05:01:39

That's the main reason I'm using Emacs now too. Emacs integration w/ Clojure tools is better than what's available in vim.

qqq05:01:53

then I spent a month learning elisp / configuring emacs from scratch

qqq05:01:01

and elisp power is amaxing

qqq05:01:16

do you have speedbar working?

qqq05:01:31

for navigation, the most important plugin I'm using right now is neotree

beppu05:01:34

In spacemacs, they prefer neotree over speedbar, so I use that instead.

qqq05:01:42

but neotree operates on directories/fikles

qqq05:01:47

can neotree look "inside a file" ?

beppu05:01:48

I used to use speedbar before though.

qqq05:01:49

that'd be insane

qqq05:01:01

if neotree could display functions inside a file, instead of smallest unit = file, I'd be so happy

beppu05:01:01

I don't think neotree is that fancy.

qqq05:01:13

so I think with speedbar, it's possible to look into afile

qqq05:01:43

so my ideal setup would be as follows

----------
| a | .   main .   | b |

where a = neotree, maikn = file i'm editing, and b = speedbar showing function definitions within the file

beppu05:01:47

For some languages, speedbar has magical integrations that let you look at the files contents (usually in the form of a function list)

beppu05:01:20

I wouldn't use both at the same time.

beppu05:01:36

That's like having a car with two steering wheels.

qqq05:01:52

one is for jumping between files

qqq05:01:58

the other is for jumping between functions within the file

beppu05:01:59

I get what you're saying.

qqq05:01:17

anyway; any idea how do get function list into speedbar ?

beppu05:01:33

I don't know off hand.

qqq05:01:27

I got it working 🙂

qqq05:01:41

magic function: speedbar-add-supported-extension

beppu05:01:12

you just run that function?

qqq05:01:26

(speedbar 1) (speedbar-add-supported-extension ".cljc") (speedbar-add-supported-extension ".clj") (speedbar-add-supported-extension ".cljs")

qqq05:01:40

then you have to click the + folder on the file name

qqq05:01:44

and it'll show all top level definitions

qqq05:01:05

next up: get it working with sr-speedbar, so it's not an external winfdow

beppu05:01:33

Nice. That worked for me too.

beppu05:01:04

(gonna be afk for a bit. need to go to grocery store before it closes.)

qqq06:01:02

anyone here know how speedbar parses a clj file to decide what the 'headers' are?

qqq06:01:09

@beppu: I think you're right -- I was just looking at

(defvar speedbar-fetch-etags-parse-list
  '(;; Note that java has the same parse-group as c
    ("\\.\\([cChH]\\|c\\+\\+\\|cpp\\|cc\\|hh\\|java\\|cxx\\|hxx\\)\\'" .
     speedbar-parse-c-or-c++tag)
    ("^\\.emacs$\\|.\\(el\\|l\\|lsp\\)\\'" .
     "def[^i]+\\s-+\\(\\(\\w\\|[-_]\\)+\\)\\s-*\C-?")
;    ("\\.\\([fF]\\|for\\|FOR\\|77\\|90\\)\\'" .
;      speedbar-parse-fortran77-tag)
    ("\\.tex\\'" . speedbar-parse-tex-string)
    ("\\.p\\'" .
     "\\(\\(FUNCTION\\|function\\|PROCEDURE\\|procedure\\)\\s-+\\([a-zA-Z0-9_.:]+\\)\\)\\s-*(?^?")
    )
  "Associations of file extensions and expressions for extracting tags.
To add a new file type, you would want to add a new association to the
list, where the car is the file match, and the cdr is the way to
extract an element from the tags output.  If the output is complex,
use a function symbol instead of regexp.  The function should expect
to be at the beginning of a line in the etags buffer.

This variable is ignored if `speedbar-use-imenu-flag' is non-nil.")
but the imenu looks right instead

beppu06:01:55

Jesus Christ. regexps look so nasty in elisp due to all the escaping.

qqq06:01:22

@beppu: the SO answer you posted links to imenu -- and imenu is amazing for jumping in clj files

qqq06:01:36

it's M-x imenu , type in name of func / var you want to jump to in the file, and BAM

beppu06:01:58

let me try...

beppu06:01:14

oooohh... nice. Thanks for the tip @qqq.

beppu06:01:10

turns out spacemacs has nice imenu bindings. SPC j i for an imenu of the current buffer and SPC j I for an imenu of all buffers.

qqq06:01:41

damn, just three keystrokes, that SPC key is really awesome

qqq06:01:50

i'm very tempted to try out spacemacs just for that

qqq06:01:57

oh, that's why ti's named "space" macs

beppu06:01:30

The space menu is genius. I gotta give that guy credit for coming up w/ a nice way to organize keybindings.

dominicm08:01:35

The leader key is a plain vim concept I think.

beppu16:01:22

It's the leader key idea + a system for key combo discovery. In vi, the UI is largely invisible. In Spacemacs, you get hints as you traverse the tree of key combinations.

qqq16:01:43

@beppu: exactly, the thing I've come to love about emacs/hydra is C-h k, C-h f tends to work much better than reading vim docs (since vimdocs don't reflect my ~/.vimrc configs) -- and having the 'hotkey hints' is life changing, whereas in vim it was "memorize everything"

beppu16:01:48

Good morning, @qqq.

qqq16:01:12

@beppu: I can't overstress how cool it is that we stumbled across speedbar/imenu yesterday; it's life changing, already something part of my workflow, and I can't imagine not having it

beppu16:01:41

I too am happy about the imenu discovery. That helps speed up navigation a lot.

dominicm17:01:34

Using unite, you can do :Unite mapping

notanon21:01:55

you guys can all just use Cursive and not have to remember any of that stuff or install anything or type any arcane combinations parrot sharkdance upside_down_parrot lol i'll see myself out

yogidevbear21:01:47

@notanon Is Cursive it's own independent IDE now or is it still a part of IntelliJ?

yogidevbear21:01:59

Or other (I may have my wires crossed here)?

ejelome21:01:10

it's part of IntelliJ, it's actually a plugin for IntelliJ

notanon21:01:25

it's a plugin for free intellij

yogidevbear21:01:27

Ah, just clicked on download

notanon21:01:37

it's... amazing

yogidevbear21:01:39

shows intelliJ as the prerequisite

yogidevbear21:01:53

Do you know off hand what the costs are?

notanon21:01:00

free for non-commericial

notanon21:01:15

100 or 250 or something for commericial? dunno

yogidevbear21:01:32

Is the 100/250 for the intellij portion for commercial use?

notanon21:01:01

intellij community edition is f/oss

notanon21:01:08

no license even for commericial

notanon21:01:17

you might be thinkg of intellij enterprise

notanon21:01:34

which would also work with cursive, but you dont need the enterprise version

notanon21:01:43

just a bunch of JavaEE stuff

cfleming22:01:10

It also contains the web stuff, which is the bit you’re most likely to want (JS support etc)

cfleming22:01:24

If you don’t care about that, community is fine.

notanon22:01:33

intellij community edition can install the same js plugins as the enterprise version

cfleming22:01:39

No, it can’t.

notanon22:01:44

we use it at my work for angularjs/node dev

cfleming22:01:55

JS support is ultimate only.

notanon22:01:58

we stopped using enterprise cuz it was the same

notanon22:01:07

just install the plugins, i promise it works 😉

notanon22:01:27

i just opened a js file

cfleming22:01:39

And got plain text? 🙂

notanon22:01:46

when did they start doing this?

cfleming22:01:02

Ummm - 10 years ago, maybe?

yogidevbear22:01:16

I know someone else mentioned using Atom with ProtoREPL

notanon22:01:28

lightable is also pretty good

cfleming22:01:30

Web dev has always been an Ultimate feature.

yogidevbear22:01:34

And what about LightTable? Any good?

qqq22:01:34

this is ridicilous, even when I move from #clojure to #ott-topic, I can't stop hearing the praises of cursive

notanon22:01:56

i used lighttable when i first started clojure

notanon22:01:09

the editor-is-a-repl blew my mind

qqq22:01:30

I'm so tempted, is there a wya to use emacsx, but have it talk to cursive instead of cider ?

notanon22:01:31

but it's super key-binding-y

ejelome22:01:40

I like cursive too, but beyond personal use, I'd go something free like light table (although I use emacs)

qqq22:01:42

I still want my emacs-as-OS setup, but willing to run cursive if I can talk to it via emacs

ejelome22:01:15

^ spacemacs + clojure layer, I think it's complete enough

notanon22:01:39

you guys are crazy 🙂

notanon22:01:44

ill just never understand

notanon22:01:58

give me my windows and widgets and panels and gui

notanon22:01:04

you can keep your shortcuts

qqq22:01:14

it's about ability to program it

notanon22:01:20

exactly 🙂

notanon22:01:56

you all dishonor Xerox PARC and Alan Kay, his Holiness by not using GUIs 🙂

qqq22:01:56

go use smalltalk 🙂

notanon22:01:17

i use something pretty close but better

ejelome22:01:23

I like GUIs, it's takes away the boredom once in a while

ejelome22:01:40

even my terminal, I use Guake, because it's a beautiful GUI terminal

notanon22:01:52

that looks nice

ejelome22:01:23

also check apricity os, it's a beautiful gui for arch 😄

ejelome22:01:35

see, I told you I like guis

notanon22:01:39

looks nice and minimal

ejelome22:01:18

yes, and good thing we're on off-topic channel, hahaha

ejelome22:01:05

spacemacs is also beautiful btw 😛

qqq22:01:30

@cfleming: are there public numbers on the free / personal / corporate split of cursive? (I'm just curious as I never would have thought it possible for someone to build a company building dev tools in the age of open source)

qqq22:01:55

(percent wise)

cfleming22:01:17

@qqq No public numbers, but I sell way more commercial licences than personal which surprised me. More free ones than anything, which didn’t surprise me.

notanon22:01:19

lol was i back-talking someone from cursive?

notanon22:01:30

i really will see myself out now

cfleming22:01:39

Actually, the only one from Cursive 🙂

cfleming22:01:51

Here’s the office of a company making dev tools: https://www.youtube.com/watch?v=GPvVCV4kh-Q

qqq22:01:09

@notanon: yeah, your cursive install is now going to remotely self destruct for arguing with @cfleming

cfleming22:01:11

(one of their many offices, at that)

notanon22:01:27

yeah good thing i'm registered under @qqq

qqq22:01:33

@cfleming: cursive's success is changing the way I look at software companies; I used to reason "if there's one group of ppl who can write their own tools; it's open source devs" therefore "impossible to sell tools to open source devs" -- yet, cursive's debugging ability beats available options, and everyone loves it

notanon22:01:14

the flaw in that reasoning... is i want to write software, not software to write software

notanon22:01:26

so thx cfleming for doing it for me 🙂

qqq22:01:00

@notanon: sure, but as N (the # of devs using a langauge goes up), so the the probability that atleast one of them decides to wirte their own open source tool

cfleming22:01:06

What @notanon said - lots of people want to do their actual work rather than develop their editor, and lots of companies are willing to pay to not have their devs wasting their time.

qqq22:01:20

I guess the flaw in my reasoning that I underestimated the difficulty of writing a fully featured ide/debugger

cfleming22:01:36

Yeah, it’s a lot of work.

cfleming22:01:48

I could keep a team of 4 busy for a year, just on Cursive.

cfleming22:01:32

And while OSS is great, lots of it lacks the polish that you get with JetBrains tools. You can make it all work, but it usually requires time to do so.

cfleming22:01:50

Some people like spending that time, lots don’t, and are willing to pay to avoid doing so.

notanon22:01:52

i used to think eclipse was the greatest freaking thing on the planet

notanon22:01:56

and then i downloaded webstorm

yogidevbear22:01:04

Completely agree there. The JetBrains tool set does look very polished

yogidevbear22:01:11

And a lot of variety in offerings

cfleming22:01:24

Yeah, they make a ton of tools now.

notanon22:01:04

i worry too many tools now

notanon22:01:11

they wrote their own language

notanon22:01:26

hope they keep pumping out the updates i actually care about

cfleming22:01:27

Yes - it’s awesome 🙂

notanon22:01:32

haha really?

cfleming22:01:46

I have no reason to use Java any more.

cfleming22:01:06

Except that the IntelliJ tooling is still much better for it.

yogidevbear22:01:12

Isn't that what Clojure is for 😉

cfleming22:01:22

Sadly, not in all cases.

yogidevbear22:01:33

No, I guess not 🙂

yogidevbear22:01:57

What is JetBrains' own language?

yogidevbear22:01:05

Ah, enough said

notanon22:01:19

when they announced it...

yogidevbear22:01:22

Quite a few cfml devs have been looking into it recently

notanon22:01:25

i just dismiss anything with types now

notanon22:01:43

i dont know why anyone wants types ever

fellshard22:01:51

Kotlin is solid if you're working with Java more directly

fellshard22:01:55

Superb focus on interop

fellshard22:01:09

And high degree of focus on Android compatibility / tuning

fellshard22:01:25

Language-wise it covers the failings of Java very well

fellshard22:01:31

But it's no Clojure :^)

yogidevbear22:01:37

So all I need to do is really learn Clojure, Java, Scala and Kotlin and I'll be safe in the job market troll

qqq22:01:49

unless apple kills android

notanon22:01:56

not gonna happen

yogidevbear22:01:05

I love my android phone

notanon22:01:07

android is like 95% of the market

yogidevbear22:01:17

Wouldn't buy an apple for anything 🙂

qqq22:01:30

deving for android is a pain

qqq22:01:32

so may phones to test

yogidevbear22:01:39

Not that it's necessarily a bad company / product set. Just not my cup of tea

cfleming22:01:50

@yogidevbear IMO if you learn Kotlin you can probably ditch Scala from that list.

cfleming22:01:20

Although it probably helps for the job safety aspect

yogidevbear22:01:21

I tried doing the scala specialisation on coursera and found it overly complicated just to get started

yogidevbear22:01:34

The sbt seemed a bit of a PITA

yogidevbear22:01:06

Any ideas what the job market is like for Kotlin? Guessing not that high yet as it's relatively new?

notanon22:01:18

jetbrains might have a position or two lol

yogidevbear22:01:47

Their offices do look swanky 😉

notanon22:01:31

scala surprises me

notanon22:01:38

i thought people gave up on it

yogidevbear22:01:01

It got a lot of traction in companies in the UK at least

vishal-reddy22:01:15

anyone think Kotlin will beet it?

notanon22:01:47

i think languages that try to support OOP and Functional are hard to pull off

fellshard22:01:51

The idea was Scala has incredibly high ramp-up but could possibly afford great benefits at that point. But those benefits haven't really been realized as much as hoped, iirc.

notanon22:01:52

you're just confusing your developers

fellshard22:01:00

And its interop is... horrid.

fellshard22:01:59

Kotlin's what I'd call a pragmatic improvement. It's nowhere near functional, but affords many utilities that let it lean towards a function-passing style where useful, in a way that's much nicer than Java's piss-poor lambdas.

fellshard22:01:28

Primarily because it introduces a single 'Function' abstraction instead of fragmenting everything into functional interfaces.

fellshard22:01:36

Which aren't composable or reusable, and do not allow you to abstract a single piece of computation for multiple purposes.

fellshard22:01:01

It's caulk to Java's leaky foundation.

notanon22:01:49

looks better than java ill give it that

notanon22:01:59

i just wish it wasnt jetbrains doing it

notanon22:01:16

diverting my $$$ for yet another language 😞

fellshard22:01:50

No $$$ needed 🙂

fellshard22:01:08

Good IDE support built in from community up

notanon22:01:27

ah really? well that makes me feel better

yogidevbear22:01:04

Thanks for the input guys. Really appreciate. I'm off to bed now though. Catch you later 😴

fellshard22:01:57

Spent ~ the latter half of 2015 mildly curious about Kotlin, the first half of 2016 trying and evangelizing it, and the latter half of 2016 obsessed with Clojure. The latter is sticking pretty well, though 😛

notanon22:01:07

i can't go back to place-oriented programming

notanon22:01:27

programming hundreds of tiny state machines makes my head hurt now

fellshard22:01:55

For an average Java dev team that you're trying to help think past their limited Java horizons, Kotlin will be an easier sell than Clojure. But Kotlin might also serve as a stepping stone on that road.

notanon22:01:45

definitely an easier sell, but why bother

notanon22:01:57

i can check for nulls on my own 😄

notanon22:01:21

the ide generates bean properties

notanon22:01:35

if i want to do functional programming... lambdas etc

notanon22:01:49

kotlin is not much better than java, no?

notanon22:01:28

not trying to play devils advocate or anything... just dont see it

fellshard23:01:46

Again - Kotlin uses a single 'Function' abstraction for its lambdas, as opposed to Java which basically just uses lambdas as a cleaner wrapper around Single Abstract Method interface implementations, i.e. anonymous implementations

fellshard23:01:51

It allows extension methods to be defined, something seen in C# for example, and which allows much cleaner interfaces when connecting two domains. It's not quite the protocols from Clojure, but enough to be utilitarian.

fellshard23:01:45

Instead of passing around an Integer Predicate, I can pass around an int -> boolean. Instead of passing around a custom implementation of some interface in Java, I can pass around an (S, T) -> Unit

fellshard23:01:23

It uses the same names / types for all things 'function', instead of dropping down to the level of abstraction of the thing that needs to call said function.

fellshard23:01:40

So you're not constantly bouncing up and down the abstraction scale.

fellshard23:01:57

In that way alone it is greatly superior to Java.

fellshard23:01:30

Plus the new tools and core libs it provides tend to leverage functional parameters much more effectively than Java did with all its half-ass collections modifications.

fellshard23:01:48

Much more like the kind of stuff Guava was trying to do, except better integrated.

fellshard23:01:05

Also, maybe this could go to #other-languages 🙂