Fork me on GitHub
Ahmed Hassan15:06:17

I've got 4th Generation Core i3 2.5GHz Lenovo B590 laptop with 8GB DDR3 RAM (which was 4GB previously on which it was quite sluggish) and 320GB HDD. Operating system in my use is Ubuntu 18.04. It takes ~5GB of RAM on Shadow-cljs and Leiningen (both with hot reloading and stuff) running with 10 to 12 tabs (with 2 Slack workspaces) of Google Chrome, Emacs, Upwork app. Is it okay with current specifications and OS? Or change OS or something else? And should I go for SSD? What are your experiences and opinions?


SSD will definitely be the best investment for more speed. If you want to do more with Docker/Kubernetes you probably need more memory, but otherwise 8 GB should be enough.

👍 8
Ahmed Hassan17:06:55

I've never used SSD, but I've noticed that in HDD programs start slow, but once started they seem to run at reasonable speed.

Ahmed Hassan17:06:01

I've currently set up my dev environment in HDD, so if I change to SSD I'll have to do it again.


Maybe you can just make an image with e.g. Acronis True Image

👍 4

I would also start with SSD, then more memory and then invest in better CPU. 8GB is a minimum, 16 is preferable. 4 core i5 or i7 is pretty much the default these days

👍 4
☝️ 4
Ahmed Hassan18:06:06

Is there open source alternative to Acronis True Image?

Ahmed Hassan18:06:03

180GB of SSD would be enough for Clojure/ClojureScript purposes?


clojure libraries normally don't take lots of space, but of course it depends on your project, database, etc

👍 4
Ahmed Hassan18:06:09

Thanks. I think 180GB would be enough. At the moment I'm doing mostly front-end work.

Pick Feky18:06:44

think u shd get more ram like 32gb

Pick Feky18:06:14

ram price got down dramatically from 2018, good time to buy some.

Eccentric J21:06:58

I’m working in a language I’m not familiar with to solve a type of problem I have no experience in. Where would you start?


I'd start by solving a problem I knew how to solve in the new language, to get familiar with it.


If the problem I did not know how to solve involved algorithmic trickiness, not just lots of code, and I wanted to explore ways to do that, I might choose the language that I thought would make it quickest for me to explore different ideas for it, as a prototype implementation.

Eccentric J22:06:39

I think that’s generally a good approach. In this case I’m working in fennel, a lisp wrapper around lua, to customize hammerspoon + ag’s spacehammer. The goal is to make it more data-driven so we can have a single Table\hash-map that defines modals, keystrokes, and action functions.


Thanks for inadvertently introducing me to hammerspoon and spacehammer! These look like exactly what I’ve been searching for on my work machine.

Eccentric J13:06:00

It is less inadvertent as you may think. @U0G75ARHC did a brilliant job putting it together, I’m taking a crack at shifting modal\action customization from a code problem to a data problem.


@U0G75ARHC writes really nice code 🙂


Thank you, but I would’t qualify it as a “brilliant” job. I think there’s virtually unlimited potential here with Hammerspoon, sadly I’ve been struggling with finding time to implement some cool ideas.


for data-driven approach I think it would be cool to implement something like Integrant but in Fennel/Lua

👍 4
Eccentric J22:06:38

However, this project made me realize I need to learn more about designing programs.

Eccentric J22:06:57

(global modal-paths
        [[:space {:title "Alfred"
                  :action "modals2/activate-alfred"}]
         [:m {:title "Multimedia"
              :menu [[:s {:title "Play or Pause"
                          :action "multimedia/play-or-pause"}]]}]
         [:z {:title "Zoom"
              :menu [[:m {:title "Mute or Unmute Audio"
                          :action "zoom/mute-or-unmute"}]]}]])

Eccentric J22:06:49

Hmm maybe I should write notes on the expected behaviors, figure out the state that can express that, then implement around that.

Eccentric J22:06:42

Though I’m still curious how others would approach designing a program in a similar scenario.