Hacker News new | past | comments | ask | show | jobs | submit | more seletskiy's comments login

Apparently I was even more obsessed. Wanna "trade" solutions?


Sure, shoot me an email - let's chat gpu tech! m at zorinaq.com


I don't think it's a breach of 1NF. The "chain" icon next to the column name suggests that it is not a "real" field, but rather some kind of linked field that shows entries from the "Purchases" table for each user.


That would be cool, if true. I would like to see what the underlying query looks like, and whether it is efficient.


Yes, these are essentially links to the corresponding rows in the child table. Airtable solves this problem via the "linkedRecordsField", though I'm not sure it's actually "solved", as the interface around them is a bit clunky and having more than a few is pointless as they get truncated and you can't see them regardless.

I've spent quite a bit of time plumbing Airtable's APIs, and am currently developing an app around Airtable to address some of these issues (zemanir.com) in case anyone is interested.


Yep, it's a one-to-many autogenerated backlink, helpful for seeing every e.g. purchase for a user.

The lack of backlinks is one of the big frustrations I've had in other DB apps, since "this thing has many of these" is such a common pattern.


With the new advancements in AI, it's expected that there will be more code being generated by programs rather than written by programmers. Making sure these programs deliver accurate and error free code is a difficult task. The challenge here lies in effectively proofreading AIs so that any bugs are caught before they reach end users. Good tools such as unit tests can help but may not be enough to make sure AI generated code is flawless. As the use of AI increases, we must look to develop better methods for ensuring quality assurance on these programs if they are to truly be useful.


> it's expected that there will be more code being generated by programs rather than written by programmers.

That has probably been case since the 80s; nearly all code running on your CPU is generated by a program ("compiler") from a textual description ("source")


That's not what is meant. Programming languages are basically huge macro systems that expand to assembly, but the code is still written by a human.

Layers of abstraction are a problem too, but they are a different problem.


In my career I've seen resources pulled away from QA teams (sometimes completely disbanding). It would be interesting to see things swing the other way.


This feels GPT generated.


'seletskiy/godiff' author here.

In my judgment, the problem has been overstated. At the very least, with the 'tea,' it could be easily resolved by contacting me directly via e-mail, as mentioned in my GitHub profile.

I never intended for this code to be used by anyone else (there is no even a README file). But I'm delighted it helped someone attain their goals.

Anyway, I've stated that my code is MIT licensed.


As another Arch Linux user, I can attest that it is the rock-solid foundation for your computer.

I use double boot to host both Linux and Windows; when I need to use Windows, I just put Linux into hibernation. This greatly extends the amount of time it can go without being rebooted.

Driver and X problems still cropped up occasionally, but things seem much more reliable now than they did a while back.

This is a also the distro I'm familiar with from my time working on servers, where I've used it with ZFS with great success.


When I don't need Windows for gaming, I just boot the physical windows partition from Linux using Virtualbox. This way I don't even have to hibernate and interrupt any work.


Isn't windows "Installing new hardware" every time you boot? And the license is still active? I was always affraid it will break the system after few switches between virtual and bare-metal boot.


I've been running this setup since 2017 and while there were occasional graphical and sound glitches, usually after a Windows update, over all it works great. It did the "installing new hardware" thing only after updates as well, so I didn't run into it too often.

It does like to deactivate itself after a few reboots, but that's nothing a bit of mild piracy can't fix. I have at least two spare windows licenses in a drawer so I don't feel the least bit bad about it.

I also have a big ugly powershell script that runs during startup and does some things differently depending on where it's running. Things like not launching all my background stuff in the VM, remapping drive letters between physical disks and VM folder shares...

Another thing to look into is RemoteApp. I did some experiments with it in a VM and the performance was way better than "seamless mode" (which doesn't exist anymore anyways), but getting it to work on non-Server editions is a pain.


Seamless mode still exists in Virtualbox 6.1 which is the latest version.

(Windows did just crash when I was testing it but, as it also crashed twice before I got that far, I don't think it's related)


Did Windows 10 start to crash in VBox for you too? I had to move to libvirt/qemu as I was not able to resolve. Downgrading nor upgrading VirtualBox did not help. Removing last windows update helped a little, then it started crashing again.


Installing new hardware doesn't happen often and it shows the unlicensed watermark when booted from Virtualbox, but booting natively restores the activation status.


Nah, when Windows installs new hardware it doesn't uninstall the old hardware. Good luck on the license front though, since Microsoft has decided you can't move around the item you purchased from them...


I have a libvirt VM running Windows with GPU passthrough to the GTX1070 (the main GPU is the RTX 2070 Super) and use looking-glass-client and scream to pass the audio to Linux, which I use for gaming. No need to even multi boot, though I do still have the Windows boot available if I need it, which is rarely.


how is the latency on audio with that setup? I use qemu with GPU passthrough, 1060 on linux and 1070 on windows for a few years now, and i had to buy a laptop to do music production because of the latency. The only other solution was to passthrough a USB soundcard, but about 15 years ago i discovered i can't actually play live notes on a MIDI device with the latency on the USB subsystem.

I've heard of looking glass, but not scream. Will check out, regardless of reply, so thanks!


I don't /perceive/ any audio latency, the game sound seems fine to me. Talking about Elite: Dangerous specifically - I use the VM to develop my E:D 3rd party application.


Yes, I do it too, but getting it to work is a bit tricky with UEFI.


There is octo.nvim [1] which brings rich integration of GitHub's features directly into nvim.

[1]: https://github.com/pwntester/octo.nvim


Also, some obscure yet very helpful ZFS feature is that all your ZFS datasets have hidden (e.g. not visible via `ls -a`) `.zfs` directory in their roots. This directory contains all snapshots of a given ZFS dataset mounted as directories.

For example, if your home is a separate dataset, then `/home/operator/.zfs/` will contain all snapshots automatically mounted for your convenience.


I have this enabled too, but httm seems like an improvement over this since there's lots of times where I need to restore something from a snapshot, but since I have to look it up based on time, there's a lot of guesswork to find the right snapshot that has what I need. This looks great since I think it lets me do lookups via file, so I can see all the snapshots available for a given file and I can instantly see what all my restore options are.


While I don't disagree this tool would be better, if you don't have that tool, I frequently used something like: ls -lart /vol/.zfs/snapshots/snap-*/file/path

Would list the files sorted by change date so then I could just easily scan through the list for the changed versions.


Exactly. You get it. If you take 100 snapshots but the file was only modified 5 times, then you see 5 file versions. No more digging through snapshots ever.


Huh, this is new to me. How does zfs handle regular directories that happen to be named .zfs?

Might this be a security issue as well? What permissions are needed to access this path? If I somehow have a webserver serving static files from a zfs dataset, might someone use this to access old or deleted files?


I imagine that you will have issues when you enable the setting to make the snapshot directory visible, or it'll behave like a folder that has things in it when you mount something onto the same place (you think you just overwrote all the files, but then you unmount the second thing and it's fine).

Looks like by default the `.zfs/snapshot` folder is owned by root, but has 777 permissions. Then inside the snapshots themselves they have the same permissions as the main pool.

Not sure if there is a way to configure permissions on it, but if security is a concern, you could leave it disabled with `snapdir=hidden`, then just set it to `visible` if you need in there. I think it's disabled by default, so if you haven't gone out of your way to turn it on you're probably good. If you want to leave it visible all the time, you probably want apparmor or something to manage access.


How do you show the .zfs directory if it ignores `ls -a`?


The whole VFS is an illusion, it's totally possible for the filesystem driver to say one thing in readdir(3) and another thing in fopen(3).


Related fun fact: if you have +x but not +r on a directory, you can traverse it (access things whose names you know), but not view its contents (`ls` won't work).


You have to go into zfs settings to enable it, I think it's something like this: `zfs set snapdir=visible poolname/dataset`

After that you can see it with `ls -la`.


Shameless plug — https://github.com/reconquest/zeus

Daemon for automatic incremental backup of your ZFS systems to the another (physically connected right now) pool.


Some time ago I wrote zsh helper [1] that uses jo to quickly construct complex JSON requests, mainly for testing and quering services from console.

Paired with httpie [2] aliases [3] it produces concise APL-like syntax:

  POST https://httpbin.org/post test:=j`a=b c=`e=3` l=`*1 2 3``
Which translates to:

  http POST https://httpbin.org/post test:="$(jo a=b c="$(jo e=3)" l="$(jo -a 1 2 3)")"
Or, in other words, sending POST with the following body:

  {"a":"b","c":{"e":3},"l":[1,2,3]}
[1]: https://github.com/seletskiy/dotfiles/blob/78ac45c01bdf019ae... [2]: https://httpie.io/ [3]: https://github.com/seletskiy/dotfiles/blob/78ac45c01bdf019ae...


HTTPie creator here. We’ve recently[0] added support for nested JSON[1] to the HTTPie request language, so you can now craft complex JSON request directly:

  $ http pie.dev/post test[a]=b test[c][e]:=3 test[l][]:=1
[0] https://httpie.io/blog/httpie-3.0.0

[1] https://httpie.io/docs/cli/nested-json


jo immediately reminded me of httpie’s CLI syntax. Is it just a coincidence, or does httpie use jo under the hood?

Btw loving your new desktop app so far!


We did look at `jo`, and also `jarg`[0], the W3C HTML JSON form syntax[1], and pretty much every other approach we could find. We had quite a few requirements that the new nested syntax had to meet: be simple/flexible, easy to read/write, backward/forward compatible, and play well with the rest of the HTTPie request language.

The final syntax is heavily inspired by the HTML JSON forms one. But we made it stricter, added type safety, and some other features. It also supports all the existing functionality like embedding raw JSON strings and JSON/text files by paths.

The final implementation[2] is completely custom. We have plans to ship it as a standalone tool as well, publish the test suite in a language-independent format and write a formal spec so that other tools can easily adopt it. This spec will eventually be a subset of one for the overall HTTPie request language, which is currently tied to our CLI implementation but we want to decouple it.

Happy to hear you like the desktop app!

[0] https://github.com/jdp/jarg

[1] https://www.w3.org/TR/html-json-forms/

[2] https://github.com/httpie/httpie/blob/master/httpie/cli/nest... — this is the path parser


Thanks for the detailed reply! Hadn’t come across the HTML JSON form syntax before. Good to know memorising the httpie request language will have some side benefits in that it’s closely related to a standard in use elsewhere.



> Q: Does it work on ... Wayland...? > A: Sadly, no; keynav is totally dependent on X11, and porting it to any other graphical system would really be a clone/rewrite.

I hope it'll eventually get ported. It's such a useful tool. Much better for me than just moving the mouse around like "mouse keys" would.


Port from keynav to Windows: https://github.com/lesderid/keynavish


Just briefly tried this, keynav seems to do region selection instead of the mouseable's mouse movement way.


You can move the region and thus move the mouse actually:

From: https://www.semicomplete.com/projects/keynav/

> The following is the default configuration:

    h : select the left half of the region
    j : select the bottom half of the region
    k : select the top half of the region
    l : select the right half of the region
    shift+h : move the region left
    shift+j : move the region down
    shift+k : move the region top
    shift+l : move the region right
    semicolon : Move the mouse to the center of the selected region
    spacebar : Move the mouse and left-click


Right, that's pretty different from mouseable's demo, which looks like you push keys in the same way you'd push a gamepads' arrow keys. I don't have a windows pc to try mouseable though.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: