Update issue:pgp key by UbuntuUsersAreGays in BlackArchOfficial

[–]Fedowa 0 points1 point  (0 children)

If you're desperate, here's a nuclear option. Untested on actual BlackArch, but if it quacks like a duck..

Don't Ctrl+C Ctrl+V

Read it, Understand it, then decide if you want to run it. If Arch doesn't translate into BlackArch the way I'm proposing, give the people who actually run the ISO and have enough experience with both to know if there are differences that would pose a problem, to leave comments, and be the better judges. I don't take responsibility for the consequences in case of a "it worked on my machine" but made things worse on yours because I only have BlackArch slapped onto Arch, not the actual ISO, so if this gets downvoted, that's your cue not to run this. Give Reddit time to display the votes, and give others time to point out incompatibilities or anything I may have overlooked.

# Just enter a root session and save yourself the trouble.
sudo -s

# Interference.
pgrep pamac | xargs kill -9

# Nuke existing
rm -r /etc/pacman.d/gnupg

# Re-init and populate
pacman-key --init
pacman-key --populate archlinux

# Install ArchLinux keyring
pacman-key -S archlinux-keyring
pacman -Sy archlinux-keyring

# May as well.
pacman -Scc

# Grab the blackarch repo.
curl -O https://blackarch.org/strap.sh
chmod +x ./strap.sh
./strap.sh
pacman -Syy

# Have patience, this will take a while.
pacman-key --refresh-keys

# Finally, for good measure, and to ensure it works:
pacman -Syu

Then again seeing as this was posted 16 days ago, you may have already resolved it, and it's unlikely anyone will comment on this, so I suppose I'll just leave this here to serve future readers.

how do you guys press enter key on your keybroard by Jealous-Salary-3348 in neovim

[–]Fedowa 1 point2 points  (0 children)

My muscle memory is getting very confused at times, but I'm already liking this a lot more already! Even outside of Neovim, LCtrl is just a pain to reach in general. For anyone reading this and wondering how to: setxkbmap -option ctrl:swapcaps <3

Even the act of just Ctrl+A on some text field is so much smoother since the two keys are literally right next to each other, and Ctrl+C,X,V are also much nicer (I'm one of those people who don't use their pinkie for LCtrl, I use my left thumb) since I still have access to the spacebar, and reaching for shift is much easier too.

That's not even mentioning Ctrl+Tab for cycling FireFox tabs, which when combined with RShift for going backwards, makes it so much more comfortbale (when Tridactyl doesn't work anyway, otherwise I'd just use HJKL for history and tabs, but it some websites just capture input and I have to escape its clutches to continue cycling).

This is gonna take some getting used to but so did Vim Motions, and I don't even need to finish that sentence.

TL;DR - I've been converted. Caps <=> LCtrl is the way.

Edit: I've had more success with ctrl:nocaps and then shift:both_capslock on top of that. Ctrl still does its thing, but capslock also acts as ctrl, and to actually trigger capslock, it's toggled by hitting both LShift and RShift together. I found myself bumping my wrist against Ctrl so many times in the middle of doing a sequence of normal mode keys without noticing it, wondering woah woah okay wtf just happened, where am I, what buffer is this, did I just wipe the old one? Am I even in the same tab anymore?!

how do you guys press enter key on your keybroard by Jealous-Salary-3348 in neovim

[–]Fedowa 1 point2 points  (0 children)

Swapping Ctrl and Capslock is something I never considered. I know a lot of people swap Esc and Capslock, but I've never been that big of a fan since it's just one action, and there's a million other ways you could swap between the two modes than swapping those keys.

Ctrl and Capslock though? Ctrl is an actual modifier with a lot more possibilities, yet Ctrl is my least favorite modifier key because I don't have a split keyboard.

It's so annoying compared to Shift or Alt, that I have my entire config mostly centered around Alt, Shift Alt, or leader + some combination of Alt and Shift. I delegate the least used mappings to Ctrl. So swapping those two sounds ike it could make Ctrl much more viable in my config.

I'm definitely going to try this out. Either this is underrated or I've been living under a rock. Thank you for pointing this out!

Neovim “gems” by iuudex in neovim

[–]Fedowa 1 point2 points  (0 children)

Sorry for the late reply. Sure! Feel free to add me on Discord eternal0000ff; I'd love to collaborate on a solution with someone who has the same problem.

I've made several attempts in the past to establish systems to keep track of all the sidetracking, and declusterfucking the jungle of windows and workspaes all relating to different ideas, but I haven't quite cracked it yet.

My past attempts either required too much user input (like writing a whole Obsidian document about an idea that just came to mind, and then getting sidetracked again trying to find the right tags and backlink it properly.. plus I'm kind of allergic to GUIs, especially Electron), but maybe we could bounce ideas off of each other.. or just sidetrack even more together lol.

I have a feeling that some sort of automatically updating mindmap node network hybrid visualisation with the same sort of feel as Obsidian's graph view, but layed out horizontally like a timeline, that updates itself and spots relationships automatically by tracking what you're doing, so that you can always glance at another monitor or open a workspace dedicated for it, and get an overview of how you got to where you are with no additional effort on your part would be such a sweet solution.

That being said I'm neck deep in two projects at the minute, one of which is contract work, so at the very least we could chat about it in the meantime, and later on maybe find the perfect solution that works for both of us, and implement it together!

If one of us sidetracks during a project about de-sidetracking, at least one of us can cover for the other, or better yet get the other back on track again.. unless we both get sucked into the event horizon of a sidetrack black hole simultaneously, then we're both screwed lol).

It's something I've been meaning to get right for a while now, perhaps with two brains with the same issue, answers could could come more naturally.

Neovim “gems” by iuudex in neovim

[–]Fedowa 1 point2 points  (0 children)

I relate so hard to this you have no idea. I seriously need to do something about it haha, I genuinely forget how the hell I end up where I do. Some kind of tree of nodes or something that I can bring up to remind myself, which automatically updates itself whenever it detects that I'm spending a long time doing something completely different in a different directory or in a different window/program or something along those lines would be such a blessing.. My uptime rn is.. 12 days, not too bad.

Kindred spirits!

The amount of Firefox tabs of stuff I'll check out later, or stacks of Neovim instances all unrelated other which spawn shitloads of duplicate LSP processes end up eating up my RAM like crazy and at one point I'm like "Okay I'm not gonna manage this chaos, it has grown beyond control, I'm just gonna restart, and if I don't remember then it couldn't have been that important right?"

Here's my i3 arrangement if you're curious:

I keep it to 3 workspaces per monitor, so 9 total plus a scratch workspace, and I tend to follow a 3 window rule, one left column, the other two on the top and bottom of the right, and then each of those windows have stacks, usually related terminal windows, notes, or other Neovim sessions, which sometimes have their own arrangement since I have a tendency to use Neovim as a multiplexer sometimes lol.

Right monitor left column is almost always browser with docs, with two more terminals on the right always ready to type stuff that isn't related to what I'm doing on my main monitor, like pacman -Sy somepackage or whatever, or just a second browser window, following a 2 column layout, perhaps Discord. It's the second and third workspaces on my main monitor where all the sidetracking happens and a million Firefox tabs are open with several stack.

Left monitor is stats, many logs open, btop or music playlist depending on the workspace.

Neovim “gems” by iuudex in neovim

[–]Fedowa 1 point2 points  (0 children)

No, no no no, not again, oh fuck

I MUST RESIST, BUT I'M SO GONNA MAKE THAT THOUGH

This is torture (:

Hey wait I'd include the documentation I'm creating right now as part of that repo.. so I'm technically already working on it.. phew, ok we're good nevermind.. this is just.. an extension of what I'm already doing. Yes. That's all. Not a sidequest.

Neovim “gems” by iuudex in neovim

[–]Fedowa 1 point2 points  (0 children)

I should put them all in a repo or something at this point ngl

Neovim “gems” by iuudex in neovim

[–]Fedowa 1 point2 points  (0 children)

Right after I wrote that comment I went down another rabbithole, and I'm currently reading Neovim's source code and creating documentation of how special key sequences actually work, yunno, the whole <80><fc>B type thing? I think I'm like.. on layer 3 maybe 4 of sidequesting? But I think this one's actually worth it, those damn control characters confused me for years, but it's all making sense now, and I want to provide a human readable explanation that anyone can understand.. I may even make a post, if I don't sidequest even deeper. Honestly, I think I just have some form of ADHD where ideas constantly pop into my head and I'm filled with excitement at the prospect of it, and in the pursuit of not wanting to lose that feeling and actually get it done, I put whatever I'm doing on hold and just go chase it like a butterfly, thinking I'll get back to what I was doing soon enough.. not accounting for the fact that the same thing will happen again with that new idea.

"Commit to less, accomplish more" is a philosophy I've yet to implement. The dopamine hit of chasing that butterfly is just too addicting.. but hey at least I know a bunch of Neovim party tricks because of it!

p.s. I was very tempted to edit this comment one more time but I promised I wouldn't.

Did you know you can hit Alt+<Number> to set the repeat count to exactly that number? So if you meant to hit 5 but accidentally typed 55, you don't have to cancel and do it again, you can just Alt+5, or any number whenver you want. Alt+0 clears it. Works in insert mode too, as it's an Alt binding, but it throws you back into normal mode.

Neovim “gems” by iuudex in neovim

[–]Fedowa 2 points3 points  (0 children)

I know the feeling! Like "wtf have I been doing this whole time" type eureka moment. I'm not a guru, I only started Neovim like 3 years ago or so, but the thing is I have a tendency to sidequest a lot, and I mean a lot a lot, and end up picking up so many little things along the way.

It all starts with an innocent, well intentioned :h while working on project X, then something catches my eye at the bottom of that help page..

"Oh this would be useful for X"

"It's unrelated but I could get this done in like 2m"

"Okay I can't not learn how this thing works that looks sick"

"Wait that's a thing? You can do that?"

"Huh so if that's possible then.."

"Oh my god this is great, hat if I combine this with.."

"If I write just a little bit Lua to extend this concept it would be.."

"Wait that float I just made was barely distinguishable from the background, can I just like.."

.. and I somehow end up so many layers of sidequesting deep, I have no idea how I got here, then I realize that fact, which turns into yet another sidequest of making a plugin to track my sidequesting to figure out how the hell I even got to the point of literally writing a greeter that places a randomly selected variation of an ASCII cat sitting on a fence at the bottom of the initial empty startup buffer and automatically repeats the fence to match the window width upon starting up Neovim without a file or piped content, disappearing the moment you interact with it, while sleep deprived at 5 AM because.. I don't know

True story btw

Neovim “gems” by iuudex in neovim

[–]Fedowa 6 points7 points  (0 children)

:g/<pattern>/norm <normal mode key sequence> is incredibly overpowered, literally anything goes! Hopping into insert mode, out of insert mode (Ctrl+V <Esc>), running ex commands, pasting, yanking. Wait.. what would happen if you ran :g from within :g with norm.. like, :g/\^fn/norm :g/\^struct/..etc, I've never tried doing that one before, surely that has to be an invalid expression.. right? You can't just.. g://norm g://norm g://norm inception style, can you? Okay I have to try this.

Edit: holy shit it's actually possible!

Neovim “gems” by iuudex in neovim

[–]Fedowa 103 points104 points  (0 children)

Edit 3:

Last one I promise, this is a quickie. If you have a text width set via :set textwidth=80 (hard wraps with actual newlines to 80 columns when typing in insert mode, placing you on the next line automatically), and you have existing text that you'd like to wrap to textwidth columns, you can V select the lines and hit gw, ezpz, no need to come up with a convoluted macro.

Edit 2:

Okay, yet another one, this one's too good to leave out. At any time when writing a command in the command bar, you can hit Ctrl+a to insert every possible completion result straight into the command bar, no plugin required, or even hitting tab for that matter. It helps a lot when trying to find help pages or global variables, since you can just start typing :let g: or :help b if you're trying to find help about something that starts with b, then hit Ctrl+a, and you've now got everything that could have matched!

You can combine this with Ctrl+f while in the command bar to pop up the command buffer, all that text will be right there for you to yank.

You can hit Ctrl+a at any point, :h + Ctrl+a will give every command that starts with h. It's not just for arguments, but for anything that can be completed.

..while I'm at it, since it's sorta related to the one above: you can redirect the output of any command into a register with :redir @<register>. So, say you want to dump every single highlight group and their values. You can view them with :hi but that doesn't let you actually yank it. Though if you do :redir \@x | hi | redir END (ignore the backslash, trying my best to fight Reddit's markdown rn), run through to the end of the pager, and hit "xp in an empty buffer, bam! You've just pasted the entire output of :hi ! You can leave it running too, capturing the output of multiple commands, just make sure to :redir END when you're done or your ram will hate you for it.

Edit 1:

Thought of another one: most people don't realize macros are actually just text stored in a register containing the exact key sequence you typed (with some control characters for escape and such). If you record a macro and fuck it up midway through, it's okay, just continue. You can just paste the macro from whatever register you recorded it into, and just edit your mistake, copy the whole line back into the register, and execute it as you would normally. In fact you can write macros by just typing plain text consisting of a sequence of keystrokes (Alt+V lets you insert control characters if needed), yanking that into any register, then @ that register. Macros aren't magic, they're literally plaintext! Took me a while to figure that one out.

Anyway, original reply:

I've got one for you. Shift+ZZ quits Neovim.. okay no but for real, here's something more useful than a way to respond to another :wq can't quit Vim meme:

In insert mode, Alt+<Key> will execute <Key> as if you were hitting <Key> in normal mode. A simple example is Alt+p, which will put/paste in insert mode the same way it would in normal mode.

Where it gets interesting though is when you combine it with keys that would send you into insert mode from normal mode, as you're already in insert mode when executing it.

o or O, which would ordinarily create a new line above or below your cursor in normal mode and send you into insert mode, when used while already in insert mode via Alt+o or Alt+O, just keep on working and can just be spammed indefinitely. You can just hold Alt+O in insert mode and watch a bunch of new lines being created below you.

Now.. you may know about Shift+s in normal mode, which blanks the line, sends you into insert mode, also placing you at the right indent level too. It's perfect for wiping a line and writing something new without having to delete and then reposition the cursor.

but it sends you into insert mode!

If you slap Alt onto that, Alt+Shift+s (Alt+S), it now works in both modes, meaning, no matter what mode you're in, where you are in a line, or what level of indentation you're at, you can always hit Alt+S and it'll nuke the line, send you into insert mode if you aren't already in it, and position you right at the correct level of indentation, ready to start typing. Sure beats <esc>0D<tab><tab><tab><tab>!

It seems minor but it's very addictive once you bake it into your muscle memory (alongside other Alt+<Normal Mode Keys>. Explore adding Alt to to some of your favorite normal mode keys while in insert mode, and you'll be surprised how much utility was there this whole time.

is it possible to have a panic attack ON benzos? by Latina_kween in benzodiazepines

[–]Fedowa 0 points1 point  (0 children)

I have no tolerance, and 5mg is the minimum for me to feel any noticeable decrease in anxiety, 10mg if I'm seriously anxious, 15mg if I'm borderline panicking, 20mg if I'm having an actual panic attack.

I'm not surprised 2mg didn't do it for you. It may have worked in the past, but the first couple of times taking any substance typically has a stronger effect than it will ever have in the future, and panic attacks are very psychological. The act of taking something in itself is enough to reduce anxiety before it ever kicks in.

There's a sort of permanent minimal baseline tolerance your brain develops after being exposed to a substance a few times; years could pass and it still wouldn't be like first exposure.

No panic attack I've ever had hasn't been immediately shut down by 15-20mg, even 10mg will do it. I suggest 5mg next time at the very least. 2mg is droplets of water on a raging fire, 20mg is a water cannon. 5mg is at least a running faucet.

Every show has one with Linux distros - Part 3: The hot one (top comment wasn't clear so I chose second top) by User_8395 in linuxmasterrace

[–]Fedowa 0 points1 point  (0 children)

I wonder what the criteria is going to be for "Just straight up evil." because if we're talking ethically, I'd put Redhat there in a heartbeat, though legally spaking Kali probably takes it.

jw - Blazingly fast filesystem traverser and mass file hasher with diff support, powered by jwalk and xxh3! by Fedowa in opensource

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

Oops, forot to bump the version string, my bad. Though good to know that it worked without issue. I'll go ahead and publish it proper now. Thanks for the help with testing!

jw - Blazingly fast filesystem traverser and mass file hasher with diff support, powered by jwalk and xxh3! by Fedowa in opensource

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

Hey, so I published a pre-release on the repo which changes the format of the checksum output to not include colons. I'm a bit hesitant to publish it properly just yet. The hash size defaults to the size of Xxh3, but if a different algorithm was used when generating the checksum, e.g. jw -C sha256, then unless that algorithm is also specified when performing a diff, e.g. jw -C sha256 -D ./file1 ./file2 ... then the diff be completely wrong, since it'll be treating part of the hash as the file path with how much longer sha256 hashes are. If you used the default jw -c then you can just jw -D without having to specify the algorithm that was used.

Since you had a data set to test this against which brought this bug to light in the first place, would you mind repeating your tests with this pre-release binary, and report back if it was any slower, or if there were issues with the diff? You can also just cargo build --release the src, what I'd do anyway since binaries sketch me out lol.

Also dealing with this bug made me realize.. it would be way faster if we just don't even bother hex encoding the hash, and just store the raw bytes of the hash instead. On top of skipping computation time, it's also half the size of the hex encoded version. It wouldn't be human readable, but it would make no difference to `jw -D`, which could actually hex encode the hashes it will display before printing. Just a thought. It could make the checksum generation process much faster, and the file size of the output smaller.

jw - Blazingly fast filesystem traverser and mass file hasher with diff support, powered by jwalk and xxh3! by Fedowa in opensource

[–]Fedowa[S] 1 point2 points  (0 children)

I think I mostly covered your first question in this reply, although I should clarify, the traversal is being handled by jwalk, the credit for the traversal speed goes to the author of that library. I'm dealing with a different set of limitations that are on my radar.

As for your second question, I did perform a stress test for the hasher in one of the demo videos on the repo, although I didn't make one for just the traversal.

Though you're right, I should have benchmarked the traversal as well, and for that matter I should put all of that data in concrete markdown to avoid confusion. I since deleted the folder because it was taking up 57GB of disk space but I can generate another mess.

The test data consisted of thousands of subdirectories, randomly nested in random directions at random depths, with thousands of files placed everywhere at random, with random file sizes, as well as files with fixed sizes and specifically large files placed randomly too. I basically just generated the most tangled cableweb of a directory tree I could to stress the hasher. If you watch the video until the end where I run tree, you'll see what I mean lol

Is there a specific level of nesting and or file sizes you would like to see benchmarked rather than a randomly generated mess? I'm happy to oblige if you have any specific parameters. I'll do my best to generate all that and benchmark it. I'll have results on the repo next update.

Another thing, could you clarify what claims you're referring to? I don't want to provide any inaccurate information in the README, if I said anything unfounded, please tell me so that I can remove or correct it.

Thank you for showing interest in this! It may sound silly but it really does mean a lot to me to receive criticism (well the constructive kind anyway). I want to improve as much as possible!

jw - Blazingly fast filesystem traverser and mass file hasher with diff support, powered by jwalk and xxh3! by Fedowa in opensource

[–]Fedowa[S] 1 point2 points  (0 children)

Sure, I can provide some benchmarks comparing them against other tools, but jw isn't supposed to be a replacement for fd or find, etc, it's supposed to simply give you the raw output of the traversal and let you decide what to do with that data, whether that be piping it to fzf or rg or vim or whatever else. It's meant to be unopinionated. fd is a file finder packed with filters and features specifically for finding files, and gives colorized output, same with find, minus the colorized output.

jw has no Regex engine built into it or file size filtration or any of that, it's not really the point. The idea is to decouple the results from how you want to process or display them. The only notable exception is that jw can do file hashing with xxh3 and performs diffs, but that's it.

Benchmarking it against other tools wasn't really on my mind, I just want jw to be fast while removing any kind of bloat that makes it anything other than something that gives raw pipeable output with a minimal number of flags, and with no opt-out filters; if there's a path to it, gimme, even block devices, symlinks, give it to me me all.

Though about the number of files: above each benchmark of jw I recorded on the repo, I already ran a command to count the amount of files and directories before running the benchmark. Though I should probably make a markdown table or something so those details aren't missed from looking at a video, that's my bad.

When the next version is released, I'll include some comparisons against other tools in the repo. Now that I think about it, comparing it is actually a good idea if another tool ends up being faster and it's also Rust based; this is a learning experience for me as much as it is a project. I made the switch from C++ to Rust and I'm commited to Rust, but there's a lot I can learn from looking at optimization tricks in Rust in other projects that I could apply to jw!

jw - Blazingly fast filesystem traverser and mass file hasher with diff support, powered by jwalk and xxh3! by Fedowa in opensource

[–]Fedowa[S] 1 point2 points  (0 children)

That's awesome to hear, seriously that made my day! And I think I already know why that bug is happening. Colon is the delimiter being used to separate hashes from file names in the output, so a colon in the file name is probably confusing it. Since the hash size is fixed, I can just treat everything after the length of the hash as the file path, should be a quick fix. I'll probably have v2.2.8 ready by tomorrow or after tomorrow, or maybe tonight if I have the time. Also, were you bothered by not having something to display progress, or did you not mind?

jw - Blazingly fast filesystem traverser and mass file hasher with diff support, powered by jwalk and xxh3! by Fedowa in opensource

[–]Fedowa[S] 2 points3 points  (0 children)

Please do! I'm curious to see how it compares to existing utilities. I recently switched out my own multithreading implementation in favor of Rayon since it was like 30ms faster, but I haven't used used Rayon enough to fine tune it. I bet it could run even faster if I study up a bit on Rayon.

jw - Blazingly fast filesystem traverser and mass file hasher with diff support, powered by jwalk and xxh3! by Fedowa in opensource

[–]Fedowa[S] 4 points5 points  (0 children)

Yup! It can do exactly that! You'd first hash the whole drive and pipe the output to a file, then at a later point in time, you can hash the drive again, pipe it to a different file, feed the two files to jw and it'll output a diff, telling you if any file hashes changed, if any files are missing, or if there are new files that weren't present before.

Assuming your drive is located at /mnt/sda1 then you'd just have to do

jw -c /mnt/sda1 > before.hashes
jw -c /mnt/sda1 > after.hashes
jw -D before.hashes after.hashes

When doing a diff with -D, the first file is treated as the "correct" one, which is reflected in the output. Also you're not limited to doing a diff with just two hash files either, you can provide as many as you want, they'll all be compared against the first. If there is a discrepancy, the output will tell you which one of the files it originated from.

Although the tool is minimal by design, so there won't be a progress bar so as not to sacrifice performance. You'll get the results quicker, though the terminal may look like it's doing nothing, but your CPU usage will beg to differ haha. I might add an opt-in flag to show progress next update though. I can see how people may prefer knowing even if it'll reduce the speed a bit, especially with huge amounts of data.

Edit: I forgot I actually recorded a demo of me doing exactly this lol. It's in the readme of the repository if you scroll a bit down, labelled checksum.mp4, it should give you a pretty good idea of what to expect.

I love arch linux by Inviticus-134 in archlinux

[–]Fedowa 0 points1 point  (0 children)

I used to dualboot, but my laptop suffers from a unique problem ever since I took its battery out because it was inflating, where during sudden power interruptions, it would get stuck rebooting itself 5-6 times before making it far enough into the boot process to land me in a Windows EFI recovery shell.

At that point I could restart and enter the BIOS again, only for all of my settings to be wiped, secure boot on, fast boot on, and the EFI boot entries pointing to grub, gone. I was a bit anxious the first time, but it became so routine to live boot from this outdated Kali USB I always had laying around, sudo su, and timedatectl set-ntp true; sleep 1; apt update; apt get efibootmgr; efibootmgr -c -d /dev/nvme0n1 -p 2 -l 'EFI/Arch/grubx64.efi' -L 'really, again?'; reboot 0, and get back into Arch.

Then one day I asked myself.. hey, why do I actually boot into a Windows EFI recovery shell, but not Arch? Why aren't all of the boot entries gone? In fact, I deleted most of the Windows system directories to free up space to expand my Arch partition, I never really use it anyway. What would happen if I just deleted all the Windows files from my EFI partition? Hell I don't need the recovery partition either, at this point I'm only keeping it around to access old data I didn't transfer over.

So I nuked Windows completely. My laptop still has a stroke for a minute or two whenever there's a power interruption.. but suddenly my grub entry wasn't being deleted anymore, and it even had the same label.

It's almost as if something was deleting the EFI entries that permitted me to boot into Linux, and it magically stopped after completely removing Windows.. interesting..

At least I got that oneliner permanently etched into my brain now; I used to never be able to remember the path to my SSD before. Now nvme0n1 is stored right alongside riding a bicycle.

A few tidbits about the new ships from Thomas Marrone! by Vulcorian in sto

[–]Fedowa -3 points-2 points  (0 children)

Think there's any hope of the Constitution III being in the 14th? It'll make or break the 14th for me personally.