wget https://github.com/MediaBrowser/Emby.Releases/releases/download/4.5.4.0/emby-server-deb_4.5.4.0_amd64.deb
sudo dpkg -i emby-server-deb_4.5.4.0_amd64.deb
sudo systemctl status emby-server.service
A piggy bank of commands, fixes, succinct reviews, some mini articles and technical opinions from a (mostly) Perl developer.
wget https://github.com/MediaBrowser/Emby.Releases/releases/download/4.5.4.0/emby-server-deb_4.5.4.0_amd64.deb
sudo dpkg -i emby-server-deb_4.5.4.0_amd64.deb
sudo systemctl status emby-server.service
You have a massive legacy spaghetti mess of code, and you need to add a new feature.
Write tests first.
Put all your new code in a new module, and only insert single lines into the legacy code to call the new code. This allows you to properly encapsulate the new code, wrap it in try/catch blocks, etc. and not break the legacy system.
Pass whole objects into the new code, this is a necessary consequence of encapsulation.
# First method: 131TiB
$ wget https://phillm.net/libgen-stats.php -O libgen-stats.json
$ cat libgen-stats.json | jq '.[]|.size_bytes' | perl -lne'$x+=$_;END{print$x}'
144116297318150
$ bc -l
144116297318150 / 1024 / 1024 / 1024 / 1024
131.07300884998949186410 Tebibytes
$ bc -l
144116297318150 / 1000 / 1000 / 1000 / 1000
144.11629731815000000000 Terabytes
## Languages
- Perl: best for fast prototyping
- Ruby: best for having fun
- Node: best for public projects
- Python: best for experiments
## Frameworks
### Perl
- DBIx::Class 💯
- Mojolicious 💯
### Node
- Express (popular)
- React?
- Koa?
- NestJS?
-....? for testing: Qunit?
-....? for web framework
### Python
- Django? (this one)
- Flask?
### Ruby
- Rails?
- Active Record?
## Libraries
### Perl
- just everything
### Node
- minimist reads command line arguments
- cheerio parses HTML
- daysjs manages dates/times
- customParseFormat plugin parses dates
- knex does CRUD on databases
- fs perfoms operations on the file system
- import process from 'node:process'; // process.exit(1);
Ludo: Here's the online slide deck from Mark Jason Dominus’ 2002 YAPC lightning talk “Design Patterns Aren’t”, on Professor Christoper Alexander, his book A Pattern Language, the ‘Gang of Four’ and design patterns.
APL was book two of a trilogy also incorporating The Timeless Way of Building (volume 1) and The Oregon Experiment (volume 3).
Alexander’s earlier work Notes on the Synthesis of Form was also a big hit with computer scientists in the 1960s, even though it, too, was primarily aimed at designers and architects. (And if you still have any empty shelves on your bookcase, Alexander’s 2002-2004 four-volume work The Nature of Order: An Essay on the Art of Building and the Nature of the Universe is apparently considered his magum opus; and he also published The Battle for the Life and Beauty of the Earth: A Struggle between Two World-Systems, about how his team designed & constructed a Japanese school, in 2012.)
Will: There's another book with a possibly contrasting view: Semantic Software Design. It says the main work in software is coming up with the concepts/paradigm/metaphor which explains what the software is doing. And also we shouldn't think of developers as manufacturers, builders or architects. But rather creative artists. Mainly because we never produce the same piece of work twice.