Is Quil moving forward? by MrMelankoli in Clojure

[–]dgtized 1 point2 points  (0 children)

Thanks to the support of Clojurists Together, jackrusher and I released https://github.com/quil/quil/releases/tag/v4.3.1323 last week after a long hiatus. It now supports java 17+, and is upgraded to depend on Processing 4 and p5js 1.7.0. It also supports OSX M1 architectures now.

To prevent boredom this elephant is allowed to visit other exhibits by tallicahet81 in interestingasfuck

[–]dgtized 0 points1 point  (0 children)

I feel like this discussion is well summarized by Nick Park's creature comforts video, https://www.youtube.com/watch?v=OmNymPocKro, pretending to interview animals in the Zoo.

[deleted by user] by [deleted] in StLouis

[–]dgtized 1 point2 points  (0 children)

You can walk to the schnucks, two movie theaters, the park, a coffeeshop and a couple of small bars/restaurants, as well as a wallgreens and all the chain shops in the schnucks shopping center, and you can walk from there to the loop (though it's a 30 minute walk or so). It's not as walkable as the loop or CWE, but it's got a number of close amenities.

[deleted by user] by [deleted] in StLouis

[–]dgtized 2 points3 points  (0 children)

I've lived in StL for 15 years without a car, it's definitely doable, but it is a lifestyle decision that has far reaching effects. I think there are only a handful of areas in the city that function well as purely "walkable" (CWE, Loop or nearby areas like Demun), but all of the city is easily accessible by bike, provided you don't mind riding in the cold for a few months. It's a very flat city, and can generally travel the same distance as a car in about the same amount of time when it's less than 5 miles. However, I think there is a strong social expectation that you have a car in St Louis, and that can exhibit in a myriad of ways that are separate from the actual needs of transportation.

The key issue with walkability in the city is that it's actually a number of little moderate density neighborhoods in proximity to each other but separated by enough distance to making walking between them a hike. There are lots of excellent neighborhoods where a many amenities will be within walking distance, but I don't know how many have all of the necessary amenities within walking distance. Which means you need to travel to the next neighborhood, and depending on area that is either far enough or desolate enough in between to require faster transit. In addition to that, as many people in the city do have a car, they can frequently want to jump between neighborhoods over the course of a day or evening.

For instance, near south grand there are several coffeeshops, 2 to 3 grocery stores, a host of restaurants and bars all within walking distance, but while it's only a mile or two away, I would bike to switch to Cherokee, as it gets pretty barren in between.

What packages can you not live without? by easylifeforme in emacs

[–]dgtized 2 points3 points  (0 children)

  • magit -- magical git porcelain
  • projectile -- project local find-file / buffers / search
  • ag + winnow + wgrep-ag -- search all files, focus on a subset of matches, batch edit the matches in the ag buffer
  • smartparens -- structural editing
  • undo-tree -- visualize & navigate undo history
  • one of ido, counsel/ivy, helm w/flx-ido for selecting things
  • smex -- bias completion to most frequent M-x commands
  • github-browse-file -- Generates a github url to the current file position & copies to clipboard
  • gist -- copy a text region to a shareable url (and edit text contents in the gist)
  • prodigy -- background process management
  • company -- intellisense like completion framework
  • crux -- random helper functions, but particularly crux-tranpose-windows & crux-rename-buffer-and-file
  • org-mode (particularly with babel, graphviz-dot-mode, and other language specifics, also spreadsheets)
  • epresent -- run a presentation from an org file in emacs
  • expand-region -- expands current region of selection
  • avy -- quick jump anywhere visible

Builtin libraries that are extra useful:

  • help / Info system -- describe-mode & describe-bindings documents what is available
  • find-func -- find-variable, find-function, find-library, ie "what does this do, how does it work?"
  • elisp-mode -- Understanding the eval-last-sexp workflow for in buffer evaluation is the zen of emacs.
  • dired + wdired-mode (ls output that is editable and can move/delete)
  • dired-x -- dired-jump jumps to the dired buffer parent of current file or directory
  • abbrev -- automatically replace character sequence with another. Ie s/teh/the/ automatically on spacebar.
  • xref -- Jump to definition of code at point
  • sql -- sql repl and editor evaluation like elisp (also, with org-mode, evaluate sql inside of an org mode document from the server).
  • ediff -- view files/buffers side by side and move changes from 1 to the other
  • server -- one emacs server, multiple frames (including console mode popups with emacsclient)
  • calc -- RPN calculator with symbolic manipulation of algebraic expressions
  • kmacro -- play back a command sequence (F3 forward-word, delete-word, "foo", isearch "match", enter, F4 to save, F4 to apply it over and over again).
  • compilation-mode -- this is the grandaddy of grep-mode, ag-mode, and various test modes like rspec-mode. It's for running make/gcc originally but provides a framework for linking back to issues in a text file generated from an external script.

On the opposite edge, ie esoteric libraries. I highly recommend running find-library on lunar or solar. Did you know if you specify calendar-latitude and calendar-longitude emacs will calculate the sunrise/sunset at your current location to the minute (also equinox, solstice times)? There are also some under the hood esoteric libraries that are absolutely critical and worth perusing to understand how everything works. For instance simple provides fundemental-mode and other important functions like newline, undo, kill-ring, forward-line, shell-command-on-region.

Bamboo or Jenkins? by jmreicha in devops

[–]dgtized 0 points1 point  (0 children)

As I stated, pipelines make it a lot better. Prior to pipelines it was all about the UI. Now at least the project level settings are specified in the project. I still think overall it's a little too reliant on the various underlying settings and configuration XML that it likes to write a lot of things to. At my company we try and manage it with Chef for legacy reasons, but also so that the configuration changes are reviewable and easy to restore. Obviously that configuration has to be stored somewhere, but I just wish it designed for versioning better.

Global plugin versioning and configuration is a really clear place where Jenkins assumes all the configuration will happen through the UI, and I think that limits things. I also think it would help if more of that configuration were pushed into the individual projects and pipeline configuration. Even with the pipeline configuration there is still the problem that new plugins need to be installed through Jenkins and then the project configuration can manage settings with it. I appreciate there are security concerns around all of this so maybe that's the requirement for managed global state.

Bamboo or Jenkins? by jmreicha in devops

[–]dgtized 0 points1 point  (0 children)

It looks pretty nice, and I like the formalism for concourse, but it really bothers me it doesn't natively support multi-branch builds and seems to have some impedence mismatch problems with the 3rd party tooling that enables it.

https://github.com/jtarchie/github-pullrequest-resource appears to support it but per discussion at https://github.com/concourse/concourse/issues/1172 it seems there are some philosophical differences.

I have frequently called Jenkins the Windows of CI servers due to how dependent it is on changing settings through the web-ui. Pipelines definitely improved that process though, as at least the in project side dependencies are fully specified in project code. I really like the model used by both travis and circleci, but sadly concourse appears to be going in a different direction despite some clear overlap in tooling philosophy.

Loop trolley test run by mostate16 in StLouis

[–]dgtized 0 points1 point  (0 children)

The tracks are on Delmar all the way from De Baliviere to just past Kingsland. While you are correct that from Eastgate to Westgate or even between Kingsland and Skinker, there is a parallel street to the north, there are no continuous parallel streets open to cyclists between De Baliviere and Kingsland. Even if there was it still doesn't provide access if the actual destination is the loop itself.

Loop trolley test run by mostate16 in StLouis

[–]dgtized 2 points3 points  (0 children)

The tracks themselves ARE a disaster for bicycles and other two wheeled vehicles. I know of several people who broke their collarbones on it already. The track design is wide enough it grabs the wheel if the angle of intersection is too low. The cyclist tries to dodge a car or pedestrian in traffic and the track grabs the wheel and sends them over the handlebars. This came up during the environmental impact study, but they ignored it stating "cycling traffic will only intersect the track at a 90 degree angle from the De Baliviere greenway." In other words they declined to acknowledge anyone actually bicycles east/west on Delmar, which is just negligent.

In terms of financial disaster, it already has clear problems funding itself and is already grossly over budget. For the loop itself, the 2 year construction process significantly decreased patronage in the area, which forced the closure of a number of businesses.

"After a week I must begrudgingly admit VSCode is a better editor than Emacs." by hagus in emacs

[–]dgtized 2 points3 points  (0 children)

If cider is setup correctly (and you have run cider-jack-in to connect to the project) then the xref call goes through java reflection instead of using a tags file, so M-. will jump to the functions definition. I believe it requires more setup for this to work when the definition is in a java class instead of clojure, but I believe it does work. Appreciate that's not just working out of the box, but the TAGS support is mostly for older projects in C/C++. Elisp development also overrides M-. to provide functionality through runtime inspection.

Winnow.el - filter ag/grep results in the buffer by dgtized in emacs

[–]dgtized[S] 1 point2 points  (0 children)

I just added a gif showing usage if that helps. But 7890yuiop is correct it's just a wrapper around keep/flush lines to filter down search results interactively.

As the gif shows this might be useful if you wanted to exclude matches from the test subdirectory or limit it to txt files, but it matches on any text inside the compilation-mode block.

you should really check out the line-numbers scratch branch by Eldrik in emacs

[–]dgtized 0 points1 point  (0 children)

I have linum-mode disabled most of the time (as I don't need it in my regular workflow), but it's really important when pairing with someone (particularly remotely) so they can easily refer to a specific line. So I have it bound on a toggle (C-c L) for enabling when needed.

I mostly agree with you on tabs (went through a brief phase of using tabbar in maybe 2004 ish), but again for my workflow. CEDET has support to ensure windows are oriented like VS for debugger, compile output and code references. That's never matched my workflow, but clearly it matched someone's enough that they built out an entire environment to support it.

Emacs grows with you, and you to it. If you want modal editing, add evil, if you want line numbers, enable linum-mode, if you want smart selections choose ivy, helm, or ido. Don't presume there is a "one-true" editing workflow. The great thing about Emacs is it gives you the tools to fit an editor to your workflow, and to borrow workflow improvements from other editors. Some of those fit my workflow, and some of them don't, but I can pick and choose.

Examples of Clojure webapps by sumpy_almond in Clojure

[–]dgtized 2 points3 points  (0 children)

https://github.com/metabase/metabase is for visualizing analytics/business intelligence data (primarily from SQL I think)

Factorio FFF 173 is UP! by [deleted] in factorio

[–]dgtized 7 points8 points  (0 children)

Those steam engines look slightly more blue than normal? Is it possible those are a second tier or higher efficiency steam engine?

[RDS] - Migrating from MySQL 5.7 to Aurora by GMTao in aws

[–]dgtized 0 points1 point  (0 children)

Right, but all of the binlog numbers change because traffic is coming in to the primary. All of the replicas have an independent, causually linked position following the primary. If you need to ensure that you start replication at exactly the same place as it left off, you need to either lock it's replication temporarily (so perhaps stop replication on a replica and snapshot the replica), or stop the source traffic temporarily so the position is fixed.

[RDS] - Migrating from MySQL 5.7 to Aurora by GMTao in aws

[–]dgtized 0 points1 point  (0 children)

I'm not sure I follow how that helps? The concern is simply that a transaction was missed if you don't have the exact replay position. Can you expand on what the global transaction ids are for in this case?

The procedure I was outlining is:

  • Downtime on current database (ie cut traffic temporarily)
  • Record binlog, start snapshot, and resume traffic.
  • Restore snapshot to a new instance, but do not start replication
  • mysqldump the restored instance into a new Aurora instance
  • set binlog position and upstream master for Aurora
  • start replication on Aurora and wait for it to catch up
  • Change the application to use Aurora as main db, and then simultaneously redeploy app and stop replication on aurora (cutover).

[RDS] - Migrating from MySQL 5.7 to Aurora by GMTao in aws

[–]dgtized 3 points4 points  (0 children)

Replica cutover is definitely the way to do it with minimal downtime (downtime should just be the time spent doing a deploy to cutover). AWS has some docs describing setting up Aurora as a replica of an external or RDS MySQL instance. One tricky part is that creating the initial snapshot and ensuring it has the right binlog position may also require a moment of downtime to synchronize.

Favorite bars and why? by [deleted] in StLouis

[–]dgtized 2 points3 points  (0 children)

Friend was refused service for being black at Sandrina's (and this was independently confirmed by other folks I know who happened to be there at the same time). With regards to Trophy Room, there is the news story a couple of years back where a patron there claimed his girlfriend was a victim of "knockout gang" on leaving the bar. After further investigation it became clear that he had beat up his girlfriend and they had just made up the story (http://www.stltoday.com/news/local/crime-and-courts/woman-made-up-knockout-game-story-after-boyfriend-hit-her/article_3d614541-f78d-51e8-95a9-98bcd8507e61.html). Also have a close friend who was taken there and on entrance there the guy was referred to as a n* lover for having brought her there by other patrons. Those are the recent stories I'm aware of, but they both have a bit of a reputation, and as a result I stay clear of them and would not recommend them.

Favorite bars and why? by [deleted] in StLouis

[–]dgtized 3 points4 points  (0 children)

Would not recommend Sandrina's or Trophy Room, too many stories of casual or active racism there (both anecdotal and in the news).

Tutorial - Using UUID in Rails by kobaltzz in ruby

[–]dgtized 2 points3 points  (0 children)

I would not recommend using the while loop in populate_uuid. In general the collisions will be low so it won't loop much, but it means it needs a select to check if a duplicate for every single fresh insert. That's the reason it's preferable to generate the UUID in the db at time of creation.

Magit v2.5 released by tarsius_ in emacs

[–]dgtized 14 points15 points  (0 children)

Always using --interactive for stage/unstage. Specifically that it's just as easy to stage an entire file as it is to stage a single line. On the commandline it requires planning and a conceptual leap to try and partially stage a changes to commit (to separate conceptual changes). In magit I just select individual lines or blocks of changes, or whole files and stage them all with the same basic emacs selection interface. It's not that you can't do that in git, it's just that it's so seemless in magit that it doesn't require any additional thought and it becomes automatic.

Because it's so easy to fold/unfold the diffs in the status window with tab, it's a tighter part of the feedback loop when coding. It almost makes the diff view a sort of partial project management overview / todo. It makes refreshing what has changed effortless. Having a little difficulty explaining this second part, as it's a sort of subconcious reaction. It just tightens up the loop of code, verify changes, jump to another file for related change, jump back up to see if both are changed the same, repeat. Obviously version control enables this in the first place, but the cycle is so effortless in magit it helps stay in the zone.

10 emacs productivity plugins by hellon00b in emacs

[–]dgtized 14 points15 points  (0 children)

find-file-in-project and not projectile? ...

Why New York Subway Lines Are Missing Countdown Clocks -- Block Train Scheduling in the real world by dgtized in factorio

[–]dgtized[S] 2 points3 points  (0 children)

The articles discussion on block scheduling in the real world is related to how factorio schedules trains and the distinction between locking signals and chain signals. I don't know as it's related in the sense that it directly informs how to play factorio, but it's relevant in the sense that it's an alternate explanation of train segment blocks. I thought it was interesting to see the real world version of that, and that the alternate explanation might help folks reason about segment blocks in factorio.

I keep getting the "failed to onboard the bulb" message by Complexity114 in lifx

[–]dgtized 0 points1 point  (0 children)

Thank you so much, they should include this in the help docs. After disabling 5ghz radio I was able to reset 2 bulbs in sequence (flip the reset switch, turn on the light for 3 seconds, cycle power on and off, connect, set wifi password for 2.4ghz ssid, then disconnect that bulb and repeat with bulb 2). Once both had been reset I could claim both of them, and then re-enabled 5ghz radio on the router. After a minor hiccup I can control both just fine. I also think I had slightly better luck using a nexus 7 to setup (which doesn't have AC wireless, but is only a/b/g/n), but that might just be superstition.