It would seem that I have far too much time on my hands. After the post about a Star Trek "test", I started wondering if there could be any data to back it up and... well here we go:
Name | Total Lines | Percentage of Lines |
---|---|---|
KIRK | 8257 | 32.89 |
SPOCK | 3985 | 15.87 |
MCCOY | 2334 | 9.3 |
SCOTT | 912 | 3.63 |
SULU | 634 | 2.53 |
UHURA | 575 | 2.29 |
CHEKOV | 417 | 1.66 |
Name | Total Lines | Percentage of Lines |
---|---|---|
PICARD | 11175 | 20.16 |
RIKER | 6453 | 11.64 |
DATA | 5599 | 10.1 |
LAFORGE | 3843 | 6.93 |
WORF | 3402 | 6.14 |
TROI | 2992 | 5.4 |
CRUSHER | 2833 | 5.11 |
WESLEY | 1285 | 2.32 |
Name | Total Lines | Percentage of Lines |
---|---|---|
SISKO | 8073 | 13.0 |
KIRA | 5112 | 8.23 |
BASHIR | 4836 | 7.79 |
O'BRIEN | 4540 | 7.31 |
ODO | 4509 | 7.26 |
QUARK | 4331 | 6.98 |
DAX | 3559 | 5.73 |
WORF | 1976 | 3.18 |
JAKE | 1434 | 2.31 |
GARAK | 1420 | 2.29 |
NOG | 1247 | 2.01 |
ROM | 1172 | 1.89 |
DUKAT | 1091 | 1.76 |
EZRI | 953 | 1.53 |
Name | Total Lines | Percentage of Lines |
---|---|---|
JANEWAY | 10238 | 17.7 |
CHAKOTAY | 5066 | 8.76 |
EMH | 4823 | 8.34 |
PARIS | 4416 | 7.63 |
TUVOK | 3993 | 6.9 |
KIM | 3801 | 6.57 |
TORRES | 3733 | 6.45 |
SEVEN | 3527 | 6.1 |
NEELIX | 2887 | 4.99 |
KES | 1189 | 2.06 |
Name | Total Lines | Percentage of Lines |
---|---|---|
ARCHER | 6959 | 24.52 |
T'POL | 3715 | 13.09 |
TUCKER | 3610 | 12.72 |
REED | 2083 | 7.34 |
PHLOX | 1621 | 5.71 |
HOSHI | 1313 | 4.63 |
TRAVIS | 1087 | 3.83 |
SHRAN | 358 | 1.26 |
Important Note: As the source material is incomplete for Discovery, the following table only includes line counts from seasons 1 and 4 along with a single episode of season 2.
Name | Total Lines | Percentage of Lines |
---|---|---|
BURNHAM | 2162 | 22.92 |
SARU | 773 | 8.2 |
BOOK | 586 | 6.21 |
STAMETS | 513 | 5.44 |
TILLY | 488 | 5.17 |
LORCA | 471 | 4.99 |
TARKA | 313 | 3.32 |
TYLER | 300 | 3.18 |
GEORGIOU | 279 | 2.96 |
CULBER | 267 | 2.83 |
RILLAK | 205 | 2.17 |
DETMER | 186 | 1.97 |
OWOSEKUN | 169 | 1.79 |
ADIRA | 154 | 1.63 |
COMPUTER | 152 | 1.61 |
ZORA | 151 | 1.6 |
VANCE | 101 | 1.07 |
CORNWELL | 101 | 1.07 |
SAREK | 100 | 1.06 |
T'RINA | 96 | 1.02 |
If anyone is interested, here's the (rather hurried, don't judge me) Python used:
#!/usr/bin/env python
#
# This script assumes that you've already downloaded all the episode lines from
# the fantastic chakoteya.net:
#
# wget --accept=html,htm --relative --wait=2 --include-directories=/STDisco17/ http://www.chakoteya.net/STDisco17/episodes.html -m
# wget --accept=html,htm --relative --wait=2 --include-directories=/Enterprise/ http://www.chakoteya.net/Enterprise/episodes.htm -m
# wget --accept=html,htm --relative --wait=2 --include-directories=/Voyager/ http://www.chakoteya.net/Voyager/episode_listing.htm -m
# wget --accept=html,htm --relative --wait=2 --include-directories=/DS9/ http://www.chakoteya.net/DS9/episodes.htm -m
# wget --accept=html,htm --relative --wait=2 --include-directories=/NextGen/ http://www.chakoteya.net/NextGen/episodes.htm -m
# wget --accept=html,htm --relative --wait=2 --include-directories=/StarTrek/ http://www.chakoteya.net/StarTrek/episodes.htm -m
#
# Then you'll probably have to convert the following files to UTF-8 as they
# differ from the rest:
#
# * Voyager/709.htm
# * Voyager/515.htm
# * Voyager/416.htm
# * Enterprise/41.htm
#
import re
from collections import defaultdict
from pathlib import Path
EPISODE_REGEX = re.compile(r"^\d+\.html?$")
LINE_REGEX = re.compile(r"^(?P<name>[A-Z']+): ")
EPISODES = Path("www.chakoteya.net")
DISCO = EPISODES / "STDisco17"
ENT = EPISODES / "Enterprise"
TNG = EPISODES / "NextGen"
TOS = EPISODES / "StarTrek"
DS9 = EPISODES / "DS9"
VOY = EPISODES / "Voyager"
NAMES = {
TOS.name: "Those Old Scientists",
TNG.name: "The Next Generation",
DS9.name: "Deep Space Nine",
VOY.name: "Voyager",
ENT.name: "Enterprise",
DISCO.name: "Discovery",
}
class CharacterLines:
def __init__(self, path: Path) -> None:
self.path = path
self.line_count = defaultdict(int)
def collect(self) -> None:
for episode in self.path.glob("*.htm*"):
if EPISODE_REGEX.match(episode.name):
for line in episode.read_text().split("\n"):
if m := LINE_REGEX.match(line):
self.line_count[m.group("name")] += 1
@property
def as_tablular_data(self) -> tuple[tuple[str, int, float], ...]:
total = sum(self.line_count.values())
r = []
for k, v in self.line_count.items():
percentage = round(v * 100 / total, 2)
if percentage > 1:
r.append((str(k), v, percentage))
return tuple(reversed(sorted(r, key=lambda _: _[2])))
def render(self) -> None:
print(f"\n\n# {NAMES[self.path.name]}\n")
print("| Name | Total Lines | Percentage of Lines |")
print("| ---------------- | :---------: | ------------------: |")
for character, total, pct in self.as_tablular_data:
print(f"| {character:16} | {total:11} | {pct:19} |")
if __name__ == "__main__":
for series in (TOS, TNG, DS9, VOY, ENT, DISCO):
counter = CharacterLines(series)
counter.collect()
counter.render()
I'm working on a some materials for a class wherein I'll be teaching some young, wide-eyed Windows nerds about Linux and we're including a section we're calling "foot guns". Basically it's ways you might shoot yourself in the foot while meddling with your newfound Linux powers.
I've got the usual forgetting the .
in lines like this:
$ rm -rf ./bin
As well as a bunch of other fun stories like that one time I mounted my Linux home folder into my Windows machine, forgot I did that, then deleted a parent folder.
You know, the war stories.
Tell me yours. I wanna share your mistakes so that they can learn from them.
Fun (?) side note: somehow, my entire ${HOME}/projects
folder has been deleted like... just now, and I have no idea how it happened. I may have a terrible new story to add if I figure it out.
https://mastodon.social/@MaaikeV/109937773609995007
Attached: 1 video Makers rule! Meet Frodrick and the evolution of his house Trust me, it’s worth it, it’ll make you smile #maker #frodrick #3DPrinting
I've been playing a lot of Fallout 4 over the holidays. I started and finished the Nuka World DLC (killed all the baddies), made it to level 90, etc.
Today I was playing on my Deck as the battery got a little low (11%) so I saved my game, exited the game, and went to shut down.
As it was shutting down, the Deck displayed a message, something like "Syncing to Steam Cloud" as the logo was spinning.
A few hours later, on a full charge, I booted it back up, started Fallout 4 again and... some of my old saves are there, but only about 30% of them, and critically not the most recent ones.
Has this ever happened to anyone else? Is this a known issue? Can I fix it, or report it? I've basically lost interest in finishing the game now.
https://hachyderm.io/@paulbiggar/111627367674590120
Attached: 1 image Actions have consequences, and that's ok
[For reference, I'm talking about Ash in Alpine Linux here, which is part of BusyBox.]
I thought I knew the big differences, but it turns out I've had false assumptions for years. Ash does support [[ double square brackets ]]
and (as best I can tell) all of Bash's logical trickery inside them. It also supports ${VARIABLE_SUBSTRINGS:5:12}` which was another surprise.
At this stage, the only things I've found that Bash can do that Ash can't are:
What else is there? Did Ash used to be more limited? The double square bracket thing really surprised me.
https://gitlab.com/danielquinn/video-bypass
Watch YouTube videos locally by clicking a button
...but I think I'd probably be miserable there.
I'm violently allergic to pollen, am terrified of bees, wasps, and grasshoppers, and generally despise bugs and dirt. My ideal world would see everything paved in marble. No cars, (obviously) with a quiet, sustainable, walkable communiy, but green, as beautiful as it is, causes me a great deal of pain.
It's there any place for me in a solarpunk world?
@danielquinn
@lemmy.ca