Postgraphile. Postgres + graphql. It really solves all the negative aspects of graphql. Also, incredibly performant. Their v5 release is also a pretty interesting piece of tech.
Its an optional command line utility that you may use with PostGraphile which does things like printing out your configuration in a pretty format and using TypeScript to figure out what options are available to you based on the plugins you are using. It is 100% non-essential because all the options are documented in each of the plugins (and also you can use TypeScript auto-complete in your editor), and you can just console.dir() your configuration. You can read about it here: https://postgraphile.org/postgraphile/next/config#viewing-th...
I played with this a bit years ago when it was still called PostgraphQL. My biggest issue with it was that there didn't seem to be a recommended (or even suggested) version control method for things like functions. Using a standard migration tool to update functions seems like hell, so I gave up on using it.
Looking through the docs, I still see no mention of version control or even migrations at all. Is this something that has been solved?
Filestash [1] was born after the infamous FTP top answer on the Dropbox launch [2]. Trying to understand why we couldn't have nice things made on top of FTP, I came out with this interface:
and once I had the UI working nice for FTP, I made it work for every possible file transfer protocol: S3, SFTP, NFS, SMB, WebDAV, Dropbox, Google Drive, .....
Small AutoIt utility scripts, such as WhyNotWin11 and other applets by similar users using AutoIt to make VB6-era -esq programs.
These are always neither motivated by lofty architectural goals to “do things correctly” of many collaborative open source projects that forgot about laymen-ergonomics entirely, nor user-acquisition driven dark-pattern minefields of sluggish eye candy entirely focused on exploiting the aforementioned laymen-approachability, instead just being small-scope, pragmatic UX solutions to solve minuscule pain-/friction-points in interacting with Windows that are too fragmented to be part of some overarching software utility. They replace the typical SEO shovelware web app/adware that you get when searching on Google for “how do you do X on windows” that sends you to some factory-stamped installshield executable which does nothing more than passing command line arguments to some existing open-source CLI software that neglected laymen-usability.
"OpenRefine is a powerful free, open source tool for working with messy data: cleaning it; transforming it from one format into another; and extending it with web services and external data." https://openrefine.org/
I've never doubted that there are existing solutions for dot files that do everything I need, but I've yet to find one that doesn't take more work for me to swap to than continuing to just clone a git repo an symlink maybe half a dozen things the once or twice a year that I happen to set up a new machine.
I've looked at it before. Looking at the system I'm writing this comment on, my dotfiles from my repo are ~/.config/alacritty/alacritty.toml, ~/.config/nushell/{config.nu,env.nu}, ~/.tmux.conf, and ~/.gitconfig. I'm not sure if I just use far fewer dotfiles than average, and I know this is a matter of personal taste, but it's just not obvious to me why I'd want to add a tool to symlink five things once. Moreover, most of the jobs I've had give me a Macbook to work on rather than Linux, so that also would require me to either manually install `stow` or move getting homebrew set up to _before _setting_ up my dotfiles, which seems a bit backwards to me given that my my shell config is where I store any configuration for stuff like that.
I'm starting to wonder if I just have a very vanilla dotfile workflow compared to what some other people use. This would surprise me a bit, given how I tend to go overboard in custom configuration for most things, but it definitely feels like my experience isn't enough for me to understand why specialized tooling for dotfiles is needed.
I have a work mac, work linux, and home mac. I want the same terminal-based development environment on all of them, but each requires just a little bit of customization.
For example, the .gitconfig for work is different from home (e.g. my username/email). Ditto for my .ssh/config and my shell aliases.
I also use Nix to manage all my tools, and the home-manager configuration is slightly different between mac & linux due to platform support.
I've gone through a few iterations of home-built solutions, including extending homeshick[1], before discovering YADM which implemented everything I had done but better.
> the once or twice a year that I happen to set up a new machine
This was me for a long time - but then I started using ephemeral (EC2) hosts for remote development, and while I wasn't setting up a new machine frequently, knowing that I could do it with <5min of effort (and 15min of building Nix packages) eliminated a lot of anxiety.
You can just use git directly, no symlinking required. The home folder doesn't become a git repo itself, the dotfiles are just a checkout from a bare repo:
https://www.atlassian.com/git/tutorials/dotfiles
xDrip+ is an unofficial and independent Android app which works as data hub and processor between many different devices.
It supports wireless connections to G4, G5, G6, G7, Medtrum A6, Libre via NFC and Bluetooth, 630G, 640G, 670G pumps, CareSens Air and Eversense CGM via companion apps. Bluetooth Glucose Meters such as the Contour Next One, AccuChek Guide, Verio Flex & Diamond Mini as well as devices like the Pendiq 2.0 Insulin Pen.
Heart-rate and step counter data is processed from Android Wear, Garmin, Fitbit and Pebble smart-watches and watch-faces for those that show glucose values and graphs.
On some Android Wear watches, it is possible for the G5 or G6 to talk directly to the watch so it can display values even when out of range of the phone.
The app contains sophisticated charting, customization and data entry features as well as a predictive simulation model.
“A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM.”
I actually used it not too long ago to inspect why a mp4 file wasn’t valid. The pattern language that they have is quite nice and having sections of the hex highlighted and being able to see what structures they represent and what data was on those structures was very useful!
Can confirm. ImHex is an amazing tool for a cyber analyst because it also supports yara rulesets, so you can quickly iterate and try out whether the malware was or will be detected. And it even supports capstone to disassemble the binary, while you debug the code and edit the yara rule!
Combined with ghidra, these are pretty much the most valueable tools in my day job.
I just found about this project from this comment, absolutely excited to try this out.
As someone who's never used any of the infrastructure tools, I'm thinking of pyinfra as a way to run shell commands + install dependencies on hosts (declaratively?) on a bunch of hosts via ssh.
Inventory is to sort of take a self-defined inventory on a bunch of hosts?
One final question on usage, would it be possible to sync or reference files from the machine running pyinfra on the remote hosts? Or would that have to be done indirectly via running shell commands to sync?
Both Terraform and Pulumi differ slightly I think provisioning cloud resources - pyinfra can be used alongside to setup instances/etc, I’ve used the pyinfra/Terraform combo with great success.
For ansible/chef, etc the main reasons/benefits boil down to:
- instant feedback esp on errors, get the stdout/stderr of whatever command pyinfra was executing, there’s no agent or abstraction to hide it
- configure in python rather than yaml+jinja2 mess
- integrate with the whole python package ecosystem
BespokeSynth takes the concept of a modular synthesizer and expands it so that the application is less just a synth and more a complete modular DAW. I've used it to create MIDI/audio workflows that I couldn't get exactly the way I wanted in Ableton or FL Studio. It also has a module for doing livecoded audio processing in Python that I'm just starting to scratch the surface of.
I’ve posted this before but I love it so much I gotta do it again.
You plug in a piece of ASM from a video game ROM, and it gives you a first pass decompilation. On the left hand side you can edit this decompilation, and on the right there’s a side-by-side diff of the target ASM and what your source currently compiles to. It’s slightly gamified, looks great, is super easy to fork/share, and can be pretty addicting once you get into it. Super cool community.
Dragonfly allows for OS interaction with a various recognition engine. A backbone for free and open source accessibility projects. Using it you can create scripts, commands, macros in Python.
Orange Data Mining: https://orangedatamining.com/
A visual programming tool for machine learning and data visualization. It has great potential for teaching these concepts in the classroom.
I've been using both Immich and Nginx Proxy Manager for a while now, it's the first time that I see Cryptpad, it looks like an awesome tool.
I recently tried the Collabora Online integration in Nextcloud, but was quite disappointed with it, the right-to-left button was greyed out for no apparent reason, and creating shapes and moving then around felt sluggish (clicking the rectangle tool directly added a rectangle in the middle of the slide, which I could then drag around and resize, but the transformation tools seemed buggy and didn't really work well).
Phil Harvey’s exiftool [0]. Despite being a command-line tool, it is widely known and used by professional and advanced amateur photographers to extract or repair metadata in images. It does handle more than just still images.
It’s written in perl and the perl API for handling the metadata is documented, but I’ve never seen anyone use that directly.
I created an account here to say this: Exiftool doesn't only work with image files, either. I use it to extract metadata from audio files as part of a toolchain that creates playlists automatically from my music metadata.
146 comments
[ 4.2 ms ] story [ 229 ms ] threadhttps://postgraphile.org/
I think Netflix is a big user / sponsor of the project.
Looking through the docs, I still see no mention of version control or even migrations at all. Is this something that has been solved?
[1] https://github.com/mickael-kerjean/filestash
[2] https://news.ycombinator.com/item?id=8863
File Explorer: https://github.com/spacedriveapp/spacedrive
Rust/GraphQL Server: https://github.com/exograph/exograph
Dataflow Engine: https://github.com/hydro-project/hydroflow
CRDT Generator: https://github.com/hydro-project/katara
Cloud File Transfer: https://github.com/skyplane-project/skyplane
However, while trying to dig up the repo I did find https://github.com/J2TEAM/awesome-AutoIt#awesome-autoit that may interest the same audience
https://yadm.io/
I just stumble across dotstow which adds a git layer on top of it https://github.com/clayrisser/dotstow
https://alexpearce.me/2016/02/managing-dotfiles-with-stow/
https://bastian.rieck.me/blog/2019/dotfiles_stow/
I'm starting to wonder if I just have a very vanilla dotfile workflow compared to what some other people use. This would surprise me a bit, given how I tend to go overboard in custom configuration for most things, but it definitely feels like my experience isn't enough for me to understand why specialized tooling for dotfiles is needed.
For example, the .gitconfig for work is different from home (e.g. my username/email). Ditto for my .ssh/config and my shell aliases.
I also use Nix to manage all my tools, and the home-manager configuration is slightly different between mac & linux due to platform support.
I've gone through a few iterations of home-built solutions, including extending homeshick[1], before discovering YADM which implemented everything I had done but better.
[1] https://github.com/andsens/homeshick
This was me for a long time - but then I started using ephemeral (EC2) hosts for remote development, and while I wasn't setting up a new machine frequently, knowing that I could do it with <5min of effort (and 15min of building Nix packages) eliminated a lot of anxiety.
xDrip+ is an unofficial and independent Android app which works as data hub and processor between many different devices.
It supports wireless connections to G4, G5, G6, G7, Medtrum A6, Libre via NFC and Bluetooth, 630G, 640G, 670G pumps, CareSens Air and Eversense CGM via companion apps. Bluetooth Glucose Meters such as the Contour Next One, AccuChek Guide, Verio Flex & Diamond Mini as well as devices like the Pendiq 2.0 Insulin Pen.
Heart-rate and step counter data is processed from Android Wear, Garmin, Fitbit and Pebble smart-watches and watch-faces for those that show glucose values and graphs.
On some Android Wear watches, it is possible for the G5 or G6 to talk directly to the watch so it can display values even when out of range of the phone.
The app contains sophisticated charting, customization and data entry features as well as a predictive simulation model.
“A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM.”
I actually used it not too long ago to inspect why a mp4 file wasn’t valid. The pattern language that they have is quite nice and having sections of the hex highlighted and being able to see what structures they represent and what data was on those structures was very useful!
https://github.com/WerWolv/ImHex
Combined with ghidra, these are pretty much the most valueable tools in my day job.
(with golang, vim, arch etc of course)
Only played with it for a little but it seems well designed an simpler alternative to ansible, chef and other such things.
As someone who's never used any of the infrastructure tools, I'm thinking of pyinfra as a way to run shell commands + install dependencies on hosts (declaratively?) on a bunch of hosts via ssh.
Inventory is to sort of take a self-defined inventory on a bunch of hosts?
One final question on usage, would it be possible to sync or reference files from the machine running pyinfra on the remote hosts? Or would that have to be done indirectly via running shell commands to sync?
- ops are (mostly) declarative, but some (server.shell) will always execute the command given
- inventory is just that, basically a list of hosts to target plus associated data, docs page: https://docs.pyinfra.com/en/2.x/inventory-data.html
- absolutely for syncing files, check out the files.put and files.template operations (and the files ops in general): https://docs.pyinfra.com/en/2.x/operations/files.html
What would you say are key differentiators of PyInfra from these existing projects?
For ansible/chef, etc the main reasons/benefits boil down to:
- instant feedback esp on errors, get the stdout/stderr of whatever command pyinfra was executing, there’s no agent or abstraction to hide it
- configure in python rather than yaml+jinja2 mess
- integrate with the whole python package ecosystem
- speed and small overhead as inventories scale
I Used it to create home improvement drawings. bit of a learning curve but very flexible and powerful
1 - https://www.qcad.org/
https://openscad.org/
BespokeSynth takes the concept of a modular synthesizer and expands it so that the application is less just a synth and more a complete modular DAW. I've used it to create MIDI/audio workflows that I couldn't get exactly the way I wanted in Ableton or FL Studio. It also has a module for doing livecoded audio processing in Python that I'm just starting to scratch the surface of.
Video from the creator covering I Feel Love in BespokeSynth: https://www.youtube.com/watch?v=kzYUgPMMpts
Trivial key/data database with great performance and robustness. Embedded in surprising places (e2fsck!) and my go-to unless I need Sqlite3.
https://github.com/yazz/yazz
I’ve posted this before but I love it so much I gotta do it again.
You plug in a piece of ASM from a video game ROM, and it gives you a first pass decompilation. On the left hand side you can edit this decompilation, and on the right there’s a side-by-side diff of the target ASM and what your source currently compiles to. It’s slightly gamified, looks great, is super easy to fork/share, and can be pretty addicting once you get into it. Super cool community.
https://github.com/dictation-toolbox/dragonfly
https://github.com/saleor/saleor
(Repository: https://github.com/Xyphyn/Photon)
It's the best Lemmy client in my opinion, but not well known in the community.
Cryptpad, essentially google docs/sheets/forms e2e encrypted. It does include collaboration. https://github.com/cryptpad/cryptpad
Immich, google photos self hostable, with share options https://github.com/immich-app/immich
Nginxproxymanager manages certificates and proxies to self hosted stuff through nginx https://github.com/NginxProxyManager/nginx-proxy-manager
Great self hosting stuff!
I recently tried the Collabora Online integration in Nextcloud, but was quite disappointed with it, the right-to-left button was greyed out for no apparent reason, and creating shapes and moving then around felt sluggish (clicking the rectangle tool directly added a rectangle in the middle of the slide, which I could then drag around and resize, but the transformation tools seemed buggy and didn't really work well).
I'll certainly try out Cryptpad
I can recommend traefik as proxy too
It’s written in perl and the perl API for handling the metadata is documented, but I’ve never seen anyone use that directly.
[0] exiftool.org
They are masterpieces