[0]: https://www.google.com/search?client=firefox-b-d&q=8+USD+to+...
847 karma · joined March 20, 2016
GitHub: https://github.com/piotrkubisa
Email: [ my nickname ] at kodiga.pl
[0]: https://www.google.com/search?client=firefox-b-d&q=8+USD+to+...
- "Code with me" is a Zoom/Google Meet with a code sharing.
- "Projector" provides Web view alongside of typical desktop-app IDE sharing. If you need example, there was a nice submission week ago that touches that topic [0].
- "Editing by SSH" - way another niche. Connect via SSH to remote machine, edit and synchronize your changes over the SSH. Nothing new, I guess Python and PHP devs love to use it. I have been recently using it, while I was tinkering with Raspberry Pi.
- "Remote development" or some kind "developer-machine-as-a-service" idea (JetBrains Space / Gateway), which is close to Projector, with a difference the machines are rented or managed by the company (burst usage). Ironically, it is nice idea even for small companies (<150), where employees were given low-spec PCs or some cheapest M1 laptops. All problems with CPU compatibility or other limitations to resources are solved by using a beefy remote machine.
For a person who used various way of remote coding in my life. I think all of those are complementary and I don't see any burden there. I hope they will keep and improve them over next years.
- https://developer.microsoft.com/cs-cz/windows/downloads/virt...
- https://developer.microsoft.com/da-dk/windows/downloads/virt...
- https://developer.microsoft.com/fr-fr/windows/downloads/virt...
> In American English, the month always precedes the day. In British English, the month follows the date. This holds no matter whether one writes the date by using numbers only or numbers and words. Note that, in American English, there is a comma before the year, but not in British English. [0]
The only way to cheat both English users is to keep YYYY-MM-DD format, which I have never seen misused.
As a Kindle Paperwhite 3rd generation owner I am sad it is true. e-newspaper/e-magazine leave very bad experience, pushing me away to resign from using it (thank God I have been on trial). I also don't understand why magazines are displayed in such horrible way on Kindle. When I have given my Kindle to a person, who on daily basis purchase a paper version of a newspaper, she said me using it is completely no-go for her, while she has no problem to read typical ebooks on my device.
I wish e-readers will evolve - to be a device that would help me learning, making notes, be a calendar and todolist instead of just only having me entertained of reading an ebook. I am basically looking forward to Kindle being an handy org-mode-like replacement. I would like to have a planner, which could synchronize with some ical/caldav calendar. I would like to have a bit better specs of device, so responsiveness of e-ink keyboard will be instant - I usually have typos thanks to low latency of the display. I would love to make notes separately from ebooks/documents - think like diary, draft notes or just stupid shopping list. I would like to find some method/methodology, which will help me go back to my quotes and in-book notes to extract from them more meaningful way. I would like to have better web-browser or some converter for HN, which will reading (and annotating) articles and comments section on HN pleasant enough. Maybe I am silly, but I believe it is all possible to achieve that in a form of e-ink reader.
iPad can have all of those things right at the moment, but I don't see myself (yet) as a owner of tablet with a LCD screen. Perhaps, I will afford it, because I am already sold on how good VoiceOver on macOS is and I suppose Kindles will never deliver anything close to what Apple can bring in terms of accessibility features. However, I still keep fingers crossed for competitors like ReMarkable [0] or Supernote.
For anyone, who is very fresh in k8s topic and don't won't want to spent a cent for learning I recommend starting from edX course [0]. It provides a nice introduction and great notes, which you can copy as some cheatsheet. Such cheatsheet will be a definitely helpful hand in first weeks with k8s.
[0]: https://frame.work/
2): It will not be added (based on information provided in the article [0]).
3): Is it valid question? By my basic understanding of article the case of adding more bytes to binary will require having the main package [0]. Also, generation (e.g. gogo-proto, go:generate) will create only business logic code in new package, no additional metadata will be added.
[0] Quote from article:
> Version control information is embedded if the go command is invoked in a directory within a Git or Mercurial repository, and the main package and its containing main module are in the same repository.
You can see land of static-page generators, which has changed "the way how to do backend™" recently (Gatsby, Hugo). Generation of static HTMLs made full-featured framework not coherent, because you want to separate website composition and the visual layer. Static-page generators can fetch data from Wordpress or any database, which cuts off some work from "old" backend (no admin panel, headless Wordpress, Contentful).
If you would take a route down the SPA river, you will note frameworks like React (CreateReactApp) or Next.js, which they clearly make backend obsolete in many scenarios. You don't need call Jinja to render the template anymore nor host website on the EC2/VPS server, because there are SaaS solutions like CloudFlare Workers, Vercel or even good old S3 that will completely get rid of V (view) from the MVC.
Finally, there are tons of serverless offerings over the hill - Firebase, GCP CloudRun, AWS Lambda. They will profit you only, if you would have the simplest and the most optimized backend logic (you pay for CPU/Memory time). Personally, I don't see any benefits to have full-featured framework like SpringBoot or Django there, because it will increase operating costs a lot (if it would even work).
Of course, there are also attempts to create frameworks in faith of "batteries included", but they sooner or later end up with same fate [0]. However, composition and fragmentation is the new trend that most folks pursue - nobody wants a big hog anymore. It is especially noticeable in JVM world, like Quarkus or how modular SpringBoot is. I guess Nest.js [1] would be the closest contender to aforementioned frameworks.
[1]: https://nestjs.com/
Also, I am not very lucky in having resemble 1:1 k8s cluster locally. You could be close, but as long as you run in the cloud you will have different configuration on local (additional annotations, various quirks that do not exist in kind/k3s but they are on GCP). However, making dedicated dev environments in the cloud might be very costly and incur a lot of additional tinkering.
[0]: https://tilt.dev/
[1]: https://docs.tilt.dev/api.html
[2]: https://docs.tilt.dev/example_csharp.html
[3]: https://github.com/tilt-dev/tilt-example-java/blob/master/10...
[0]: https://www.gingerbill.org/article/2021/07/05/value-propagat...
I am person, who in last few days tried out to use VoiceOver and move responsibility on it to navigate me and read contents, when I could code while I had closed eyes. Ironically the most annoying interface was CLI, because I had to extend my focus on contents of the terminal. Imagine running docker-compose up and you are going to spammed with reading all logs. Next, usually I had problem to find some relative point that I could mark a "milestone" in my head, which will be further point from I will be reading.
Also, not all commands are read after executing them. Such command is silly pwd. Everytime I write it down I had to move the VO cursor to read the contents. Also many characters I would recognize as a programmer VO reads differently. Nano editor was complete unusable for me. While in vim I had notable problem to recognize indentations characters (sometimes they are read and sometimes they don't) and to know in what mode am I actually. brew update+upgrade was a nightmare for me. All kind of separators like #### are read as "number", "number" spam. The same situation was with "clear" command. It was read a hundreds of "space", "space", "space"... I was starting to think I am going to the Moon or I play Portal 2 [0].
I could continue writing down my disappointment about the CLI interface that was among my favorites in past but now after this week with VoiceOver I think it is terrible to be blind, because most of time I had to use my eyes to help myself to recognize where I am and what I need to click to move to next element. I was very surprised by the rofi-like find of elements that are on the screen (named as Rotor feature, CapsLock+U). With VO I don't any longer needed to use mouse, which for anybody who has problem with wrists is also a nice thing to consider.
[0]: https://forum.affinity.serif.com/index.php?/topic/47502-affi...
Same here. I already own Affinity apps for Mac and on Windows but I don't see anything wrong with buying next Designer or Photo for Linux (with or without Wine/Proton). However, I know it is massive effort and still very complex errand to deliver even comparable experience on Linux as on Windows. I do still keep fingers crossed for Serif but it is frantic demand.
> I also don't believe that it has near-zero reputation.
Well, I guess I was too harsh but it is small company that already had various problems while operating (thankfully only downtime / lack of support) and it is hard to trust that no leak or breach will happen (and this is what makes me more concerned than some bureau). I also said "it has near-zero reputation for anyone looking for a private" - I don't generalize to whole service but only to private/safe message exchange. This service is perfectly fine for people in IT, startups or just personal emails but if I would be a person, who exchanges confidential documents I will stay away from Migadu. Why? They do not encrypt data on their servers [0][1], which is clearly opposite to what ProtonMail does [2].
[0]: https://www.reddit.com/r/privacytoolsIO/comments/ltcjc5/what...
> 4. They don't encrypt anything other than SMTP, IMAP, HTTPS. You can encrypt your emails manually but they don't encrypt anything on their servers. They claim this is impractical and doesn't truly help with privacy or security.
> 5. They don't force you to give them your real name or personal info, but there are no anonymous or cash payments. They only process payments via PayPal or Stripe though they claim to not keep any information about you that way.
[1]: https://www.migadu.com/procon/
[2]: https://protonmail.com/support/knowledge-base/what-is-encryp...
> For those who want multi-domain email services for a lower (flat) price, look at mxroute. It's based out of the U.S. though, which may not be an option for people who want certain services outside Five Eyes jurisdictions.
Weird speaking that, but I would be more of concerned of (an accidental) breach of privacy by some Migadu employee than some <country-name> burreau. Not saying about some typical script kiddie or some hacker-magician getting in possession of logins with passwords as leak. It is likely new on the market and I am tempted to say it has near-zero reputation for anyone looking for a private mail right now. Location do matter, but execution more.
They do work - transmit audio over the FM waves, but sadly the quality (buzzing noise) is far from expectations. Initially, I thought it is just my Raspi 3B, but when dived into the issues section on GitHub, I noticed more people were claiming they had similar problems. Do you know what could cause such degradation? Is there any better solution to transmit FM in a home?
Worrying fact is it also spams close ranges making them unable to listen. Have you applied any filter making it more stricter about the wave range it will take?
[0]: https://github.com/ChristopheJacquet/PiFmRds
Ouch, OOP in Go is just asking for a trouble. "Inheritance" by embedding anonymous struct/interface should be rarely used. Playing with a magic dependency injection, reflection mocking often do not leads to anything good too.
> In addition in Go I find the project setup and settings like GOPATH, GOBIN quite confusing.
I guess you work on Linux :) Yeah, it is weird, I am glad they have improved that flow by guessing empty GOPATH will be equal to $USER/go/ directory. GOBIN is actually not needed, only if you have used dep dependency manager, which for many years is deprecated.
> I tried really hard to like Go. I just couldn't.
I would expect something opposite for most of programmers. Especially, because Rust support in VSCode/JetBrains IDEs was not very good for many years. However, during talks with various people, I have noticed the Go was natural choice for many former Python or Ruby devs, while Node/Java guys had problem with adapting to it.
Personally, when I take a look at the Rust code it feels like some ECMA Script in a compiled world.
I won't try to play as a Go devil advocate, because I don't feel good enough today to start such discussion.
What is the worst thing I have experienced in Rust? Lack of good packages, especially if we speak about cloud stuff (rusoto and google-api-rs). Human resources put from cloud providers are very scarce. As longer I dived into the Rust the more I felt I am alone freak, because I had to work more hours to achieve the same result as in Go, PHP, Kotlin, TypeScript, C#. My use case of Rust was a GraphQL gateway (gRPC+HTTP) and after few weeks of idea verification the project was dropped. Mostly because instead of developing business logic the team was focused to implement own libraries for Google Cloud and other SaaS offerings on their own. Ridiculous, but Mozilla devs [0] went the same way by taking the whole job on their shoulders and they were generating subsets of APIs, because they cannot find any good, official libraries. It is frustrating and time consuming making Rust completely no-go for many teams.
> I've worked a decent amount with Go, but I'm also frustrated with the size of projects balloon. When I compare my Rust and Go code, the Rust code ends up being much smaller (LoC) and much more dense/terse.
I can exactly the same about the Rust. I think it was not the problem with tool but with something between chair and keyboard. I had a pleasure to see and refactor very bad Go code and actual ballooning was never a case if you have applied Clean / Solid architecture. The "ballooning" was actual something nice, because anyone in the team could pick the repository and take care of implementing new business logic.
The number of lines of code is quite bad metric for Golang, because famous "if err != nil" takes a nasty 3 lines, while in many languages you can write it using single liner. In my humble experience, the number of lines of most Go web apps can be often compared to TypeScript apps. Also many web apps that I have developed usually had hefty 2-5k LoC and it is not bad result if we consider C# or Java web apps.
> - Powerful hygienic and non-hygienic macros
Yeah, having marcros in Rust is a gem.
> - Builtin benchmarking
Same as in Go. See testing.B.
It is weird you have pointed out
> - Builtin documentation
Same as in Go. See godoc.
> - FFI with Swift, C, C++, Node, etc to share code everywhere.
I rarely see the case for FFI in web app - I don't imagine even using it like that. It was common case for chart, TeX document or other web to image rendering to embed some library. I think it is a bad approach and the best currently is just run that code as separate binary, because it helps in maintainability of a third party dependency and your devops teams will love that decision.
As a person who rewrote the rxi/lite [1] to Rust I can only say I am terrified how many times I had to sacrifice having unsafe calls to just use some C code in my Rust application.
> - Crates.io is like NPM - really discoverable and easy to upload (with its goods and bads)
Personally, I feel Go/Deno/Docker flow of the installing dependencies is more convenient. I don't project names that do not sound what they provide. Naming thing is bad and I often see many developers are scratching head to find some unique name, so it could be easier findable in NPM or other repository. They are wasting time at looking for something short and funny and not something that is easily discoverable.
For many years, my only way of looking for dependency is GitHub. It helps to verify and investigate the quality of the code before adopting it in the application. It sometimes also results in contributing back to the project, because I already know where the project is located.
> - Really good project management through modules/Cargo.toml
It is really complex I'd say. But Cargo.rs would be nice to have :P
> - Generics make Map/Reduce/Filter really easy and readable
Matter of time in Go. :)
> - Serde is fantastic at automatically serializing/deserializing datastructures
Oh, that's true. Go has numerous serializers (for only JSON there are about 20+ nice looking implementations) and it is still interesting to see new ones, especially because they bring many non-obvious optimizations. Kotlin serializer is also top notch thingy. I recommend to use protobufs types in Go - even for domain models. It is interesting how with Go2 can improve the situation.
> - Very pleasant logging and tracing
The log package is nice, together with macro log! is really pleasant to look at it how concise it is to fill some context parameters around the message. I think it is like Logrus in Go, except the syntax it has the same features. There is also Zap package that sacrifices readability for performance. There is no problem to embed number of line of code, calling function in Go logs either.
Tracing? Yep, it feels the same for both languages I think. I had used OpenTracing (Jaeger) and I hardly can say I miss something from one or other language. Maybe some macro/annotation wrapper that will be added on compile time? However, I rarely see any use case right now for complicating such thing like tracing.
> - Like, really really good error handling, esp compared to Go
Hey, it is not that bad! :D But well, as long as you use Goland you don't care about the if-err-non-nil.
If you switch for few days to Java-world you will be like in hell after developing in Go, because the error-over-exception flow is really helpful to provide code that does not have any kind of error and you, as a developer, can guess what happens in specific line without any println("1") or debugger. Monads are nice but I will not trade current if-err for them.
> - builtin testing framework
AFAIK all modern programming languages includes some testing framework: Kotlin (kotlin.test), Zig (std.test), Elixir (ExUnit) etc. I am glad both Rust and Go joined that club.
> If you're looking into using Rust for web, I recommend https://github.com/http-rs/tide - it's the most pleasant web framework I've ever used.
It is interesting, but I think even today there is nothing that I could label as a "framework" in Go world. You wisely choose the best packages matching your needs. The situation has improved with many libraries providing a GraphQL endpoint.
> I've worked a decent amount with Go
Reading your post, made me think you don't have good Go experience and it sounded bad IMHO. I guess you had nobody proficient enough in production-ready Go apps to evangelize it within the team or there was no reason to use Go (yep, it is not a perfect tool). ;)
From the positive side, I am glad more and more hackers on HN focus on that matter. Also worth noting big players on the market really do take that point seriously, e.g. Flutter has a Semantics tag [2].
[0]: https://github.com/rxi/lite
[1]: https://news.ycombinator.com/item?id=26223380
[2]: https://api.flutter.dev/flutter/widgets/Semantics-class.html
That was what many investors thought - see crude oil market in last days. There were two tribes - one saying week and second month(s) to solve the problem with ship. One selling, because of optimistic perspective and obviously other buying for opposite reason. In the result the price was standing still on the "same" level.
[0]: https://www.marinetraffic.com/en/ais/home/centerx:32.3/cente...
Few days ago, there was new version released (87). In certain situations, when silent upgrade had been made during using the browser it displays an "Oops, something went wrong" notification with a button to refresh. If you will close and reopen the Firefox the problem will vanish. It is less kind of crash but more likely as problem to free/monkeypatch resources.
I have run into the same problem on Linux but I have quite complicated Firefox configuration with at least few extra profiles (about:profiles).
[0] For example Kitemaker https://blog.kitemaker.co/building-a-rich-text-editor-in-rea... (AFAIK they use v0.47).
[1] Edit: TinyMCE team is focused to build their editor based on Slate - https://www.tiny.cloud/blog/real-time-collaborative-editing-...