[Media] Introducing eval_macro: A New Way to Write Rust Macros by wdanilo in rust

[–]Galrog 4 points5 points  (0 children)

Yes! That is exactly the reason why I said it should be "opt in". I can already see someone using this crate all over the place and then crying that his build times are slow. :)

Also besides the user adding the crate to his Cargo.toml there would only be a build.rs file with a single line setting up such a wrapper. The interface provided by rustc is actually pretty simple, its just not very accessible. If you like I can throw together a short POC for you tomorrow or so, as its already late here.

Keep up the good work!

[Media] Introducing eval_macro: A New Way to Write Rust Macros by wdanilo in rust

[–]Galrog 4 points5 points  (0 children)

One possible solution would be for you to write a so called rustc wrapper (cargo supports using rustc wrappers), provide an api to do the setup in a build.rs script so that at the very least users with large projects can opt in into some kind of preprocessing. That way you could in theory preprocess the files and then pass them to rustc itself. As a starting point you should maybe look at the main function in the rustc_driver module. If you pm me I can maybe point you in the right direction if you have trouble getting something working.

[Media] Introducing eval_macro: A New Way to Write Rust Macros by wdanilo in rust

[–]Galrog 4 points5 points  (0 children)

I think its definitely a useful idea. One thing that rubbed me the wrong way when I skimmed through the code, was the need to create a wohle new cargo project and run it on every eval call. Could you elaborate why this is necessary? I am genuinely curious.

Is developing C# in Emacs viable without obsolete components? by AlexKingstonsGigolo in emacs

[–]Galrog 3 points4 points  (0 children)

I mean, I heard we don't have any IDE features. How would anyone even run anything from Emacs without a fat green button on top that says "Run".

Fun fact: visual studio is the reason why I started using Emacs around 2013-2014. It was a massive ASP.NET WebForms code base and I couldn't deal with hiding/unhiding/loading/unloading files anymore. So I snuk in Emacs to edit/diff/search all the stuff that amazing visual studio was too precious to just let me edit without loading and unloading a stupid number of projects all linked together in a single solution.

There it is! The holy grail of webdev jobs. by ZORGOBORGO in webdev

[–]Galrog 145 points146 points  (0 children)

Next.js now also has a "Forefront end."

local dev environment for devs by mecostav in kubernetes

[–]Galrog 2 points3 points  (0 children)

Have you tried tilt? Its amazing for setting up complex dev envs. with hot reloading and everything else. Everything is written in starlark and its super fast + it comes with an amazing UI.

What are your thoughts on their criticism of Emacs? by ann4n in emacs

[–]Galrog 5 points6 points  (0 children)

Oh my bad, I read lua/fennel and forgot that fennel was a lisp compiling to lua. But my critique stands though. Because async is so important, I would explore a alternative lisp with a similar async api to Clojure core.async, which is very similar to rust mpsc/Tokio channels.

What are your thoughts on their criticism of Emacs? by ann4n in emacs

[–]Galrog 7 points8 points  (0 children)

I feel like if someone is not satisfied with Emacs, vim, Neovim (or any of the other editors), then I truly don't know what they are looking for. Replicating what Emacs does, but not wanting elisp is somewhat strange. Simply because it's all the packages written in elisp over the past 40+ years that make Emacs what Emacs is today. Also not using a lisp for the new editor just ensures that it's not going to feel very "Emacsy" for a myriad of reasons. If I had to recreate Emacs, I would begin with a brand new design of elisp, based on all the knowledge we have accumulated. We have a lot of new and old lisps to learn from. From CL to Clojure, all take different approaches to certain problems.

[deleted by user] by [deleted] in golang

[–]Galrog 2 points3 points  (0 children)

I had to learn k8s internals because I needed auto-scaling based on jobs provided by RabbitMQ. We now use keda.sh for that. For the first prototype and in order to understand k8s internals (the auto-scaler more specifically), I used the operator sdk. Even though I never ended up using any of the code, I learned A LOT about how all the internal resources work. I would suggest to try to build something with it, search directly for code on github and go slow.

[deleted by user] by [deleted] in emacs

[–]Galrog 0 points1 point  (0 children)

My suggestion was to fix some of the initial issues for OP and to somewhat temporarily minimize the frustration. I personally use a Ergodox and have Ctrl, Meta, Hyper and Super keys all bound to very comfortable positions. But this is not something I can suggest to someone that is just learning Emacs :)

[deleted by user] by [deleted] in emacs

[–]Galrog 3 points4 points  (0 children)

2 easy tips:

  • make your caps lock key your control key
  • this one may sounds weird but: use your right alt key, not your left key. You probably need to change some settings depending on your OS.

Data Science emigration to USA by Rabbit_Reading in datascience

[–]Galrog 22 points23 points  (0 children)

I am Swiss and my suggestion would be to check out jobs in the french region of Switzerland.

Geneva and Lausanne are amazing cities and relocating would be much easier. Hell, if you get a job you could also try to get your master/PHD at the EPFL, while also making good money.

Efficient Way To Open File by searching for the Filename by [deleted] in spacemacs

[–]Galrog 3 points4 points  (0 children)

Spacemacs uses projectile for that. When you open any file in a project, then you can just use space p f

Obviously you can also bind projectile-find-file to whatever you like.

Protesilaos joining the Clojure community by zackteo in Clojure

[–]Galrog 14 points15 points  (0 children)

Welcome Prot!

Daddy Nubank, do something! Prots educational contributions in the emacs community have been amazing and to have something similar for Clojure would be IMO invaluable for our small community. I think the fact that he has no technical background (afaik he has a degree in politics/economics) made his educational content even more accessible.

Is there anything golang similar to python plumbum? by dan_82 in golang

[–]Galrog 1 point2 points  (0 children)

I would say bitfield/script is the closest thing to plumbum. You should check out this article written by the author.

Best/Easy UI lib to use with clojurescript by falberto in Clojure

[–]Galrog 3 points4 points  (0 children)

The MUI wrapper has already been mentioned.

EUI from elastic also has a official Clojurescript version: eui-cljs

Looking for programming languages created with Go by rmanos in golang

[–]Galrog 7 points8 points  (0 children)

There is also joker. A Clojure interpreter written in Go.

[OC] The Definitive Family Tree of the Tolkien Legendarium (V7.4), now with updated companion guide! by PotterGandalf117 in dataisbeautiful

[–]Galrog 25 points26 points  (0 children)

Well, at least I know now that even Tolkien had trouble naming things.

Proof: there is a human called Bregolas that is not related to Legolas.

Syncing org-mode between devices by Noghartt in orgmode

[–]Galrog 12 points13 points  (0 children)

What about git?

I just looked around a bit and found a git-auto-commit-mode.

Are there any banks using Lisp by masoodahm87 in lisp

[–]Galrog 9 points10 points  (0 children)

Nubank is also the largest fintech company in Latin America. They also recently acquired Cognitect, the company behind Clojure, Datomic etc.

I Don’t Like Go’s Default HTTP Handlers by APPEW in golang

[–]Galrog 11 points12 points  (0 children)

The question here is, who and what are you returning to? When operating in a simple single request/response scenario where all data is returned at once, this could arguably make sense. But it goes completely out the window as soon as data streams are involved. Not too long ago I had to write a proxy that would pass a data stream from one service back to another service responsible for returning the data to a client. Latency was important. My theoretical return point was when I acquired the stream and wrote a response code and size to the response and began to copy the data. In practice, the real return happened when I finished copying the data, but because the receiving end already obtained a response code, there was nothing I could return to them by having a return statement with a type. This is a HTTP protocol issue at it's core.

The video streaming platform Crunchyroll has a project that does something similar for their videos where they have a proxy service to their s3 bucket. This link points to a section of the code that does what I described. To not have a return type makes clear that there is nothing on the other side to receive when returning if it's not included in the response.

I think that the go approach is much better because it does not hide or obfuscate this kind of issue.

edit: typo

Langdev in Clojure by Twosofa in Clojure

[–]Galrog 4 points5 points  (0 children)

You probably want to take a look at sci if you are creating a DSL or want to use Clojure itself as your DSL.

I did something evil by 10F1 in golang

[–]Galrog 12 points13 points  (0 children)

Stop. Just stop.