Hacker Newsnew | past | comments | ask | show | jobs | submit | teach's commentslogin

Perl was the first language I learned on my own after graduating university many years ago. I fell in love with it because of quirks like these and because code written in it can have a poetic quality you don't see often.

Now I am old and joyless and I want the code I write for work to be boring and unsurprising.

But sometimes one can still want to write poetry.


Perl was also my first productive language, and I do miss it a little. Write something like []string{"foo", "bar", "baz"} in go and you really appreciate qw(foo bar baz). Perl was always designed to be easy to type in, and maybe not so easy to maintain later. Good memories, but not for me anymore.

All of the Quote and Quote-like Operators, and __DATA__, and so many other niceties..

Agreed!

I learned Perl after trying C; and after struggling with `scanf` (not even getting to tokenization), the ease and speed of `while (<>) { @A = split;` for text-handling made it easy to fall in love. This (in the mid 90s, before Java, JavaScript, and C++ TR1) was also my first contact with associative arrays.

I was also drawn to the style of the Camel Book.

More than most other languages, Perl encouraged one-liners. When I later read PG's "Succinctness is power" essay, I thought of Perl.

https://paulgraham.com/power.html


> This (in the mid 90s, before Java, JavaScript, and C++ TR1) was also my first contact with associative arrays.

Associative array is just a fancy term for map / dictionary. C++ has always had one of those, even before TR1: std::map (which is a tree under the hood). It does have the extra requirement that your key be ordered, which isn't part of the core definition of associate array[1]. But usually it's not a problem even if you don't actually need the ordering.

As I think you're implying, TR1 / C++11 added std::unordered_map, which is a hash table and doesn't need keys to be ordered (just hashable).

[1] It isn't part of the core definition of "map" either, which despite C++'s usage just means the same thing as dictionary / associative array. A lot of those early STL containers are confusingly named: e.g., in general, "list" just means some ordered sequence of elements, so it covers static arrays, dynamic arrays, and linked lists, but C++ uses this term for linked lists, probably the least likely understood meaning. It use of the term "vector" for contiguous dynamic arrays is very odd. But I'm now way off topic...


This isn't the first time I've said this but also had an early-career job writing Perl code. And I actually got to the point where I liked it -- I mean I could see why it had a following.

Subsequently I've written code in almost every popular programming language and I will frequently go years between languages but even so I have very little trouble picking them back up. Even C++. But not Perl. It's just so weird with so many idiosyncrasies that I just can't remember it.


I discovered Perl directly after PHP before Web 2.0 days. Compared with the extreme, Java or (contemporary) Go, Perl codes (can) have a soul. Interestingly, modern ECMAScript (JS) brought in a few of the nice breweties from Perl world which I haven't seen a long time.

I'm having to write a lot more perl at work than I would prefer to. It's still poetry, I suppose, but mostly of the bathroom-stall variety.

Ruby took the best parts of Perl and got rid of the worst. Give it a shot :)

I actually switched to Ruby for this very reason and used it for a few years. I still have a soft spot for Ruby as well.

Unfortunately I had a different experience with the Ruby community, so I eventually switched to Python along with apparently everybody else.


Please show me an example of Perl that looks beautiful.

I don't believe you.



> My router assigns dynamic IP addresses, meaning my server location kept changing.

I've had a similar problem in the past. It turns out that most routers have a way to assign an IP address statically based on the MAC address of the requesting device without affecting the other DHCP devices on the network.

I do this for my pi-hole, my NAS and my gaming PC.


> Dynamic IPs

I thought that step one of geekdom was assigning a few static IPs.

Ruining the home network while ‘optimising’ has happened a few too many times.


As long as that's on the router's side. I guess I did that on my phone for some reason so when I upgraded and migrated they had the same address. I'm surprised it worked at all. It was just painfully slow.

The wording can vary quite a bit: I've seen names like static, fixed, DHCP reservation, etc. -- I tend to like DHCP reservation, because from the client's perspective, "static" means not using DHCP, but this does use DHCP (just not the pool).

Most home routers also have some addresses that are outside the range managed by DHCP, or if DHCP is set to manage the entire range of LAN address have a setting where you can reduce that range. This gives you a third way to manage static assignments.

Let's assume the LAN is 10.0.0/24, so addresses of devices on the LAN are 10.0.0.1-10.0.0.254. In the following I'll omit the 10.0.0. part of an address, so will just refer to addresses 1-254.

Find the range DHCP manages, which should be somewhere in the router settings. If it is 1-254 reduce it. Let's say it is 1-200 (either by default or after you have reduced it).

Then you can simply go the settings on your server or other device that you want to have a static address and configure it to use a hard coded address outside that range, such as 201.

A possible downside of that is that on some devices if you want to give it a hard coded address you also have to hard code the gateway address and the name servers.

Some devices though have an option to use a hard coded address but still get the gateway and name servers from DHCP.

In summary, there are three ways to manage address for a given device on most home routers.

1. DHCP assigns the address. It can choose any address in its pool. Each time the device needs an IP address, such as after a boot or when its lease expires, it could get a different IP address.

2. DHCP assigns the address, but you can tell it to give a specific address from the pool to a given device identified by the device's MAC address.

3. Tell the device to use an address outside the router's DHCP pool. It's up to you to decide how to assign these address and how to make sure no conflicts arise.

For #2 if you want some device to have a fixed IP address but you don't actually care what that address is, many routers have an easy way to do that. Connect the device under #1, so DHCP picks the address.

Then go find the table in the router's web interface that shows all currently connected devices and find your device. Many routers will have a toggle in there to tell it to switch to #2 for that device. From then on the device's current address will be reserved for it.

That's a little easier than going through their "assign an IP" dialog, because that usually makes you enter the MAC address. If you go through the connection table details it doesn't have to ask you for the MAC address.


What's bizarre is that my previous TP-Link routers alawys had this ability, but when I upgraded two years ago, it was gone.

My current TP-Link router hides this behind the "Advanced" settings toggle.

I've got a TP-Link Archer C7, hardware version 5. No such toggle unfortunately, but thanks nevertheless. Perhaps I should try and flash it with OpenWRT.

For me, the top comment is currently cmarschner's day-old comment enumerating a bunch of other examples of botched redaction





I've been on HN a long time and this comment was the one to finally make me realize that "animats" is "stamina" spelled backward.


See, I didn't even realize that --- wasn't what I was referring to! :)


Is it possible that the fairly-specific term "slop" has ALREADY been co-opted to mean "LLM-generated context which I don't like"?!?

Because personally I'M tired of folks using that word inappropriately.


The term originated on 4chan before the advent of mass AI-generated content. Only the normified definition of the word means "LLM-generated content I don't like".


Slop has been coopted to mean any content the writer doesn't like.


Clickbait WORKS.

There's a reason it's banned in HN submissions


> Is it used outside of Sqlite?

Not really. It's one of the early _distributed_ version control systems, released a little after git but before git gained widespread acceptance.

It has a built-in (optional) web UI, which is cool, and uses SQLite to store its state/history.

[0] https://en.wikipedia.org/wiki/Fossil_(software)


For what it's worth, they already fail to update the status page. We had an "outage" just this morning where jobs were waiting 10+ minutes for an available runner -- resolved after half an hour or so but nothing was ever posted

https://downdetector.com/status/github/


Last week (Sunday to Sunday) I had a repo running a lot of cron workflows 24/7. After like 4 or 5 days I exceeded the free limits (Pro plan) and so set up self hosted runners.

After like day 2 my workflows would take 10-15 minutes past their trigger time to show up and be queued. And switching to the self hosted runners didn't change that. Happens every time with every workflow, whether the workflow takes 10 seconds or 10 minutes.


I don't want to shit on the Code to Cloud team but they act a lot like an internal infrastructure team when they're a product team with paying customers


Yeah, I saw a demo of this in a robotics lab at my local university like 20+ years ago and thought full self-driving was right around the corner.

It will probably EVENTUALLY show up, but I'm thinking it's more like decades away at this point.


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

Search: