ASCIIpunk holds 3 main ideas. 0. ASCIIpunk interfaces. 1. simple logical concise elegant code and interfaces. 2. avoid bloat.
There were some people interested in the textpunk NNTPchan client I was writing so here it is: github.com/faissaloo/Yukko I would've posted this in the other textpunk thread, but it dropped off the board.
I also wanted to share a few programs: ncmpcpp - A textpunk music player with a visualiser, it's sort of a controller for mpd so I launch it like this: #!/bin/bashsudo /bin/systemctl start mpdncmpcppsudo /bin/systemctl stop mpdsudo /bin/systemctl stop mpd.socket If you don't want to enter your password every time you can add it to your sudoers.
nmtui - ASCIIpunk fully featured network manager. Inb4 'general threads! What is this? /g/?' Inb4 'why you tripping', because I'm already making it obvious who I am by literally posting a link to something I've written, don't be like that one sperg who literally derailed a whole thread over trip usage.
Yeah, totally dig the htop. Is that Screen, DVTM or something else that you're using?
Chase Davis
*punk is generally retarded. Looks like this isn't an exception.
Michael Cruz
how to run through i2p?
Samuel Edwards
It's good to see that tabs can still oust people as faggots even in text-based browsers.
Daniel Long
Literally all of that combined still doesn't take up as many resources as X.
Eli Cox
Since when bloat is defined by comparing with X(org)? All those I mentioned are extremely bloated and have obvious replacements (ncmpcpp -> mpc, dash/ash/mksh, systemd -> runit/s6/sysv/daemontools + openrc).
Basically, this thread is about "Matrix hacker style!111!" and not actual minimalism.
Jacob Ross
Why does everything have to end in "core", "punk", or "wave" now. Very annoying-core.
Kayden Taylor
tmux
I made that picture as a joke months ago specifically to shitpost with on /g/.
list comprehensions exist you can't change the editor except by sed -i s/nano/vi/g yukko.py, use os.getenv("EDITOR") Warning (flycheck): Syntax checker python-flake8 reported too many errors (1089) and is disabled. (Probably most of it is style related, but there could be legitimate errors, linters are your friend) too many globals globals at all (encapsulate in a class or something) trailing whitespace you're allowed to press the enter key 2 (two) times to seperate logic yukko.py doesn't work on my vt100, the winner is: Line 198 with 409 characters
The parse thing is special. FYI, string += blah in a loop allocates a new string every iteration, strings in Python are immutable. Rather do something like this(pass the open file object): def parse(it): def strip_key(key, ln): return line.split(key, 1)[1].strip() ret = {"Name": "", "Subject": "", "Body": []} found_body = False for line in it: if found_body: ret["Body"].append(line) else: for key in ["Name:", "Subject:"]: if line.startswith(key): ret[key[:-1]] = strip_key(key, line) key = "Body:" if line.startswith(key): ret[key[:-1]].append(strip_key(key, line)) found_body = True ret["Body"] = '\n'.join(ret["Body"]) return ret
Cooper Russell
Enable the i2p/i2pd socks5 proxy if you haven't already then: sudo pip install -U "requests[socks]"
Then go into settings.json and change the http and https proxy settings to whatever your i2p SOCKS proxy is, for me it'd be socks5://127.0.0.1:4447 (which I think is the default).
Ethan Bennett
>>>/reddit/ Never come back.
Christopher Lopez
OP should come to nextchan /t/, it's so much better without apparatchiks like shitting the place up.
Owen Moore
This. Fuck off to your containment site and don't come back.
Juan Thomas
...
Jaxson Turner
I used mixedCase for var names as oppossed to CamelCase, but according to the style guide I should have been using variable_name all along, which i think is silly, because he starts using _variable_name to differentiate the scope of a variable, whereas I see local vars as mixedCase and method names as CamelCase beig the most intuitive. That said, the guideline here is muddled and they admit that they haven't good consistency to default to the style most prevelant in the document. Although I'd like to keep with comunity standards this style guide is very poorly written and not authoratative in its "well, it can be both ways, it just depends". That's not good enough for me to want to change from a standard variable naming technique foud in a number of languages. When I hope from language to language I am willing to accomodate some specialization, but cosistency in naming conventions where possible is more important to me than some guy's weakly-held personal preference. If you want to enforce your will, it should be logical and you should be assertive. I don't get that from reading the referenced text.
Liam Rogers
Excuse my spelling errors please. Ranting hopefully had some value and this won't be used against the content of the post.
Christopher Nguyen
You're far too used to Microsoft C# .NET
Brody Gutierrez
now we're talking thanks
here's hoping nntpchan gets more popular
Luis Hughes
True, but less characters are used. I'm also of Dutch heritage, so according to "import this" my opinion has inordinate weight.
Nicholas Ross
are you actually using a textmode browser? how do you deal with captchas or whatever? i would consider using a textmode browser if i could actually post on here with it.
Matthew Adams
Yeah, w3m in that picture. There's also links2 which can handle Google's captchas in frames like 4chan uses. Both can actually display images so long as you have your framebuffer set up (there's also elinks which lets you view images with a separate program), though I haven't found a way to get that to work when using either with tmux with just the framebuffer. Sadly I have yet to find a browser that runs in the terminal that has everything I want though. In elinks and w3m you can spoof your user agent to look like a regular browser and have good cookie controls, elinks and links2 can handle Google's captchas, and w3m and links2 can display images natively.
Dylan Richardson
It's a fucking TUI you goddamn skids. Don't invent new names for things that already exist.
TUI. CLI is better. If you can't pipe to and from it, there's probably something wrong with it, unless it functions better as a consistent client (ie. it demands user interactivity, like a good mail reader or web client).
That's a basic tenet of programming in general
That's a basic tenet of non-Windows programming in general
ncmpcpp is unnecessary. mpc is all you really need. It's a music daemon; all you need is to be able to control it and for it to be able to give you information; a full curses client is way overkill.
Jackson Morris
Are you fucking retarded? ASCIIpunk is a philosophy, and the people that practice it. Programs designed according to the ASCIIpunk philosophy are usually TUI or CLI, but ASCIIpunk is not the name for a specific kind of interface.
No. Its supposed to be, but its not.
See previous
Brody Gomez
maybe reddit would pretend to care?
Cameron Cooper
If it's using the framebuffer graphics, then it's not really text mode. The framebuffer console is a graphics console. If you want to see how those browsers handle the various captchas in actual text mode, boot without framebuffer into a real 80x25 text mode (or other text mode that your BIOS supports, such as 80x50, 132x43, etc.) There may be ways to view some of the captchas in text mode via a library such as aalib or cacaview that renders a graphic with plain text symbols. But I really doubt the google recaptcha stuff will work, as it uses too much javascript for most of the text browsers.
Tyler Gonzalez
Everything else is in textmode, you're just either having the program overlay the pictures (in w3m you'll notice that the browser reserves the spaces that the images will be with underscores to make sure other text doesn't end up there). Also, if displaying images inline is a problem for you then there is always elinks which can open them in a separate viewer, which I fail to see any problem with as there have been programs for viewing graphics since back when people were using CLI for everything.
Google's captcha still works with noscript enabled. The bigger problem would be the size of the picture if you were trying to render it as text for god knows what reason.
Kayden Jackson
A real text mode in PC hardware has no pixel addressing, so you can't make graphics at all except for ASCII or ANSI stuff. That's where the aalib/libcaca stuff is needed to show the approximation of a graphic (it'll never render it perfectly, even at 142x43 character cells). Otherwise, in a framebuffer you can just run Links-2 in graphical mode and it'll show all the images. I've used that before, but it's definitely not text mode, nor is it even if you're running Lynx and it can spawn an external image viewer to display pictures. Some hardware has no drivers for console framebuffer, so the distinction is important. But this is a PC hardware thing mostly. In contrast, other architectures like Amiga and Sun Sparcstation are always in framebuffer mode. They don't have an actual plain text mode, but Linux or BSD can simulate it by drawing the character cells inside the framebuffer.
Luke Perry
Such as? Only examples I can think of which might not have framebuffer drivers also don't have the hardware to attach a display and were made to be remotely administered.
Austin Watson
My last T61p laptop with Nvidia GPU had only plain text console in OpenBSD. But it can be the same for any GPU that has no driver (so you can use Vesa Xorg server to get graphics in X, but there's no framebuffer in the console). The Intel and ATI chips are the most supported here, so if you go with other thing it's not a given your console has working framebuffer. When it doesn't, the kernel defaults to the old PC text modes, and only the most common ones that don't depend on BIOS extensions: man.openbsd.org/vga.4 And btw, just because that man page refers to VGA graphics card doesn't mean you get that functionality. For cards without actual driver, you only get plain text, and even some of the ioctl() calls described here will only return an error: man.openbsd.org/wsdisplay.4 I know this, because I tried all of them, and everything I could think of to get framebuffer graphics on that T61p, but without writing an NVidia driver (by reverse engineering the hardware) it won't work. BTW, the PC even had plain text display cards called MDA. If you have this card, all you can ever get is text. en.wikipedia.org/wiki/IBM_Monochrome_Display_Adapter CP/M machines were usually that way too, there were only some rare graphic-capable ones. Of course it's the same for hardware VT100 terminals (or equivalent), and the older teletypes. That's the real text mode, when graphics just don't work at all. The rest is a framebuffer.
Easton Miller
So I read about some script to check your style in Python. pep8 superceded by flake8. I'll start using the variable_name style, because why the hell not?
Ethan Robinson
I'll give you lack of driver support in OpenBSD (didn't think that would have been a problem) and the possibility that someone might be trying to access modern websites with an actual terminal, but I don't think anyone here is seriously trying to access modern websites where dealing with captchas would be necessary with anything with an MDA video card (even my 286 laptop with 640 KB of RAM from 1988 supports a graphics mode) or a CP/M machine (as they would suffer due to lack of RAM and would likely require reloading the page regularly as you scrolled through it, the HTML alone for this page is 68 KB).
Michael Butler
Yeah I doubt anyone can use 80's hardware to access modern website. Unless maybe they do it over a serial connection to a Unix host, where they run Lynx or other text browser. In the 90's, Linux also had only text mode console. This was before they added a framebuffer console to the kernel. So the system always booted up in 80x25 text mode, or another text mode that you selected from the LILO prompt. I was running Slackware at the time, and the only option to get graphics without X was to use svgalib (assuming you had a graphics card supported by that library). But here's the deal: when you ran an svgalib program, the PC hardware was switched to a graphics mode (like say mode 13h, 320x200 with 256 colors). Then when you exited that program, the hardware was switched back to text mode and you got your terminal back. So it wasn't identical to framebuffer console where you can display both text and graphics at the same time. You can probably still build your Linux kernel without framebuffer support and get a similar behavior (not sure if svgalib still works today though). I'm betting that some other OS like MINIX also don't have PC framebuffer driver in their kernels. Because it's a pain to write drivers for all display hardware on PC, whereas text mode is easy and it always works and has been available since the very first IBM PC. Then you have the opposite scenario: TempleOS only boots up to 640x480 16 color graphics mode. At first glance, it might look like you're in 80x50 text mode, but in reality the kernel is redrawing the characters pixel by pixel 30 times per second (or whatever his refresh rate is). TempleOS doesn't use any text modes ever.
Dominic Morris
Now it just seems like everyone's splitting hairs.
Isaiah Morgan
Throw your code through pylint3 and flake8 and clean it up. You don't have to do all the things they say, but your code right now looks like it was written by a sloppy C programmer who doesn't get Python.
Use decent variable names and avoid Cisms like range(len(x)). Don't fuck around with ord so much, Python lets you do useful things to characters without treating them like numbers.
Go read some well-written real word Python code. It looks like you went in with the idea that you would be able to write good Python code because you know harder languages, but that's not how it works.
Eli Martin
All the 'i's are gone and instead I'm prefixing descriptive names with i, so I also know they're an iterator.
I use camelCase for Python and under_score for C-likes because I was taught Python we used camelCase, I see no reason to change that.
I know, but what is it that you think would find it useful?
Oops, I forgot to properly implement that, it's fixed now, but it uses a setting in settings.json not as an environment variable.
They're global for a reason and I think encapsulating them in a class doesn't make much sense. Fixed.
Where do you think this would be useful? Between functions?
I've wrapped lines more now. But I don't understand why it wasn't forking for you, was it crashing?
Your version wasn't forgiving enough, instead I switched to a regex based version.
Thanks for the suggestion, flake8 was a great help.
Should be better now. Most of the uses of range(len(x)) were because I wanted both the item and where it was in the sequence and didn't know about enumerate().
I'm using ord() because I'm using getch() which gives you an int that corresponds to a keycode.
I didn't, but I will make sure to read some real world Python code in future.
Jacob Nelson
I'll be sure to give it a go. Does NextChan have an onion?
It's a terminal-based ASCII/ANSI painter, driven with the keyboard. It's early days but you can draw, select areas, crop the canvas and save it to a text file.
Please give it a go and report any issues, because there are bound to be quite a few.
Kevin Long
Are you an 80s fag who has member berries for BBS, or a little kid on some retro-fad.
Either way, gay as fuck.
Kayden Hill
Nice!
Mason Fisher
I'm a 'little kid' who thinks TUIs look cool and that you don't need a GUI for damn near everything.
Ryan Powell
i need to get a new ide drive to my old pc and try these.
Jaxson Scott
A TUI is a poor man's GUI. You don't have the flexibility of a proper command line tool that can be piped and scripted, and you don't have the flexibility of a proper GUI that can work with pixels instead of characters, see the difference between alt+k, escape k and ctrl+[ k, fluidly react to mouse input, and so many other things. TUIs are useful when you can't properly run graphical software because you only have a terminal, but GUIs are superior if they're an option.
Easton Walker
The idea in the original thread was to use a really simple GUI with as little visual bloat as necessary, unless using a GUI provided absolutely no advantages (say, most TUI ncurses distro installation scripts offer no advantages when executed as GUI).
Daniel Davis
A mouse is better than a keyboard at pointing at things. You can become more efficient if you embrace the mouse for the things it's good at.
A ncurses installer involves lots of moving the cursor and selecting. Simple tasks like that are absolutely faster with a mouse.
Zachary Brown
1. mouse was invented for a reason.
2. docs are a little dicey.
3. I want muh ansi shading blocks, quarter blocks, and unicode wide chars that are actually useful for drawing.
4. looks weird on terminals with a different black to the terminal window background/transparent terminals.
pretty fucken noice I'm just picky about my art tools.
you can keep the screenie.
Jaxson Wilson
Thanks, those criticisms are useful.
Sure, TUIs are limited in some ways. But when those limitations aren't too hurtful, the reduction in bloat and other things like start-up time is big.
Anthony Price
What do you mean by this? It's not a very meaningful word by itself. $ time gvim -c :qreal 0m0.131s$ time vim -c :qreal 0m0.043s
Ayden Foster
Think of executable size, number of libraries it pulls in, stuff like that. GUIs, because they have to handle a lot more than character cells on a terminal, are generally bigger programs.
Thanks for showing that gvim starts up three times slower. Did you have a point with this?
Sebastian Diaz
ed will beat all of them, but even vi is ok. GUI is just pleb tier.
Jackson Bennett
I'm still on shithub for the time being (tools and projects brah) but if you sort out those issues post up on Holla Forums and I'll draw you something way cooler to promote your shit with.
Not many pixel guys doing ansi or modern ansi editors so I really hope you keep going.
Aaron Cook
text is a subset of graphics, therefore all text interfaces are also graphical interfaces.
Jaxon Campbell
No, the text interface is command-line based, not point & click. It's also scriptable and can be used on dumb terminal, like serial console or even hardware teletype.
Jack Bailey
bumping for napalm 1.0.
William White
the wheels are a subset of a car, therefore all wheels are also cars.
Juan Turner
So what are the text-only boards out there?
Ryder Hernandez
It'd be cool if someone started up a MUD for Holla Forums or textpunker boards.
Anthony Jones
Speaking of which, what's the b32 for it? I've been out of the loop for about two years now.
Michael Cook
Do any textpunkers think that there'd be any interest in basically copying /txt/'s setup for Holla Forums Holla Forums etc.?
Jaxson Lee
I found a site with lists the other day: nntpchan.info/ Dunno if it's up to date or not.
Nolan Cox
I hope you're still around.
Just released napalm v0.2 today. It's got wide chars (reach them by going into char select mode and pressing the Page Down key), mouse support and undo/redo. I haven't solved the issue on non-black terminals but I'm thinking about that.
Hope you like it and, as always, file issues and give criticisms if need be.
Alexander Morgan
Ok, so how do I browse all the album artists and for those that I want selectively add some of their albums?
Christopher Robinson
Noice. Anything that triggers the ragetards is always amusing.
Blake Ross
mpc list albumartist mpc listall | cut -d/ -f1-2 | uniq | less
Luis Hall
openrc sbase mksh dvtm i3wm st links (text mode only) mc nano (yes, nano. deal with it)
Bloat status: avoided. I'm not even ASCIIpunk (sounds gay), I just fell for the suckless meme.
Jason Smith
Mah nigga
Jordan Morris
ricer
Dominic Murphy
...
Robert Reed
Openrc isn't an init, tardo. It doesn't provie /sbin/init (sysvinit usually does).
Liam Ward
OpenRC is an init system. As you said, SysVinit is the init that usually goes with it. Again, I apologize for not saying SysVinit/OpenRC, I forgot that Holla Forums was autistic.
Leo White
ASCIIpunk > Suckless
Nicholas Kelly
ncmpc
Cooper Hughes
Who /zzt/ here?
Matthew Reed
Doesn't w3m have a shitton of security problems?
William Cook
I love this client.
Owen Miller
Ω
☹->🚗
Nicholas Rodriguez
WOW enjoy yr massive footprint fam i3 is the deginition of bloat jejejejejejeb -t. dwm user
Asher Barnes
Damn fatass! Might as well run emacs as your WM.
Parker Collins
...
Connor Gutierrez
...
Benjamin Young
don't let this thread die!
Cameron Rivera
Archive it forever: /ipfs/QmVR7K6hskZji4rGDtxTahenMP1vAKbnfbHGhhcX4orhEj
Daniel Kelly
This is great.
Aaron Williams
This will come across as bait, and I didnt really read the thread, but I really dont get the point of TUI outside of shit to use over SSH or during installations, or a few other purpouses. But not as just, the normal program you use. Its hardly any different from GUI, except you can only navigate it with keyboard shortcuts. You get keyboard shortcuts in GUIs too, and they can be pretty good. But often enough its actually faster to use the GUI. There are programs that I suppose qualify as TUI that are exceptions to this, but they're not just an ncurses analog to gui. vi/m is an example. There are programs that have no reason to get their own GUI windows, like MU* clients or text roguelikes as the examples that immediately come to mind. But, why would I use ncmpcpp instead of just, say, deadebef? Because of the way I like listening to music, I'd set them up the same, with some kinda WM script for album art in the case of TUI, but the TUI makes seeking and volume controll more finnicky. The only thing I can think of is that having a MPD, a client to it, and an image viewer and window manager for setting all that up would feel more UNIX-ey, so I'd only do it if I was setting up a meme system for that aesthetic. I suppose this looks cute for the AA, though. I'm always for having more AA around, on the terminal (*´∀`*)
Nolan Russell
Because most GUIs are designed primarily around navigating with the mouse with keyboard navigation thrown in as an afterthought. This really shows in some of them where your main method of navigating several options is just tabing/shift-tabing between them. I noticed a bit of this when switching from Thunderbird to Mutt for email.
Nope, got a download? The link on the page is broken.
Julian Rogers
faissal stop making these threads on cucked tech come to freech tech.
Jacob Jackson
Make chans decentralized again!
Grayson Martin
pls email [email protected]/* */ if you're a cat named sakamoto and want a cute furret to lick your paws haha just kidding I'm not OP
Connor Thomas
pls email [email protected]/* */ if you're a cat named sakamoto and want a cute furret to lick your paws Go ahead and cry, baby.
William Lopez
pls email [email protected]/* */ if you're a cat named sakamoto and want a cute furret to lick your paws It's good to be back.
Jack Kelly
pls email [email protected]/* */ if you're a cat named sakamoto and want a cute furret to lick your paws I picked some stuff that's not usually seen here (aside from Kirby SSU). I enjoyed them so I recommend you to give them a try at least.
Dylan Barnes
in the US you're probably only going to get half the money he made while you were married.
Leo Reed
ban yourself fucktard
Gavin Lee
Prove to me that "climate change" doesnt exist
This is fun, isnt it?
Evan Robinson
Interesting leg hair pattern
Aiden Ward
I need a browser but I'm not sure whether to go with links2 or w3m, w3m seems to display stuff more accurately but the keybinds are a pain, you have to double click to change text and there's no 'enter to submit'.
Landon Clark
If you aren't using links2 in graphics mode then you might want to look at elinks as I think it has more features for things like spoofing your fingerprint and cookie controls than links2.
Carson Lopez
I always forget to mention this site: weblog.sh Basically just for publishing text and html files over ssh to a webserver. I'd love to see more people publish interesting stuff on plaintext format or at least *TeX or even Texinfo, so we can just view it in a screen reader. Also, does anyone know of good or interesting gopher sites?
Xavier Hall
The site seems down right now
Sebastian Wright
shit, I should've checked that it was up before sharing. I hope it's not ded for good. Anyway, here's the project in gitsjw github.com/hmngwy/weblog.sh
What I liked about this is the simple interface to the whole thing, however, and that it can be accessed with pure textpunk tools. Even a browser such as links sucks for regular web searches because any search engine is likely to arrange it's stuff in a way that displays horribly in links. And any non-lynx-friendly site whatsoever has this problem. weblog.sh inspired me, however, to either use gopher or to make a server that can be accessed via ssh (as if it were a BBS) to retrieve files and do further interaction (like posting your stuff). I think that'd be in line with textpunk.
I am also thinking to make a simpler version of it where you're allocated some space in the server and it has a scripting language for you to do anything you like with your allocated "site". Think neocities but over SSH and with a richer and more straightforward (ie not js+DOM complexity) scripting framework
Parker Reyes
did you get the bug I filed dude? napalm is sick as fuck now.
Yup, thanks for that. In the latest commit I've added the character preview and removed the pg-up pg-down thingy. I'm still working out how to do file loading, but that will be coming at some point. I'm so glad you like napalm and that Pepe is p dank.
Brayden Cook
eh? I was gonna write my own ansi editor, but gtksourceview is a cunt and I'm not pro enough to do overrides when I'd be doing vala subclassing and simultaneously trying to figure out what the widget is supposed to do from a .c sourcefile.
and I don't mind giving you direction and mad screenies. 99% of free software is shit because nobody does testing or files reports. I'm just doing my bit.
Daniel Williams
I like people like you.
Jacob White
doas master race
Jaxson Hughes
Why are you still using a display manager? (did this with /etc/issue fyi)
Jonathan Harris
You wish. I think nano is fine, but it doesn't fit the minimalism meem.
Nolan Jackson
Nano is less bloated than Vim or Emacs, everything you need is compiled in (and you can compile a version without whatever it is you don't need), there isn't a retarded amount of keybinds.
Sebastian Bennett
omg how can you use such shitty program for casuals to type letters in
Easton Jackson
Step 1: Don't be autistic Step 2: Use Nano Step 3: Be happy
Jonathan Rivera
You're setting the bar extremely low.
Use sam or ed or something.
Gavin Richardson
ed is impractical to use.
Carter Johnson
Have you used it? Ed is fucking awesome.
Owen James
are you literally retarded
No one listen to the nigger OP and use mpd this way with systemdicks: systemctl --user --now enable mpdncmpcpp Configuration is in ~/.config/mpd and ~/.ncmpcpp/
Jack Walker
also check these digits.
Lucas Campbell
Useful thread.
Hunter Butler
Um, wouldn't enable make it start on login?
Parker Price
would be pretty sweet if there was a terminal BBS/imageboard thing where you upload these instead of normal images
Julian Collins
Well yes. Why would you not want to start it on login? It's the music player daemon. It's meant to run in the background.
Kayden Cruz
cool
Brayden Bailey
Because you don't want something wasting cycles and RAM when you're not even using it
Zachary Miller
I love you op.
Easton Rivera
Right, let's revive this corpse of a thread with a new release: napalm v0.3.
Anyone who still cares can now import the files they saved with the :e or :edit command. If you would be so kind, please test this feature with garbage data, because it is the kind of thing that would be fragile. There is also cutting, copying and pasting ('x', 'k' and 'p' keys respectively) of selected areas, as well as a :fill command for a flood fill starting with the currently selected pixel.