About Free and Open Source Software (FOSS)
PrevNode LinkHow can I become an open-source contributor?
Node LinkNextSee what I wrote about it on my homepage. I’m giving instructions there. You may also wish to read my “Advice for the Young” essay.
Can you help me intrude into/exploit (so-called “crack” or “hack”) someone’s server/instagram account/IRC account/Twitter/Facebook/etc.?
PrevNode LinkNextNo, and that is because I am not a computer intruder or a “cracker”, and even if I were versed in that, I wouldn't try to get myself and other people in trouble by trying to exploit vulnerabilities on useful, ethical, services.
There are better ways to handle your online problems than to try to do cracking. For more insights, see:
“Master Foo and the Script Kiddie” - a modern UNIX koan by Eric Raymond.
Q: Would you help me to crack a system, or teach me how to crack?
A: No. Anyone who can still ask such a question after reading this FAQ is too stupid to be educable even if I had the time for tutoring. Any emailed requests of this kind that I get will be ignored or answered with extreme rudeness.
Q: How can I get the password for someone else's account?
A: This is cracking. Go away, idiot.
Q: How can I break into/read/monitor someone else's email?
A: This is cracking. Get lost, moron.
Q: How can I steal channel op privileges on IRC?
A: This is cracking. Begone, cretin.
Are you a hacker?
PrevNode LinkNextThe word "Hacker" can mean several things. It can mean a computer intruder, in which case, see the question above - I am certainly not one. Otherwise, it can mean a clever and competent enthusiast of a certain field of endeavour, primarily used by and for computer workers, but not limited to them. As I note, by inspiration from other sources, hacking is at least several millennia old.
Anyway, a "hacker" is something that normally other people call you rather than something you call yourself. I aspire for excellence and continuous improvement in several fields of endeavour (including software development), but only other people can judge whether I am indeed a hacker of them. And my policy is to encourage criticism rather than fanboy/fangirl-ism.
You’re using Mercurial (on Bitbucket.org/etc.) for some of your projects. How can I learn how to use it?
PrevNode LinkNextThere are some links to tutorials on the Mercurial page of the Better-SCM site. More can be found in a web search for “mercurial tutorial”. Mercurial is not too hard to learn.
When building some of your CMake-based projects, I am getting an error for a missing “Shlomif_Common.cmake” file
PrevNode LinkNextYes, you can find it in this repository. Just put it in the source directory. Such a problem should not be encountered when building a source release from the source archive downloads.
How many Projects are you Working on?
PrevNode LinkNextI have originated, maintain, or contribute to more than one project and keep switch-tasking between them. Some of them have sub-projects or individual tasks. You can find some lists and activity logs on this page.
Do you have a GitHub account?
PrevNode LinkNextYes, see this link for more information.
Why are you working on this non-Perl 5/6 project? I thought you were a Perl guy!
PrevNode LinkNextWhile I have written a lot of Perl 5 code, and often still maintain it because it cannot be all reimplemented in something else overnight, Perl is not the only language I know and use. Perl is not exactly a religion that requires full devotion to its belief, and I actually met a woman who considers herself both a Christian as well as a Buddhist so…
For more information, see:
Why I Hate Advocacy - by Mark-Jason Dominus.
Why did you publicly share your solutions to Project Euler problems despite their request to avoid doing that?
PrevNode LinkNextFor several reasons:
Making the GitHub project public allows me to use Travis-CI and other CI services free of charge.
I enjoy sharing my work with others.
I think that Linus Torvalds’ quote that
Only wimps use tape backup: real men just upload their important stuff on FTP, and let the rest of the world mirror it ;)
has a grain of truth in it.It may be useful as evidence of the fact I solved these for prospective employers and other interested parties.
Do you solve the Project Euler problems in their order?
PrevNode LinkNextNo, I don't. I often skip problems which I find too difficult or not interesting enough. I did solve 149 out of the first 150 problems (excluding No. 143).
How do you keep organised? What do you use for To-Do lists?
PrevNode LinkNextFirst of all, see this post I wrote about why E-mail is not only a to-do list, and about the fact that other resources serve as virtual to-do lists. For my proper to-do lists, I use gvim/vim, either using plaintext or using the vim-quicktask plugin.
Why do you mention that a certain work or post is copyrighted by you and under a certain licence?
PrevNode LinkNextFirst of all note that IANAL/etc. Anyway, I try to give explicit and more permissive licences (e.g: Creative Commons ones) to all my posts and works because otherwise they are “All Rights Reserved” by default and so under much more restrictive implicit licensing conditions. I know that Ashleigh Brilliant got copyright to apply to relatively short sentences (which most of my posts are longer than them), and that there was a court decision that made it a violation to sample and reuse even a single chord of a copyrighted song. So there may not be a minimal limit to how substantial a copyrightable work can be.
Most of the licences I use permit some use that will be normally be forbidden by default, so you are better off, and it is better to be safe than sorry.
Also see:
What is the “Expat License”?
PrevNode LinkNextIt is what the FSF calls the so-called MIT License (or SPDX: MIT
). The original X11 licence has an extra clause.
Why do you have so many GitHub repositories?
PrevNode LinkNextMany of my GitHub repositories were one-off clones for correcting some typos, or fixing a bug followed by a pull request. Deleting them all will require some time, and also requires entering the password again.
Another factor that makes my repositories more numerous is the fact that I use individual repositories for some image macros, for some stories and screenplays, and for some essays. I am not a purist of the "monorepo" strategy.
Why are you still using Perl? Can't you rewrite all your Perl code in Python / JavaScript / TypeScript / Erlang / Intercal / etc.?
PrevNode LinkNextIt is true that Perl 5 seems to have somewhat fallen out of favour, but as much as I like Python (and I do), I still also like Perl. One cannot rewrite their entire codebase in [insert hyped language/stack/framework/technology of the present] every 6 months or so. Back when I was interested in learning Ruby, some of its enthusiasts implied I should use Rails for my sites. And guess what? The Rails and Ruby craze and hype are gone, and Rails has its share of issues, and I'm glad my site was not converted to be a Rails application. It can also happen to node.js, Python, PHP, or WordPress.
Currently, perl5 is quite actively developed with annual major releases, and with as little backward compatibility broken as possible. The CPAN ecosystem is not quite as active as PyPI or npm, but still proves useful often, and also avoids breaking backward compatibility as much as possible. Moreover, I can often make use of modules and libraries in other languages using the Inline::* family of CPAN modules and other FFIs.
Note that I also write some new code in Python, Julia, bash, C, C++, and other languages.
Shlomi Fish on Twitter: "From #IRC : One thing we appreciate about #perl #CPAN, is that there is often a "category killer", which while not always perfect, is used. On PyPI and npm, many use cases have many alternatives (re https://t.co/xCbM7jfC2t ; https://t.co/Nx8Uu3JvAw) without a clear winner."
( Tweet )
Shlomi Fish on Twitter: via @nixsanctuary : “My 20 Year Career is Technical Debt or Deprecated”.
I can emphatise, but as opposed to him, large amounts of my FOSS / Creative Commons / etc. code+content are still functional (after many transitions) .
Avoiding being an early adopter has advantages.
( Tweet )
Why did you quit using and contributing to Mageia Linux?
PrevNode LinkNextContributing to Mageia was too time consuming, and Mageia is too obscure, unpopular, and mismanaged. I like Fedora and Debian better. I told Atlas to shrug given an overworked and miserable contributor (whether paid or not) likely accomplishes little. This is regardless of how much important the project is.
Why are you using VLC? (Instead of mpv?)
PrevNode LinkNextFirst of all note that I use mpv for quickly playing media files from the command-line. Otherwise, I prefer VLC's user-interface and its overall user-experience. They are not perfect, but generally better than mpv's spartan one.
Why do your projects’ releases skip odd minor version numbers?
PrevNode LinkNextThis is what the "Producing OSS" book calls "The Even/Odd Strategy". Quoting from it ( under CC-by-sa ):
Some projects use the parity of the minor number component to indicate the stability of the software: even means stable, odd means unstable. This applies only to the minor number, not the major or micro numbers. Increments in the micro number still indicate bug fixes (no new features), and increments in the major number still indicate big changes, new feature sets, etc.
The advantage of the even/odd system, which has been used by the Linux kernel project[78] among others, is that it offers a way to release new functionality for testing without subjecting production users to potentially unstable code. People can see from the numbers that "2.4.21" is okay to install on their live web server, but that "2.5.1" should probably stay confined to home workstation experiments. The development team handles the bug reports that come in from the unstable (odd-minor-numbered) series, and when things start to settle down after some number of micro releases in that series, they increment the minor number (thus making it even), reset the micro number back to "0", and release a presumably stable package.
This system preserves, or at least, does not conflict with, the compatibility guidelines given earlier. It simply overloads the minor number with some extra information. This forces the minor number to be incremented about twice as often as would otherwise be necessary, but there's no real harm in that. The even/odd system is probably best for projects that have very long release cycles, and which by their nature have a high proportion of conservative users who value stability above new features. It is not the only way to get new functionality tested in the wild, however. In the section called “Stabilizing a Release” we will examine another, perhaps more common, method of releasing potentially unstable code to the public, in which the release number is further marked so that people have an idea of the risk/benefit trade-offs immediately on seeing the release's name.
For what are you using Inkscape?
PrevNode LinkNextLately, I've been mostly using it for captioned images.
Why is your uptime so low?
PrevNode LinkReading from my Facebook post:
Today I'd like to share a story told by a friend. At his workplace, they had a computer running Gentoo Linux which wasn't rebooted for a while and accumulated a large uptime. Then one day they had to reboot it for some reason. This friend gave me one guess to guess what happened then. I guessed that "it didn't work". I was right.
While mainframe computers tend to accumulate years of uptime, I suspect their software and hardware made some design compromises to accommodate for that.
My uptime record was 34 days:
I try to reboot every kernel update.
I do enjoy “Uptime Funk - A SUSE Music Parody” though.