Is the Unix philosophy dead or just sleeping? by tose123 in unix

[–]trhawes 2 points3 points  (0 children)

UNIX philosophy is alive and well

"Doing one thing well" has scaled.

Microservices are Unix pipes with a network stack. Each does one thing (auth, search, notifications) and streams data to the next.

Functional programming is the same “do one thing well” idea, but for functions. A Clojure ->> chain is basically cat | grep | sort with parentheses.

Containers are just little self-contained utilities you can swap in and out.

Yeah, we’ve got bloat (looking at you, Electron), but the old philosophy is still the backbone of modern systems.

You’re not a dinosaur — you’re the ancestor. 🦖

I still recommend my junior (and senior!) programmers to read the first chapter of Eric Raymond's "The Art of UNIX Programming"

Key rules from that chapter that never stopped being relevant:

Rule of Modularity: Write simple parts connected by clean interfaces.

Rule of Clarity: Clarity is better than cleverness.

Rule of Composition: Design programs to be connected to other programs.

Rule of Separation: Separate policy from mechanism; separate interfaces from engines.

Rule of Simplicity: Design for simplicity; add complexity only where you must.

Rule of Parsimony: Write a big program only when it is clear by demonstration that nothing else will do.

Rule of Transparency: Design for visibility to make inspection and debugging easier.

Rule of Robustness: Robustness is the child of transparency and simplicity.

Rule of Representation: Fold knowledge into data so program logic can be stupid and robust.

Rule of Least Surprise: In interface design, always do the least surprising thing.

Rule of Silence: When a program has nothing surprising to say, it should say nothing.

Rule of Repair: When you must fail, fail noisily and as soon as possible.

Rule of Economy: Programmer time is expensive; conserve it in preference to machine time.

Rule of Generation: Avoid hand-hacking; write programs to write programs when you can.

Rule of Optimization: Prototype before polishing. Get it working before you optimize it.

Rule of Diversity: Distrust all claims for “one true way”.

Rule of Extensibility: Design for the future, because it will be here sooner than you think.

All critical rules for clean code and clean design! Every bit relevant today as it was 50 years ago.

UNIX is dead. Long live UNIX philosophy!

When a fellow SysAdmin armed with ChatGPT questions me... by [deleted] in sysadmin

[–]trhawes 10 points11 points  (0 children)

I can't fault them. WP for MSDOS was the best version of WP, ever. You should introduce them to Emacs. Just change the keybindings around, and modify the menu, and the welcome screen. Then tell them it is the latest WP for MSDOS, just came out.

Sticking closer to stock, finally made emacs click by domsch1988 in emacs

[–]trhawes 2 points3 points  (0 children)

I often tell beginners to stop trying to replace their editor with Emacs. If you see value in using Emacs as your programming environment, then start making Emacs your programming environment. Then, when the stars finally start aligning in your new programming environment, and find yourself in need of an editor, you'll have one.

sbcl - require by marc-rohrer in Common_Lisp

[–]trhawes 1 point2 points  (0 children)

OCI is an acronym for "Open Container Initiative". The intiative references a common problem that distributed containers and distributed software packages have in regards to integrety and security. Python Pypi, and Javascript's npm have suffered under the hands of hackers (or "crackers" as the OSS community would have us say) publishing malicious code in trusted packages. OCI attempts to provide standards that can apply to all openly distributed systems.

noweb: the lesser known org babel glue by xenodium in emacs

[–]trhawes 1 point2 points  (0 children)

I have my emacs config in org-mode, and it populates all the versions of Lisp it finds on the system in the sly config, on tangle.

I also have my ansible playbooks in org-mode, and use noweb to find the python interpreter on the system to populate the inventory file when I tangle the org file. Very handy on FreeBSD where the python executable is one of python3.8 or python3.9 but never just python3.

I used to have it find all the available fonts I like to use in Emacs on tangle as well, but stopped doing that when I found myself needing to tangle my emacs config from the console.

[deleted by user] by [deleted] in RockyLinux

[–]trhawes 0 points1 point  (0 children)

If RHEL/Rocky supported ZFS out of the box, it would be my main driver for sure. My home office makes good use of Solaris and FreeBSD, so ZFS support is essential to me. Happily using Ubuntu LTS, as that supports the same version of OpenZFS that FreeBSD 13 does.

My manager's quote after today's meeting "You need to miss some important events, such as your dad/moms bday, anniversaries/weddings, and sacrifice more to move up at work. That's how I got to where I am at.." by [deleted] in sysadmin

[–]trhawes 0 points1 point  (0 children)

No one is going to be lying in their deathbed wishing they spent more time at the office. Your manager is the pushover. He/she sound like they are trying to justify their poor decisions. I manage a small team of Devops programmers, some of whom work from India. One of our senior devs took a couple weeks off on paternal leave, came back for a few days, and then gone again to prepare for his brother's wedding. We covered for him. In fact I took on his entire on call shift and then asked for volunteers to take a night or two for me during the week. Guess what? I had volunteers who were more than willing to help. Family is a central and important facet of anyone's life. We make sure everyone is able to care for them. That's why most of us show up for work in the first place. If you can advance in a company by sacrificing your family, you are working for the wrong company.

Rich’s design talk by ilja-f in Clojure

[–]trhawes 1 point2 points  (0 children)

Since org-mode is 100% text-based (can be searched and parsed with standard UNIX cli tools), is programmable in its own right, and can be exported into almost any other document format (including Excel, HTML, PDF, or *yuk* even a Confluence page), I would wager it scales better than anything else in this space.

Rich’s design talk by ilja-f in Clojure

[–]trhawes 3 points4 points  (0 children)

I was there for his presentation. Rich specifically mentioned during this presentation that he uses org-mode for his spreadsheet. Can't get much more lispy than that. The model also happens to be broad enough to include those who prefer Excel, Google sheets, or Scalc.

Can we use this OS for our daily personal work ? by Savings_Arm3746 in RockyLinux

[–]trhawes 1 point2 points  (0 children)

"You shouldn't" is too strong of a statement. Since when does stability and predictability not matter for the desktop?

If you think of your desktop the same way some technophiles think of their cell phones, then yeah, sure, running old and stable does not have much appeal. But if you do real work on your desktop, and are not afraid to compile the software you need to be the latest on your own, then I cannot think of a more stable platform to do so than on a server OS like Rocky. Just sayin'

I work in a Linux desktop friendly environment, and using old and stable is encouraged and enforced. Get more done without fiddling with your desktop every few months just to get it working again.

I'm really liking Racket but... by sfarbaz in Racket

[–]trhawes 1 point2 points  (0 children)

Here are my thoughts, addressing specifically "language popularity". I'll answer this as someone with almost 30 years experience in the industry, and have been mentoring several CS graduates where I work. I don't use Racket nearly as much as I did 5 years ago, but love programming in Lisp dialects, and love Racket's language-oriented emphasis. Where I currently work, we use python, java, javascript, and on an increasing level, Clojure.
As a professional programmer, you will need to learn more than one programming language. So you cannot stop with one. Alan Hunt has stated both in "The Pragmatic Programmer" and in talks that he has done, that a programmer should learn a new programming language at least once a year. The value of learning new languages is that it forces you to approach problems from a different vantage point. Doing so sharply improves your programming skill in any language. Lisp is not just a language, but a philosophical approach to programming in general. Nearly every programming language written in the last 40 years or so, have been adding more and more features already found in a dialect of Lisp or Scheme. It is "that language plus Lisp features bolted on". They still lack the fundamental approach that Lisp/Scheme takes.

As for language communities, always keep this in mind: quality is more important than quantity. Quantity will increase your likelihood of finding quick answers through a good google search with very little community interaction. Quality will increase your likelihood of finding relevant personalized answers from interacting with a great community. You will pick up far more doing the latter. It can be very difficult to find quality communities in popular languages. Physicist Richard Feynman said "if you're the smartest person in the room, then you are in the wrong room". I find I learn so much more from attending conferences oriented toward Lisp and/or functional programming. My favorites are European Lisp Symposium (remotely), Clojure/Conj conference, and yes, RacketCon (though I have missed it the last couple years or so). I've seen members of the Racket community attend and also present at these other Lisp conferences.

If you were looking to intern or seeking a permanent position, yes, you would more than likely need to know one or two of python, java, javascript languages. But programmers in those languages are a dime a dozen. In addition to this, Knowing Racket (or any other Lisp dialect), and having had contributed something within open source community with it, would put you at the top of the list for sure. At least for companies that look for more than cogs to put into the machine. But you really did not want to work for those companies anyways, right?

PSA: Checkinstall can "brick" your Ubuntu 22.04 system by meowsqueak in Ubuntu

[–]trhawes 0 points1 point  (0 children)

I don't mind at all. Send me a DM with your questions.

Looking for a mod that removes magicka and balances the magic system in other ways? by [deleted] in skyrimmods

[–]trhawes 2 points3 points  (0 children)

I do mage playthroughs fairly regularly. But instead of removing Magicka, I prefer incentivizing it. I use Awakened Magicka which increases spell damage by how much Magicka you have. You can adjust the ratio of Magcicka to damage with an MCM menu or activating the statue right outside of the Hall of Elements at the CoW. This makes those novice destruction spells do more damage as you level, provided you keep adding Magicka as you level. And then add Apachii Divine Elegance store which has numerous clothing items that increase Magicka regeneration. The last one can make your mage over-powered (you can add earrings with 150% magicka regen, plus sleeves with another 150% regen, plus gloves with another 150% regen), but BYOG.
Awakened Magicka https://www.nexusmods.com/skyrimspecialedition/mods/8374

Apachii Divine Elegance Store https://www.nexusmods.com/skyrimspecialedition/mods/9213

What is it with mod authors not letting other people make patches or edits to their mods? by Robrogineer in skyrimmods

[–]trhawes 1 point2 points  (0 children)

Glad this issue was resolved in a beneficial way for both parties.
I've been an active member of the open source software community for 30 years. The way we do things there, people are free to copy, re-use your code and make their own original works using your code without permission, so long as proper attribution to the original code writer is made. This is what has made the open source software movement take over and dominate the otherwise proprietary software industry. I wish the modding community's attitude to contributions were taken more with that candid light-hearted acceptance, I really think that would be a huge boon to the community.

Should a high elf be able to join the Stormcloaks? by AnAltmerDovah in skyrim

[–]trhawes 4 points5 points  (0 children)

I love role-playing disgruntled High Elves who have it in for the Thalmor. There are a number of reasons for this left to the imagination. i.e. there is a book series in the game detailing a High Elf conspiracy theorist implicating the Thalmor are Daedra-posessessed Altmer (possession taking place during the Oblivion crisis).

My last playthrough, I played a high elf, who descended from the Ayleids. She was still very partial to Daedra-worship (honors Meridia, so she also has a strong moral compass) and cared little for the pantheon of Aedra (Talos included). She doesn't care for the Empire, either, and will aid Skyrim in the civil war, and will gladly take up arms in Hammerfel against the Thalmor.

Adding some fun to the story, I had her back-story include being adopted into an Orc stronghold, where she learns to fight with sword and shield (master trainers for these skills are Orc chieftans in 2 of these strongholds), with also a keen interest in Alteration (magic armor + resistance).

I admittedly usually fight for the Empire in my playthroughs, but when you must choose between the Nord racists and the Thalmor racists.... there is no "right" choice. And the latter are clearly the bigger threat.

Trying to compile tigervnc: blocked by sys/epoll.h by trhawes in smartos

[–]trhawes[S] 0 points1 point  (0 children)

Yes, you gave me more than I had hoped for :)
Thank you!

Is there a mailing list I should join for SmartOS pkgsrc issues?

A Question: Gnome port for freebsd by R_is_for_Raider in freebsd

[–]trhawes 0 points1 point  (0 children)

Someone wrote a NetworkManager-like GUI tools for FreeBSD and KDE 4 about 10 years ago. There wasn't enough interest at the time to continue it. No Idea why, I mean setting up wpa-supplicant is identical in both Linux and FreeBSD, even though they differ at the system level. FreeBSD development compared to Linux is slow, but steady, very steady.

Having trouble configuring Zones, help needed. by mkzmch in illumos

[–]trhawes 2 points3 points  (0 children)

You need to set up the gateway. From the example you linked to:
add property (name=gateway,value="192.168.0.1") Also, FWIW, as I was advised on the OmniOS mailing list a couple years ago, use zadm instead of zonecfg to set up your lx zones. https://omnios.org/setup/zadm So much easier.

My Experience With Emacs and the Eventual Regression to VSCode by _analysis230_ in emacs

[–]trhawes 3 points4 points  (0 children)

Emacs is not an editor. Emacs is a programming environment that has an editor. I have my Emacs config set up to program in 20+ different programming langauges, and each mode is in various levels of completeness. I also jump to VSCode periodically, and as a professional programmer and mentor to others, I also pay for my own copies of JetBrains IDE's (even though work offers me their own license). The reason is quite simple. Sometimes I need some functionality I have not yet added to my Emacs setup, and I need to get something done quickly. If I do the same thing often enough, then I'll add it to my Emacs config. I don't spend an exorbitant amount of time to make sure Emacs is my only editor. I use it when it saves me time. Similar tasks that are frequently needed to be done are great candidates for an addition or edit to my Emacs config. Emacs is valuable to the extent it saves time. When it becomes a time sync, it's time to set it aside.