Tumgik
#it bugs me that i can't just delete post additions sometimes.
sheepstiel · 7 months
Text
posts on this site these days are just like
post: people can change their gender and sexuality over time and shouldn't be ashamed to change their label accordingly.
comment 1: so you think conversion therapy is ok? curious.
comment 2: yes and labels are bad actually everyone should just call themselves queer instead.
comment 3: yes i agree!!! also, you should just keep calling yourself lesbian if you are more comfortable with the label even if you're into men now, too. just change the meaning of the label to make it fit you!
10 notes · View notes
blubberquark · 7 months
Text
Your Code Is Hard To Read!
This is one of those posts I make not because I think my followers need to hear them, but because I want to link to them from Discord from time to time. If you are a Moderator, Contributor or "Helpfulie" on the PyGame Community Discord, I would welcome your feedback on this one!
"You posted your code and asked a question. We can't answer your question. Your code is hard to read."
Often when we tell people this, they complain that coding guidelines are just aesthetic preferences, and they didn't ask if their code followed coding guidelines. They asked us to fix the bug. That may be so, but the problem remains: If you ask us to fix your code, we can only help you if we can read it.
Furthermore, if there are many unrelated bugs, architectural problems, and hard to understand control flow, the concept of fixing an isolated bug becomes more and more unclear.
In order to fix unreadable code, you could:
eliminate global variables
replace magic numbers with constants
replace magic strings with enumerations
name classes, functions, constants, variables according to consistent coding standards
have functions that do one thing and one thing only like "collision detection" or "collision handling". If your function does two things at the same time, like rendering AND collision detection, then it must be refactored
rewrite deeply nested and indented code to be shallower
rewrite code that keeps a lot of state in local variables into special-case functions
use data structures that make sense
write comments that explain the program, not comments that explain the programming language
delete unneccessary/unreachable code from the question to make it easier to read or from your program to see if the problem persists
My own programs often violate one or more of those rules, especially when they are one-off throwaway scripts, or written during a game jam, or prototypes. I would never try to ask other people for help on my unreadable code. But I am an experienced programmer. I rarely ask for help in an unhelpful way. Almost never ask for help in a way that makes other experienced programmers ask for more code, or less code, or additional context. I post a minimal example, and I usually know what I am doing. If I don't know what I am doing, or if I need suggestions about solving my problem completely differently, I say so.
Beginner programmers are at a disadvantage here. They don't know what good code looks like, they don't know what good software architecture looks like, they don't know how to pare down a thousand lines of code to a minimal example, and if they try to guess which section of code contains the error, they usually guess wrong.
None of this matters. It may be terribly unfair that I know how to ask smart questions, and beginner programmers ask ill-posed questions or post code that is so bad it would be easier and quicker for an experienced programmer to re-write the whole thing. It is often not feasible to imagine what the author might have intended the code to work like and to fix the bugs one by one while keeping the structure intact. This is not a technical skill, this is a communicative and social skill that software engineers must pick up sooner or later: Writing code for other people to read.
If your code is too hard to read, people can't practically help you.
It gets worse. Unreadable code is sometimes unreadable because it is un-salvageable. It is hard to understand because there is nothing to understand, it would not work, and you need to go back to the drawing board.
Defensive Responses
This is not where the problem ends. Often, after a couple of rounds of back and forth, after questions like "Well, you say there is a bug, but can you tell me what you would want the code to do in the first place?", or "Is this a class or an instance? If it's supposed to be an instance variable, could you give it a lowercase name?" or "Could you give that variable _obj a more descriptive name? It looks like you are assigning different things to this variable in different parts of your loop. Perhaps you could use two variables with different, more descriptive names", you see a defensive response. The original question asker is not interested in making code easy to read, just in making it work. As I explained above, this is a confused way of thinking, because ill-posed questions and unreadable code make it difficult to impossible to make the code work, or to even understand what making it work would look like.
"Style is irrelevant." – This is by far the most common one. Since coding style, comments, variable names, and even re-factoring code into smaller functions do not affect the output, and thus not the correctness of the program.
"I asked for help with bugs, not style." – This is a variation on the first one. As long as there is no concrete and discrete bug, style feedback and questions for clarification can be discarded.
"This is too much work." – The original poster explains that making the code more readable is too much work for them, and fixing the bugs would be easier for others.
"Nobody will see the code anyway" – Nobody will see the code of the finished product, so it's irrelevant. Sometimes there are variations like "We aren't graded on code quality, only correctness" or "This is for a class project, nobody will depend on the code, so we don't need robustness."
"This is just throwaway code, it doesn't have to be good." – Like the previous one, this is frustrating to read because somebody posted the code on a forum for other people to read and asked them to understand it, and then said he doesn't care if it's readable or debuggable.
"I asked you for help." / "I am asking the questions here." – The original poster refuses to answer questions, because he asked, he expects answers, not questions in return.
"Don't blame me, I didn't write it" – We have completely left the realm of correctness and style now. The poster knows the code is unreadable, or doesn't make sense. He tried to protect his reputation. But he doesn't like the tone of the responses. Its not his fault the code doesn't make sense. It's not his fault if it doesn't work. Common variations are "This must be correct, it was the accepted answer on StackOverflow", or "I copied this from a tutorial", or "Don't blame me, this was written by GitHub Copilot". Often part of the problem is that the code has different parts written in different styles, or uses different data structures in different places, and both parts could benefit from a re-write to make them more consistent with each other. At other times the problem is that the code from the book is "correct" for certain purposes from the book, but not really suited for the problem at hand.
"I apologised already" – The poster is frustrated because he said "I am sorry I am a n00b" or "I am sorry for my bad English" already. Then somebody said his code is unreadable or his prose makes no sense. The poster sees readable code, or at least code that is readable enough to understand what the idea was, as a courtesy, as a social custom, not as something necessary to make the whole question and answer thing work. The same goes for a firm grasp of English. The poster apologised already that his English is bad, and you should just see past it. Dealing with this is especially difficult, because Q&A is framed as some kind of status game, and the poster is trying hard to save face already. Push-back will make him feel like he is losing face, and he will only get more defensive.
Causes
So where does the problem begin? Why do people write unreadable code, post it online, and get defensive? I think the answer is a combination of programming skill, social skill, and simplistic mental models.
Software Engineering is Difficult: Obviously, one root cause is that beginner programmers can't already write readable code from the start. Writing readable, well-factored code that is easy to debug, re-use, and adapt is something that comes with experience. Writing code for other people to read can only be learned after one has learned to write code.
Magical Thinking/Limited Cognitive Empathy: The most common and most direct cause of this phenomenon – the refusal to help others read your unreadable code – is not the unreadable code itself. It is the belief that it should be easy for experienced programmers to understand the structure of and intent behind a piece of code, even if the person who wrote it didn't. If you see software as basically magic, and don't see computers as soulless automatons that do what they do because they are built that way, then this is an easy trap to fall into. A variant of this works for language. If somebody is bad at English, or bad at the technical jargon needed to ask his question, he will often think that the question he thought up in his native Klingon was perfectly well-formed, and that other people should have no trouble reading his words, because they also think in Klingon, so they would translate it into a question that makes sense anyway.
Status-Consciousness: Many beginner programmers feel the desperate need to distinguish themselves from other beginners, and if they have been learning JavaScript for two moths now, they want to be seen as real programmers, not as children who play with Scratch and build Redstone contraptions in MineCraft. They want to be taken seriously. This reminds me of a five year old boy who stretches out his arm and tells me he is THIS BIG, and he is already FIVE, going on SIX, and he will go to SCHOOL soon.
Naive Mental Model of De-Bugging: Every program has a certain number of discrete features bugs, and when you remove all bugs, you end up with a program that works. This is of course nonsense. You can write a program that has an indeterminate number of bugs, or a program that implements an algorithm that doesn't quite work, or a useless program, or a program that does random nonsense.
With any luck, sooner or later, programmers will learn the technical side, and the social and collaborative side of software development.
78 notes · View notes
rpschtuff · 1 year
Text
I also thought I'd make a quick post going over my experiences and observations using the beta editor, as someone who put off switching for months and months and has now been using it for about a week. If you're putting off making the switch because you're not sure what it will be like, and are worried about committing to a broken editor, this post is for you.
General Observations
Overall, the editor itself really isn't that much different. A few things are in different places, such as blockquotes being under the dropdown and being called indented now, but it's not the buggy, broken mess that I half-expected it to be. A lot of the bugs that various people have reported on have already been fixed by staff. (And you can report bugs or just general complaints to staff! There's a feedback section of their form and they are actively taking user suggestions into account. Just remember to be nice about it.)
Sometimes bold, italics, and small text will act up and not apply correctly. But frankly, those would act up on the legacy editor, too. And if things are being weird, it's fairly easy to select the offending text and just fix it.
Things I Like
By far my favorite feature of the beta editor is the ability to disable reblogs on a post. As someone who runs a roleplay blog for a pretty popular canon character, I've gotten used to typing all of the names L.ike Th/is in order to prevent my posts from showing up in search, and slapping a huge "do not reblog" disclaimer onto everything -- only to have some personal who apparently can't read reblog it anyway. But now I can simply take my OOC posts, headcanons, metas, whatever, and set it so that no one can reblog them.
I love the ability to edit tags without having to completely delete and rewrite them. I've gotten so used to having to redo tags over a single typo that the realization of this the other day left me in shock. You can just click inside the tag and change any of the text that you want.
The new content label system is pretty good. You can clearly designate a post as having mature content, and your followers can choose in settings whether they want to have those flagged posts viewable or not. It's another feature I'd love to see Tumblr expand on, and add some more options to flag a post as, it's a really good start.
The post scheduling system is much more clear than before. You can actually schedule a post and feel confident in the exact date and time that it will go up, unlike the previous system that felt like a wild shot in the dark.
You can add colored text to posts pretty easily. There are a bunch of preset colors, and while I haven't played around with it much, I understand that adding custom colors via HTML is pretty straightforward. It's not a feature I personally use much, but it's neat.
There are also additional font and styling options, like Lucille, Chat, and Quote. Again, not things I use very often, but cool features to have.
Things I Dislike
Tumblr will remember your old tags, but without any capitalization. If your frequently used tags have capitalization and you want them to be consistent, you'll have to retype or paste them in every time.
When you paste an image URL into a post, it will insert the image as before, but include that link below it, with no way to easily remove it. This is an issue for those using gifs or icons with transparency, and simply pasting the image in directly will cause it to display incorrectly. As someone who uses a webpage of my icons when working on threads, I now have to download the icon I want to use and upload it, which is a minor annoyance compared to simply copying the image link and pasting it in.
17 notes · View notes
necrostar · 1 year
Text
WHAT NOT TO DO WHEN INTERACTING WITH MY BLOG - Customizable Edition
BASICS !
Name / Alias: Cherry!
Pronouns: They / Them
Blog type: single muse | Multi-muse | non selective | semi selective | selective| mutuals only | private | other (specify)
Type of muses: canon | OCs | both | other (specify)
GENERALITIES !
Triggers people MUST tag: (irl/realistic) spiders, (irl/realistic) bugs, (irl) talk of the afterlife (just tag that as tw / cw afterlife!) (you can also just tag as cherry don't look if that's easier for you! )
Interest tracker / checker: I have it and it's mandatory | I have it, it's not mandatory but I'm more likely to follow back / interact with the people who fill it | I have one and I prefer it if people fill it in | I have it but it's to people whether to fill it or not | I don't have one | other (specify)
Reblog karma: I practise it | I practise it sometimes | I don't practise it | I always reblog memes from the source (if it's been deleted THEN i go to reblog karma) | indifferent | other (specify)
Rule passwords: I have one and it's mandatory | I have one and it's optional | I don't have one | I send passwords | don't sent passwords | [space for eventual additions / explanations]
3-5 ESSENTIAL RULES PEOPLE HAVE TO RESPECT
I HAVE A LIFE OUTSIDE OF TUMBLR TOO! If like a week goes by and you don't hear from me on our thread, hit up my IMs or my Discord! I noticed I lost several threads bc of this and I can't find the last reply and it's a whole ass mess.
I am not your meme / art source!! It's very disheartening when I see notifs and they're all just people liking art I reblogged or reblogging memes from me and never sending any back.
I will not rp explicit nsfw on this platform!! Only in Discord and if we are close friends, no exceptions. Timeskip or FTB is totally ok though!
3-5 IMPORTANT PET PEEVES TO KEEP IN MIND
Reblogging memes and never sending any back or liking the art I post 20 times in the span of a minute.
Liking a starter I wrote for you and then never replying to it.
Not trimming your posts (I get it, legacy makes it practically impossible. I was in your boat once too!)
2-5 THINGS THAT WILL LEAD TO INSTANT (SOFT)BLOCKING
Harassing me about a thread.
Giving me flack if I ask you to tag something I need tagged.
Constant reblogging memes for me and never sending any in (like every time I post one constant)
Forcing a ship on me.
2-5 THINGS THAT LEAD ME TO UNFOLLOW / SOFTBLOCK A MUTUAL / SOMEONE I INTERACT WITH
I find out you're a minor and you lied to me about it.
You try dragging me into drama.
You demand explicit NSFW even after I say no.
I find out you talk behind my back.
2-5 REASON YOU DON'T TO FOLLOW (BACK) SOMEONE
I completely forgot about it.
I don't think our muses are compatible.
Maybe I'm playing a character you want nothing to do with (I've seen these types of DNIs before and they're completely valid!)
None of my reasons are personal! I assure you that if I don't follow back, it's nothing you did. I'm simply curating my dashboard and my experience in the rpc. I'd still like to be friends! :)
0 notes
glassprism · 7 years
Note
Hi, i checked your FAQ because I was looking for advice. I'm new to this while trading thing. So I read your post about what file sharing sites to use and saw that post was from 2013 and I was wondering if your opinions have changed. I was thinking about using google drive because mega limits the download rate and I can't even download 2 files when doing trades. Any additional advice? Have a great day and thank you! :)
Well, the big disadvantage of Google Drive is that it only gives you 15 GB of space. There might be ways of adding to it, of course, but it doesn’t compare to MEGA, which gives you 50 GB for a free account. I know Google Drive also disables downloads temporarily if something is downloaded too often, though I don’t imagine that will happen much when it comes to musical bootlegs.
The limit for MEGA also seems to vary quite a bit. I remember my limit was capped at 6 GB for downloading, so I could usually download at least one act of a video, and sometimes the full thing. Others seem to have it much lower, though. I’ve also found that using the program MEGA Downloader has helped to bypass some of those limits. (For example, I think I downloaded a 13 GB file once using that.) MEGA does have other bugs (temporary errors and the like), but overall, it’s still the go-to site for me and many other traders.
Hmm, what else is there to update...
4Shared is really not popular anymore; I haven’t even bothered keeping up with it and I’m not aware of many of it’s changes. A lot of people seem to have trouble downloading from it, and it only gives 15 GB of space when I used it, so it’s just not worth it to many traders. I mainly use it nowadays as a backup for some of my files.
MediaFire has also changed: it now only gives you 10 GB of space for a free account, though accounts made before they implemented that change still retain 50 GB of space (I still have one account that’s like that). It will allow you to increase it if you do certain things (stuff like, you know, inviting someone to make an account, or sharing the site on Facebook, promotional actions basically), but it’s not by a whole lot, usually 1 to 2 GB each. On the other hand, the size of the file you can upload has increased a lot; I know you can upload 1 GB files now, but I haven’t tested its limits.
And SendSpace is basically the same.
WeTransfer is around, but I don’t recommend it, the main reason being that it deletes files after only 7 days if you have a free account. An upgraded account saves the files for four weeks, which still pales when compared to MEGA or MediaFire, which will basically keep your files indefinitely unless they violate copyright or something.
Thanks for the question! I’ll add this updated post to my FAQ.
5 notes · View notes