Show newer

@PawelK I played with some numbers on this.

> Would converting the videos to ASCII arts help in compression? By how much?

To start with, I assume the default terminal size of 80x24 characters and the sixteen-colour terminal palette, and only printable ASCII characters (no UTF-whatever, just byte values of 20 through 7E inclusive).

Each character can have a background and a foreground colour selected independently by means of escape sequences. For sixteen colours, the ASCII sequence looks like
- escape character, 1B
- left bracket, 5B
- two bytes identifying the foreground colour
- semicolon, 3B
- two or three bytes identifying the background colour
- lowercase m, 6D

Any text retains this style until the next modification. In the worst case, you'll have no consecutive colours and thus be forced to alter the foreground and background colour for each character separately, and your backgrounds will all be "bright" colours requiring a three-byte code. This adds up to ten bytes per character - nine in the escape sequence and one printable. With our standard terminal size of 80x24, that's 19.2kB per frame, which at a framerate of 25fps is 3.84Mbps. That's pretty heavy for such a low-fidelity end product, and certainly not competitive with real video codecs. But you can display it with relatively simple tools, just loading the next 1920 characters every forty milliseconds and stuffing them in the terminal.

> What could be the structure of the compressed stream for max space saved?

However, if you're allowed to compress it, you could knock the bitrate down by a lot. A simple compression algorithm would be to store the colour code as a single byte (16 foreground * 16 background = 256 codes) followed by the printable character, which instantly cuts your bitrate by a factor of five: 768kbps. Your tools just need to be smart enough to reconstitute the ten-character escape sequence from the one-byte code. If you have a lot of similarity frame-to-frame (for example, a screencap of a desktop), you might get some additional benefit by running gzip or some other lossless compression tool. For practical purposes, I'm going to pull a number out of my backside and say you wind up around half a megabit per second for a filmed video. So if that's less than your original bitrate, you save some space in compression - but it's still going to look like ASCII art. If there isn't a technical reason you need ASCII art (for example, you're trying to watch it in a TTY with no X server running) you'll certainly get better results just compressing to half a megabit per second in a real video codec.

> Would chroma per character suffice or would chroma per pixel be required?

Because terminals handle colours on a character-by-character basis, you can't address specific pixels of a character to assign them their own colours. And you don't know the font of the user's terminal in advance, so you won't even know what a character's dimensions will be as rendered or which pixels will be foreground/background. Trying to fiddle with specific pixels, even if the terminal provided a means to do so, would be heinously unportable, so let's just leave it at per-character.

@skyblond what does the Asian text say? I'd hope it contains a descriptive error message.

K‮ly‬e boosted

Congratulations to qoto on breaking 17,000 accounts! @freemo

QOTO User Count  
17,004 accounts +6 in the last day +32 in the last week

@realcaseyrollins I suppose you could block the necessary API call at the server level. Mastodon uses nginx, so you would want something like the following:

```
location /api/v1/statuses {
if ($request_method = POST ) {
return 403;
}
}
```

K‮ly‬e boosted

Does anyone use jmp.chat or any other XMPP-as-VOIP service?

I'm a little confused about which XMPP app to use on android to work best with the service (for texts, vms, and phone calls, obviously)

@Placholdr you can write a Fibbonacci function like that but it's not very efficient, because you end up calculating the ancestor values many more times than is necessary.

The underlying structure of the Fibonacci sequence isn't tree recursive because F(n) = F(n-1) + F(n-2), but F(n-1) is itself dependent on F(n-2). So if the two branches of your tree are F(n-1) and F(n-2), you have a duplicate copy of the F(n-2) subtree embedded in the F(n-1) subtree. This compounds at each level so for large n you'll have a very large tree but most of it will just be copies of various parts of itself.

In many cases a lookup table is the best way to go. Even if you need the full range of 64-bit unsigned integers, there's still fewer than a hundred entries in your table.

@realcaseyrollins If you see anything there that looks appealing to you, let me know and I can send you a referral link & code to get a discount.

@realcaseyrollins A *mostly* non-alcoholic (recently they've added some beers that aren't low enough to qualify) brewery in Anaheim. You can order their stuff online at bravus.com. Personally I find their dark beers (oatmeal dark, breakfast dark) are really first-class.

@realcaseyrollins if your BIOS lets you boot from the SD card, sure. Just set up your fstab with the disk by UUID.

@realcaseyrollins I really enjoy Athletic - it's second only to Bravus in my NA beer preferences, and far more readily available where I live.

@peterdrake Not according to [the documentation](docs.joinmastodon.org/admin/op):

> Mastodon’s full-text search allows logged in users to find results from their own toots, their favourites, and their mentions. It deliberately does not allow searching for arbitrary strings in the entire database.

Note that QOTO also has bookmarks in addition to favourites, which allows you to mark a post for later on without notifying others. Bookmarking a post also makes it searchable.

@rastinza I guess you might be running into rate limiting - I'm not aware of any reason why it should cut you off at that point specifically. Later today I will check and see if I can reproduce what you are seeing.

@rastinza I don't know of anything that does this natively but it should be easy enough to script with the mastodon.py tools.

Basic idea:
1. Set your counter to zero.
2. Call timeline() to load your home timeline.
3. Check if any timestamps predate your cutoff.
4a. If so, count how many posts do not predate the cutoff, add that to your counter, and return the counter.
4b. If not, add the full number of posts to your counter, set your maximum ID to the minimum you got this time, and return to step 2.

@RL_Dane it doesn't require taking apart, but there are some potentiometers on the board which control current to the motors and I'm tired of how frequently they require adjustment. If they aren't set correctly, you get the leaning tower of Printrbot as the horizontal reference datum gets a small offset layer-to-layer which accumulates over time.

At this point I just don't use it more than a couple times a year. When I factor in the lost time from it going out of alignment, there's usually another means of fabrication which is more efficient. At least with a different machine there'll be different hiccups to work around and it'll be interesting to play with for a bit. So if you feel similarly and want to swap, I'm game. Failing that I think my plan is to exit the 3D printing game and switch over to a smallish laser cutter.

@RL_Dane want to swap for my Printrbot Simple? I too am tired of futzing with my printer and seek new challenges

@peterdrake

Per [`man zshbuiltins`](linux.die.net/man/1/zshbuiltin), the builtin shell command `r` is equivalent to `fc -e -`, which, to my reading of the same manpage, selects the most recent command and executes it without editing.

@biomedmax on QOTO, yes.

1. In the web interface, go to Preferences > Follows and Subscriptions > Domain Subscribes > Add new domain subscription
2. Make a new subscription with the domain set to the instance you're interested in, e.g. "mastodon.social", and the target timeline to "Add new list"
3. In Tusky, go to Account Preferences > Tabs > Add Tab > List > "mastodon.social" or whatever instance you selected in Step 2.

I don't think this is generally applicable because my recollection is that domain subscribes are a nonstandard feature; QOTO offers them but most instances don't.

@stux any idea how nicely their extension model plays with federation? That sounds like what happened with XMPP: inter-instance communication is quite painful if the two instances implement different sets of extensions. And matters won't improve when you talk to other Fediverse software that doesn't even know about the Bonfire ecosystem or how it negotiates mutually-supported extensions.

@Acer If you're a contractor with one business, and he's a contractor with another, you could say he's your "counterpart" at the other one.

leading questions toward a solution 

@Placholdr

If aₙ is a perfect square, some integer sₙ exists such that sₙ² = aₙ.

Can sₙ be even? If so, you could write it as 2s'ₙ for some integer s'ₙ. What happens when you try to solve (2s'ₙ)² = aₙ since aₙ is always odd?

Can sₙ be odd? If so, you could write it as 2s'ₙ + 1 for some integer s'ₙ. What happens when you try to solve (2s'ₙ + 1)² = aₙ since aₙ is of the form 100 * aₙ₋₁ + 11?

Show older

K‮ly‬e's choices:

Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.