Tumgik
#codeblocked.
sunless-not-sinless · 4 months
Text
shitGPT
for uni im going to be coding with a chatGPT user, so i decided to see how good it is at coding (sure ive heard it can code, but theres a massive difference between being able to code and being able to code well).
i will complain about a specific project i asked it to make and improve on under the cut, but i will copy my conclusion from the bottom of the post and paste it up here.
-
conclusion: it (mostly) writes code that works, but isnt great. but this is actually a pretty big problem imo. as more and more people are using this to learn how to code, or getting examples of functions, theyre going to be learning from pretty bad code. and then theres what im going to be experiencing, coding with someone who uses this tool. theres going to be easily improvable code that the quote unquote writer wont fully understand going into a codebase with my name of it - a codebase which we will need present for our degree. even though the code is not the main part of this project (well, the quality of the code at least. you need it to be able to run and thats about it) its still a shitty feeling having my name attached to code of this quality.
and also it is possible to get it to write good (readable, idiomatic, efficient enough) code, but only if you can write this code yourself (and are willing to spend more time arguing with the AI than you would writing the code.) most of the things i pointed out to the AI was stuff that someone using this as a learning resource wont know about. if it never gives you static methods, class methods, ABCs, coroutines, type hints, multi-file programs, etc without you explicitly asking for them then its use is limited at best. and people who think that its a tool that can take all the info they need, and give it back to them in a concise, readable way (which is a surprising lot of people) will be missing out without even knowing about it.
i got it to write tic-tac-toe (the standard babee) in python (the lang i have to use for uni ;-; (held at gunpoint here)). my specific prompt was "write me a python program for tictactoe that is written in an object oriented way and allows for future expansion via multiple files"
it separated it into three files below (which i think would run, but i never actually ran any of this code. just reading and judging)
Tumblr media Tumblr media Tumblr media
why does board use display instead of __str__ and __repr__?
why is the board stored as 1d instead of 2d? thats just confusing
why does it never early return aside from check_winner? (not a big issue here but kept on choosing to never early return when i asked it to add more methods)
why is there no handling of non-number user inputs?
why are non-int inputs truncated instead of telling the user that they should input ints only?
why is display implemented like that?
why are so many lines so bloody long (wide)?
why is there a redundant self.check_winner() after the while loop in TicTaacToe.play()? and if it wasnt redundant then you could finish the game without there being anything printed telling you that the game is finished?
why is the only comment useless? (this comment wouldnt be useless if it was a doc comment tho, but it aint a doc comment. speaking of, why is there no doc comments?)
these are the more immediate things i saw, but there are other things that are bad here.
whenever i write * this is where it updated the api without changing any usage of the api.
so i ask it to change board.display into __str__ and __repr__, it changes it to __str__*, it does not add a __repr__. asking it to add a __repr__ 1) removes the __str__ and 2) gives me this (the other methods are unchanged)
Tumblr media
what. the. fuck. this would imply that board takes in an argument for the boardstate, but it clearly doesnt. after 4 more asks it finally has both __str__ and __repr__, without fixing the fact its implying board takes an optional arg, so i get it to add this arg. anything that needs to print the board still calls display btw.
the reasoning it gave for using display over the repr and str magics was this
While using __str__ and __repr__ is a more idiomatic approach in Python, choosing to have a separate display method can still be a valid choice, especially if the display logic is more complex or if you want to keep the __str__ method for a more concise or formal representation of the object.
which, erm what? why would __str__ be for a concise or formal repr when thats what __repr__ is for? who cares about how complex the logic is. youre calling this every time you print, so move the logic into __str__. it makes no difference for the performance of the program (if you had a very expensive func that prints smth, and you dont want it to run every time you try to print the obj then its understandable to implement that alongside str and repr)
it also said the difference between __str__ and __repr__ every damn time, which if youre asking it to implement these magics then surely you already know the difference?
but okay, one issue down and that took what? 5-10 minutes? and it wouldve taken 1 minute tops to do it yourself?
okay next implementing a tic-tac-toe board as a 1d array is fine, but kinda weird when 2d arrays exist. this one is just personal preference though so i got it to change it to a 2d list*. it changed the init method to this
Tumblr media
tumblr wont let me add alt text to this image so:
[begin ID: Python code that generates a 2D array using nested list comprehensions. end ID]
which works, but just use [[" "] * 3 for _ in range(3)]. the only advantage listcomps have here over multiplying is that they create new lists, instead of copying the pointers. but if you update a cell it will change that pointer. you only need listcomps for the outermost level.
again, this is mainly personal preference, nothing major. but it does show that chatgpt gives u sloppy code
(also if you notice it got rid of the board argument lol)
now i had to explicitly get it to change is_full and make_move. methods in the same damn class that would be changed by changing to a 2d array. this sorta shit should be done automatically lol
it changed make_move by taking row and col args, which is a shitty decision coz it asks for a pos 1-9, so anything that calls make_move would have to change this to a row and col. so i got it to make a func thatll do this for the board class
what i was hoping for: a static method that is called inside make_move
what i got: a standalone function that is not inside any class that isnt early exited
Tumblr media
the fuck is this supposed to do if its never called?
so i had to tell it to put it in the class as a static method, and get it to call it. i had to tell it to call this function holy hell
like what is this?
Tumblr media
i cant believe it wrote this method without ever calling it!
and - AND - theres this code here that WILL run when this file is imported
Tumblr media
which, errrr, this files entire point is being imported innit. if youre going to have example usage check if __name__ = "__main__" and dont store vars as globals
now i finally asked it to update the other classes not that the api has changed (hoping it would change the implementation of make_move to use the static method.) (it didnt.)
Player.make_move is now defined recursively in a way that doesnt work. yippe! why not propagate the error ill never know.
Tumblr media
also why is there so much shit in the try block? its not clear which part needs to be error checked and it also makes the prints go offscreen.
after getting it to fix the static method not being called, and the try block being overcrowded (not getting it to propagate the error yet) i got it to add type hints (if u coding python, add type hints. please. itll make me happy)
now for the next 5 asks it changed 0 code. nothing at all. regardless of what i asked it to do. fucks sake.
also look at this type hint
Tumblr media
what
the
hell
is
this
?
why is it Optional[str]???????? the hell??? at no point is it anything but a char. either write it as Optional[list[list[char]]] or Optional[list[list]], either works fine. just - dont bloody do this
also does anything look wrong with this type hint?
Tumblr media
a bloody optional when its not optional
so i got it to remove this optional. it sure as hell got rid of optional
Tumblr media
it sure as hell got rid of optional
now i was just trying to make board.py more readable. its been maybe half an hour at this point? i just want to move on.
it did not want to write PEP 8 code, but oh well. fuck it we ball, its not like it again decided to stop changing any code
Tumblr media
(i lied)
but anyway one file down two to go, they were more of the same so i eventually gave up (i wont say each and every issue i had with the code. you get the gist. yes a lot of it didnt work)
conclusion: as you probably saw, it (mostly) writes code that works, but isnt great. but this is actually a pretty big problem imo. as more and more people are using this to learn how to code, or getting examples of functions, theyre going to be learning from pretty bad code. and then theres what im going to be experiencing, coding with someone who uses this tool. theres going to be easily improvable code that the quote unquote writer wont fully understand going into a codebase with my name of it - a codebase which we will need present for our degree. even though the code is not the main part of this project (well, the quality of the code at least. you need it to be able to run and thats about it) its still a shitty feeling having my name attached to code of this quality.
and also it is possible to get it to write good (readable, idiomatic, efficient enough) code, but only if you can write this code yourself (and are willing to spend more time arguing with the AI than you would writing the code.) most of the things i pointed out to the AI was stuff that someone using this as a learning resource wont know about. if it never gives you static methods, class methods, ABCs, coroutines, type hints, multi-file programs, etc without you explicitly asking for them then its use is limited at best. and people who think that its a tool that can take all the info they need, and give it back to them in a concise, readable way (which is a surprising lot of people) will be missing out without even knowing about it.
40 notes · View notes
manonamora-if · 9 months
Note
I'm sure you're quite busy and likely won't see this, but I was curious if you had a tutorial for those of us who want to set side characters genders? I've tried doing idrellegames way of doing so, yet it is't working. Is there a way to dumb it down for those of us who just can't wrap our brain around coding?
Hey Anon,
I definitely do see this (I don't get as many nice asks as people think! xD ).
Before I go on a super long description of how to do all of this, just some questions for you:
do you mean this gender setting tutorial, which goes over the different interactive macros to set a character's gender? or this pronoun one, which gives different option to set up pronouns depending on the NPC's gender?
also, did you only copy paste the code into Twine or also checked that all the curly/smart quotes were changed back into straight ones? Because when posting code, Tumblr will change any quotes to curly ones... and that will break the code.
Tumblr media
But yeah, the length and path of my answer will depend on those questions. Because setting gender is as simple as setting a new variable for that NPC, and the code will depend on which interactive macro you want to use. But setting pronouns requires a tad more code, and also has many different ways to go at it.
I do cover the basics of what's in those tutorials in my SG guide tho (the macros/widgets - not yet the templates, but I explained HiEv's pronoun templates here ). It's on my to-do list to have character creation example in the guide in the next few weeks tho.
8 notes · View notes
blitzwave · 1 year
Note
i hope thats what you meant by ask you abt your ocs. oh and also like i dont have any coherent questions to ask but you know im always down to hear more stuff abt popup so.
yeye ur good!! i will rant abt the sillies at any given opportunity have some extended popupverse
popup is in contact with several other AI like Love and Firwall, most of them are discarded or otherwise pretty much just unattended and running loose through the ✨ infinite and expansive Internet ✨ through their own means save for Firwall. Fir's pretty limited in what they can actually do and can't access the internet, limited to the device they're installed in.
None of them have the same level of awareness or sense of being as popup, but xe values them as confidants or at least walls of coding it can communicate with to some extent.
there is one program popup's run into though that xe avoids. xe doesn't know what it is, but xe doesn't like it since it keeps blocking xir ads </3
Tumblr media
9 notes · View notes
wellpresseddaisy · 2 years
Text
Tumblr media
An excellent summation of my week.
1 note · View note
deadhawke · 23 days
Text
Tumblr media Tumblr media Tumblr media Tumblr media
The Hive v2 - Supportless Dice Tower
Hey if anyone here has a 3-D printer and is looking for dice tower designs to print may I please present this one for your consideration!
For real though I’m very proud of this design especially cause I probably chose the most complicated way to make it but I’m very happy with it.
Tumblr media
(here's a very tiny gif of what it looks like when the shell is generated with the code I made in tinkercad codeblocks)
0 notes
frontkilop · 2 years
Text
Codeblocks linux
Tumblr media
#Codeblocks linux install
#Codeblocks linux update
#Codeblocks linux software
#Codeblocks linux code
Installing CodeBlocks on Linux is a very easy approach because it is already residing in the Linux OS in its package repository.
Click on “ ProjectName.CBP”, and your project will be opened.
From the “File” menu, click on “Open” and then go to the project directory.
Go to the “File” menu and then select “Recent Projects.”.
To open an existing project, you can follow these steps. You just need to right-click on the project when is shown in bold text and then press “Activate Project.” Open an Existing Project The Build and Run command is part of the active project, and it is always used when you want to create more projects. You should keep in mind that you cannot debug a program without creating a project.
Run the program using the “Build” menu and then select Run (Ctrl-F10).
#Codeblocks linux code
Then you can build the code by using “Build” menu and then click on Build (Ctrl-F9).Go to the File menu and then select New and click on Empty File.If you want to type any toy program in code blocks, you can follow these steps. The basic ability of CodeBlocks makes it easier for the user to compile extra plugins from contributors to extend its functionality. This makes it easier to deal with any bugs on the system and fix them without any trouble, and the user doesn’t have to wait for new updates to get rid of any bugs.
#Codeblocks linux install
If you can put yourself out of your comfort zone, then this is the ultimate option to install code blocks on your system as it is more flexible, and it will require a bit of hard work in order to complete. You can also create new patches to tackle any bugs if you want to keep them more secure.
#Codeblocks linux update
Using source code, it will be easier to update to any new or latest versions. This will get you through your comfort zone, and you will be in control of whatever you are putting in your system. You can download the source code and then start building it by yourself if you feel comfortable building applications from their source. License : GNU General Public License Download Source Code: The code blocks will be installed on your system, and now you can use them for your purpose.ĭownload Codeblock V20.03 File All You Need to Know About Code::Blocks You have to download the setup file that you can find from the web official source and then run the file. This is the easiest and simple way to download and install code blocks on your computer system. In order to download code blocks on your pc, you can have them by following different ways, so we are going to share each of the easy methods to properly introduce it on your system. CodeBlocks is the best IDE for C++, and in this article, we will discuss how you can download CodeBlocks for Windows 10, macOS, or Linux. They include all the basic necessities such as compiling and debugging.
#Codeblocks linux software
Integrated Development Environment is an environment that is used for developing games or software for a computer system. You can utilize this IDE on different stages like Windows, macOS, and Linux. You can add more highlights through modules. It has all the fundamental highlights, for example, compiling, debugging, along with auto code completion.ĭifferent highlights incorporate code inclusion, profiling, drag and drop, code coverage, and so forth. It is another great IDE for C++ advancement, which gives you all the fundamental highlights and instruments. The unique ability of download codeblocks is that it supports GNU GCC compilers along with MS Visual C++. It is a cross-platform for Windows, Linux, and also for macOS. Code::Blocks is an open-source and free C/C++ IDE.
Tumblr media
0 notes
pineradvance · 2 years
Text
Codeblocks linux
Tumblr media
Codeblocks linux code#
Codeblocks linux free#
Codeblocks linux mac#
#include Ĭout
Codeblocks linux code#
After compilation, if there is any error in the arbitrary code, the IDE will reflect a visual indication like other IDEs.īecause the aforesaid is generated automatically, the following code sample is provided to show a more realistic experience in C++ coding with Code::Blocks. At this point, you can debug and compile this code by pressing the F9 key. The wizard will also prompt you to specify the project name along with its directory location to store and select the default compiler as GNU which the IDE detects automatically as in Figures 5 and 6, respectively.įigure 5: Step 3, filling in project settingsīecause you have chosen C++ as the programming language, there is a file called main.cpp with default “Hello Word!” code automatically generated in the solution as shown in Figure 7. Henceforth, the wizard will ask to choose the programming language between C and C++ for coding like as mentioned in Figure 4.įigure 4: Step 2, selecting a coding language After selecting Console Application, click the Go button to begin using the Console Application Wizard. The other application templates in Figure 3 are for developing more advanced types of applications. Note: The Code Blocks IDE supports the “IntelliSense” feature as well as leverage with other debugging facilities including breakpoints, call stack, memory dump, thread switching, CPU register, and disassembly.įigure 3: Step 1, selecting a project template Go ahead and select “Console Application ” this will allow you to write a program for the console. Here, you will encounter with a huge list of predefined project templates, as in Figure 3. To start a new project, click ‘Create New Project’ on the screen. You will observe a screen appears right after imitating this software, like in Figure 2, that enables you to create a new project and other functionalities. Finally, the Code::Blocks development environments startup window looks like Figure 2.įigure 2: Code::Blocks IDE’s First view Code::Blocks in ActionĪfter you are done with installation and subsequent configuration, it’s time to start coding. It installs like any other typical software. Once you have downloaded the correct package, its installation is quite easy on Windows.
Codeblocks linux mac#
Hence, its binaries for Windows, Linux, and Mac platform can be downloaded freely from its official website, Identifying the correct package is the first essential task, because there are couple distinct packages available, leveraging dispersed features for both Windows and Linux platforms.įigure 1: Choosing an installation package InstallationĪs said earlier, Code::Blocks is an open source programming language. Although Code::Blocks is available on the Linux and MAC platforms, this article deals with Code::Blocks for the Windows platform. It supports a variety of compilers, including Microsoft C++, Borland, Intel C++, and GCC. The first stable version 8.02 of Code::Blocks was in 2008.
Codeblocks linux free#
It is an open source, free programming language especially designed for C, C++, and FORTRAN. Hence, Code::Blocks is too leveraging with a smart IDE. Moreover, they are a combination of editor, compiler, and debugger intelligent enough to identify and auto complete syntax and typical keywords. IDEs are smart, productive tools that increase the efficiency of developers. Today, we have ‘n’ number of IDEs that convert the routine task of writing thousands of lines of code into a meaningful process.
Tumblr media
0 notes
jurogaqat · 2 years
Text
Code blocks tutorial pdf
#http://vk.cc/c7jKeU#nofollow#_blank#<p>&nbsp;</p><p>&nbsp;</p><center>CODE BLOCKS TUTORIAL PDF >> <strong><u><a href= rel= target=>DOWNL#<br> codeblocks#<br> code::blocks download#<br> code::blocks cexemple programme code::blocks#<br> créer un fichier h sur code::blocks#<br> codeblocks wiki#<br> code block manual#<br>#<br> </p><p>&nbsp;</p><p>&nbsp;</p><p>cbp fichier du projet dont le format est propre à Code::Blocks et d'extension cbp pour Code::Blocks P#Le logiciel code::blocks fait partie des logiciels de type EDI (Environnement de Développement Intégré#. IDE en anglais) pour le langage C++.#[PDF] Tutoriel d'installation d'OpenCV Avec Cmake#CodeBlocks et MinGW PDF) Code::Blocks Manual | Samuel Alarcon - Academiaedu.#CodeBlocks. Ouvrer maintenant le programme Code::Blocks#il peut éventuellement (si c'est le premier lancement sur cette machine) vous demander s4.7 Internationalisation de l'interface de Code::Bl#si vous ouvrez un lien vers un fichier pdf depuis la vue des.#Ce CD-ROM contient une notice d'utilisation de CodeBlocks : ▫ CodeBlocks_V10.05.pdf : c'est le fichier que vous lisez en ce moment. Il s'ag#All 3 methods share exactly the same Blockly source code and so work in a This section of the manual explains how the most common blocks ar#Code::Blocks. Manuel Utilisateur. Version 1.1. Merci a lequipe CodeBlocks: Anders F. Bjorklund (afb)#Biplab Kumar Modak (biplab)#Bartomiej wiecki (byo)#</p><br>https://derujadeq.tumblr.com/post/693640976538992640/reston-superkit-mode-demploi-pour-tricotin-long#https://derujadeq.tumblr.com/post/693640976538992640/reston-superkit-mode-demploi-pour-tricotin-long#https://jurogaqat.tumblr.com/post/693641706736861184/manuel-transporter-t5#https://jurogaqat.tumblr.com/post/693641706736861184/manuel-transporter-t5.
0 notes
handageddon · 1 month
Text
Oooouuugghh having issues
Back a long time ago. A looooong long time ago. When cosplay was still mostly a crafting hobby. I got into electronics. Like 2008.
Now that I have space and money to do electronics finally, everything is done in CODEBLOCKS and my lack of a formal college level math education means I have NO IDEA WHAT ANY OF THESE THINGS ARE CALLED
69 notes · View notes
tsukana · 7 months
Text
face in hands. wait. WAIT. mariana reading the sign from codeflippa just now made it click for me.
what if the codeblock translation "s1" that phil found the other day wasnt "season 1" or "series 1". it's saying sí. it's saying yes. to what??/ who knows (ignore this after im dumb and fucked up my comprehension) hello. the code corruption is saying hello it has entered the world.
11 notes · View notes
essential-randomness · 4 months
Text
Blogging Week #2
Tumblr media
IN 2 HOURS (and around 20m), we continue the blogging week with an assorted array of website work!
Come to this "choose our own adventure" stream to learn about my infinite website TODO list, and brainstorm some improvements we can make together!
Some options:
JS/CSS sleuthing: setting up some cool-looking JS-driven interactions (and learn a bunch in the process)
Fancy content collections: finally get a streaming schedule set up there, with "local timezone" and "next up" display
Installing more remark/rehype plugin, like fancier codeblocks or... maybe even making one ourselves?
See you on Twitch!
(almost forgot! you'll also find out what the $upporters choice was before I reveal it more broadly... probably tomorrow!)
9 notes · View notes
shed0kryptz · 15 days
Text
okayyy it wouldn’t hurt to share some of the ideas for other realm entities…
The Rift - class 5 entity !! super high up there. they’re responsible for keeping planets in balance. maintaining gravity. regulating when stars explode, when things collide (planets or asteroids), keeping the terrain from falling apart on specific planets (it’s partly responsible for earthquakes !!!!). they have no physical form, but can replicate the shape of things. they are a cloud of geometric particles that shift and glimmer. prolly have some weird mist surrounding them. take up a lot of space !!! they’re also one of the chillest uppers to exist, which is surprising since most of them are rude and narcissistic. potentially canon, but they might have a connection to either db or collector (likely collector) !!! this would be relevant cuz eventually db fuses to its vessel and it can’t do that on its own, so collector would be the one to get him the help. rift has the ability to combine things together so it makes sense. but also it would be interesting for rift to have plot involvement somehow, cuz as of now, it’s a side character. idk yet !!!
Profundis - honestly, moon can speak more about them than me but i can give a basic rundown. they are a class 4 entity (not sure lol !!!) that works for warp in the same unit/building as db and collector. they are a water/sea entity, and their design is based off of an old deep-sea diving suit !! they are in a position higher than db and collector, so possibly a board member or another position we have yet to establish. we’ve also kinda made it canon that they speak in caps + codeblock text 24/7 (the backticks ` text on disc lol) and they interact with db n collector quite a bit. prolly friends at this point. i am unsure of their abilities oopsies. but they’re very cool !!!
Shard - placeholder name for sure. class 4 entity. he is a crystal/glass entity. he breaks off pieces of himself to use for offense. he can either forcefully break a piece off or shoot them out in shards. crazy i know !1!1! like, he can flick his hand and fragments fly out. he probably gets tiny particles everywhere whenever he moves. not sure what material he is made of, but it might be some form of quartz or realm crystal compound. no idea !! but he is very sharp. literally. he works at warp as a board member in db and collector’s unit. so far he is just a side character but he is def the stereotypical upper personality. an absolute arrogant asshole !!!!!! his concept actually came from an idea we had about db getting attacked during a business meeting. the uppers had agreed that db was not performing as well as usual and threatened to take away its position if things do not change etc etc, but shard acted on his own accord. ig he figured that simply telling db wouldn’t do anything, so he decided to use physical force. ofc, he ended up dictating the conversation for that to happen. the other uppers were shocked by this, but they didn’t do anything to help db. they just cancel the meeting. it’s worse too because db didn’t take its vessel with it, so shard managed to pierce its core, the most vulnerable area of any upper (i imagine that more powerful entities have evolved souls called cores that are extremely hard to destroy. ofc this is different when fighting other uppers). point is. shard sucks and we don’t like him !!! his name should be shart tbh.
Quill - placeholder name again! this character may or may not be canon, she is the most mysterious concept out of all of these because she just came to my mind one day. quill is a class 5 entity and a very important one ! they are responsible for keeping records of every conscious entity across all dimensions !! i imagine she is sorta a ceo of her own super large company that keeps them all organized. realm technology allows them to not take up too much area cuz that would be. trillions of records to store. so they prolly have a way around it to conserve space! she is constantly writing down new information for each being 24/7 on special paper i imagine. they have multiple arms as well. each being has a large “binder” of everything theyve done. they get stored in large file cabinet things bla bla. they are not allowed to disclose any information unless if they are directly contacted and given payment. her concept could possibly be relevant in the event that a character needs to look through the information of another character, but idk if they will be real or not. it’s a fun idea tho !
there are others but they are way too rough to explain. also, none of these have concept art as of now unfortunately. but yay !!! ideaz :)
@moonshine1991 bestow upon us profundis lore
4 notes · View notes
faranae · 19 days
Text
Why is Tumblr's rich text editor stripping graves (`) from user input all of a sudden? How irritating.
It *feels* like it's the WYSIWYG trying and failing to translate the graves as an attempt at codeblocks due to the editor's optional markdown support, but it doesn't work that way in the rich text editor? If it did, those asterisks up there would disappear and automatically format the text inside them as italics.
I hate having to constantly CTRL+Z when typing in Tumblr's new editor. Half the time it works, the other half it undoes massive blocks of text for no reason with no ability to CTRL+Y. :(
2 notes · View notes
seapupz · 5 months
Text
hey gang btw pls dni with my posts if u use fonts ANYWHERE on ur text !! u can use my flags and follow me but do not interact with anythinf on my posts if u use fonts on anything. theyre extremelu innacessible to vis impaired people and screenreaders !! i use a sr and am vis impaired and reading thru fonts kills my head sometimes if its those fucking massive cursive ones ! idc if its just the codeblock thing but yeah dont use fonts guys its very inaccessible thank you !!
Tumblr media
5 notes · View notes
belovedism · 1 year
Note
Does The universally loved have any tips 4 making a cyuute rentry ? ? or rentry resources ? ? she's struggling so much to make a nice one with a good layout for her vessels + nonhumanities and soul lore without taking too much inspo from yours TwT
ouuuu she does not know . . . ummms make sure to utilize links / bolds / codeblocks for variety ! ! allso a good graphic can go a loooong way . . . if yuu dont feel confident w yuur graphics dont be ashamed to take inspo or ask someone else to make yuu some !
4 notes · View notes
halo-lll-odst · 9 months
Text
posted it privately cuz i need to get the formatting right but MADE A NEW SPRING FIC HIIIIIII HIIIIIIIIIIIIIIIIIIIIIIIIIIIIII ok hi here it is. tbh the formatting might be wrong i only proofread it on tumblr once and i write these things on discord with the codeblock format so lol apologies in advance
2 notes · View notes