djblue
djblue on Hacker News
I think one of Clojure's main strengths for concurrency / parallelism is structural sharing of immutable data across threads, which you simply cannot do in Erlang.
I build and maintain Portal, which runs on multiple platforms including: Clojure, Babashka, ClojureCLR, ClojureScript, nbb, joyride, basilisp and soon jank. The main thing that's different per platform is the os/fs/http/ws libraries but the runtime state and serialization is all the same and reused across all platforms. Also, recently I was able to get most of Portal's reagent viewers, which were designed primarily to run in a browser via ClojureScript, running on the JVM for Server Side Rendering. Clojure is the most portable language I have ever used!
I think most programming communities experience fragmentation as they grow. I would say the javascript ecosystem has had an order of magnitude more fragmentation at every layer: package management, server, client, module specification. IMO this is the cost of progress.
I would say so, I have implemented a pwa
https://djblue.github.io/portal/ hosted via github pages for people to browse through their data-structures. You can also connect the ui to a live host and send it data directly with tap> (kinda like console.log in js).
For me the real advantage is the shared information model with the backend that is trivial to serialize/de-serialize with something like transit-clj(s). It's like the benefit of js/node but with richer data structures: keywords, symbols, sets, maps with arbitrary keys, instants, uuids and extensibility via tagging. JSON is great, but EDN is so much better!
Posted by
djblue on Saturday August 08, 2020 @10:52AM
from the show-hn dept.
Sweet! Thanks for sharing. I see you're using pure-store to manage your game state. My implementation also uses a redux pattern for state management :)
Your project is substantially superior to mine. It looks so goooooood!
Thanks! I really enjoyed the data modeling aspect of this project. I also ended up modeling the board as a mapping of [row, column] -> color which might be different from the traditional 2D array representation.
Posted by
djblue on Saturday April 20, 2019 @01:19PM
from the show-hn dept.
The reason I want to be able to have different files for different machines was to make slight variations to some of my dotfiles. I used to use branches but it was too much error prone work keeping all my branches up-to-date. I switched to a system where I template my dotfiles, but now I have to expand those templates for them to actually work. I do have leverage when to expand the templates and how to install them. There are a bunch of different ways to do this depending on what you want but what I ended up doing was:
1. Template files using a syntax that was easy find / replace using a regex. You could use an existing one if you like.
2. Generate a bash install script with all the file variants embedded as base64 strings. I can build this script locally, but I also have a travis ci build that pushes up the install.sh script as a gh-pages like branch.
3. I can now curl the install.sh script from any machine I want and bootstrap my dotfiles. The only install time dependencies are bash, curl, git, base64, mkdir, and echo so it's a very portable self-contained script.
4. During install time, I use a case on hostname to determine which files to use and I use git to put them into my $HOME directory using a similar strategy described by the article.
github: https://github.com/djblue/dotfiles
install.sh: https://git.io/vxQ4g
This is the biggest value of structured data, as soon as you convert something to a string you have lost all your leverage.
I think the consensus is that the site looks great... I have to agree :)
Posted by
djblue on Monday September 14, 2015 @12:51AM
from the show-hn dept.
Posted by
djblue on Sunday April 12, 2015 @04:07AM
from the show-hn dept.
I don't think your link works. Sorry.
Posted by
djblue on Monday November 17, 2014 @10:45PM
from the djblue.github.io dept.
Thanks for the write up. I've been getting into docker lately and this is really useful.
agreed, but maybe easier without all the new.
This project is really cool! Well done.
Posted by
djblue on Tuesday November 04, 2014 @10:11AM
from the show-hn dept.
Posted by
djblue on Monday November 03, 2014 @12:19AM
from the show-hn dept.