HN user

imran-iq

378 karma
Posts3
Comments99
View on HN

Python is a really bad example of cold blooded software. There is constant breaking changes with it (both runtime and tooling). So much so that the author still has to use python2 which has been EOL'd for quite a while.

A much better example would be something like go or java where 10 year old code still runs fine with their modern tooling. Or an even better example, perl, where 30 year old code still runs fine to this day

My typing however, is very fast.

This is because you can remember where the keys are.

For Haxe, I thought it was not a method so I think it's either part of Std or StringTools.

How would autocomplete help you here? If you need to know if it was a global function or else where? This is learned knowledge that is available through the proper docs and not through autocomplete. This is how you know not to look for a global function. The difference is that instead of reaching for autocomplete to try and fill in the gap, I go to the documentation. I basically share the same feelings/experience with this comment[0]. Either I know what I am doing and I do not need autocomplete, or I need to learn in which case autocomplete just gets in my way and I would rather go to the docs.

I know I am not alone in this, for example I watch the lead developer of pidgin, Gary Kramlich, on twitch[1]. He does not use autocomplete, any time he has to look something up, its straight to the docs.

Similar with Jonathon blow[2], who is working on his own game, game engine, and language who just uses emacs (with no autocomplete) and visual studio for the debugger.

And even Mitchell Hashimoto[3], who has a similar workflow of using a dumb editor and then going to the docs when needing to learn.

I can also see the documentation on the parameters. Is the second parameter an index or a length?

The documentation on a per function basis does not contain enough information on how to use the library/framework. Take for example django's QuerySet aggregate function, would you learn enough from reading the function documentation here[4] on how to use it or from the actual documentation here[5]? Autocomplete wont give you anything close to the latter.

Also, if you work in a big codebase, you can't know every class.

The classes you don't know are just one "goto definition" away.

Needing to dig through code seems such a waste of time.

Needing to juggle through the autocomplete menu is a waste of time as you need to know _something_ for it be useful. It doesn't help you when you know _nothing_. I'd rather just go straight to the documentation or code.

---

0: https://news.ycombinator.com/item?id=37768953

1: https://www.twitch.tv/rw_grim

2: https://www.twitch.tv/j_blow

3: https://www.youtube.com/watch?v=rysgxl35EGc

4: https://github.com/django/django/blob/main/django/db/models/...

5: https://docs.djangoproject.com/en/4.2/topics/db/aggregation/

I also don't like autocomplete. The reason being that not having it actually forces me to learn the libraries I am using.

You know everything by heart?

You eventually reach that point. Do you still look down to see which keys you are typing?

This is also has the nice side effect of pushing you to use libraries that are stable and have good documentation as you can always reference them if need be.

If you fully disabled password authentication

It is not fully disabled, my dads account has a password for sftp.

Its covered more in part 1 (linked at the start of the blog post) but the repeated attempts at ssh'ing into my server actually killed sshd (which is how I found out about it).

The other problem is that this "server" is hosted on a residential connection in my computer room. This is just something I don't want to deal with and using a VPN fixes that since I do not need to deal with it, and its easy enough for my dad to use

Just my 2cents that I wrote about here[0]. It boils down to:

1. Ease of use for non technical folks (my dad in the post)

2. The dangers of having an exposed ssh port (even on non standard ports)

I just don't have the time or compute to constantly tweak my security settings for a publicly exposed port, so the easiest way to solve the problem is to not have the port publicly exposed

---

0: https://blog.imraniqbal.org/tailscale/

by instituting a GitHub based workflow to track patch status, but not everybody uses this.

The problem with using GitHub is that you are now at the whims of the US government[0]. If you have contributors in a sanctioned country they are not cut off from the project and their accounts. By pushing for GitHub you are signalling that you don't want free software, you only want "free for western countries" software

The nice thing about emails is that anyone can send an email. There is no third party account sign up needed.

I used to configure mutt to use imap and connect to Gmail directly, but gmail has gone out of their way to make imap as shitty as possible

That's the other big problem is that gmail (hotmail too) just sucks for email. Personally I've switched to fastmail and have no issues with imap/isync/offlineimap.

---

0: https://techcrunch.com/2019/07/29/github-ban-sanctioned-coun...

But what if it is the credit card company you are dealing with?

For example I wanted to cancel one of my credit cards. There was nothing in their FAQ's that mentioned anything around "canceling". There was nothing under "Account options" or any logged in setting menu. There was no chat/support on their webpage. They only have a phone line you can call. The phone line is completely automated, and has 2 menus to go back and forth, with no option to speak to a real person. You listen to the first menu, nothing is related to speaking to support or canceling a card. You listen to the second menu, same thing. You go back to the first menu, just to make sure you didn't mishear anything. The call disconnects because you took too long to figure out an option, Eventually you figure out you have to choose one of the options, then spam invalid input.

This finally gets into holding for a real support person. Unfortunately turns out all their agents are busy at the moment and there is a greater than 10 minute hold to get a support agent. If you would like you could hold your place in line and they will call you back when you are ready to take the call. You think to yourself, "sure why not?", and the call ends.

You get a call from their automated system 20 minutes later. It is finally your turn to speak to a human. An automated voice says: "Press 1 to confirm you are ready", you press 1. Nothing happens. The message repeats. You press 1 again. Yet again the message repeats. You spam press 1, the call ends.

You call the automated line again. Go 1 option deep and spam numbers again, get put into holding. This time you do not opt to have your place held in line. Shitty and horrible compressed music blasts into your ear. After about 20 minutes, you get a person. You explain you're canceling, support agent goes through the usual walk through and finally cancels your card.