HNHacker News
TopNewBestAskShowJobs

pqb

847 karma · joined March 20, 2016

Software Engineer

GitHub: https://github.com/piotrkubisa

Email: [ my nickname ] at kodiga.pl

submissionscomments
pqb··on Show HN: Bangle.dev – Collection of tools for building rich text editors
There is a fork (rewrite) in the Vue.js [0].

[0]: https://github.com/marsprince/slate-vue

pqb··on Show HN: Svelte NodeGUI, a lightweight Electron alternative with native UI
@tonsky is right about the huge memory footprint (in terms of RAM) but 20MB for Hello World GUI program is totally fine today [0]. In my humble experience there is really hard to fit in below 10MB with a GUI app that only displays "Hello World" text, while the next 10MB are often consumed for extra resources like font, rendering cache or custom textures.

It might a bit rude to remind that, but the same person saying aforementioned words about huge memory usage promotes the Skija [1], Java-based GUI toolkit, which is even worse in memory consumption than electron (jb-compose provided examples, even in release builds).

[0] Memory Footprint of GUI Toolkits - https://szibele.com/memory-footprint-of-gui-toolkits/

[1] Graphics for JVM - https://tonsky.me/blog/skija/

pqb··on Nuklear: A cross-platform GUI library in C
I don't know why you are downvoted, while you state correct viewpoint IMHO. The accessibility is not just about screen-reading but also options that make our contact with the virtual product be more pleasant (e.g. resizeable UI, non-transparent background under subtitles). There are also many indie, slow-paced games that do not have any kind of voice-acting (well, most of tycoons), where even Windows Narrator will be enough. Please note, you don't have to be a blind person to use assistive software - there are a lot of people wearing a corrective glasses, who might use some screen reader.
pqb··on Nuklear: A cross-platform GUI library in C
I have no experience with assistive software but I suppose non-native UI libraries should be using native OS toolkit (e.g. [0][1]) or specific APIs libraries, which targets NVDA, JAWS, Orca and others (this is one of the same idea shared in the one answer on SO [2]). I guess web browsers and other native GUIs just do that behind the scene.

[0]: https://en.wikipedia.org/wiki/Microsoft_Active_Accessibility

[1]: https://en.wikipedia.org/wiki/Microsoft_UI_Automation

[2]: https://stackoverflow.com/questions/65168795/make-non-native...

Edit: IAccessible2 [3] seems to be compliant to both Windows and Linux. Whether Apple AppKit provides specific accessibility-focused UI elements [4]. Flutter has also similar one, it is called Semantics [5].

[3]: https://wiki.linuxfoundation.org/accessibility/iaccessible2/...

[4]: https://developer.apple.com/documentation/appkit/nsaccessibi...

[5]: https://api.flutter.dev/flutter/widgets/Semantics-class.html

pqb··on GTA III and Vice City fully reverse engineered: re3
> We turned the Karuma [...]

It was Kuruma, in Japanese it means just a "car".

pqb··on Why SELECT * is bad for SQL performance (2020)
As other commenter mentioned the BigQuery supports the `SELECT * EXCEPT(column names...) FROM mytable` syntax. Also, it is worth noting the `SELECT COUNT(*) FROM mytable` in BigQuery is faster and cheaper than `SELECT COUNT(always_truish_column) FROM mytable`.
pqb··on New Ubuntu installer will use Flutter
Honestly, I don't know if it is related but I learned it is way better to keep per-disk configuration instead of dual-boot using exactly the same disk but having multiple partitions. These days the SSD disk are really cheap and the simplest and most maintainable configuration is to keep Linux on the one disk, and Windows on the second. I have never experienced any kind of problem having a LUKS partition is such setup. Worthing noting in such setup is the booting partition resides on the disk, related to its OS (i.e. GRUB on Linuxish disk, Windowish boot on the disk with Windows).

Clean reinstall of Windows/Linux? No problem! Just plug off the other disk and install the OS. You don' need to care about losing any data nor reinstalling the GRUB. No "how to-s" nor googling solutions for the issues related to dual boot (except typical timezone switching).

pqb··on SkiftOS: Simple, handmade operating system for the x86 platform
What touches me the most is how much I like the GUI applications look [0][1]. As a person, who use GNOME Shell DE on daily basis I really miss to see the titlebars condensed with the menu just like VSCode does. It was what I liked in the very last Unity DE and I happy to see this once again. I am also amazed how simple the TextEditor is [2][3][4] and how handy looks your libwidget components [5]. Congratulations!

[0]: https://www.reddit.com/r/osdev/comments/ky7igd/my_handmade_w...

[1]: https://www.youtube.com/watch?v=Za0oHBFr9zo

[2]: https://github.com/skiftOS/skift/blob/main/apps/text-editor/...

[3]: https://github.com/skiftOS/skift/blob/main/libraries/libwidg...

[4]: https://github.com/skiftOS/skift/blob/main/libraries/libwidg...

[5]: https://github.com/skiftOS/skift/tree/main/libraries/libwidg...

pqb··on Show HN: Dumbdown – A dumb alternative to Markdown
There are many opinions here that are rather do not follow your idea as-is, but I would like to say do not give up if your project is even dedicated for only your use-case. I believe, you already know the way how you write data is exactly what s-expressions in Lisp/Scheme languages are. I have been working in an editor, which has similar syntax but is really dedicated to create easy A4/letter paper print-outs instead of just typical documents. It is really works nice and if you will come with tooling (editor, components, mixins), very low/gradual learning and good execution you might cut out some market share if you will target specific niche if you already know.

About the syntax and tooling - if you target typical user who already knows Word or Markdown, you should also try out to resemble the "actions" they typically would do. I mean, if I would need to create a list item, I think I will support the hyphens or star notation. They are kind of an idiom of a list item already. The same fact is that you can think out of competing with LaTeX in terms of typesetting, pdf rendering, ease of embedding graphs or being a Jupyter notebook/orgmode competitor in terms of running inlined code (i.e. code block), out-of-the-box layout formatting (report, 2-columns, article) etc. etc.

pqb··on Poll: Switching from WhatsApp
Relating Telegram, it is worth to read one of the latest Durov post [0] about the possible future of the Telegram becoming used as a construct of a social platform.

[0]: https://t.me/s/durov/142

pqb··on OpenBoard – FOSS Keyboard for Android which respects your privacy
I second the AnySoftKeyboard. It is nice alternative, however I miss the mode that resembles BlackBerry 10 keyboard, especially in case of autocompletion suggestions that popped over specific letter and I had to swipe it up [0] in order to complete the word. It was many times more pleasant to use than the "selection bar".

[0]: https://helpblog.blackberry.com/en/2013/02/blackberry-10-key...

pqb··on I3: Improved Tiling Window Manager
> What I don't miss from Ubuntu are the PPA's,

I have just looked into the extra sources to see if I have any PPA there but I was surprised to see the only one, which come with a Pop_OS! to bring some custom tiling manager and other tweaks.

Frankly, era of PPAs has ended. I don't find many software packages shared on Launchpad nor I won't trust PPA owners to install anything from most of PPAs. There are better ways to share software and easier to set own APT server. Today, almost all software distributors I know (Microsoft, Slack, Sublime, Spotify, Hashicorp...) have their APT repository on also their server or on a packagecloud[0] / JFrog Artifcatory[1]

> If you plan to do any gaming in Linux.

To be honest, I find KVM with GPU pass-though a better idea overall (I can use software like Affinity Designer thanks to that). KVM is a really top-notch software if you know to configure it properly :) However, proton and wine can be installed without any problem on Ubuntu.

> And, I'm biased a bit because my installation is always quite minimal. I only have i3 and my tools for programming, and whatever is needed to run proton games.

I have a complete range of various programming tools and SDKs that hardly can be packed in 240GB disk. My current setup is rather small: Jetbrains IDEs, Unity3D, Qt Creator/Designer, emacs with orgmode, vim, various chat apps, Spotify, Syncthing, Sublime Text & Merge, rofi, pass, fossil, nginx, flutter, nimrod, nodejs, deno, zsh, golang, chicken-scheme, milena+ivona, orca, backup tools, terraform with terragrunt, multipass and some dotfiles and private scripts. It takes about 3h to complete format disk and install OS and provision all software I need (thanks to terraform). My DE is GNOME with a taskbar (Dash To Panel extension) instead of a dock. Is it minimal? Likely no, but it does its job.

[0]: https://packagecloud.io/

[1]: https://jfrog.com/artifactory/

pqb··on I3: Improved Tiling Window Manager
> The ability for one window to float over another was a later innovation and is of course more difficult to implement.

I find it funny, because I would say I have seen more floating window manager, when I was browsing GitHub, so I assume it is also quite easy to create a new one from scratch. Such floating VMs usually have 200-1000 LOC and die after 1 month after initial commit. Recently, xwm has been on HN [0] and it is small in terms of SLOC. There is smaller one called tinywm[1]. When we would compare them to i3[2] and sway, we can see they have thousand times larger codebase but they also bring a lot more features.

I keep my fingers crossed for more sophisticated WMs like PaperWM[3], which is "tiled scrollable window manager" to take off. They might synthesize ideas from floating and tiling managers and provide a better tool to manage windows on a screen.

[0]: https://github.com/mcpcpc/xwm

[1]: https://github.com/mackstann/tinywm

[2]: https://github.com/i3/i3

[3]: https://github.com/paperwm/PaperWM

pqb··on I3: Improved Tiling Window Manager
> I have found that a lot of people _think_ Ubuntu is safe/stable.

As a 10+ years long user of Ubuntu and its derivatives (currently Pop_OS!) I would say I know it is stable. Ubuntu still feels like a polished Debian for a typical computer user, which has many of pre-configuration made that non-techies and not-that-much-knowledgable persons will love. I don't like many decision they have made, e.g. favouring snap over apt, complete lack of a proper GUI for managing installed software/packages, sometimes missing packages that are on Debian but not on Ubuntu (though, the deb file can be downloaded and installed with a single command). After tremendous work done by GNOME users to tweak gnome-shell I have never had a freeze / hang up since three years on Ubuntu. I am also happy having recent drivers from Nvidia that works good enough to also never see any problem in 5+ year history related to GPU card. I also didn't have a problem to install drivers for my printer and scanner, which have a dedicated installer (deb file). I am just a happy user.

Calling kernel for a reason Ubuntu feels stable is wrong I think. I have tried many times Arch and I had many occasions to be not very convinced to its "stability". The most annoying issue I had on Arch was related to sound - when I was changing volume in Spotify client it was changing the system volume. Imagine the situation when you had a headphones with a volume level set at 3-4% and you have increased it by 20-50%, a nightmare for ears and hearth. After that "feature" I have completely removed Arch from my disk and I am not looking back to it nor other rolling distro.

These days I also don't see any unique selling point that Arch had in the past. It is still known for a best documentation and the most recent software. During last 2-3 years I don't remember if I had been complaining on outdated software in Ubuntu. If I would do then there are awesome projects like flatpak, xbps[0] or nix[1] that can be installed without changing my OS and they provide everything what I probably can win using Arch.

[0]: https://voidlinux.org/

[1]: https://nixos.org/

pqb··on A QR code built from Emoji
> And the little bit of information they provide, like a link. I don’t know.

I share the lack of sentiment to hype and overusing its name and symbol but I cannot agree about the sentence I have quoted about.

The QR code comes with titles and URIs, which provides nice way how to share some information with a distinction of their type, i.e. a contact card, OTP passphrase, WiFi credentials (SSID/passphrase pair). Instead of providing a password, which is hard to spell out, we can just share an image and in a moment after scanning we are connected to the WiFi. Been there, works like a charm.

We can also use them to share data of multi-MB weight over just an animation combined with generated QRs [0].

[0]: https://github.com/divan/txqr

pqb··on A QR code built from Emoji
I second qrencode. It is notoriously used by the password-store [0]. Theirs qr function is perfect to extract as a separate script and put them into the $PATH (especially useful when it is needed to generate and save some QR codes).

The opposite tool to qrencode is zbarimg, which accepts first parameter to image file containing the QR code and prints out the encoded content.

[0]: https://git.zx2c4.com/password-store/tree/src/password-store...

pqb··on Netscape and Sun Announce JavaScript (1995)
> I still don't know why they stuck the "Java" name on JavaScript.

It is still funny to see a job offer with a mistaken Java and JavaScript posted in a title or in requirements section.

pqb··on Taking PHP Seriously (2016)
Discussed previously:

* https://news.ycombinator.com/item?id=12703751

* https://news.ycombinator.com/item?id=15262981

PS. Would you mind adding a [2016] in the title? It will show readers they probably need to take a historic context to understand the article correctly.

pqb··on Google Poly is shutting down
Yes, it is a standard Play Store / Google Services on Fairphone. However, it comes with a very small amount of applications pre-installed. I was really surprised when I turned it on for the first time.
pqb··on Google Poly is shutting down
That's interesting. I have a Fairphone 3 with a stock Android 10 and it does not come with the Duo pre-installed. The icon for video chats in Contacts app is greyed-out. After installing the Google Duo, it becomes active.

Is it possible to remove/deactivate it via adb or other tools?

pqb··on Google Poly is shutting down
That's actually (at least recently) quite "popular" product I would say, because they included it in most Android smartphones to offer video calls. I am tempted to say Google Duo is spread on millions of devices, however it is kind of an app, which is rarely used at all by most of users. Also, there are thousands of competitors, where even Google Meet does feels better than Duo.
pqb··on A Month of Terraform
I assume you are talking about a similar tool to the Atlantis [0] / Terraform SaaS offering [1].

[0]: https://www.runatlantis.io/

[1}: https://www.hashicorp.com/blog/terraform-collaboration-for-e...

pqb··on A Month of Terraform
Ouch, what a shame on my side. Sorry, I must have missed it. Thanks for pointing it out.
pqb··on A Month of Terraform
Yes, it is true. However, I am hesitant to say the AWS CloudFormation is a bulletproof tool that does not need help from the support side. If somebody was too impatient and manually removed a resource that was managed by CFN, then he might end with a deadlock, where only help was actually a support team member. Been there, don't repeat that error - please do not create (not auto-detectable) drift changes on a purpose (it could be hard to modify/remove the stack in future).

Edit: My memories are from Q1 2020.

pqb··on A Month of Terraform
> I'm over here laughing in my "over an hour of CloudFormation only to have a run fail, and then a rollback fail, and have to contact AWS support" life.

Oh, I see I am not alone in having the same experience with the AWS CloudFormation (CF) update flow. I have started feeling "good enough" in CF after about 6-8 months to write templates from my memory (accompanied with a documentation page). The funny thing about the CF is fact, the all people I know had working flow based on searching GitHub/Gist over an example, edit, refine, deploy, push fixes, deploy, rinse & repeat.

In the blogpost I have noticed mentioned Pulumi. To be honest, I have not used it yet, but I have tried AWS CDK [0]. I suppose it is AWS's go-to solution for everybody who wants to use the CloudFormation for saving deployment stages and also have programmed templates in languages of their choice (like a TypeScript or Python). It is interesting solution that I suggest investigating if you haven't done already. It supports "importing" CF templates as-is, so they can be incrementally translated to CDK.

[0]: https://github.com/aws/aws-cdk

pqb··on A Month of Terraform
> terraform-lsp is supposed to provide autocomplete, but it mostly doesn’t, in my experience.

I find Terraform for Jetbrains IDEs to work hundred times better than the VSCode one. I really can recommend it, does magic to autocompletion, peek definition, snippets insertion and linting TF/HCL files.

Author of this blogpost have not mentioned Terragrunt [0], while I think it is worth mentioning. It is nice tool, especially if you work on bigger projects having multiple modules and per-environment variables.

Also, a tip from a person, who works in team using terraform - use brew/apt repositories to keep the binaries up-to-date or at least on the same version as your team mates. I remember at least few situations, when patch update of a terraform binary was crucial to make some issues disappear.

[0]: https://terragrunt.gruntwork.io/

Psst... I am also using Terraform to bootstrap Pop_OS! with my dotfiles and it is surprisingly nice enough to mimic declarative and atomic NixOS configuration :)

pqb··on Xwm – a tiny XCB floating window manager
In case of running/testing window manager on Linux there is Xephyr(1), which creates a brand new display (opened as a new windowed "app") that can be used without breaking the main $DISPLAY that comes with GNOME/KDE/XFCE/i3.

While ago, Julia Evans has published a blogpost about challenge to write own window manager [0]. Perhaps, you will find it interesting if would like to get know more about typical debugging tools for a window manager development.

[0]: https://jvns.ca/blog/2019/11/25/challenge--make-a-bouncy-win...

pqb··on UK Codemasters Sold to Take-Two Games
GTA even had a few minutes coverage on the BBC TV in 1996 [0] (mirror on the YouTube: [1]). Reporter visits the DMA studio and discusses with game developers.

[0]: http://news.bbc.co.uk/2/hi/technology/7372117.stm

[1]: https://www.youtube.com/watch?v=Abz1xWpb3FU

pqb··on Faasd – Lightweight Serverless for Raspberry Pi
Erm, no. I think I haven't been clear in my first post. I am not asking about "how to install apt package", but how to provide a universal recipe to provide 3rd-party software as handy installation script. What you suggest is how to download and install few debs from a website. When I writing such script, I don't trust the host name "just like that" as you suggest. It can be malformed or point totally to different host that we would expect.
pqb··on Faasd – Lightweight Serverless for Raspberry Pi
Of course they are but they are meant for more sophisticated purposes, (i.e. install, update, reinstall, remove app or even purge program with user data, etc.) and all of that logic is usually covered with signature checking with other security-oriented algorithms. I agree, I find apt/dnf/pacman/apk/xbps are great, but...

In case of Ubuntu, in order to install some deb-based software you usually have to bring your own script (this is what I call "copy & paste installation script") to add third-party repository that contains given package.

← PreviousPage 4 of 5Next →