HNHacker News
TopNewBestAskShowJobs

gary-kim

93 karma · joined February 9, 2020

Email: gary@garykim.dev GitHub: https://github.com/gary-kim
submissionscomments
gary-kim··on SL(1): Cure your bad habit of mistyping
You can enable tab complete for Git including for branch names.

I don't know how I would live without that. I tend to make rather verbose branch names and typing it all out stuff like push would take forever.

Though, you have a much more fun solution.

gary-kim··on Why is Apache clinging to OpenOffice?
To add onto this, I have been using Libreoffice Online or Collabora Online for the last 4 years or so. I used to compile LOOL myself but eventually I just switched over to using the Collabora Online Development Edition that Collabora releases. I am using it integrated with Nextcloud.

I enjoy using it and it has been a life savior for the times I need to work on a document with someone else since I can just send them a share link for it. The fact that it uses leaflet which is meant for maps does mean that the latency to the server matters quite a lot to experience but I don't mind that much, personally, with my not great 120ms RTT to my server.

gary-kim··on Element raises $30M to boost Matrix
Element's primary paid service is Element Matrix Services [1] which is exactly for that. They run a Matrix server for you, optionally on a domain that you provide.

[1]: https://ems.element.io/

gary-kim··on Go Modules Cheat Sheet
A change in your repo does not need to result in an import path change if you set up vanity URLs for your import path. For instance, all my go libraries use the import path of gomod.garykim.dev even though the repos are actually hosted on GitHub. That means if I ever change to self-hosting, for example, I just need to update some of the meta tags on the gomod.garykim.dev website to change the repo location.
gary-kim··on Signald: Unofficial daemon for interacting with Signal
This is likely the one they are referring to: https://github.com/tulir/mautrix-signal/

I use it myself and it has been working perfectly for me since I switched to it.

gary-kim··on Products vs. Protocols: What Signal got right
I've been running a Matrix server for a half a year and I have not run into any problems. The main thing that surprised me was how much database space Synapse took on my server but that was an easy enough issue to deal with. That may also have to do with the fact that I'm in some of the most complex rooms that exist on Matrix.

I tried running a XMPP server for a bit but that was a rather frustrating experience between getting it to integrate well with the rest of my infrastructure, figuring out what configuration was needed and what XEPs were needed, what clients had the features I needed, what clients supported the OSes I used, and spam. To be fair, the reason I thought setting up Synapse was extremely easy may have been because I did it with almost twice as much experience with devops than I had when I tried to setup the XMPP server.

Regarding registering with a central authority, you're probably thinking of identity servers. Identity servers are used to provide 3PID (email/phone number) -> Matrix ID mappings and are completely optional. There have been attempts to decentralize that as well but for one reason or another, no good way to do it has been found. At least the source code of the identity server is open source[1] so there is that.

Otherwise, to set up a Matrix server, you simply have to either set up a json response from "/.well-known/matrix/server" or an SRV record on DNS that points to the Matrix server.

[1]: https://github.com/matrix-org/sydent

gary-kim··on Signal is having technical difficulties
Having to login every time is definitely a bug. You may want to make an issue for it at https://github.com/vector-im/element-web/issues .
gary-kim··on Element – All-in-one secure chat app for teams, friends and organisations
Set the retention policy setting on your homeserver (I'm assuming you're using Synapse): https://github.com/matrix-org/synapse/blob/bce0c91d9a89097c9...

I also have mine set up though without a default_policy so I can have the server forget stuff in my bot control rooms cause they get cluttered with useless stuff pretty fast.

gary-kim··on Show HN: Lightspeed – subsecond, open source, self hosted stream from OBS
DCOs don't give copyright ownership to anyone else or even any more rights to anyone else. It is simply a declaration that you have the permission to license the code you wrote under the license you're giving it for.

This article gives a nice description of the differences: https://opensource.com/article/18/3/cla-vs-dco-whats-differe...

gary-kim··on Price increase on .io on January 21, 2021
I'm using a .dev domain name as my primary email address and in the last few years of using it, I have only run into one website that did not support it properly. I ended up using my .com email alias for that website.
gary-kim··on Dual licensing GPL for fame and profit
Adding on to this, I personally have improved versions of open source software projects that I just forked for personal use because pushing the improvements upstream would mean having to sign a CLA which is something I am completely unwilling to do.

It is possible that the lack of useful contributions is due, in part, to a CLA being required.

gary-kim··on Congressional inquiry faults Boeing and FAA failures for deadly 737 Max crashes
It is important to consider, though, that the reason flying is extremely safe is because we do freak out about everything that goes wrong in aviation. Commercial aviation is one industry in which there is a strong correlation between safety and profitability so the industry does freak out over every problem.

Of course, it's a balance, and the balance that commercial aviation has found is heavily focused on safety.

gary-kim··on The cost of 1GB of mobile data in 228 countries (Feb 2020)
I lived in Singapore and while I was there, I used MyRepublic's mobile plans. The plan I was using was $24(SGD) a month for 17G. Rarely had connectivity issues though for the most part, I stayed in the more populated areas so I may not have had the same connectivity issues as you.

One of the nice things was that each telco would keep changing their plans to be better and better so it paid to pay attention and change plans whenever a better one came along.

gary-kim··on Microsoft Flight Simulator returned to the skies
Better idea: CAT IIIA Autoland, don't even need an analog input.

For real though, the landing is where you need the most precise control over both your control surfaces and throttle for a good landing.

gary-kim··on Wiki.js
> Main guy commiting 600k lines and the second most committed guy 450 lines.

> So yeah, it wouldn't take him a whole lot of time if he really wanted to change the license by removing all the others' commits and rewriting it by himself.

Good point. I may try to get involved in its development as well to spread that out a little more.

> Also, what does AGPL has anything to do with keeping the license open sourced?

The AGPL requires that any code linked to it also be distributed with an AGPL license (the difference from the GPL being that hosting over a network counts as distribution). Every part of the project is technically linked to itself so if someone makes a change, no one else can use that change in the project under a different license.

gary-kim··on Wiki.js
At least for me, the fact that it is purely licensed under the AGPL and that the copyright is owned by multiple people makes me far more comfortable with using it. It's a guarantee that the project will remain open source so I don't have to worry about suddenly being in a situation where I have to migrate away because the company or person decided that they don't want to have this be free and open source software anymore.

I guess, to a certain extent, that's because I'm an individual, not a company, and one that tends to open source pretty much everything they write. This is the same licensing that I use for pretty much all my projects (AGPL with no CLA).

gary-kim··on NewPipe – ad-free, open-source Android YouTube client
This is actually the situation I'm in. Google Play Services are disabled on my device so I cannot use any YouTube premium features anyways.

If there was a way to pay for YouTube premium and make the money go to the creators I watch while using a FOSS client like NewPipe, I'd be willing to pay several more times the current price of YouTube premium for that.

gary-kim··on NewPipe – ad-free, open-source Android YouTube client
I believe the F-Droid version is currently one patch behind. You can actually add https://archive.newpipe.net/fdroid/repo in F-Droid as a repository and you'll get the updates for NewPipe a lot faster.

I actually ended up going down a different route and created my own F-Droid repository for NewPipe and a couple other apps so I could get faster updates for them and I trust the upstream developers.

https://garykim.dev/blog/2020/04/14/personal-f-droid-reposit...

gary-kim··on Building a self-updating profile README for GitHub
I'm a Gitea maintainer and I still do most things on GitHub rather than my self-hosted Gitea instance because a lot of open source projects as well as the people willing to help with them are there. Overall, your project tends to get more attention and contributions if it's on GitHub.

Now, we can discuss about whether or not that's a good thing and the quality of the kind of contributions you tend to get because of the lower barrier but GitHub, at least currently, still has a place in the workflow of a lot of people.

What you propose would also be really awesome. A feature like this in Gitea could be really nice. If you'd like, you can open an issue on the Gitea issue tracker [1] for the feature.

[1] https://github.com/go-gitea/gitea/issues/new/choose

gary-kim··on “LibreOffice is at serious risk”
Collabora Online is Collabora's branded version of LibreOffice Online. They also have a version they call Collabora Online Development Edition that you can find here for personal use: https://www.collaboraoffice.com/code/.

There is no stable edition of LibreOffice Online but you can find a daily build of the master branch for Docker at https://hub.docker.com/r/libreoffice/online.

Both LibreOffice Online from Docker Hub and Collabora Online Development Edition have a configured limiation of 20 connections for 10 different doucments so personally, I'd recommend building from source. You can find the source code for LibreOffice Online here: https://git.libreoffice.org/online.

I suspect the lack of a stable version of LibreOffice Online is intentional as a way to try to drive more business towards companies such as Collabora.

gary-kim··on Why IBM doesn’t agree with Google’s Open Usage Commons for the Istio project
I remember learning about Kubernetes for the first time. Thought it sounded cool so I started looking into how to make my own cluster. I think every other tutorial was like: "next, go to CLOUD_PROVIDER and sign up for an account to make a cluster".

I'm trying to look up how to make my own cluster, not use someone else's. Figured it out eventually but it took way more searching then for learning how to use k8s.

gary-kim··on Show HN: CState – open-source Hugo powered status page
I'm using CState for my status page [1] which gets built from a public git repo on GitHub by CI and pushed.

It's been a nice way to let the players on the Minecraft server I maintain know when migrations/upgrades are planned and downtime.

I'm still looking for a system to send people emails about downtime and planned migrations but I may just switch to Cachet for that part. Maybe there's a self-hosted way to send emails from the RSS feed in a way that allows people to easily subscribe and unsubscribe? I'd be happy if anyone has any recommendations.

[1] https://status.garykim.dev

gary-kim··on Students are failing AP tests because the College Board can’t handle HEIC images
Some of the issues seems to be because some of these students transferred the HEIC file to their computers then tried to upload them by changing the extension of the file.
gary-kim··on Embrace, Extend, and Extinguish
With regards to VS Code, there is some, although I'd say not much, lock-in into specifically the Visual Studio Code version of VS Code. Namely, many of the Microsoft extensions only working on the proprietary Visual Studio Code and not the open source VS Code. That does function to negate some of the no lock in benefit of open source.

I don't personally think that Microsoft is attempting EEE here but just bringing up the point that it is, to a certain extent, made hard to fork.

- https://github.com/VSCodium/vscodium/blob/master/DOCS.md#pro...

- https://github.com/VSCodium/vscodium/issues/240

gary-kim··on Apple, Google ban location tracking in apps using their contact-tracing system
There are defiantly benefits from having the source code when it comes to being able to verify that the implementation does in fact match the specification. Sure, reverse engineering the binary would be possible but far more difficult. Reading open source code is far easier than reverse engineering. (Added in edit: From what I've read, the spec itself doesn't seem bad. The point is, assurance that does not require trust in another entity that the spec was implemented as written would drastically improve the confidence in the system.)

I have compiled some of the apps on my phone myself so I know that the result does in fact come from the same source code. That may not work in the case of iOS devices, though.

> And you always have the closed source blob of whatever BTLE chipset your device uses which you can mistrust.

That is a good point and it'd be great if that chipset could also be open sourced but one step at a time.

> That would be true even if Apple suddenly decided "oh these folks on HN want to see the code for that tracing component, better open source our complete OS".

You are correct if it was simply open sourcing the OS. If it was possible to compile and install the OS ourselves, that would completely change the game.

gary-kim··on Rclone – Sync files and directories to many cloud storage providers
There's actually an issue[1] open for implementing Cryptomator encryption support in Rclone.

I use Rclone on my Android device through Termux[2] which works pretty well. Termux includes Rclone in its repo[3]. I just set it up to `serve webdav` then access it through my file browser app which includes WebDAV support.

* [1] https://github.com/rclone/rclone/issues/1647

* [2] https://github.com/termux

* [3] https://github.com/termux/termux-packages/tree/master/packag...

gary-kim··on Rclone – Sync files and directories to many cloud storage providers
I'm an occasional contributor for Rclone. Rclone holds a special place for me as the first open source project that I got seriously involved in and made me far more comfortable with working in open source.

Rclone is now very prevalent in my infrastructure. Almost all my websites are updated by a CI job that builds the website from a repo and pushes it up to the hosting server. There's an encrypted Rclone config in the repo and the password for it is a really long randomly generated string that gets saved in the CI as a secret. Rclone with Restic is how most of my servers get backed up, Rclone is how I access my Nextcloud and Google Drive, I have a containerized s3 compatible storage system that actually stores it's data on a Rclone remote (I hope `serve s3` gets implemented soon this setup can be simpler [1]), and much more.

I'm using it so much that I'm running up against the Google Drive API limit even though I'm using my own key.

* [1] https://github.com/rclone/rclone/issues/3382

gary-kim··on OBS Studio: Open-source software for video recording and live streaming
I use it with Zoom as well and haven't had a problem with it. I haven't tried using pure ffmpeg to output to the dummy device though.
gary-kim··on OBS Studio: Open-source software for video recording and live streaming
Personally, the command I use is this:

  # Replace `/dev/video2` with the dummy video device added by `l4v2loopback`.
  ffmpeg -re -listen 1 -i rtmp://127.0.0.1:5050/ -c:v rawvideo -an -pix_fmt yuv420p -f v4l2 /dev/video2

After starting ffmpeg, you set up OBS to stream to a custom streaming server at`rtmp://127.0.0.1:5050` and start streaming.

It's not very efficient and there's a delay since OBS is encoding with h264 then ffmpeg is decoding that. It's not too bad for me because I can use the NVENC encoder but I'm sure there's a way to get OBS to stream raw video somehow.

gary-kim··on OBS Studio: Open-source software for video recording and live streaming
I'm doing something similar on Linux, although a bit more complicated.

I'm using v4l2loopback [0] to create a dummy video device, ffmpeg to create a stream endpoint that streams into the dummy video device, then setting up OBS to stream to localhost.

It is actually really nice to have the capability to fully control what is going in to the video input.

I haven't run into a need to also change the audio input yet but if it becomes necessary, it should be possible to set up loopback with ALSA.

[0] https://github.com/umlaeute/v4l2loopback

Page 1 of 2Next →