@prologic@twtxt.net Those arenāt actually serving anything public-facing. Iāve thought about it, but for now Iām sticking with VPSs, partly because I donāt relish the risk of weeks of downtime if something goes wrong while Iām travelling.
@prologic@twtxt.net Hereās mine.
Edit #issuecomment-18968
@eapl.me@eapl.me @andros@twtxt.andros.dev hereās another variant as per eaplās suggestion (#issuecomment-18968)[https://git.mills.io/yarnsocial/twtxt.dev/issues/9#issuecomment-18968]
@bender@twtxt.net Hmmm, does that mean itās not that popular in the US? š¤
I hope not, @bender@twtxt.net! I havenāt checked, but Iād reckon it to be at most a single digit MiB number. How wrong am I?
@off_grid_living@twtxt.net No right click thing, but in the terminal:
convert -strip -quality 70 -resize 300x original.jpg resized.jpg
āoriginal.jpgā being the filename of the input file and āresized.jpgā the filename of the output. You can play around with the width, ā300xā means 300 pixels wide and the height is determined automatically to still remain in the same ratio. The quality is how much to compress it. The closer to 0 the value gets, the worse the result, but also smaller in file size. More towards 100 and the quality improves together with a larger file size.
You have to install the package āimagemagickā for this to work, I believe.
@off_grid_living@twtxt.net Oh, Iām ready for my retirement, too. :-D Still have some decades to go, unfortunately.
@off_grid_living@twtxt.net You could try starting it in the terminal in order to spot errors. Just open the GNOME Terminal or something like that and then type in ākolourpaintā and hit Enter.
@bender@twtxt.net Lol! :-D
here is my progress so far: https://github.com/eapl-gemugami/twtxt-direct-message-php
The encryption part seems to work, if I decrypt it the message with OpenSSL.
I think it can help you for some key parts not well explained in OpenSSL documentation.
@andros@twtxt.andros.dev reading your spec I wrote a few notes here: https://github.com/eapl-gemugami/twtxt-direct-message-php/blob/main/direct_message_spec.md
@arne@uplegger.eu I havenāt check your repo yet, although you are using sodium, right?
@arne@uplegger.eu Here are the results of the german jury:
Known salt (B64): Tb9oj07UhwU= (8)
Known key (B64): MII0yj+MC0mHNx254Voar80bi9P7jmocs0+x+inaxBE=
Known iv (B64): l/PvkDjOKMFZe73KptrvWw== (16)
Shared Key (B64): ql8zvN03p6kroSwNrcKbxk4zSBQFkgQZEumvqVIDMAE=
** DECRYPT **
Encrypted Message: ...
Decoded Salt (B64): Tb9oj07UhwU= (8)
PBKDF2 KEY (B64): MII0yj+MC0mHNx254Voar80bi9P7jmocs0+x+inaxBE=
iv (B64): JanbU1jI30lb6yfjq/adjA== (16)
Decrypted Message:
š
@eapl.me@eapl.me Here is what Iāve got so far: https://github.com/upputter/testing-twtxt-dm
There is a ā00_well_known_message.encā file, which I have the encryption paremters for (https://github.com/upputter/testing-twtxt-dm/blob/9fdf3be6aa8fe810a4cb275375dbb3d4a2a958ee/wellknown_test.php#L28).
According to my finding, I assume, that the saltsize
in openssl is ā8ā and the PBKDF2
algo is āsha256ā.
@andros@twtxt.andros.dev Could you share (perhaps in the extension document) the private key for alice?
I want to compare that I can read the encrypted message both from OpenSSL CLI and from the PHP OpenSSL library, following the spec.
echo "Lorem ipsum" | openssl enc -aes-256-cbc -pbkdf2 -iter 100000 -out message.enc -pass file:shared_key.bin
will take the input string from echo
to openssl
. It then will
@arne@uplegger.eu With the OpenSSL option -p
one can get an output of salt
, key
and iv
. My stupid PHP-code can get everything right from the encrypted data (from OpenSSL) - except the iv
! Damn āevpKDFā š
@prologic@twtxt.net Iāve been there yesterday w/o success.
@arne@uplegger.eu Hi! I love that youāre implementing it! Maybe, when weāre both done, we could test the clients by communicating both.
I donāt think Iām going to be able to help you much, my knowledge of OpenSSL and PHP is not as high as Iād like it to be.
Maybe the OpenSSL version uses SHA-1 by default in PHP. Or that the IV is derived together with the key (not generated separately). But Iām not able to answer your questions, sorry.
Iām invoking the commands directly, without any libraries in between. Maybe that would help you?
@arne@uplegger.eu Well, just for my understanding. The command:
echo "Lorem ipsum" | openssl enc -aes-256-cbc -pbkdf2 -iter 100000 -out message.enc -pass file:shared_key.bin
will take the input string from echo
to openssl
. It then will
- use the content of
shared_key.bin
as password
- use
PBKDF2
with an iteration of 100000 to generate a encryption key from the given password (shared_key.bin
)
- use the
PBKDF2
generated key for anaes-256-cbc
encryption
The final result is encrypted data with the prepended salt (which was generated by runtime), e.g.: Salted__q�;��-�T���"h%��5�� ...
.
With a dummy script I now can generate a valide shared key within PHP āopenssl_pkey_derive()ā - identical to OpenSSL.
I also can en-/decrypt salted data within my script, but not with OpenSSL. There are several parameters of PBKDF2
unknown to me.
Question:
- Is the salt, used by
aes-256-cbc
andPBKDF2
the same, prepended in the encrypted data?
- Witch algorithm/cipher is used within
PBKDF2
: sha1, sha256, �
- What is the desired key length of
PBKDF2
(https://www.php.net/manual/en/function.openssl-pbkdf2.php)?
To be continued ā¦
But that is not how it should work. š
@andros@twtxt.andros.dev I have really tried to get behind it. For an implementation for my TwtxtReader (PHP) I simply lack the knowledge of the standard-openssl parameters.
All my solution approaches require ānonceā or āinitialization vectorā on one or the other side. In addition, the āmagic numbersā (āSalted__ā) were not consistent in my tests.
@prologic@twtxt.net I wish getting a static IP and a (more) stable internet connection wasnāt so hard over here. Then I could do proper self-hosting as well. But as it stands, I need some rented VPS.
I could go ahead and just use the VPS for the IP, i.e. forward all traffic through Wireguard to a box here at home. Big downside is that the network connection would be even slower than it already is and my ISP breaks down all the time for a few minutes ⦠itās just bad overall and much easier/better to rent a VPS. š«¤
Thanks, @falsifian@www.falsifian.org! Iāll definitely start with the latter one then. Letās see how far I make it. :-)
@falsifian@www.falsifian.org Phew, okay. So, it took a few months to grow that big. I feared that it could have been just a week or so. Yeah, insulation always is a good idea.
@prologic@twtxt.net Holly, didnāt know bots and crawlers could do comedy now⦠they shouldāve added āDave Chappelle/69.420ā to their UA.
@prologic@twtxt.net Iām speculating, but if I had to guess Iād say itās probably asking for your user password in order to access some user keyring (or whatever your OS uses to manage user secret credentials) used to safely store your passkeys related data in order to do its passkeys /ME doing air quotes Magic⢠⦠you could try with a different password manager to avoid said scenario.
Also, passkeys UX sucks.
@lyse@lyse.isobeef.org I donāt remember exactly. They might have been growing all winter. The trick is to have a badly insulated extension to the house.
@falsifian@www.falsifian.org Hahaha, thatās sick, I love it! :-D I envy you a bit. On the other hand, I have to admit Iām glad that I donāt have to chisel down giant blocks of ice from the house.
@lyse@lyse.isobeef.org I am a big fan of āobviousā math facts that turn out to be wrong. If you want to understand how reusing space actually works, you are mostly stuck reading complexity theory papers right now. Ian wrote a good survey: https://iuuk.mff.cuni.cz/~iwmertz/papers/m23.reusing_space.pdf . Itās written for complexity theorists, but some of will make sense to programmers comfortable with math. Alternatively, I wrote an essay a few years ago explaining one technique, with (math-loving) programmers as the intended audience: https://www.falsifian.org/blog/2021/06/04/catalytic/ .
@falsifian@www.falsifian.org Mate, what an amazing video, holy cow! :-D We only get complete jokes of icicles compared to what you had there ealier today. Itās a giant wall. For how many days did that grow on your roof?
@lyse@lyse.isobeef.org Still melting!
@falsifian@www.falsifian.org Oh, thatās neat! Interesting how āobviouslyā isnāt all that obvious at all, even to the contrary. I reckon I have to read up on that subject on the weekend. :-)
I like how Ianās and your photo complement each other, winter and summer join forces for something special. :-)
@falsifian@www.falsifian.org Wooooaaaahhh! That is BY FAR the biggest icicle Iāve ever seen. Really cool! :-) How long did it take to melt in your sink? The video download is still dripping in, looking forward to that.
twtxt
, the microblogging for hackers and friends...
@eapl.me@eapl.me I couldnāt care less about ActivityPub, but twtxt is the thing for hackers by design. Thatās the appealing part for me, personally. I actually do enjoy that not everybody and their dogs are here. :-)
@thecanine@twtxt.net I agree!
@movq@www.uninformativ.de @prologic@twtxt.net I donāt know, I donāt see this happening all that often. Very rarely. The problem I encounter much more often is that tech folks are blindly adopting every new hype without thinking the slightest bit what the consequences might be.
But maybe that also means Iām one of these ātold you soā guys. Not sure.
Today is an important day. We have a new extension: Direct message šŖšØļøšš„³ā¤ļø
https://twtxt.dev/exts/direct-message.html
#twtxt
@sorenpeter@darch.dk Sorry, I realized that shortly after posting. Hereās another attempt to post the images:
@eapl_en@eapl.me Good idea
4, but I like the idea of @eapl_en@eapl.me
What would you like the new twtxt logo to be?
Comments: https://git.mills.io/yarnsocial/twtxt.dev/issues/9#issuecomment-18960
@prologic@twtxt.net All the URL are missing the protocol part (https://
) and my markdown parser does not know how to handle but I see yarnd does it just fine.
@falsifian@www.falsifian.org
it look like your markdown image tags are missing the protocol part (https://
) so they donāt render at least on my server: https://darch.dk/timeline/conv/3vtnszq
@prologic@twtxt.net Have you tried Googleās robots.txt report? https://support.google.com/webmasters/answer/6062598?hl=en . I would expect Google to be pretty good about this sort of thing. If you have the energy to dig into it and, for example, post on support.google.com, Iād be curious to hear what you find out.
Something interesting to think about for twtxt
, the microblogging for hackers and friendsā¦
The biggest challenge of ActivityPub is that itās too technical to easily explain to regular people. Nobody is interested in a jargon-laden diatribe about servers and federation. When simple questions have overly complex answers, people tend to switch off.
https://activitypub.ghost.org/your-thoughts-on-onboarding/
@bender@twtxt.net @prologic@twtxt.net the markdown list in #jr6ywrq is a ālooseā list, e.g. https://github.com/erusev/parsedown/issues/474#issuecomment-280874843
My markdown parser (parsedown PHP) renders the list with p
-tags also.
@andros@twtxt.andros.dev Thank you :-)
@andros@twtxt.andros.dev screenshots plz :=!
Yesterday I was doing a lot of research on how #hyperdrive and the #holepunch project work. Would it be possible to use it to make #twtxt an easier gateway for new users? Could we stop using web servers?
My conclusion: We would end up being a #nostr. On the one hand it would become more complex to use, it would force the user to have software installed, and on the other hand the community would need a central proxy to make the routes accessible via HTTP. In other words, itās not a good idea.
However, itās an AMAZING technology. I want to start playing with it.
@prologic@twtxt.net š¤£š¤£š¤£ thanks! I didnāt even notice š
@prologic@twtxt.net It seems like the typical problem of an unneutered cat š
@prologic@twtxt.net That boycott didnāt last very long, eh!?
Yeah, sounds like another hype train arriving at the station.
tt
rewrite in Go and quickly implemented a stack widget for tview. The builtin Pages is similar but way too complicated for my use case. I would have to specify a mandatory name and some additional options for each page. Also, it allows me to randomly jump around between pages using names, but only gives me direct access the first, however, not the last page. Weird. I don't wanna remember names. All I really need is a classic stack. You open a new fullscreen dialog and maybe another one on top of that. Closing the upper most brings you back to the previous one and so on.
@doesnm@doesnm.p.psf.lt Iāll let you know once it reaches a point where it might be barely usable by someone else than myself. There are long ways to go, though. Right now, you donāt wanna even look at it. :-)
tt
rewrite in Go and quickly implemented a stack widget for tview. The builtin Pages is similar but way too complicated for my use case. I would have to specify a mandatory name and some additional options for each page. Also, it allows me to randomly jump around between pages using names, but only gives me direct access the first, however, not the last page. Weird. I don't wanna remember names. All I really need is a classic stack. You open a new fullscreen dialog and maybe another one on top of that. Closing the upper most brings you back to the previous one and so on.
Thinking about trying tt. If it really usable i will abandon twtxtdon (service to read twtxt feeds from mastodon client), which currently has only authorization implemented
Iām continuing my tt
rewrite in Go and quickly implemented a stack widget for tview. The builtin Pages is similar but way too complicated for my use case. I would have to specify a mandatory name and some additional options for each page. Also, it allows me to randomly jump around between pages using names, but only gives me direct access the first, however, not the last page. Weird. I donāt wanna remember names. All I really need is a classic stack. You open a new fullscreen dialog and maybe another one on top of that. Closing the upper most brings you back to the previous one and so on.
The very first dialog I added is viewing the raw message text. Unlike in @arne@uplegger.euās TwtxtReader, Iām not able to include the original timestamp, though. I donāt have it in its original form in the database. :-/
Next up is a URL view.
@movq@www.uninformativ.de Thatās what I immediately thought as well. :-D @eapl.me@eapl.me Unfortunately, no fancy buttons. What does your model do?
Added support for uploading images to to #Timeline
Right now you need to copy the markdown code yourself, but next up would be to lean some JS or use HTMX to make the process more smooth.
@prologic@twtxt.net Of course you donāt notice it when yarnd only shows at most the last n messages of a feed. As an example, check out mckinleyās message from 2023-01-09T22:42:37Z. It has ā[Scheduled][Scheduled][Scheduled]ā⦠in it. This text in square brackets is repeated numerous times. If you search his feed for closing square bracket followed by an opening square bracket (][
) you will find a bunch more of these. It goes without question he never typed that in his feed. My client saves each twt hash Iāve explicitly marked read. A few days ago, I got plenty of apparently years old, yet suddenly unread messages. Each and every single one of them containing this repeated bracketed text thing. The only conclusion is that something messed up the feed again.
@eapl.me@eapl.me I like this idea. Another option would be to show a limited number of posts, with an option to see the omitted ones by user. Either way, I wonder how well that works with threading.
@movq@www.uninformativ.de Ja, vƶllig behƤmmert. Schade, vertane Chance für einen āDochā-Knopf.
@prologic@twtxt.net Tolerant yes, but in the right places. This is just encouraging people to not properly care. The extreme end is HTML where parsers basically accept any input. Iām not a fan of that. Whatever.
@prologic@twtxt.net The issue is that all bracketed text in the entire feed has been duplicated again two days ago. The bug is not fixed. Or itās a new one.
@movq@www.uninformativ.de I can relate to that. :-/
Thanks @prologic@twtxt.net @eapl_en@eapl.me @lyse@lyse.isobeef.org ! I take note
@aelaraji@aelaraji.com You can update the package š
@andros@twtxt.andros.dev I suggest to not touch it and work on a different project instead. :-D
No, in all seriousness, thatās a tough one. Try to figure out the requirements and write tests to cover them. In my experience, if there is no good documention, tests might also be lacking. It goes without saying that you have to understand the code segments first before you can begin to refactor them. Commit even earlier and more often than usual, this will help you bisecting potentially introduced bugs later on. Basically baby steps.
But it also depends on the amount of refactoring required. Maybe just scrap it entirely and start from scratch. This might not be feasible due to e.g. the overall project size, though.
@andros@twtxt.andros.dev Iām all for elegant solutions. I prefer when the computer helps me to really achieve my goal and solve it completely, not where I still have to manually filter a list by hand. Anyway. :-)
@eapl.me@eapl.me Yeah, you need some kind of storage for that. But chances are that thereās already a cache in place. Ideally, the client remembers etags or last modified timestamps in order to reduce unnecessary network traffic when fetching feeds over HTTP(S).
A newsreader without read flags would be totally useless to me. But I also do not subscribe to fire hose feeds, so maybe thatās a different story with these. I donāt know.
To me, filtering read messages out and only showing new messages is the obvious solution. No need for notifications in my opinion.
There are different approaches with read flags. Personally, I like to explicitly mark messages read or unread. This way, I can think about something and easily come back later to reply. Of course, marking messages read could also happen automatically. All decent mail clients Iāve used in my life offered even more advanced features, like delayed automatic marking.
All I can say is that Iām super happy with that for years. It works absolutely great for me. The only downside is that I see heaps of new, despite years old messages when a bug causes a feed to be incorrectly updated (https://twtxt.net/twt/tnsuifa). ;-)
Exactly, @bender@twtxt.net, just like yours and prologicās, too. :-( Subsequent Brackets Considered Harmfulā¢.
@eapl.me@eapl.me Read flags are so simple, yet powerful in my opinion. I really donāt understand why this is not a thing in most twtxt clients. Itās completely natural in e-mail programs and feed readers, but it hasnāt made the jump over to this domain.
@mckinley@twtxt.net Yeah, all this JS and HTMX garbage messes up a lot of things which used to work better in the earlier days.
@prologic@twtxt.net @xuu@txt.sour.is There:
Just search for ][
in https://twtxt.net/user/mckinley/twtxt.txt and youāll see.
@movq@www.uninformativ.de @prologic@twtxt.net @bmallred@staystrong.run @andros@twtxt.andros.dev Thank you all! I donāt have emacs installed, so Iāll try lagrange and see. According to my shell history, I must have played around with amfora ages ago.
@xuu@txt.sour.is People should just fix their feeds. :-)
@aelaraji@aelaraji.com Sorry Iām late! I still have to work on the mention system, I donāt get some of the messages. Iāll look into your case and get back to you shortly š
If itās a problem that ruins your experience, donāt hesitate to create an issue.
@xuu@txt.sour.is Thank you! A common mistake is to see Emacs as a text editor but itās a Lisp interpreter with a text editor (among other software), so the limit is your imagination š. Iām glad you like it! š
i made a little twtxt feed fixer for when a feed uses other whitespace instead of tabs.
@prologic@twtxt.net the code block is the cause of https://txt.sour.is/twt/zn2kg7q
and the second? i get POST errors when i try to submit the webform.
@andros@twtxt.andros.dev lol nice! emacs is wild. text and graphics all inline.
@andros@twtxt.andros.dev Broke on me for having alt-urls I think š„²
twtxt---profile-layout: Wrong type argument: char-or-string-p, ("https://aelaraji.com/twtxt.txt" "gemini://box.aelaraji.com/twtxt.txt" "gopher://box.aelaraji.com/0/twtxt.txt")
@movq@www.uninformativ.de Yeah, maybe. What browsers are you using again for these two?
@mckinley@twtxt.net And there is the bracketed text duplication bug again⦠Actually with lots of twts. Did you edit a twt? Do you remember? /cc @prologic@twtxt.net
@bmallred@staystrong.run Surprisingly, my
User-agent: *
Disallow: /
seems to work. Or maybe those bastards change their user agent and claim to be someone nice. In any case, I just added a bunch of
location = /robots.txt {
add_header Content-Type text/plain;
return 200 "User-agent: *\nDisallow: /\n";
}
in my nginx config. No need for any bot to visit, crawl and index most of my sites.
@movq@www.uninformativ.de Photographic memory, eh?
@movq@www.uninformativ.de I also thought that I have a new Linux friend the other day. But it was just a fake KDE look from Redmond. :-(
Totally agree @jost@jost.sdfeu.org @prologic@twtxt.net
I have uploaded a new version of #twtxtel š„³. Itās now possible to view profiles, either your own or others. #twtxt #emacs
@prologic@twtxt.net @xuu@txt.sour.isDid you want to mine Chia? Or Twtxt Coin? š
@jost@jost.sdfeu.org Yeah, this AI crap is a big reason not to blog.
@andros@twtxt.andros.dev The article is a good reminder of the true blogging mindset. But letās try to think beyond. 2 ideas: (1) writing āforces clarity, structures your thoughts, sharpens your perspectiveā. But it also generates thoughts in the sense of Heinrich von Kleist (1805). (2) Youāre writing for āthe future you, one right person, one dayā but you are also writing for the AI. The idea of AI as an audience.
@movq@www.uninformativ.de It happens to the best of us :-) On a more serious note: Iām relieved to hear that Iām not the only one who is completely perplexed by his own projects when returning back to them after a short hiatus.
@movq@www.uninformativ.de So they say. :-D
@prologic@twtxt.net Ha,ha :-) I do not maintain anything! In the context of that post I was just an ordinary citizen. So the āweā refers twice to āwe, the citizens of the Baltic Statesā. (Classical case of social media ātalk at cross purposesā. Now I understand, why they do this Introduction-thing over on mastodon ;-)
@prologic@twtxt.net we need to remove: https://git.mills.io/yarnsocial/go-lextwt/src/branch/main/ast.go#L776-L784
apparently i canāt make the edit via gitea.. i am guessing its hitting one of your firewall rules.
@andros@twtxt.andros.dev Awesome! Iāve seen the demo earlier on mastodon, things are getting better and better with each update š Good luck!
Iām realizing that my performance bottleneck is @prologic@twtxt.net ! It is actually calculating the hash to make the replicas, and specifically users with very long feeds š . Iām seriously thinking about enabling replies via configuration.
Well, thatās another bug: The search https://twtxt.net/search?q=%22LOOOOL%2C+great+programming+tutorial+music%22 yields the wrong hash. It should have been poyndha instead.
@prologic@twtxt.net hmm this isnt right..