#and a lot more that i never put on github
Explore tagged Tumblr posts
kaiserouo · 11 months ago
Text
Tumblr media
Someone bring me home i dont wanna read anymore journal papers
13 notes · View notes
narastories · 3 months ago
Text
on the topic of writing software
I want to ramble at you about some writing software options. 98% of the time I'm perfectly content with LibreOffice Writer (and previously I used Word, back when Microsoft products were less shitty). But every now and then when I have a new project (like now - more on that later) I start looking for something shiny and new to try. And I fell down into another research rabbit hole lol
I usually don't talk a lot about this bc my needs are very simple, and not sure how useful my opinion is to others, but I enjoy the topic. It's an intersection of creative writing and tech nerdiness and I like both of those things. Also what writing software you prefer really depends on the type of writer that you are, and everyone has a slightly different writing process and I find that fascinating.
Now, as I said, I'm coming at it from a slightly tech-nerd angle. I don't care if the installation is clunky, I'm happy to see the words open-source, and the need to create an account will already mildly piss me off (:
Don't worry, I'm not as intense as the guy writing his novel in Vim. Though fucking respect. And I can't say I'm not tempted to try it even with the steep learning curve lmao (Seriously, if you don't know Vim is notorious among software developers.)
Anyway, things I've tried so far:
Manuskript: this was listed as an open-source Scrivener alternative (though I haven't tried Scrivener. so.). I gave it a go when I was writing heart worth the trouble and it was pretty nice. It helped me when I had to move scenes and chapters around. But overall I think it was made with plotters in mind bc it wants you to enter a lot of information upfront. I'm not a planner/architect type of writer so this type of software is a bit overwhelming for me. Still, the fact that it's open source and works on Linux gets kudos from me.
Wavemaker: I recently played around with this, and I actually surprisingly like the features it has. You can put multiple books in a project, which is very nice if you like to work on different things, like fanfic, novels, etc. The mindmap is a feature I liked, though it's a bit clunky bc it collapses the text fields when you exit, and once I added an image field by accident that I could never remove lol I do like a bit of a snowflake method, so that feature is cool, and the cards are pretty straightforward too. Usually, my problem with these apps is that I don't even want to touch half of the features so they are pointless to me, but the features of Wavemaker were kind of nice. It's a web app that you can download and use offline but it's still working from your browser if that makes sense. That was what I didn't really appreciate. Also, it doesn't give you a lot of options to back it up. You either save the wavemaker file, export it into a document (which is fine, but it adds an extra step to the backup process) or you sync with Google Drive *shudders*
Things I want to try out:
Calmly Writer: now this is just purely a text editor that focuses on being very zen, streamlined, distraction-free, etc. It's pretty and it has typewriter sounds. (Yeah, I'm not immune to a pretty UI and harmless fun features alright? I can contain multitudes :P) It has an online version, but you can also download it, and works on Windows, Mac, and Linux. On paper, the desktop app requires a license, but the way they put it is that you can evaluate it for free and the evaluation doesn't have an enforced time limit... So. As good as free. (Though if I really like it, I would totally consider buying a license for 20usd that I can use on 3 computers, that seems fair. I appreciate a license over a subscription model for sure.) Honestly, I think this is the one I'm going to try next bc it just integrates perfectly into my writing process. That being: a multitude of messy, hand-written notes and notebooks + a document editor + backups on hard drive and GitHub (yes, really) ^^"
Shaxpir: This is on the opposite end of the spectrum basically, but out of the "fancy" ones, I kind of like the look of this the most. I like the statistics part in particular. But honestly, I probably won't try it bc it doesn't have a Linux version which would be a pain in the ass for me, and is cloud-based. I kind of don't really trust them, which is my biggest issue with these companies. (Although the creator's heart seems to be in the right place when it comes to AI. Basically, some of their features are based on machine learning and language models. For example, it will recognize passive voice, if it's an adverb with "-ly" or the emotion of a word. Which I think is all cool and fine and shouldn't be lumped in with generative AI. But he also had a website that did this analysis for already published works, and when people pointed out that it was sketchy, he took that down and I can respect that. I'm not sure how much it influenced the actual features of the app, maybe I'll just take a peek out of curiosity. The whole thing does make me have trust issues though lmao) If anyone has experience with it though, I'm interested to hear about it.
Obsidian: not a dedicated writing software, but rather an elaborate note-taking app. I heard good things about it from smart people lol If I really wanted to access my writing on my phone, I would probably use this bc it works on every platform and has end-to-end encrypted sync with version control. I heard you can also integrate it with GitHub which is always music to my ears lol But the setup probably takes a bit of time and I'm not particularly motivated to do that right now.
So yeah, those are the options that appeal to me right now. If anyone used these and has opinions, I'm all ears :D
137 notes · View notes
tinystepsforward · 8 months ago
Text
automattic vs wp engine mastterpost
adrienne's GitHub recap is probably the best place to see a comprehensive timeline of what's going down. it's been kept up to date. my (very out of date) previous writeup is here.
what's happened/other links
Tumblr media
Matt has not logged off, just switched platforms, so there's lots on X/Twitter, Reddit, and Hacker News. it's really not worth wading through.
WP Engine actually filed suit.
the complaint includes some truly remarkable screenshots of Matt trying to blackmail the CEO of WP Engine.
Tumblr media
which... personally i would not happily work for someone who just blackmailed me while not even my boss, but that's just me. he hasn't denied this at all, in fact confirming on Hacker News:
I haven't doxxed any private texts from other parties like they have. [source]
and, notably,
I even invited her to my 40th birthday on Jan 11, another text message she decided not to share. [source]
this gives me the creeps. in the context of the rest of the way he's talking to her, and the ways in which he's interacted with women in general, it's. not great.
also he slid into an ex-employee (also a woman)'s DMs asking why she was being mean to him bc he'd never been nothing but nice to her, while also making legal threats. so y'know, pattern of behaviour.
a good writeup of the social side of things
if you don't care so much about the open-source stuff, Steph Lundberg's writeup is, like her previous one on Matt's Tumblr meltdown, pretty solid and people-focused.
Mullenweg has already demonstrated egregious lapses in judgment and abuses of power, it’s just that up until now he’s wielded his power against vulnerable populations without access to high-powered lawyers and their own massive platforms.
a more technical writeup
this one is melodramatic in the same ways Matt was (uses war terminology), which i don't agree with, and which led to some... internal arguments at Automattic. that part's not my story to tell, but a little more on that later. it's a solid writeup of the actual WordPress side of things. there's some seriously dodgy trademark behaviour going on here.
of note: this blogger locked comments on his post:
Tumblr media
and then Matt, uh, found a way around that:
Tumblr media
wild!
10% of Automattic leaves
that's a link to Matt's blog post. here's an Internet Archive link.
in short, staff were offered a severance deal of the higher of $30k or six months' salary. while that's very generous, it's still very risky in today's tech market, especially (for the same reasons i mentioned when Matt was melting down on here) for people outside the US, people who need the health insurance, or people with young kids. despite that, 10% decided with very little notice (they had two days to decide) to leave.
However now, I feel much lighter. I’m grateful and thankful for all the people who took the offer, and even more excited to work with those who turned down $126M to stay. As the kids say, LFG!
i'm thrilled to see some of my ex-colleagues make it out. i'm keeping the rest who have stayed on in my thoughts. i don't know anyone who's wholesale shilling for Matt.
Matt's been pressuring staff to post in support of him, @-ing the entire company to vote on Twitter polls in his favor, and so on. many of the people who stayed have written blog posts about it, all starting with "I stayed". people on social media have pointed out the very clear pattern of Automatticians jumping into discourse to defend Matt, and it doesn't look good.
i don't have a lot to say about those posts, except to highlight Jeffrey Zeldman, whose "I stayed" post is perhaps one of the more honest ones. (his Rodney King reference was in poor taste, and he... i don't like his role at automattic, tbc) but like. he's nearly 70. he helped shape the modern internet and develop its accessibility standards. he has often put his neck on the line for disabled staff who don't have as much clout as he does. given the financial troubles he talks about and the state of this market and how old he is, i personally have read between the lines of what he's saying in a particular way.
fuck, man. i'm sad. i'm sad for all my friends who are creaking under the strain and watching others leave but who can't do that. i'm sad that many of them are left in teams which are half-empty or divisions where significant senior leadership are just gone, with no time to document what they had in progress.
i'm sad for Josepha Haden Chomphosy, the former executive director of the WordPress Foundation, who was dealing with a personal emergency and ended up having to miss WordCamp US (where Matt started publicly starting shit with WPE). she came back from that to a gigantic fire in the community she's invested a decade of careful, Matt-negotiating, stewardship to, and decided to take the severance offer. she deserved better.
other things Matt's been up to
mostly linking to comments or posts which compile things here, bc it's too scattered otherwise.
blocking people from the official WordPress X account if they disapprove of his actions.
publicly talking about a vulnerability in ACF, a plugin WPE maintains, which could put thousands of sites at risk. this is not normal, and he met with so much horror even from current staff that he deleted his post.
saying he comes across badly because he's "a little ASD", which is driving me personally up the fucking wall. he's never once said it before and he really is turning into Temu Elon.
generally bragging that he still has more planned. jesus fucking christ
Tumblr media
continually saying that WPE's suit is against WordPress.org and the community, which is not true. on which note, his pinned tweet is certainly something:
Tumblr media
his choice of lawyer is uh. the kind of guy to defend nestle against literal child slaves.
as always, while i think WordPress crumbling will disproportionately affect websites in poorer parts of the world, there are certainly tyrants who are causing much more immediate and potent suffering. if you've read this far, please do send anything you have spare to gazafunds.com.
188 notes · View notes
molsno · 11 months ago
Text
when I finally get hired, I'm gonna look for an apartment that I can actually afford, drive to my mom's house, load up all the stuff I left there in my car, and then take it all to my new place. I'm gonna have to buy new furniture, but I can figure that out. once I have all my stuff in my new apartment, I'm gonna decorate it to my heart's content. I can bring out all the plushies I had to leave behind when I moved to california. I wanna set up all my game consoles. I wanna put up all my posters and get some new ones. I wanna make it into a place that feels like it's really mine, a place I can feel comfortable coming home to.
there's a lot of stuff I wanna do, too. I've been without my desktop for over a year at this point, and there's a lot of files I've really been missing, old programming projects whose github repositories have been deleted, but which still exist on my hard drive. I wanna have a nice, comfortable setup for using my computer, something I've never really had before. oh, I wanna cook, too. I'll get nicer cookware than the cheap stuff I've been scraping by with. maybe I can even buy a dining table for once. if I have enough money, I'd really love to finally get electrolysis and say goodbye to my facial hair for good. if I think my position is stable enough, I want to finally get bottom surgery too. I want to read more theory and educate myself on marxism, history, feminism, racism, and more. I want to learn chinese. I want to get involved in political organizing. I want to make friends and invite them over and hang out and go to events and enjoy life.
I don't think I'm asking for much. I just need enough stability to be able to do all those things. I know it will happen. I did a lot of that last year, even if I was limited in a lot of ways by my situation. I'll be able to live the life I want. even if it takes a little more time, it will happen eventually. I'm not going to give up.
19 notes · View notes
mechanical-creature · 10 months ago
Text
found this WowWee Roboraptor at a thrift store. There were actually two of them on the shelf. According to the sticker it came from RadioShack.
Tumblr media Tumblr media
Something had really gnawed one of the claws and there was green paint, and it was full of dust, so I took the whole thing apart and cleaned it thoroughly. The design is pretty cool.
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
There are too many things for me to list. There's hidden buttons everywhere, and this board. I have never seen a toy PCB have trim pots in any decade. What is there to adjust? And a giant exposed copper diamond. And a blob chip, on a breakout board with labelled pins. Doesn't that cost more? This thing is mechanically and electronically complicated for a toy, and there seem to be a lot of corners uncut. Very interesting. Also there are so many different kinds of screw that you have to go to great lengths to keep them organized.
Tumblr media Tumblr media Tumblr media
After cleaning it I made an attempt at retrobrighting the plastic. It may have done something. I 3D modeled and printed a new claw, and put it on the arm. I might paint it later. There was also a broken spring anchor that I fixed.
Now there is an app to control this guy. But it relies on specific hardware and an older Android version. I found this on GitHub
Which contains raw IR data for the basic direction controls, and later they figure out how to decode all the signals. I tried transmitting with one of my ESP8266s, but had no luck. However, I found I could transmit the raw signals with a Flipper Zero through the CLI, and I put them in an IR remote file. Now I have a controller for it, though I can't control the moods or anything.
I still wonder what's up with that PCB. With the chips so easily accessible, maybe I can do some hacking?
Tbh this is way more fun for me than if I just bought this toy new and it worked. Buying it damaged with no controller was like getting a free puzzle
5 notes · View notes
stoopidpoopid · 1 year ago
Note
Who would you say is your favorite lady from pathologic?
Oooo!! Eva, 100%. But closely followed by Clara.
They are all really interesting characters in their own rights, and even the ones I’m not actively crazy over or don’t get much focus from the narrative have something cool going on. Putting this under a cut since it’s kinda long but here’s a few reasons why I love every Patho lady :) (Mostly based off the Classic versions of the characters, with some elements from 2 thrown in for flavor) I’m also on my phone with no access to a computer atm, so I apologize for any spelling/formatting errors. Ideally I’d source dialogue from the github as well, but the mobile verson is a pain to navigate.
Eva: I love Eva for her kindness and willingness to try and help even though she is pretty powerless in the narrative (her trying to get Daniil to help the runaway butchers), and her eventual sacrifice is tragic. Every time I visit the Stillwater after day 7 there is something missing. I think her conversations with Daniil are also really sweet (I personally read it as a little romantic though I know many people don’t). I also tend to sleep in the Stillwater as Artemy and Clara because I find it the most homey + I find the presence of Eva to genuinely be pretty comforting in an extremely stressfull game.
Clara: Why I like Clara is a little harder to define tbh. Her ending is my favorite though and her character concept is inherently cool to me. She wants to do good and help people, but what is good can be hard to do, especially when you are either treated as a saint or a demon with practically no middle ground. Her plea for the player to “please define me” strikes a chord with me as someone currently trying to figure out what I want to do with my life.
Maria: My lovely lady. I find her pretty striking. Many characters hold her up to be almost a goddess (like Nina), but she feels very human when you talk to her. She’s charming, flirtatious, and sometimes even a little awkward and unsure. Her grief over Nina is touching (I think at one point she says she’s going to go to sleep and dream of Nina, and calls her mommy) and a very humanizing element. Her conversation on day 11 with Daniil in Nina’s tomb is such an interesting exploration of her philosophy.
Anna: First of all, I just find clowns and a circus aesthetic pretty fun. Anna is also genuinely pretty funny (“I’m going to bribe my haters away!”) and I always love going to chat with her. I think the key to me sympathizing more with her as a character was finding out that she’s still pretty young (the wiki puts her at 18 based on the character concepts, which makes a lot of her behavior make a certain amount of sense even when not accounting for the caravan trauma).
Anna is also a sort of changeling herself due to her being used in the caravan for their kidnapping plots, and changing her appearence (though I do regcognize the anti-Romani steryotyping present here). There’s also a lot of mystery present in her character even with the explaination given and I think that could be a cool jumping off point for theories and fanworks.
Ultimately I find Anna interesting as an exploration of trauma, mental illness, the cycle of abuse, and guilt. She never really had a chance in life to be a better person due to the caravan. I do think she wants to be a better person (“helping” Lara, her ultimate sacrifice), but is held back by her trauma, selfishness, phobias, and need for validation, leading her to harm others even more vulnerable than herself (Willow). I think I remember her saying that she’s illiterate in P2. I don’t have a point in bringing that up really besides to emphasise that she doesn’t even have many practical skills. I think she might be another favorite actually.
Lara: I like Lara much for the same reason I like Eva, in that they are both kind and generous ladies who have been made a bit helpless by the narrative and ultimately decide the best way to help is self sacrifice. I just want to protect her (her crying after her beads are found in the cathedral?! Girl come here). I think Lara and Eva share a lot of things in common (including being depressed) but present very differently. Something I think goes overlooked in discussions of Lara is her link with the Olgimskys— Big Vlad built her house and is able to extort her (wanting to use it as the isolation ward, Vlad Jr getting her involved in the medicine tests, the day 6 blood tests) despite all the Olgimskys claiming to be fond of her. Part of her stated motivation for why she helps people is to help restore the Ravel name. So, something fishy is going on there I think.
My theory is that her father wasn’t a great person (probably worked for the Olgimskys in some way before leaving for war), but he did love Lara and perhaps Lara didn’t find out about any fishy business until she grew up. I think it would be interesting if her character had to struggle between a genuine love for her father (culminating in her attempted vengence), while knowing his potential crimes and attempting to make up for it (would also explain why she is part of Clara’s bound of criminals besides the whole trying to shoot Block thing, and Aspity’s dislike of her). Of course, that’s just my speculation though.
Aspity: Another lady with many wonderful funny conversations. I find her insistance that she’s the shabnak or the plague made manifest fascinating. While she isn’t either of those, she is some sort of steppe spirit, being a “reminder�� of the first outbreak. My theory is she is a manifestation or memory of the people that died in the first outbreak (many of whom were poor, many of which were likely Kin). I think this would explain Isidor’s distaste for her (perhaps guilt-driven), her devotion to Artemy despite not being his bound, and her being Clara’s bound (these people dying so that the rest may live).
Her being the executor of Artemy’s inheritence, and hiding part of it from him out of fear for what the inheritence would entail also has really cool implications for her character and it’s a shame that was cut from P2.
Yulia: The founder of the Humble ideology herself. I wish she had some more screentime. Ultimately I don’t have as much to say about her besides some base observations, but I do like her and find her interesting!! Her fatalistic experiments are part of some of the most interesting quests in the game imo (in terms of dialogue). Her appeals to rationality despite her being pretty mystical. Lesbianism win. Thinking about it, she actually has a Lot of parallels with Daniil. I think I’ll write some more about her once I have my computer back and can source dialogue/give myself a refresher on her character.
Katerina: Katerina is such a tragic figure. I can only imagine what it was like for her to come to the town young and full of life, meeting Nina and Victoria, to try and desperately meet the expectations of the Saburov family and their long history, trying to be Nina, trying to be Victoria… Katerina spent so much time trying to be other people that she never really got to be herself. So many people dismiss her and treat her solely as a morphine addict or a witch, and that has to be hard. The way she oscilates between being loving and cruel to Clara. Her back was broken on the wheel of fortune.
Aglaya: There is so so so much to say about her and I think she deserves a full character analysis. But to keep it short, god what a character. The ambiguity of how much her hatred of the Polyhedron is related to her hatred of the Kains (I think Victor even says that she was “always a mean little girl” at one point). Her brutality. Her humanism. Her genuinely sweet love for Artemy. Her relationship with the Powers that Be (both on the base narrative level and the twist level). Breaking character to taunt her?! She’s so contradictory and yet it makes sense.
I only did the adult women here, but there’s still so much to say about the Termite girls (esp Capella!). Hopefully this wasn’t too rambley, but I had a lot of fun writing this and would love to hear about everyone’s favorite Patho lady! There are so many things I didn’t get to say in this that I would love to write more about in the future.
5 notes · View notes
andmaybegayer · 2 years ago
Text
Last Monday of the Week 2023-10-23
Testing the limits of my kitchen
Listening: I've been using my enormous playlist of Japanese Jazz Fusion as background music at home. This is Galactic Funk by Casiopeia.
youtube
Reading: There's a great PBS video on insect metamorphosis that debunks the whole Butterfly Soup thing and explains the much, much more bizarre truth: even before they enter a chrysalis, caterpillars have started to develop butterfly parts inside their bodies. Big chunky caterpillars contain a half-built butterfly. Inside the chrysalis they simultaneously dissolve the remainder of the caterpillar parts and finish the butterfly on the existing scaffolding.
youtube
There's a great paper referenced in that video which is this one, which is about findings from time-lapsed 3D CAT scans (which I guess makes it 4D) of caterpillars as they pupate.
There's actually quite a few interesting papers on following metamorphosis with modern imaging technology, including a big old thesis that I have only just started to dig into and that I do not understand.
Watching: Nothing.
Playing: I got a little obsessed with Bullets Per Minute, a rhythm FPS roguelike. Well, more of a tempo FPS roguelike, since you have to fire, reload, jump and dash on a very regular 88bpm 4/4 rock/metal soundtrack. Here, I've cut some clips together.
Hell of a lot of fun, I've been in the market for a really fast paced shooter. I tried to replay Titanfall 2, which is good. I also had a good time playing Warframe missions I was way too high level for, eventually I remembered watching the ZeroPunctuation on this and picked it up.
BPM feels great and is also a really fascinating old-fashioned indie roguelike. The game has almost no tutorials, you just get dropped into levels. Items have absolutely bare minimum descriptions and no hard numbers, the fan wiki is full of notes very clearly the result of trying to puzzle out exact damage numbers and percentile improvements from the player side of the game.
It is not hostile though! Very forgiving accessibility options if you aren't great with rhythm and good difficulty modes. I've done two full clears on normal difficulty and like with most roguelikes, that was a product of familiarity and getting the Good Items early in my run (thank you infinite ammo + revolver)
Making: Made a full spec Wedding Meal (vegetable biryani, dal, and soji) for Friends over the weekend. Easier than I expected! A lot of prep but not actually that time consuming, as long as like me you're good chopping one million vegetables.
Also finished hacking on monctl to have a command line interface. It allows fast USB control of a Gigabyte monitor. I have started poking at Display Data Channel to better generalize monitor control because I want to get a second monitor soon but this works great for now.
Tools and Equipment: If you have a dishwasher you should pretty much always use it to wash, even if it's only half full. Your dishwasher probably uses under 12 liters of water to do a full wash cycle, less on Eco modes. You are almost never going to beat it for economy or sterilization, so the only things you should wash by hand are things you either cannot put in the dishwasher (e.g. cast iron) or things you need washed right now.
7 notes · View notes
junekomeiji · 2 years ago
Text
writing a longpost about my views on tumblr on the internet
i've been meaning to write a long post anyways some day anyway and i'd honestly like to continue writing long, deranged rants and essays i find interesting
the kind of content that i like and the kind of person that i want to present myself as online lies at a weird and uncomfortable intersection between various fields. on the one hand, i do like being publically horny and basically nsfw posting (i do have an actual honest to god nsfw twitter, iykyk) and discussing about deranged fetishes, especially of the very problematic sort (think lolisho, misgen, raceplay etc etc), randomly posting nikke ecchi and so forth. on the other hand, i am but a devoted computer scientist, and would like to talk about my very technical interests (think complexity theory, programming language theory, algebraic geometry etc etc) but at the same time, mixing the two would scare off most if not all people from my weird site of the internet, defeating the point of social media, which is to meet likeminded people with similar interests. computer scientists and kinksters are an extremely endangered species where i'm from, having effectively been completely expelled from the country in a bid to preserve political stability. it worked, but what we're left with is a programmer shortage so drastic it's effectively stunted the national economy.
the most infuriating part about all this is that i know a lot of computer scientists are very into both, it's just that the twain shall never meet for… reasons. the only place where i can find that kind of authenticity is the more esoteric parts of plt twitter, where most of the theory b people are traumaqueers and dollposters and it feels infuriating you're not allowed to say it out loud. it's like one of those conversations where i know you Know, and you know i Know, but we don't know that the other party Knows, so the conversation becomes incredibly awkward as both sides attempt to shuffle out of the topic like talking about it will set you on fire. i'd honestly really like to talk to those kinds of people but alas i am not nearly knowledgable enough to talk with them as if we were equals, much more my lack of development and programming experience and empty github page means I'm Fucked when it comes to actually being on pace with the rest of them. but for now at least, i really wish that i could be the weirdo i yearn to be on this side of the internet where i can be both a deranged fetishist as well as a computer scientist.
why not just make an nsfw sideblog? because it just doesn't feel like me. i guess one of the more unique and offputing aspects of me is that i refuse to hide any aspect of myself before others, the rose, the whole rose, and nothing but the rose. i don't like making friends with people to whom i have to hide aspects of myself towards because my life requires me to be effectively a different person once i leave the computer, and i don't want to expend anymore energy suppressing myself than i already do. perhaps it is because of my autism, but i really feel that online we should be the weird little critters we wish to be, regardless of what censors think about it. it's maddening as well to see that screaming hateful thoughts at minorities will put you less at risk of getting hurled and jeered off the internet than horny thoughts, especially while you're queer. i guess that's the internet today especially with how US-centric it is (which is something i'd like to talk about later since protestantism and its ethics made the internet what it is today), but it is sad to know that even here i still have fears of being myself
for now at least that's my first long posts. i hope that finally this time i will get into the habit of writing my thoughts and you know, actually using the microblogging platform for blogging.
2 notes · View notes
blumenherzen · 3 months ago
Photo
i was going to put it in the tags but whatever, answering because I'm passionate about it:
I'm in a sort of compsci degree and I'm baffled at how students younger than me don't even have an idea of what a torrent is. And it's not even just piracy, something I've noticed is that sometimes it extends to Open Source alternatives too. There is this mentality of "if you don't pay for it then it's not right/good enough". Which is bullshit, for two reasons:
They don't need your money. The only exception is small, independent projects. Adobe doesn't need your money. Spotify, YouTube, Netflix, Microsoft, and all of the rest don't need your money.
the internet was born to be free. Apart from the military history it has, the net was literally made to be accessible, made for everyone to use. It shouldn't have thousands of subscriptions.
I'll start by giving off a library of resources: weboasis. This has a little bit of everything and it is a good starting point to find other stuff. Only downside is that the original library is discontinued, so what we have is a stable copy of what it once was (someone very kind decided to make it accessible, the site has an unfortunately sad history)
So you need a book? libgen, zlib, theeye (one of my favourites honestly)
You want to watch something? hydrahd for movies and series (there are lots of netflix mirrors honestly), and you can visit the piracy.moe site for anime if you're into that.
Music? I find streaming APKs on telegram mostly but also downloading media is best. Spotify is currently off limits as of just a few days ago (again, reason why actually having media is best, they will take it away from you) but there is ways to have yt music if you look. If I may I love a site called Radiooooo which can make you listen to music from a world map (it's really cool, and they deserve the praise).
Torrents for literally anything from software to media? personally I find them on snowfl.com because it gives me how old the torrent is and the site it was originally shared to along with a filtering option (+ peers and seeders) (to be honest the pirate bay is the one I'm usually more skeptical as they are usually old torrents that often don't work, but 1337 works great), and as for torrenting software qbittorrent is the current best (don't use uTorrent, just don't).
You need an alternative to literally anything? use alternativeto.net, lots of open source software and sites that don't need a subscription (+ peer reviews)
And of course to be safe about all this the only thing that is worthy giving money to is a good antivirus (malwarebytes) and VPN if you want to be extra safe.
Also, not giving the specific links because they change all the time (mirrors). But you just need a search on your browser of choice to find them (not the best, but I've been using Brave for all the common stuff since it blocks me every ad. Yes even YouTube). The site you used for streaming or downloading disappears? just check for another list of resources (Reddit, also search GitHub-piracy-index, and you'll eventually find a list updated enough)(also, a lot of stuff is on telegram: movies, episodes, software; but groups and channels may be a bit harder to find). Again, extra step: use Tor, Reddit has all of the .onion you can wish for (and, the zlib address on there has been the same for years).
Just be safe about malware, check the info you give to the sites you visit, and you're all set. Also remember that this sort of resources are always in motion, they never stay the same for too long. They change as the internet changes.
Tumblr media
369K notes · View notes
rrsolomon · 4 months ago
Text
Took a Break, But Back to Writing Soon
I had to step away from writing for a few days—not because I wanted to, but because I needed to. I’ve been mentally exhausted, and trying to push through it was just making everything worse. Between writing, worldbuilding, and life in general, I felt like my brain was running on fumes. So, I took some time off, spent it with friends, and just let myself exist without thinking about Restless for a little bit. It helped, but the work is still there waiting for me.
Even with the break, I still managed to get some things done. Carry’s character sheet is finally finished, which is a big deal because she’s one of the most important people in Adam’s life. Getting everything about her down on paper made me realize just how much she’s been through and how much she keeps hidden beneath the surface. And as of today, Lisa’s character sheet is done too! She was a bit harder to pin down since she’s not physically present for most of the story, but her influence on Adam is massive. Everything about her—the choices she made, the way she lived, and how she died—shapes the entire book.
That’s the thing about this project—it keeps expanding in ways I didn’t expect. The worldbuilding just keeps growing, and it feels overwhelming at times because I have so much to do. I added more details about The Red Syndicate, WhisperNet, and The Wraiths, organizations controlling Angel City’s corruption from behind the scenes. The more I build out these factions, the more I realize how much depth there is to this world—but the reality is, a lot of this stuff won’t even make it into the final book. I’m creating layers of history, politics, and hidden power structures, knowing full well that most of it will only serve as background texture. And yet, I need to do it because it makes the world feel real, even if readers never see all the moving pieces.
On top of all this, I’ve been working on switching my version control over to GitTea, which is basically a self-hosted GitHub alternative. It’s going to help me track everything—character details, plot points, organizations, and all the random worldbuilding notes I have scattered across different documents. If anyone’s interested in how I use version control for writing, I’d be happy to put together a tutorial. Honestly, having a system like this helps when the scope of a project feels too big to manage.
Even though I’m feeling a little better after the break, I still have so much left to do, and it’s kind of overwhelming. But I just have to remind myself that I don’t need to figure everything out all at once. The book isn’t going to be perfect on the first (or second, or third) pass. I just have to keep going, piece by piece, and trust that it’ll all come together.
Classes start soon, and I know that’s going to add even more to my plate, but I’m still going to push forward with Restless. I’ll keep you all updated as I work through it. Here’s to making progress—even if it’s slow.
1 note · View note
luvcraft · 8 months ago
Text
If you're afraid of the git, remember the SourceTree rainbow
I'm confused when I see people talk about how complicated and overwhelming Git is; I think it's great, and generally really straightforward.
So I thought maybe I'd talk about how I use Git, and see if it helps others understand it better.
There are going to be exceptions to pretty much everything I say here, but what I say here is "true for the most part".
First and foremost, install SourceTree (https://www.sourcetreeapp.com/), and set the file windows to "tree view". SourceTree is a free GUI for Git, and it's available on both Mac and Windows. Because I use it I never have to use command-line git, which I suspect is what overwhelms a lot of people.
To make a new git project, go to github.com and create a new project, and it'll give you a URL that points to the project. Copy that URL, go into SourceTree, and tell it to "clone" a project from a URL. Give it that URL, and tell it where on your computer you want to put the project, and you should be all set.
Although Git is primarily designed for programming, it can be used for pretty much any kind of creative project you do on a computer; the only caveat is that you can't have a single file larger than 100mb. But you can have over 100mb spread out over multiple files.
I'm gonna talk about git in "levels", from the simplest use case to more complicated use cases. Once you've read a high enough level to do what you want to do with it, you're welcome to bail out.
Level 1: Backup
At it's most basic, git is an easy way to do frequent backups. If you've been making stuff on a computer for a while, then you probably have a normal routine of backing up what you're working on in case something terrible happens.
There are three steps to backing up data via git: stage, commit, and push.
Staging is where you choose which files you want to backup. Typically this is everything in the folder you're working in. In the "File Status" view in SourceTree, the screen is split into "Staged Files" and "Unstaged Files". Clicking the checkbox next to an unstaged file moves it to staged, and vice versa. Once you've staged the files you want to backup, you (optionally) type a little note in the note field at the bottom, and click "commit".
Commiting means you're telling the part of git that runs on your computer to backup all the staged files. If "push changes immediately" at the very bottom is checked, then SourceTree will automatically push when you commit. Otherwise you have to hit the big "push" button at the top to push.
Pushing just sends your commits from your computer to the server. Once you've pushed your commit, you're all backed up, and if your computer explodes (or you just want to access your project from a different computer), you can install SourceTree on your new computer, "clone" that same URL from github, and then "pull" (the opposite of "push") to bring your project down from the server to your computer.
If all you want to do is have an easy way to regularly backup a project, then that's it! But if you wanna do more stuff, then read on.
Level 2: History
The next useful part of git is history; if you've ever looked at the history feature of Google Docs, then you have an idea what to expect.
After you've made a few commits, you'll see a list of commits in SourceTree, with your little notes next to them. If you click on one of these commits, it'll show you everything you changed in that commit. For text-based files, it'll even show you changes you made to individual lines of text.
If you've made a change and decide later that you don't like it and want to go back, you can do that via History. If it's just a few lines of a text-based file, you can highlight and copy the old lines and paste them into the current file. If you want to reset a whole file, then you can go to a commit before you changed it, right-click on it, and choose "reset to this commit".
Level 3: Branches
History is good for when you change your mind about something after the fact. If you know in advance that an idea may or may not work, or you want to do something risky without any of the risk, then you can use branches.
To make a branch, just click on "branch" at the top, and name your branch after whatever crazy thing you're gonna try in your branch. Then continue to work as normal, and everything will go in that new branch instead of the "main" branch. You can switch back and forth at any time by just double-clicking the branch you want in the "branches" list (just be sure to commit anything you want to keep before switching).
If you want to copy the changes to a single file from one branch to another, you can right-click on it and choose "reset to this commit", just like you did in the History section above. If you want to combine everything in two branches together, then keep reading.
Level 4: Merging
If you want to mix all of the changes and new stuff from one branch into another branch, that's called "merging". Don't use the big "merge" button next to the "branch" button; it's confusing and weird. Instead, in the branches list, right-click on the branch you want to merge into your current branch, and choose "merge into current branch", and then check "create merge even if fast forward is possible" in the dialog that appears and hit "OK".
In most cases, the two commits will just nicely merge together.
If you've been switching back and forth between them, and making different changes to the same files in both, then it might tell you there's a "conflict" and it can't figure out how to merge the two versions of that particular file. In this case, just right-click on the file in staging, and choose either "resolve using mine" (i.e. the version in the current commit) or "resolve using theirs" (i.e. the version in the other commit).
If the file you're merging different versions of is a text file, then git will do its best to combine the changes you've made to it, but you should double check to make sure they look good. If git can't figure out how to merge a text file, then it'll show you specifically where it's having trouble, and you can either do the "resolve using mine / theirs" method above, or choose "resolve using external merge tool", at which point it'll open up a separate program (if you have one installed) that you can use to manually fix the conflicts.
If you do use an external merge tool, keep in mind that it might leave behind extra files with extensions like ".orig", and you can just delete those.
Level 5: Pull Requests
OK! Everything so far has pretty much been about using git solo. Pull requests are about using git on a team. They're primarily used for bug fixes, or adding new features, and here's how they work. If you want to fix a bug, or add a new feature, you make a new branch with a name like "fix-for-bug-x" or "feature-y", and you work on your bug / feature in the branch. When you're ready to add your bugfix / feature to the main project you make a pull request.
If you've pushed a commit of your branch in the last hour or so, and you go to your project's github, you'll see a handy notification at the top asking if you want to make a pull request of your branch. Go ahead and do that, and then type in a good title for your request, and a description of what you did, and then hit the button to create it.
Then ask your team to take a look at it, and they'll see a nice detailed breakdown of everything you changed. If they have questions or comments about individual lines of what you've written they can leave notes, and then if you need to you can make and push changes to the branch and it'll automatically update the pull request.
Once everyone's happy with the pull request, there's a handy button in the github UI to merge it, and then it'll give you the option to delete the branch once it's merged (which I recommend for things like bug fix branches which you're never going to make any more changes to).
And that's everything you need to know!
There's a lot of other, more complicated stuff that git can do, but this is everything that someone would typically need to know to use it.
I realize this is a terrifying wall of text, but hopefully you bailed out after the section that taught you what you needed to know, and feel less overwhelmed by git.
0 notes
csharp-official · 7 months ago
Text
My thoughts on languages are pretty similar.
I prefer strong and static typing, so Python and a bunch of other dynamic languages never truly appealed to me.
Go is a joke (also honestly I hate Google even more than I hate Microsoft)
No one would use Dart if it wasn't for Flutter
I tried Java before and it made me angry
I used C++ for years, but I realized it's unsalvageable, which made me seek out alternatives in the first place.
Haskell and others are cool but too obscure
Kotlin is a significant improvement over Java as a language but I'm not a fan of JVM and the Java standard library. That being said if I am forced to deal with JVM, I will definitely pick Kotlin.
Same applies to TypeScript, which means dealing with JavaScript nonsense, so if I'm forced to deal with JavaScript nonsense, I will be using TypeScript.
Rust was lacking in tooling support last time I checked, but this sounded like something fixable. Holding my thumbs that JetBrains RustRover is good!
And all of this resulted with me settling on C#.
I think C# is better off not having checked exceptions, the way Java implemented them was a mistake, Kotlin straight up doesn't check for these either. My code usually uses an equivalent of Result<T, E> for stuff where user is expected to check for the result instead, and I wish that more code adopts this convention instead of "DoX vs TryDoX".
Regarding debuggers, Samsung made an MIT licensed one way back. Does it work? Not sure, haven't tried it. But the fact it exists is reassuring.
As for GUI - indeed, GUI is the biggest weakness of cross-platform C# because Microsoft simply does not care for it. There is huge money in providing cloud services and huge opportunities for vendor lock-in through Azure stuff, so naturally Microsoft puts in a lot of effort into making sure that ASP.NET Core works on Linux. But cross-platform GUIs? This would mean providing a route for people to escape Windows, and that's not good for profits.
Even their latest GUI toolkit, MAUI has Linux support "delegated to the community". Last time I checked Avalonia in 2021, it had teething problems due to having its controls drawn by themselves (rule of thumb: if you're not delegating widgets to someone else, you're likely missing from 20% to 80% of the existing functionality). Apparently "user can't type Japanese text in a textbox" which blocked me specifically was solved in 2023 if I were to believe the status of the GitHub issue I was tracking, so there is still hope! Everything else I tried seemed even worse.
Eventually I ended up embracing the Dark Side of using Electron-likes. But using Electron directly in .NET means the fact you have three runtimes running at the same time: the .NET one, the Node one, and the Chromium one. This is at least one runtime too many, and partially explains huge RAM usage.
Electron also has the problem of "we're shipping the web browser, a program with so much attack surface that bugs have to be frequently patched, and our update channel is very likely way worse than the browser's update channel".
My current approach to these is using a library that provides a Webview delegated to each respective platform's Webview control, which means we don't have to ship anything: WebView2 (Chromium Edge) on Windows and libwebkit2gtk on Linux and macOS. My memory usage for a program I was writing increased from 200MB (WPF on Windows) to 250MB (Webview2 on Windows), which I found acceptable.
There's also the "do we really have to use a web browser for GUI", but as far as I can see, in my experience, GUI programs tend to grow bigger and bigger until they either eventually end up needing functionality of a web browser (say, Markdown preview in whatever is your favourite IDE, OAuth authentication to your email provider in your desktop email client, payment gateways in Steam), so as a result they either bundle a Webview control or they reinvent a web browser badly.
The funniest thing is that it's probably the closest way to Microsoft providing a cross-platform GUI too: Blazor exists, so that Webview could very likely end up displaying a GUI made in C#.
Rambling About C# Being Alright
I think C# is an alright language. This is one of the highest distinctions I can give to a language.
Warning: This post is verbose and rambly and probably only good at telling you why someone might like C# and not much else.
~~~
There's something I hate about every other language. Worst, there's things I hate about other languages that I know will never get better. Even worse, some of those things ALSO feel like unforced errors.
With C# there's a few things I dislike or that are missing. C#'s feature set does not obviously excel at anything, but it avoids making any huge misstep in things I care about. Nothing in C# makes me feel like the language designer has personally harmed me.
C# is a very tolerable language.
C# is multi-paradigm.
C# is the Full Middle Malcomist language.
C# will try to not hurt you.
A good way to describe C# is "what if Java sucked less". This, of course, already sounds unappealing to many, but that's alright. I'm not trying to gas it up too much here.
C# has sins, but let's try to put them into some context here and perhaps the reason why I'm posting will become more obvious:
C# didn't try to avoid generics and then implement them in a way that is very limiting (cough Go).
C# doesn't hamstring your ability to have statement lambdas because the language designer dislikes them and also because the language designer decided to have semantic whitespace making statement lambdas harder to deal with (cough Python).
C# doesn't require you to explicitly wrap value types into reference types so you can put value types into collections (cough Java).
C# doesn't ruin your ability to interact with memory efficiently because it forbids you from creating custom value types, ergo everything goes to the heap (cough cough Java, Minecraft).
C# doesn't have insane implicit type coercions that have become the subject of language design comedy (cough JavaScript).
C# doesn't keep privacy accessors as a suggestion and has the developers pinkie swear about it instead of actually enforcing it (cough cough Python).
Plainly put, a lot of the time I find C# to be alright by process of elimination. I'm not trying to shit on your favorite language. Everyone has different things they find tolerable. I have the Buddha nature so I wish for all things to find their tolerable language.
I do also think that C# is notable for being a mainstream language (aka not Haskell) that has a smaller amount of egregious mistakes, quirks and Faustian bargains.
The Typerrrrr
C# is statically typed, but the typing is largely effortless to navigate unlike something like Rust, and the GC gives a greater degree of safety than something like C++.
Of course, the typing being easy to work it also makes it less safe than Rust. But this is an appropriate trade-off for certain kinds of applications, especially considering that C# is memory safe by virtue of running on a VM. Don't come at me, I'm a Rust respecter!!
You know how some people talk about Python being amazing for prototyping? That's how I feel about C#. No matter how much time I would dedicate to Python, C# would still be a more productive language for me. The type system would genuinely make me faster for the vast majority of cases. Of course Python has gradual typing now, so any comparison gets more difficult when you consider that. But what I'm trying to say is that I never understood the idea that doing away entirely with static typing is good for fast iteration.
Also yes, C# can be used as a repl. Leave me alone with your repls. Also, while the debugger is active you can also evaluate arbitrary code within the current scope.
I think that going full dynamic typing is a mistake in almost every situation. The fact that C# doesn't do that already puts it above other languages for me. This stance on typing is controversial, but it's my opinion that is really shouldn't be. And the wind has constantly been blowing towards adding gradual typing to dynamic languages.
The modest typing capabilities C# coupled with OOP and inheritance lets you create pretty awful OOP slop. But that's whatever. At work we use inheritance in very few places where it results in neat code reuse, and then it's just mostly interfaces getting implemented.
C#'s typing and generic system is powerful enough to offer you a plethora of super-ergonomic collection transformation methods via the LINQ library. There's a lot of functional-style programming you can do with that. You know, map, filter, reduce, that stuff?
Even if you make a completely new collection type, if it implements IEnumerable<T> it will benefit from LINQ automatically. Every language these days has something like this, but it's so ridiculously easy to use in C#. Coupled with how C# lets you (1) easily define immutable data types, (2) explicitly control access to struct or class members, (3) do pattern matching, you can end up with code that flows really well.
A Friendly Kitchen Sink
Some people have described C#'s feature set as bloated. It is getting some syntactic diversity which makes it a bit harder to read someone else's code. But it doesn't make C# harder to learn, since it takes roughly the same amount of effort to get to a point where you can be effective in it.
Most of the more specific features can be effortlessly ignored. The ones that can't be effortlessly ignored tend to bring something genuinely useful to the language -- such as tuples and destructuring. Tuples have their own syntax, the syntax is pretty intuitive, but the first time you run into it, you will have to do a bit of learning.
C# has an immense amount of small features meant to make the language more ergonomic. They're too numerous to mention and they just keep getting added.
I'd like to draw attention to some features not because they're the most important but rather because it feels like they communicate the "personality" of C#. Not sure what level of detail was appropriate, so feel free to skim.
Stricter Null Handling. If you think not having to explicitly deal with null is the billion dollar mistake, then C# tries to fix a bit of the problem by allowing you to enable a strict context where you have to explicitly tell it that something can be null, otherwise it will assume that the possibility of a reference type being null is an error. It's a bit more complicated than that, but it definitely helps with safety around nullability.
Default Interface Implementation. A problem in C# which drives usage of inheritance is that with just interfaces there is no way to reuse code outside of passing function pointers. A lot of people don't get this and think that inheritance is just used because other people are stupid or something. If you have a couple of methods that would be implemented exactly the same for classes 1 through 99, but somewhat differently for classes 100 through 110, then without inheritance you're fucked. A much better way would be Rust's trait system, but for that to work you need really powerful generics, so it's too different of a path for C# to trod it. Instead what C# did was make it so that you can write an implementation for methods declared in an interface, as long as that implementation only uses members defined in the interface (this makes sense, why would it have access to anything else?). So now you can have a default implementation for the 1 through 99 case and save some of your sanity. Of course, it's not a panacea, if the implementation of the method requires access to the internal state of the 1 through 99 case, default interface implementation won't save you. But it can still make it easier via some techniques I won't get into. The important part is that default interface implementation allows code reuse and reduces reasons to use inheritance.
Performance Optimization. C# has a plethora of features regarding that. Most of which will never be encountered by the average programmer. Examples: (1) stackalloc - forcibly allocate reference types to the stack if you know they won't outlive the current scope. (2) Specialized APIs for avoiding memory allocations in happy paths. (3) Lazy initialization APIs. (4) APIs for dealing with memory more directly that allow high performance when interoping with C/C++ while still keeping a degree of safety.
Fine Control Over Async Runtime. C# lets you write your own... async builder and scheduler? It's a bit esoteric and hard to describe. But basically all the functionality of async/await that does magic under the hood? You can override that magic to do some very specific things that you'll rarely need. Unity3D takes advantage of this in order to allow async/await to work on WASM even though it is a single-threaded environment. It implements a cooperative scheduler so the program doesn't immediately freeze the moment you do await in a single-threaded environment. Most people don't know this capability exists and it doesn't affect them.
Tremendous Amount Of Synchronization Primitives and API. This ones does actually make multithreaded code harder to deal with, but basically C# erred a lot in favor of having many different ways to do multithreading because they wanted to suit different usecases. Most people just deal with idiomatic async/await code, but a very small minority of C# coders deal with locks, atomics, semaphores, mutex, monitors, interlocked, spin waiting etc. They knew they couldn't make this shit safe, so they tried to at least let you have ready-made options for your specific use case, even if it causes some balkanization.
Shortly Begging For Tagged Unions
What I miss from C# is more powerful generic bounds/constraints and tagged unions (or sum types or discriminated unions or type unions or any of the other 5 names this concept has).
The generic constraints you can use in C# are anemic and combined with the lack of tagged unions this is rather painful at times.
I remember seeing Microsoft devs saying they don't see enough of a usecase for tagged unions. I've at times wanted to strangle certain people. These two facts are related to one another.
My stance is that if you think your language doesn't need or benefit from tagged unions, either your language is very weird, or, more likely you're out of your goddamn mind. You are making me do really stupid things every time I need to represent a structure that can EITHER have a value of type A or a value of type B.
But I think C# will eventually get tagged unions. There's a proposal for it here. I would be overjoyed if it got implemented. It seems like it's been getting traction.
Also there was an entire section on unchecked exceptions that I removed because it wasn't interesting enough. Yes, C# could probably have checked exceptions and it didn't and it's a mistake. But ultimately it doesn't seem to have caused any make-or-break in a comparison with Java, which has them. They'd all be better off with returning an Error<T>. Short story is that the consequences of unchecked exceptions have been highly tolerable in practice.
Ecosystem State & FOSSness
C# is better than ever and the tooling ecosystem is better than ever. This is true of almost every language, but I think C# receives a rather high amount of improvements per version. Additionally the FOSS story is at its peak.
Roslyn, the bedrock of the toolchain, the compiler and analysis provider, is under MIT license. The fact that it does analysis as well is important, because this means you can use the wealth of Roslyn analyzers to do linting.
If your FOSS tooling lets you compile but you don't get any checking as you type, then your development experience is wildly substandard.
A lot of stupid crap with cross-platform compilation that used to be confusing or difficult is now rather easy to deal with. It's basically as easy as (1) use NET Core, (2) tell dotnet to build for Linux. These steps take no extra effort and the first step is the default way to write C# these days.
Dotnet is part of the SDK and contains functionality to create NET Core projects and to use other tools to build said projects. Dotnet is published under MIT, because the whole SDK and runtime are published under MIT.
Yes, the debugger situation is still bad -- there's no FOSS option for it, but this is more because nobody cares enough to go and solve it. Jetbrains proved anyone can do it if they have enough development time, since they wrote a debugger from scratch for their proprietary C# IDE Rider.
Where C# falls flat on its face is the "userspace" ecosystem. Plainly put, because C# is a Microsoft product, people with FOSS inclinations have steered clear of it to such a degree that the packages you have available are not even 10% of what packages a Python user has available, for example. People with FOSS inclinations are generally the people who write packages for your language!!
I guess if you really really hate leftpad, you might think this is a small bonus though.
Where-in I talk about Cross-Platform
The biggest thing the ecosystem has been lacking for me is a package, preferably FOSS, for developing cross-platform applications. Even if it's just cross-platform desktop applications.
Like yes, you can build C# to many platforms, no sweat. The same way you can build Rust to many platforms, some sweat. But if you can't show a good GUI on Linux, then it's not practically-speaking cross-platform for that purpose.
Microsoft has repeatedly done GUI stuff that, predictably, only works on Windows. And yes, Linux desktop is like 4%, but that 4% contains >50% of the people who create packages for your language's ecosystem, almost the exact point I made earlier. If a developer runs Linux and they can't have their app run on Linux, they are not going to touch your language with a ten foot pole for that purpose. I think this largely explains why C#'s ecosystem feels stunted.
The thing is, I'm not actually sure how bad or good the situation is, since most people just don't even try using C# for this usecase. There's a general... ecosystem malaise where few care to use the language for this, chiefly because of the tone that Microsoft set a decade ago. It's sad.
HOWEVER.
Avalonia, A New Hope?
Today we have Avalonia. Avalonia is an open-source framework that lets you build cross-platform applications in C#. It's MIT licensed. It will work on Windows, macOS, Linux, iOS, Android and also somehow in the browser. It seems to this by actually drawing pixels via SkiaSharp (or optionally Direct2D on Windows).
They make money by offering migration services from WPF app to Avalonia. Plus general support.
I can't say how good Avalonia is yet. I've researched a bit and it's not obviously bad, which is distinct from being good. But if it's actually good, this would be a holy grail for the ecosystem:
You could use a statically typed language that is productive for this type of software development to create cross-platform applications that have higher performance than the Electron slop. That's valuable!
This possibility warrants a much higher level of enthusiasm than I've seen, especially within the ecosystem itself. This is an ecosystem that was, for a while, entirely landlocked, only able to make Windows desktop applications.
I cannot overstate how important it is for a language's ecosystem to have a package like this and have it be good. Rust is still missing a good option. Gnome is unpleasant to use and buggy. Falling back to using Electron while writing Rust just seems like a bad joke. A lot of the Rust crates that are neither Electron nor Gnome tend to be really really undercooked.
And now I've actually talked myself into checking out Avalonia... I mean after writing all of that I feel like a charlatan for not having investigated it already.
71 notes · View notes
transienturl · 2 years ago
Text
another thing I wrote for github:
---
To further enumerate some of the things I'm considering:
If there are improvements to a feature incoming, it doesn't feel great to migrate a bunch of people off of the feature before they might see that improvement and decide that they like it now. That's certainly a justification for declining to make a rollback for an A/B test, but since this one is rolled out already it only sort of applies. I'm hopeful that upcoming adjustments to the new layout—which have been mentioned by Staff—make more people like it/have no preference/etc.
Of course, that doesn't mean one shouldn't make a rollback; there will always be people who—all else being equal—like the old way, and if we can cater to them, why not? It's not like it's anywhere close to nobody and it's also not like it's anywhere close to 50%, so maybe that's a suitable quantity for a target audience.
I think the main risks are just setting the wrong expectations. People will take an "official" revert script as confirmation that one of XKit's purposes is to preserve old features and layouts (eh, maybe?), that it will always do so (probably not), that it has already been doing so (it hasn't), that it has a fundamentally antagonistic relationship with Staff and the changes they make (it doesn't; we work together), that its maintainers don't like the new layout (I personally use it even though I have like 7 ways to revert it), that the quality and reliability of its revert method reflects the same quality and reliability you can expect from other parts of the extension (that entirely depends on the revert code), that its revert method is bringing back the old code instead of creating a new layout similar in appearance to it (I don't think we can do that because web extension storage is asynchronous), etc.
And again, of course, those misconceptions doesn't mean one shouldn't make a rollback either. People already think all of those things. I read the XKit and XKit Rewritten tags on a daily basis and answer questions as a hobby; probably 80+% are completely, confidently wrong about one or more of those things. If people make a lot of weird assumptions, I suppose the percentage increase in weird assumptions any particular action will cause is small, and thus the percentage increase in consequences is also small. Could be worth it.
(I am trying to keep my personal biases out of this decision where they aren't relevant. I rewrote the sentence I was going to put in this spot 10+ times so never mind I guess. But like... something something there are a vocal minority of people who loudly speak about this in really problematic ways, and I want to ignore them for the sake of a decision like this in favor of the bulk of the user base, but the decision will influence the things they loudly speak about and that does have an impact too.)
On the plus side, I suppose it would be nice to have a measure of control over the revert method ecosystem because it would allow me to enforce that a layout revert should only do exactly that, and that additional behavior should be opt-in so that users are not accidentally making more changes to their dashboard than they might want or expect. I have a serious problem with that pattern.
1 note · View note
unlimitedtrees · 2 years ago
Text
youtube
the earliest build i have from my very first game, 'Mr. Waffle Lover'
wat da freak ... im about to make Three posts in a row ?? impossible... so Hi. in case u havent seen my Last Big Post, one of my first projects was a game called 'Mr. Waffle Lover'. it started in early 2014 until late 2017 and it went through Tons of wildly different iterations. and also, if u read da last post youd know i lost nearly All of those builds of the game.
Despite losing like, 3 years of my own history, ive managed to find a few builds from multiple iterations of my game, with this one being the earliest iteration i have. this is the Third iteration of the game's development.. and there isnt a whole lot to say about it. it is a Very Basic, Very Primitive platformer made by an 11 year old. this build in particular has only Two levels . i Think more were made at some point, but it's hard to remember. at one point, i made a ""mobile version demo"" of the game for the tablet i had at the time (the game did not work on it), and thats the version u see in the video i posted. For Some Reason, i decided to strip any other level that may have existed in the game and just made it a demo even though i was the Only Person who could play the game.. so i dont have much from this iteration. i Do have an Earlier build that i put on github, but there isnt a whole lot of differences to this demo version.
Anyways, i think, for the rest of this post, imma go a little in depth about the Origins of this game and what it was actually Supposed to be .. click the Read Me thingy if u Dare !!!
So, it all started in 2013 . i was a Bored little creature who liked to draw things and was Deep into Minecraft for the Xbox 360. and one day i created a little comic with a character called 'Mr. Waffle Lover'.. And He Looked Like This:
Tumblr media
That's Right , my very first OC is Just a skin from one of the minecraft xbox 360 edition skin packs. this was the skin i played as a lot back then, and 'Mr. Waffle Lover' was my self insert in the comic. why is he called 'Mr. Waffle Lover' you may ask? because i liked to eat waffles a lot. that became his main character trait. Eventually, when the game became A Thing, i would slowly change his design from just a copy of a minecraft skin, first giving him heterochromia and Gloves which spawned TNT, then later giving him a yellow shirt to match with his love for waffles, and then i just make him a Girl (but That is a story for Another Day . .. )
Anyways , on my birthday in 2014 i got a windows 8 laptop, and then in october i learned about construct 2 and decided i Needed to make a video game. ever since i was a fetus ive always wanted to make a video game,, with one of the earliest ideas for a game i remember having is when i was like 5 and wanted to make 'New Sonic the Hedgehog Wii' (a copy of New Super Mario Bros. Wii but featuring multiple colored Sonics).
ANYWAYS , one of the first video games i ever made was Mr. Waffle Lover......... Well Actually, Technically that is not true, as a few months before i tried using some Random in-browser game program that i dont remember the name of to make something called the 'Egg Game'... but it never went anywhere beyond me putting a stock Egg image into the program and then giving up.
my initial inspiration for making a game about the Mr. Waffle Lover character was when i played a game called 'Ms. Splosion Man' on the xbox 360. i thought the game play was interesting but i got stuck at one of the puzzles so i was like 'I Want to make this game but Better and with MY character !'. And So, i thought of the idea of Waffle Lover having Gloves that spawn TNT that he uses to jump high like in Ms. Splosion Man....... but i never got to actually implement it until the 'mid 2015' build that i posted earlier... and i removed it entirely afterwards and just made the game a Basic 2D Platformer for awhile.
so yea. this game was supposed to be just a simple 2d platformer featuring my sort of self insert OC based off a minecraft skin. there wasnt really much to it conceptually... just wanted to make a video game! that's all my ideas were at the time.. the only "Story" this game has is 'Waffle Lover gets his Waffles stolen by some Scientist People and he needs to Stop Them !!!!'. the game eventually got some sort of story over time... but for now all u need to know is that this game is A Game that I Wanted To Make. it doesnt get purer than that.
with the first iteration of my game being my first game Ever, i had No Idea how to do things. all of the small sprites were stretched out to fit the HD screen resolution, making everything blurry. the gameplay was Very Basic and the levels were simple. the HUD didnt even stay centered on the screen... instead it used the 'pin behavior' to be pinned on the player object (which did not work and the HUD would move around the object). And the worst aspect of it was that i did Not know how to make layouts in construct 2 use other event sheets or Objects from other layouts..... meaning every layout (meaning every level) uses Completely Different programming And objects .... Not Only That , but i only had the Trial version of construct 2 at that time.... so i could only use 100 'events'... meaning i could only put So Much code in the game before i reached the limit (and with every level using its own separate events for everything, i ran out of events Pretty Quickly and couldnt make any more levels.
I So Desperately Wish i could show that first iteration of the game with you. it was Very Weird and Bad but it was so Lovely. to say the least.. it was quite the learning experience ! I can Vividly remember me making the very first layout in the game,, with it just being the Waffle Lover sprite moving around a white background and a bunch of badly placed collision objects. it was a Sight to Behold . But Sadly... when i decided to completely redo the game, i deleted the whole project file for it, and its pretty much Lost forever now. the only remains are some random sprites from it i still have... other than that there Was a trailer i made for it once and i Think i released a demo for it once... but both of those are Long gone now.
anyways. for the second iteration of the game i decided to make it an ""HD"" version of the game, using higher resolution sprites and a 3d animated version of Waffle Lover.... However this 3d version is Actually just a minecraft skin of him made in Mine-imator, an Old 3D animating software Exclusively made for making minecraft animations. So , the game had a bunch of bad tilesets and a badly animated prerendered sprite of a minecraft skin for its player character. i dont remember much from that point of the game's development other than it did not last very long and it looked Funny. i dont even think it got past one level... as i struggled with making high resolution art (i only had ms paint and construct 2's built in image editor, so, yea). i Think everything from that era of the game's development is Gone, HOWEVER i THINK i might have the files for the Mine-imator animations Somewhere... maybe. i Think i saw the files on my old laptop for some mine-imator project but i was unable to open them and i dont know if i saved them anywhere so. Idk.
and now, this leads us to the Third iteration of the game... which is the one i showed in this post. as you can see in the video, i finally figured out how to make pixel art look not blurry. i also figured out how to make different layouts use the same event sheets. i even figured out how to make a HUD... incredible ! other than all of that, there's not much to say about it. it's just not as silly looking as the earlier iterations were... and its not really Fun to play. its not even all that janky.. its just basic. i worked on it for awhile, but then i gave up on it and moved onto the mid 2015 iteration.. and the rest of the game's history is a story for Another Time..
if there's anything i can say about this old game.. it's that you can Definitely see how much ive grown since then. whoever is reading this, i Really hope this is not your first introduction to my work.... cus my stuff nowadays is Insane compared to this... a lot has happened in the like, 8 years since ive started game development. and i have so much stories i want to share,,, i hope i can keep sharing those stories with you. oh and also, if you Really have never heard of my work before... um.... Play UNITRES Dreams on Newgrounds dot com. LOL!!!!!!
That is All i want to talk about for today i think. I Think. hope my posts are comprehensible to u ! Oh , And Before i forget , the build of the game in the video i posted is in the ProjectWaffle google doc archive ... and the Earliest Build i have is on github. check it out If U Wish !
1 note · View note
hauntinginprogress · 3 months ago
Text
tuuuurns out i actually just didn't dig deep enough actually!!! or rather i did but i completely overlooked it, because apparently when i need something i no longer can notice it i suppose. though while i was struggling to find something on it i was absolutely confused too, you'd think something as simple as that would be more obvious / easier to find.
ANYWAYS i can't speak for all neocities users [especially since there's a pretty decent crowd on there that actually know what they're doing] or users on alternative sites, but for me and many others we tend to just dig around blogs that collect all sorts of resources for website creation!! (as well as reddit posts + codepens, and of course github like you mentioned) ex. sadgrl's now archived site , though specifically in this case i'm referring to the html/css guides page. basically it's a lot of asking around, bookmarking pages, looking up tutorials on youtube and having to replay them dozens of times because there's so much to process all at once, and then eventually stumbling upon some sort of solution on a random forum website you've never heard of before while you hope that whatever bit of code you yoinked will work, at a minimum, decently at least until you can actually understand everything for yourself..........either that or this is just a me thing and i'm just an enigmatic mess for now.
as for where you could possibly put your own resources? it can honestly be as simple as just adding it to your blog [or creating a new one dedicated to the topic] here on tumblr or somewhere else, whichever you fancy. github would work just fine but i don't know how likely it would be seen in comparison to what i mentioned. /gen
neocities heracles trials: from a chaotic newbie
okay so i want to actually start posting here and i finally got it through my thick skull that this is LITERALLY A BLOG. i'm supposed to blog. so here's a blog post.
anyways, for context, i've been working on my neocities for a while now, recently started over to make things more original and more me. another thing to note is that i'm using VScode.
the issue here is that i have zero well not exactly zero but i lack any professional/academic background experience with making websites. the html isn't the issue (thankfully) but holy shit dude...css+javascript implementation . basic styling with css is no biggie, right? absolutely, however...may i introduce: smooth transitions + the absolutely tragic fact that the <marquee> tag is deprecated an accessibility issue.
so, my first goal day one was to recreate a marquee animation through css. so i tried to simply implement this incredibly useful bit of code into my site (in which if you're interested i totally think my failure to get it working was user error so please check it out it works great if you're not me) but, lo and behold, despite me getting it to work in my V1 project, i could not, for the life of me, get it to work. so i, not too familiar with css animation and completely lost when it comes to javascript, started grasping at straws. i ended up finding this tutorial and, with some improvisation since the tutorial is for webflow and i'm manually writing everything, managed to make my own css recreation of a marquee effect essentially from scratch, and even learned about the animation-play-state css attribute so i could pause the effect when the marquee is hovered over! victory, basically.
Tumblr media
then, i looked around the many cool and absolutely awesome sites on neocities to get inspiration, and then i was like "hey what if i made a custom button background image" and with some trial and error, made myself a pretty decent base (for now) with aseprite, and learned more about the program in the meantime which is always a plus.
then i decided that i wanted to do more with the buttons. i wanted to make it animate on hover. not too hard right? you'll...you'll see why i struggled...in a moment...
anyways, i settled on a simple shrink animation. which THIS i could do with ease, messed around a bit, got the keyframes, assigned that to the button:hover and all of that and all was good!...until i realized that once i stopped hovering over it, it snapped back to its original scale instead of transitioning smoothly again. THIS is where the "fun" began.
see, although i can wrap my head around things easily when it comes to css, i have to constantly look up what the proper syntax for everything is because otherwise i'll mess everything up. and through my research i had conducted (aka surfing through multiple blogs and reddit posts alongside other things on random forum websites) i had discovered the very neat transition attribute.
but we'll have to return to this because i have adhd, and i ended up getting distracted during this process. see, originally i had decided that the button would change it's visual to appear like it was pressed when the user's mouse hovered over it. then i was like "i don't think this makes sense" so i changed it so that the button wouldn't change its background image unless the user actually clicked on it. so i did that. then i had to make sure that the button wouldn't magically scale up again so i had to transform the styling and blah blah blah those details aren't really that important ANYWAYS the actual important bit about this is that if you use the transition attribute and there's a change in background images that change will also be transitioned unless you set the transition to only apply to a specific change. and i didn't know that originally. so every time i tried to fix things up with a transition so the button wouldn't snap back to it's original size out of nowhere the background would slooowly change as well and i actually got so frustrated with this that i wanted to burn something down because that's a totally normal reaction i guess. anyways, then i started frantically searching for answers on the topic and EVERY. SINGLE. THING. THAT I FOUND. INCLUDED JAVASCRIPT.
i do not know javascript. i have not learned anything about it unlike css and html. it SCARES me and it is FRUSTRATING. but i thought i'd try it anyways. news flash that shit didn't work at all and i almost thought about scrapping the animation entirely especially when it randomly stopped working when i made certain changes, but i ended up eventually figuring out what i mentioned earlier (CSS transitions and the fact that you can assign them to only affect a specific change instead of everything) so with some dabbling here and there i eventually managed to finally figure out how to make everything smooth through pure css and although it still snaps if the element hasn't finished animating i'm happy with it.
Tumblr media
moving on to another thing, i wanted to then make a sound effect play when you click the button. yes, we are still talking about buttons. THIS i could not do with css, like, at all. javascript admittedly is for interactivity and i had already been bending the rules quite a bit with the animations since those teechnically should've been done with javascript as well but this? this was impossible without javascript. so i found a free mp3, and searched up a nice little tutorial on the very basics of javascript.
little did I know that apparently, this would be my own personal little hell.
see, no matter how many times i tried a different script, the sound just would not work like at all. i'd do everything in what i assumed to be the correct way, and no matter what, it would not play. knowing that i'd just have to revisit this, i decided it was best to just sort of put it on the back burner.
and this is where i wish i could say this is the end of my absolutely gobstopping rant. however, i cannot.
see, one thing that i really like that i've seen in a lot of other people's sites is draggable windows. i think they're sick. but this ALSO requires javascript, but i didn't think this could POSSIBLY be that bad since so many people did it.
...right?.......right? guys. right?
MOTHERFUCKER I WAS SO WRONG.
see, it turns out that a lot of people do this sort of thing with jQuery, specifically for user interfaces. but vscode doesn't have a "user friendly" way to get jquery to work with it. and because i don't want to mess with program files, i decided that logically speaking jquery just makes writing things in js scripts less complicated and doesn't introduce things that are impossible in vanilla javascript so i decided i could suffer a little bit and try and do things without jquery.
this led me to looking at many sites with draggable windows to look at their own scripts, in which every single time i tried replicating things i FAILED.
i eventually stumbled upon a nice code that worked. but the issue with it - in which unfortunately i can't find it, else i'd link it - is that it works with not only element classes but also a specific ID. see, this would be fine if i only wanted ONE draggable element. but i want multiple. and i thought that maybe if i just duplicated the script and dedicated it to a different ID and changed function names it would work but nooo life cannot be this easy apparently. so after setting up my webmaster status window, getting that to work, i tried doing the aforementioned method for what will eventually be a guestbook of sorts. it failed.
so i decided, "hey i'll revisit this later!!" and i went on to finding a way to implement a status widget into my site. this honestly was really easy as i ended up stumbling upon status.cafe . so i registered, eventually got my account activated, and i got it working in my live port of vscode just fine!! all is good in the world.
well that's what i thought until i found out that since i had created my neocities account in march of 2024, and i'm unemployed since i'm still in high school hence i have a free account, that i could not. use the widget. in neocities. so i tried finding a work around, found this handy guide (which is genuinely useful by the way) and set up things through a RSS feed instead which is essentially just a work around that complies with the security restrictions of neocities that i'm bound by. anyways, this works great but i literally just can't customize it to how i want so this is another fail. then i find imood.com which, although is NICE, doesn't suit what i want on its own. so i'm at a loss here too.
so, again, another thing to put to the side i suppose.
Tumblr media
so i started working on getting my guestbook, browsed through people's homepages again, and found chattable . and you probably think i have another paragraph complaining about this but honestly i can't write about something when i can't figure out how to even create a chat to implement onto my site in the first place so...y'know.
plus, i honestly have no clue if it'll work on my site either due to security restrictions so this is fun!!
anyways, after dealing with all of this, i finally decided it was about time i ported what i had so far over onto my neocities account. which isn't actually that hard i just had to wipe all of my files, overwrite the content in my index.html file there and paste in what i have now, and then upload my new files. but for some god awful reason after i went through all of this chrome just. kept depending on my old stylesheet??? so i had to clear some of my browsing data and eventually everything was loading properly for me.
and THIS is finally the end of my ridiculous documentation concering my neocities adventure so far.
i have no doubts i'll end up ranting here AGAIN about all of this but for now this is all i have on my plate...besides finally caving and learning javascript for real and continuing to learn more about html and css. hopefully one day i'll stop having such frequent issues but now is not the time and i doubt that'll be anytime soon either.
moral of the story, if you want to start something new and pick up a new hobby, please for the love of all that is of substance in this world don't go in completely blind like i've done if you're going to be making a project of some sorts. it will only lead to many misfortunes.
anyways you can see what i currently have done in my neocities here, make suggestions or give advice in the notes and whatnot i don't know.
6 notes · View notes
catwire · 2 years ago
Text
to start, this school was in the most bumfuck nowhere town where people’s accents were thick and everywhere smelled like cow shit. seeing escaped farm animals run through main street was not uncommon. (i got chased by an escaped bull once but that’s a story for another day).
now to dump in a little bit of my own background, i knew c++, java, javascript, and html before my senior year of high school. and looking at this guy’s code i knew it wouldn’t work, and he told me to prove that i knew how to code because he didn’t believe me. so i “built” a discord bot overnight with ripped code from my previous one i had made that year for a friend’s server for the hell of it. did a couple of copy pasting and bam, it was done. logged into my alt account and invited it to the discord server we had for the robotics class. it had very basic functions for a discord bot, but making it pull posts and images from reddit using their used-to-be-free api along with making it say I was the one who created it (in case there was any doubt) seemed to convince him i actually knew what i was talking about. he asked what we should do to fix the code. i said we should rewrite it in JS because it was a lot simpler and more straightforward when it came to the basics and we could easily teach the middle schoolers this language after the competition. he said he was too afraid to change it all now. i showed him examples of various physical robots using JS to work without the ugly mess that is C++ i found on github to prove it was possible. he said no, the principal wouldn’t allow it. he was right and the principal said absolutely not and we should stick to what we know, despite this guy not knowing how to even read a lick of code himself, let alone lead this team since he entrusted his 11 year old son to do it instead. so, albeit with immense hesitation and thoughts of quitting, we fixed the very broken C++. the only reason i didn’t/couldn’t quit and transfer to a new elective was because it was both too late in the year and my stepmom was staff at this school.
now, being this was a high school robotics team, the middle schoolers actually weren’t allowed to be there in competition. however, being that one of them was the principal’s son, this meant nothing. every design choice was led by this kid, and when any of the high schoolers would point out the obvious, we were told to “let them figure it out by themselves”. they never did. the adults here actually never thought to tell the younger kids about basic weight distribution. only the high schoolers really cared.
a few days pass and we get to finally see the doomed to fail robot in action, and for god knows why, every adult in the room is shocked when the weight of the oversized metal arm with a wooden base keeps toppling over. finally, after prolonged silence the principal's son says “what if we just put metal weights on the base of the robot”. my head is in my hands, all i can do is sit back and watch. but, at least it moved, or tried to against the heavy weight of a massive metal arm.
the weights make the track wheels have a hard time turning but after about 4 days of fumbling nonstop trying to get our metal and wood abomination to work against our better judgement, we finally were able to convince the principal that the robot would not be competition worthy if it could not move against its own weight. we removed a segment of the metal arm the next day much against the wishes of our 11 year old dictator. even the rest of the middle schoolers were on our side by the end of this.
2 weeks now remained until the state competition.
i was a high school mascot once do y’all wanna hear the story or should i keep that shame buried
68 notes · View notes