WARNING!!!
The current state of this website is a test. Visitor beware...
Hi, welcome to my website (well, sorta). My name is Alexa and I am
broadcasting to you today because I decided to help my friend Drew Linky
build his website drewlinky.com.
Join me in my journey to learning web development!!!!!!!
CLICK HERE TO JUMP TO MY LATEST POST
Let us celebrate an extremely important day...
June 20, 2019
The day I decided to embark on a journey...into web development. First
order of business: Learn HTML and CSS.
(Disclaimer: No, I did not wake up one morning and decide to learn
coding from scratch. Several people thought this was the case when I
first told them I decided to learn how to build a website. I took three
semesters of programming in college, so chill.)
-
June 21, 2019: After watching two hours of a free online course (shout
out to
freeCodeCamp.org) I learned the
basics
of HTML.
drewlinky.com goes live for the
first time (with the help of cPanel File Manager) and has been going
strong ever since.
-
June 22, 2019: With the basics of HTML out the way, moving onto CSS! I
learned how to edit colors and font size. :) Tammi's Trove receives a
landing page (art by me) and Dwes's Dumpster Fire makes an appearance
(thanks to Drew, pictures provided by Dwes "with no context"). I figured
out how to set up my FTP client; no more File Manager! Bing bang boom,
droppin' these files like flies.
-
June 24, 2019: Learned ids, classes, span, and div. Now tell me if I'm
wrong, but what I gathered is ids are meant for changing the style of
unique elements (you shouldn't use an id more than once), whereas
classes change the style of an element, but can be used on however
many elements one would like. Span is meant for changing the style of
small chunks within an element, whereas div divides entire blocks of
elements.
Am I a pro yet?
Also, Drew and I successfully secured an SSL certificate, so feel free
to enter your sensitive info on our site, it is safe (at least from
people besides us)!
-
June 25, 2019: I learned a lot of valuable things today. It might not
seem like a lot all written down, but I feel like the possibilities with
just these few tools are endless. I have learned all the ways to use
color (outright names, rgb/rgba, and hex), absolute vs. relative values,
the difference between using pixels and em/rem, and how to utilize vw
and vh. Bonus: I was introduced to the website
coolors.co which I'm
sure I will be using in the future because I am indecisive as all get
out.
-
June 26, 2019: I had a little pow-wow sesh with Drew and went over what
I've learned so far. Together we gained a stronger understanding of the
difference between em and rem and also learned how to add images as
backgrounds. Drew taught me how to do
layover text
(very useful), and I
taught him how to center text on a page. I also found code for how to
make text blink (don't know if it's best implemented through CSS or if
that should be javascript territory, but oh well we work with what we've
got,
thank you stack overflow).
-
June 28, 2019: Went through so much of this
youtube course
in the background at work and learned a bunch of stuff, but had no time
to experiment. Will reconvene tomorrow to work with this new
information.
-
June 29, 2019: Here's what I learned yesterday...
-
About default browser styles and Google Chrome DevTools (right-click
--> Inspect) for experimenting within a browser. Default browser
styles are specified in DevTools as
user agent stylesheet.
DevTools are pretty cool because you
can test style changes right in the browser and it immediately takes
effect, but it doesn't save the changes, so you can mess around as
much as you want without accidentally messing up your actual code.
-
calc() function, which allows you to use arithmetic to mix and match
values. For example, you could do calc(100vh - 100px) to have
something take up 100% minus 100px if you have a 100px banner or
something like that, so together it takes up 100% of the screen
instead of like 110% where you would then have to scroll down the
page.
-
Typography stuff. Learned about font-family, font-weight,
font-style, and font-size, as well as what font-stack and generic
families are. So you can basically have a list of fonts you want as
options and the browser will pick the first one off the list that
can be loaded. If all else fails, you should always have a generic
font at the end of the list as a fail-safe. font-weight changes the
"weight" of text, i.e. how bold or light (thin) it is. font-style
changes whether text is in italics or oblique. Or if you want most
text to be in italics but want one specific section to not be, you
could utilize the "normal" setting.
-
Also learned about
Google Fonts,
which will be a very useful tool in the future. When you choose a
font in Google Fonts you basically just copy/paste a link to import
the desired fonts in, and you can also choose their font-style and
font-weight. These matter because if you go into your CSS code and
then try to change their style and weight it won't change the style
or exceed the specified weights you chose. So if you go to Google
Fonts, make sure you check off what you want when you're over there.
-
More typography: text-align and text-indent. text-align is what it
sounds like: it aligns the text (e.g., left, right, center, etc.).
text-indent indents the first line of a block of text. Awesome for
when you convert your college research project into HTML and share
it on your website (I'm not doing that...
unless y'all really want to learn about the depressing reality
of the rampant misdiagnosis/treatment of bipolar disorder in the
world of health care).
We also have line-height, which will also help you with converting
your college research project to HTML so you can keep that classic
double-space look and feel of Microsoft Word.
-
MORE typography (there's a lot you can do with text).
letter-spacing: Changes how much space is in between each individual
letter.
word-spacing: Changes how much space is in between each individual
word.
text-transform: We have capitalize, uppercase, and LOWERCASE.
text-decoration: Adds "text decoration" which is basically lines
above, below, or through text. This one is actually pretty cool,
specifically for links. A link defaults to having a line underneath.
Maybe you don't want the line, and if that's the case you can use
text-decoration to change that default. text-decoration: none gets
rid of the line. But think of all the different lines that exist in
Microsoft Word that pop up when there's some kind of error or
suggestion. You could have a solid purple underline, a wavy red line,
really a line above, through, or below any text of any color that is
solid, wavy, dotted, dashed, or double. I'm basically copying all
this information from
my brain
https://www.w3schools.com/cssref/pr_text_text-decoration.asp.
-
You thought we were done, but I also learned about the
CSS Box Model
and how to edit the padding, border, and margins. You can edit the top, right, bottom, and left all individually or altogether. There are a bunch of different options to customize as broadly or as specifically as you want, so you just have to experiment.
On top of that, there's a property called border-radius that rounds the edges of the border. You can also set your margins to
negative values and that allows margins to overlap.
-
Even I thought I was done, but apparently not. I ALSO went over outline. It's pretty dang similar to a border, with one basic difference: outline-offset. While a border just frames its contents, outline-offset allows the outline to move inward or outward independently of its contents.
-
July 1, 2019: Learned display properties and the difference between block and inline. Block elements take up the full width of a page and always start a new line. Inline elements only take up as much as the content space and don't start a new line. Very important distinction. Amazingly enough, though, you can change those default properties with the display function. If it's inline you can turn it to a block (display: block), and vice versa (display: inline). Awesome. I also learned about respect. The top and bottom margins of a block element are respected, but the same doesn't go for inline elements. Another random bit I learned was list-style-type. Now I can have subsections in my list!
-
It turns out when you make a list within a list it makes a fancy open circle by default, so I could have done subsections this whole time. Oh well. You know what it doesn't do by default, though? That's right, make a square. So we're sticking with that right now.
-
Aside from block and inline, we've also got inline-block. This seems quite important when it comes to that respect we talked about. Want inline? But also want respect? Then make sure you bring block to the party...as long as you stick with block you'll get all the space you asked for. :)
-
I learn a lot of stuff in one day now, I need to have all these lists. Let's talk about border-box too. When you make a box you want to keep it all in the box, you feel me? If you add padding without border-box, you're going to be in a world of fatty trouble. So make sure you use that border-box, all right? It adds the padding on the inside instead of adding it all around the outside.
-
Oh wow I learned about hiding elements too with display, opacity, and visibility. I can be a magician now, I can make stuff disappear.
display: none - Removes element from entire flow of the document. It's gone, bro, unless you look at the actual code behind it. It's there, but it might as well not be.
opacity: any value between 0 and 1 - Straightforward, it changes the opacity with 0 being totally transparent and 1 being totally opaque.
visibility: hidden - From what I gathered it's basically the same as opacity: 0. It hides the element.
-
Jeeeeesus also learned about using images as backgrounds. Now THIS is super important. background-repeat: round changed my life. It repeats the image but only fits as many that fit instead of letting excess repeats spill over. So if only three full iterations fit, it just fits the three instead of 3 plus an extra sliver. background-size is straightforward, so is background-position. This course goes into background-attachment, but that can wait until tomorrow.
-
July 2, 2019: Hello, world. As you can see, we have learned a lot in the last few days. TODAY I learned about background-attachment and linear-gradient. Pretty cute effects, I will totally use those. I also learned about how to write more efficient code when it comes to all these background properties. I can basically toss it all in one thing under background: so I don't have to have a billion lines of code for each individual piece I want to edit. I also learned about this website that spits out code for linear gradient effects, so I can be a lazy fuck and just use that. Hey, don't look at me, real programmers are efficient and use resources. I don't waste no TIME. Now if you'll excuse me, I am going to spend the rest of today working on the landing page of Alexa's Alcove.
-
July 8, 2019: HELLO. I had
summer break
because I work in a school and we're cool like that B) so I had a well-deserved break from all things productive. But I am BACK and BETTER THAN EVER. I took the time today to do something very much needed: Actually organizing the files that make up this website. This all started as an experiment to learn web development skills, so to say the least I was haphazardly tossing things to and fro without any real worry about organization. I thought I was going to mess around for a while and then throw it all away and start fresh once I felt like I had solid footing, but how could I throw away the wonderful contributions to the internet that I've made so far? So I decided it's all here to stay, and we shall see what is left in the dust, what will be improved, revamped, and added upon, and what new contributions will make an appearance in the future. It is an exciting time, my fellows. My motivation was down for a short bit because of how disorganized I've been, but I am here with my shit together and I am ready for action. I also fixed this issue I was having where my text was darker than the background, but that was just me being a fool and having the opacity of the background not at 1. Oops, hehe.
Wowee zowee look at me, we are making strides and moving on to bigger and better things! Let us celebrate a new milestone...
July 9, 2019
I finished the HTML and CSS course
today!!!!!!!!! Shout ooooooout to John Smilga for teaching that course, it was amazing, it was awesome, it was everything I could have ever hoped it to be, and John is hilarious as fuck and has such a good sense of humor. He really made me enjoy learning all of this information. He is such a good teacher, everything was so clear and specific but not too specific, it was a great pace, he showed off awesome resources, oh my god I could not praise this man enough.
-
Anyway, I got through a LOT of this video over the course of both today and yesterday, so let's talk about all that.
-
float and clear: Pretty cool, they help me get blocks to sit next to each other. Spoiler alert
this is all kind of meaningless to me because I started learning about Bootstrap too and I am all about that grid life now.
-
position property: Default is position: static. We also got position: relative, which changes something's position
relative to its normal position using top:, left:, etc. properties. position: absolute changes the position relative
to the nearest ancestor that has position: relative, and if there is no ancestor then it's relative to the body.
position: fixed allows you to set an element in a fixed position, so it can travel with you when you scroll on a
page. Fancy.
-
Media queries: Oh this is actually amazingly cool and super useful. It's a responsive design that allows your page
to follow different rules based on how big the screen size is. You use min-width and max-width as like, reference
points. So if you set up a media query with min-width: 500px, when the screen is smaller than 500px it'll follow
whatever you have going on in your regular CSS code, but when it's bigger than 500px it will follow the new rules
that you specify in the media query. So freaking cool, right? Awesome for mobile compatibility, or my favorite,
easter eggs. ;) You can add several of these too, so your page could change theoretically an infinite amount of
times as its width grows/shrinks. Like at min-width: 200px make the text red, then at 300px make the text blue, then
at 400px make the text pink, and on and on. Super cute.
-
z-index: This basically allows you to overlay stuff. Like for instance, if you want pictures to overlap. The default
is 0. So if you have two pictures and change one to -1, it'll be behind the one at 0. If you make it 1, that one will
come to the front. Etc. etc. very useful. Warning: this doesn't work on elements that have position: static, so use
relative or absolute.
-
Oh my god I'm way too busy, I barely got to review anything. I spent way too much time today eating a stroopwafel mcflurry (it was good but I'm mad it was $2.19 when BK sells delicious cones for 50 cents and delicious hot fudge sundaes for $1), watching food videos, trying to fix our leaky toilet, talking to my dad about said leaky toilet, and overall just not having enough time in the day.
-
July 10, 2019: Okay, moving on.
-
Descendant and child selectors: Descendant selector syntax looks like this - element element {}. Just right next to each other. The descendant selector is more broad than the child selector, where if the second element has an ancestor that matches the first element, that element is selected. For example if you have div h1 {}, if the h1 has a div as an ancestor, no matter how nested the h1 is, those CSS rules apply. So the h1 could be like third cousin twice removed from the div, but as long as it's an ancestor, it's selected. The child selector syntax looks like element > element {}. This selects only the elements that are direct children. So if we have div > h1 {}, if the h1 is nested in other elements within the all encompassing div, it isn't selected. It is only selected if it is next in line, no great great grandmothers allowed.
-
Pseudo elements ::before and ::after: Basically adds content before/after HTML content without having to add it
directly in the HTML code. Even if there is no text content, you still need content:"" for it to work.
-
Pseudo elements ::first-line and ::first-letter: Very straightforward, these change the first line/first letter of the selected elements.
-
Pseudo-classes.
:link - Customizes basic link that just appears like normal on a page.
:visited - You know how when you visit a page on google it turns like purple so you know the next time you search for it you know you were already there? Well that's what you use this for, it customizes how a visited link looks. You could make yours purple, blue, pink, the text 3x bigger, anything. It just changes to whatever you tell it to after you've visited.
:hover - Customizes how a link changes when it's being hovered over.
:active - Customizes how a link changes when it's active,
aka the moment it is literally being clicked on. So like the limbo stage between hovered over and visited.
:root - Customizes the root
element. Honestly pretty similar to the * universal selector, but :root has more specificity.
-
transform property.
translate(x, y) - Moves x, y (whatever unit you want to move it, whether that px or em or % or whatever), when it comes to what direction, just think of your x-y axis, positive numbers go in the positive direction, negative go in the negative. If you can't figure that out, you shouldn't be programming. it's Elementary, my dear Watson. Just think about coordinates. If you only want to move one, there's also translateX() and translateY(). There's more than that too but moving on.
scale(x) - It...scales it by x. There's also scaleX() and scaleY() if you're a specific little hoe.
rotate(x) - It ROTATES it by x. Straightforward. By default it rotates on the z-axis, that's what most people are used to. You can do rotateX() and rotateY(), to understand how that works you might want to get out a sheet of paper and rotate it by each axis and you'll understand how those processes work.
skew(x, y) - Skews it by x, y. By default regular skew() skews the x axis only, but you can do both, or you could use skewX() or skewY() if you're so inclined.
-
transition property: Changes from one thing to another over a specified period of time. Point A to point B. You can have separate properties for the property you're changing, the duration, and delay, but there's a shorthand. transition: (name of property you're changing) (duration) (delay). And if you want to change several properties, just use a comma to distinguish your shit, like transition: (property1) (duration) (delay), (property2), (duration), (delay), etc. and on and on. You can also use
all
in the place of property to change all the properties, you've specified to have changed. There's also an optional transition-timing-function that changes how the transition moves. There are a bunch of options (ease, linear, ease-in, etc. etc.), so you can look those up yourself.
-
animation property: Similar to transition, but transition only has two points, from 0 to 100%. Animation allows you to have as many points as you want and it can change an infinite amount of times over a specified period of time. You have to use @keyframes (name) and then specify what you want to happen at what % progress through the animation. So you have your @keyframes, and then you need to reference the name of it in your class so it knows what the fuck you're talking about. There's also shorthand for animation: (name) (duration) (times the animation will run). There's also animation-fill-mode, which allows you to choose where the animation ends basically. animation-fill-mode: forwards stops the animation at 100%, backwards resets it back to 0% when it stops.
-
CSS Variables: This is important. You can save something as a variable and then reuse it, so like if you want a bunch of things to have the same color but then want to change the color, you only have to change the variable instead of having to go and change every single time you wrote out the color, and then they'll all change automatically. Hurray for basic algebra. You can store these values locally or globally. For global access, use :root {}. Syntax: --varName: value goes in the :root, then when you want to apply it, go to the class you want to use it on, and do property: var(--varName). For local access, you can just put the variables in whatever thing you want local access to.
-
text-shadow and box-shadow: Similar to linear gradient, you can honestly just look up a generator for these. I settled on https://html-css-js.com/ for both text-shadow and box-shadow.
-
This guy brings up CSS prefixes, which matter in terms of different browsers supporting your code, but apparently there's software that can scan your code and automatically add it, he doesn't even go over what that software is, but I'm honestly not that worried about it right now. We'll get there in the future.
-
Semantic HTML: Basically you should utilize semantic tags (nav, section, article, etc.) to help you organize your code. These tags don't have any impact on how your code is processed, it's just for organizational purposes on the side of the coder.
Okay that was a lot. I probably shouldn't have even made my big exciting "let's celebrate" announcement until right now.
Let us celebrate an important moment in time...
7/10/2019 5:01 PM
Oh wait it's 5:02 now. Whatever, moving on.
I actually both finished the HTML/CSS course and reviewed it all!!!!!! Yee haw. I'm tired. In a fit of excitement to get ahead of myself and move on, yesterday I actually watched about an hour of this Bootstrap Tutorial by my favorite teacher. This wonderful toolkit was recommended to me by my awesome fancy programming aficionado friend Jack. Jackieeee thank youuuu. I am already in love with this and plan on using it ASAP. Now if you'll excuse me, now that I am an HTML and CSS master I am going to officially dive into building this website with all my might. Stay tuned.
-
July 11, 2019: So as I said, I watched about an hour of that Bootstrap Tutorial the other day. I actually lied, I watched about an hour and a half but at 1.25x speed because I'm efficient and speedy like that. It all sounded so simple, and it kind of is when you're starting from scratch, but now I'm trying to re-write the code of my landing page but with this whole grid format that sounds so much more efficient in theory, but damn it's hard reconstituting code. A lot harder than my joyful little heart thought, anyway. Especially since I barely watched an hour of this tutorial because I was at work and love just listening to videos and taking quick glances when I need to. Like I said, first name efficient, second name speedy. Also especially since I insist on having formats that are awkward for me to code due to my lack of knowledge, but that I insist on trying to implement anyway. Maybe I should just throw away my whole Table of Contents on the side business and just make a nav bar like everybody else. Some cute dropdowns and all that. I also need to watch a bunch more of this Bootstrap Tutorial and actually get comfortable with using what this toolkit has to offer. No use in using it if I don't even know how to use it. At the very least today was productive because I set up Bootstrap and I'm ready to rock as soon as I figure out how to write what I want with it. Awesome. We'll see where I go from there.
-
July 12, 2019: Okay so today was good. I put this other Bootstrap video on when I was at work and it was a very nice, cut and dry video on all the ways I can utilize Bootstrap. I appreciated it. I learned from yesterday's mistakes and decided to just start fresh on my landing page with this Bootstrap grid format, instead of trying to reconstruct the code I already had. It worked out much better that way. I had some trials and errors along the way, but I have gained a better understanding of what Bootstrap is good for, how to implement my own CSS alongside it, and maybe most importantly, overriding Bootstrap code so that my website still looks HOW I want it and not like some cheap gross template website your mom could program. So I updated my landing page and it has a cute banner with a nice table of contents and whatnot. I decided I'm going to take progress pics of things I find notable along this journey and I am going to keep them in a gallery that you can access at the bottom of this page. That way months and years from now we can look back at all the sad attempts I made at programming and web design. What a hoot! Also if you couldn't tell, I added a cute background to this about page because I basically consider this my notes if I was taking web development in a class setting. Welcome to the inner machinations of my mind.
Okay I came back after looking at the site on my phone and I need to get with that mobile-first shit. So I spent all this time trying to get stuff to fit on the phone and then adding media queries like a bomb ass bitch. I can't have a website in 2019 that looks like shit on a phone.
-
July 15, 2019: Today I worked on the Tammi's Trove landing page. I would consider it a dashing success with its new banner and layout. You can thank Tammi for settling on the font "Faster One." I also captured a pic of what it looked like beforehand and made an entry in my gallery. We are making strides, I tell you. While doing all that, I also took the time to make a contact page, because I'm sure as this site gets all the more interesting the fan mail will start flooding in. Productive day, and I'm still managing to not go to bed on time.
-
July 16, 2019: Today was primarily a bug-fixing day. I want my site to look good on mobile. I'm trying to be fashion-forward. So a few things I've fixed: My contact page (text was spilling off the top and bottom of the page), an out-of-bound link on my about page (used word-wrap: break-word so it would actually separate onto a new line), the bat lair (so it would view nicely on mobile also), as well as the main drewlinky.com landing page (I got sick of the boxes cutting off on mobile). The website is becoming, as they say, mobile-ready. We are taking an, as they say, mobile-first approach. B) Meanwhile, after much research and thought, I have decided Bootstrap ain't really for me. It has too much control and I have been so frustrated trying to work around/override it. After watching a video comparing different CSS frameworks, it dawned on me that there are many other possibilities out there when it comes to libraries. Bootstrap is just one example, and quite frankly I feel like it's for people who want to make rinky dink sites without too much personal touch while still maintaining a professional look. There's nothing wrong with that, it all depends on your needs, but those are definitely not my needs. I am very precise in what I want, and Bootstrap and I got in too many fights. I took a look into some other frameworks, and I'm a fan of Tailwind, but I'm not ready to dive into another framework just yet. What I AM ready to dive into is CSS Grid. Yes, folks, you heard it here. I learned of your new dirty little secret. CSS Grid is basically all I wanted out of Bootstrap, but I ended up getting much, much more than I bargained for. All I really feel I need is something to easily help me do layouts, and I want to do the designing from there. So my plan of action is CSS Grid will help me organize my pages into little compartments, and then I take it from there and make all the executive decisions on what goes in those boxes. After I get down to learning more about CSS Grid and start creating my pages using it, I may quickly feel like oh, let me go grab a lowkey framework that takes care of bare bone classes I don't feel like I should have to write myself, but that is a task for another day. This afternoon I watched about half of this course on CSS Grid and it looks so promising to me, so I am so excited. Due to programming way too far past my bedtime consistently for weeks, I told myself to not code after 8 PM today, and guess what, it's 8:03, so I have to be a good girl and go take care of some other things and then go to bed actually on time. Ta-ta.
-
July 17, 2019: So I took a 3 hour nap today and I thought I was going to have this be a break day. My shoulder is killing me from how shitty my desk setup is at my job (the desk is way too low I think, amongst other things), so working on a computer for 8 hours and then coming home to work on a computer for another 3-5 has not been good to me. Anyway, I still managed to sit down and get caught up in fixing the banner in Tammi's Trove. I was having this issue where the text shadow would overlay the main text on mobile. Turns out it's because the text is rendered line by line rather than by the whole element, and if text wraps over to the next line, the text shadow from the previous line can overlay the text. Retarded, I know, why not just make it so text shadow doesn't overlay anything no matter what line it's on. I don't know, I don't fully get it, but I fixed it by increasing the line height so it just wouldn't overlap. Works for me.
-
July 29, 2019: Hi I know I've been absent forever because my shoulder has been killing me and I also have hobbies. I finished this CSS Grid tutorial and watched a bunch of other stuff on it like a week ago, so my intention today was to dive right into rewriting the code for my landing page, where I throw out Bootstrap and just use CSS Grid because it's all I ever wanted. I think I'm having that same issue again where I try to take code I already wrote and reshape it into something else instead of just starting over from scratch. I feel so frustrated and feel like I haven't gotten anywhere today with building this new grid layout. It isn't as straightforward as I thought for some reason and that probably has to do with how stale I am from taking a break for like a week and also barely having any idea what I'm doing in the first place. But it's okay, I'm about to go churn some mango frozen yogurt and contemplate life, look over more CSS Grid stuff to make sure I actually have a clear idea of how grids are formed, and then I will jump right back in tomorrow.
-
July 30, 2019: Hi. So I took a little break from CSS Grid and did a ton of research today on SQL, PHP, and Javascript. CSS Grid was really discouraging me, especially since I spent so much time making the layouts for my and Tammi's landing pages using Bootstrap. Since this is all a fun learning experience with a ton of experimentation and half-completed things going on, I decided I'm just going to leave the landing pages as they are. They can be a testament to my experience working with Bootstrap. From now on I plan on building my layouts from scratch using CSS Grid, but it was way too frustrating trying to do all that with pages I already spent all this time trying to figure out how to configure. I have too many other things I want to do, so sitting down for a bunch of extra time to try and reconfigure something that I'm already pleased with was too much for me.
Okay I got sidetracked and started trying to just deal with Bootstrap and fix this table of contents issue on my landing page, causing me to then make a random test page, then causing me to realize that I really was using more stuff that Bootstrap had to offer other than just the layout. So uh, yeah, hehe silly me, I actually am going to continue using Bootstrap and just not use it for layouts. I can use it for all its random other junk like buttons and maybe I'll implement a dropdown at some point or some other thing. Maybe even a, dare I say, carousel (or maybe not because I literally forgot how to spell carousel and had to look it up; I forgot the u). Either way, I was wrong. I thought all I used Bootstrap for was the layout, but I was wrong. Luckily I can just do layouts from now on using CSS Grid and use Bootstrap for whatever else its good for and then I'll basically be a master.
Anyway, after researching SQL, PHP, and Javascript, I gathered that thanks to all my time spent in programming classes in college, I truly feel that I have a basic grasp on all of these things. Not saying I know all there is to know about all those things based on like 5 hours of videos all at 1.25 or 1.5x speed, but I'm saying out of all the stuff I looked at, it all felt rather familiar and logical enough to where I could grasp it pretty quickly. I don't feel stressed out or like I'll never get it or anything like that. In fact, I feel the opposite. I feel like oh wow this is awesome all this stuff is pretty straightforward. The biggest hurdle here, I think, will be taking these separate things and figuring out how to use them all together. And obviously I'm going to run into a million bugs along the way because I don't actually know what I'm doing, I'm just grasping random pieces of information and hoping it all works out in the end. The only way I'll know is by sitting down and working it out, seeing how well it works, and troubleshooting any mistakes I run into (I will probably run into a lot, but that's where all the real learning takes place). It's so frustrating because I feel like I don't have enough time in the day to sit down and code for as long as I want to. I could put videos on all day and night and absorb what's being said while I'm simultaneously working, but unless I'm actually writing code it'll never sink in. I hate that when I'm at work all I can do is listen, but hey, we all gotta make a living while we're teaching ourselves web development, amirite?
So yeah, I went on cPanel and created a little SQL database, then deleted it because I decided I'm not doing that project yet, and then created another one for a project I do want to start working on: My magic 8 ball app. I'm super excited, I'm hoping this project will strengthen my abilities in HTML, CSS, PHP, SQL, and I don't think I'll use JS but if I end up needing to, JS as well. Of course I was just messing around with PHP and it all sounds so easy in a self-contained manner, but the whole PHP server
concept is confusing to me. I watched this tutorial and this guy makes a folder and then creates a server on localhost using the command prompt, and that worked out all fine and dandy at first. I was able to get that up and do some coding and see the changes. I was feeling like a real skilled lady. But then of course after more messing around and trying to add more stuff, I hit this wall and it is clear I don't understand the whole server setup thing. I get I set up the localhost and it works for me, but what happens when I upload it online? Like I direct my computer to this specified host and it works because I have these files on my computer and I'm just telling the computer where to look, but I don't understand how that process works in terms of a visitor to my website being directed to the PHP server so that it can call stuff from the PHP file. I clearly have to look more into how that whole connection works. This is not as easy as it seemed. It never is.
On a good but not awesome note, I fixed the issue on my landing page with the table of contents, kind of. For some reason on mobile the table contents and the text actually saying Table of Contents
weren't squishing into one row, but I got it. However, this is where it sucks that the page was made using Bootstrap and not CSS Grid, because I want to just totally move stuff around and change the design of some things when it's on mobile, but it would be so messy and I don't even want to bother getting into all that. I'll definitely have to eventually rework the page using CSS Grid instead of Bootstrap, but hey, one problem at a time.
-
August 1, 2019: I jumped on here real quick to add a poem I just wrote and really like. Isn't it amazing having a website to host these treasures on? Go check it out!
-
August 2, 2019: Okay so I did a lot of research on php and sql the past few days and figured out the problem I was having the other day. I needed XAMPP. So I set it all up and now I have a proper server running on my computer that I can develop the website on before having to actually upload it. So awesome. The issue that was confusing me so much is that on Visual Studio Code I was using Live Server to look at my html files, and that does not work with php. Then I had this separate localhost going that worked with the php files, but there was this disconnect between these two local servers, so if I wanted to try navigating the website as if it were up online, I couldn't. I couldn't navigate BETWEEN html and php because they were running off different localhosts! But now that I have XAMPP everything is in one folder and it all navigates freely, just like if it was uploaded for real! This is so convenient!!! I just have ONE problem: Bootstrap doesn't seem to be coming through on the local server. I looked it up and I'm not the only one, but for right now I don't even care that much. It works when I actually upload it and I don't even plan on using Bootstrap for like super outlandish things, so that is going to have to take a major back seat. So now that I have this proper server set up, I am now working on the code for this magic 8 ball project. It's going pretty smoothly, and it's super cool learning about php and sql. This whole interactive thing is so so cool to me. The fact that someone can enter information, press a button, and backend gears churn and then present the user with a new result is SOOOOOO COOOOOL TO ME. Today I basically spent time setting up a skeleton of php code/comments. I still need to research some more about using php and sql together, so once I do that I can actually write out the code necessary to get these magic 8 balls up and running. The plans are in place and we are on our WAY. One reason this is so cool to me is seeing the differences in programming a website vs. a Java application. I already made a magic 8 ball program in Java, and that was all fine and dandy, but it was kind of tedious. With an application you have to program EVERYTHING. You have to program every single step of the way for the user to follow. Something like this in a web browser, though? Oh my goodness, if they want one game mode you just have two separate pages with links to each. If they want to keep playing they can just keep playing for as long as they want and you don't have to have some designated end point that you have to program so that it properly terminates and doesn't just crash or run forever. The whole sequence of events in playing this game is so much more straightforward, I am like beside myself in how much less work it is. Websites are awesome.
-
August 8, 2019: Hi hello okay I've been a lot worse at documenting my journey recently. It just got really exhausting going over each and every minute detail of what I've been learning. At this point I have absorbed so many tutorials off of youtube and looked up and read so many things on various websites, I can't possibly go over everything I have gathered at this point until I actually try to implement it. Like I feel like for the past two weeks or so I've spent a lot less time actually programming and a lot more time just researching how to do what I want to do. Researching takes a while, and so sorry I haven't had much to say on all that. I was so fancy for a while, linking y'all to every tutorial I was watching and giving a huge breakdown of what I learned etc. Well at this point I have watched bits and pieces of so many things I wouldn't even know where to begin on talking about
what I learned today.
So whatever, we're moving on. I've also been really busy working on stuff so I can apply to graduate school this fall, so guess what kids I got a lot on my plate.
-
August 11, 2019: How are you? I'm pretty great, actually. I dedicated the last few days to working on my grad school application, but I sat down and spent a good 4 or 5 hours working on my website today, just like old times. I have made many strides in the past few hours. Small points: I decided to make the font a little bigger all over the site and to also center most of my pages, so if you notice things looking a little cuter lately, that's why. If you notice something broken or ugly, maybe contact me and let me know, because it was probably an accident. Now for the important stuff: After all that research I was talking about doing I was really confident about jumping back into this and making this magic 8 ball section of the site. I have learned a lot in the past few hours about making sql databases, connecting them to a localhost, and pulling information from them to display on the webpage. Amazing, right? I thought I was on the ball, I had to troubleshoot so many times that I could feel myself becoming a master of the trade as I refreshed the page and saw more and more issues being fixed each time. It felt like my dreams were becoming a reality, but then I hit a huge pitfall when it dawned on me that using php alone does not get me the fancy results that I desire. I realized that php, as a server-side language, was going to run my code and display it even before a person pressed the button to ask their question. That fucking sucks and I didn't want it that way. So after a lot more searching, reading, watching, and getting really frustrated at all the useless information available on the internet, I finally came to terms with the fact that I had to start using javascript because javascript is a client-side language, and I needed those client-sided tools to make my code execute only after the user presses the button and NOT BEFORE. So that was a whole other learning experience that I had to wade through. It only hurt so much because I kept feeling like I was so close to my goal, only to realize that there was a huge glaring problem that set me back 20 steps. And then it felt like every time I fixed it I was faced with another huge problem. LUCKILY I am a determined fellow with an iron will, and so I made so many strides you wouldn't believe. I wrote all this stuff out in php, realized it was broken, then tried following these videos on how to use AJAX, and got so frustrated my eyes almost popped out of my skull because despite doing exactly what this guy was doing, the code was just not working. I literally followed this guy's steps to link jQuery exactly and it still didn't work. So I then had to go over and figure out how to link jQuery to my shit, and luckily I already have Bootstrap so I just connected those pieces, and then whilst figuring all that out I finally addressed this pop up VSCode gave me every time I opened it about how the php executable couldn't be found, so I also actually bothered to route that correctly. It was a whole re-routing session. It sucked. But somewhere through all that I fixed something and it started working, and then I became a total bad ass and leveled up. In fact, cue the level up font.
I LEVELED UP
Awesome.
I figured out how to implement this JS code, and it is the coolest thing ever. I'm calling things from different files and everything. So I made a php file dedicated to connecting to my database. Then I have
another php file that contains the php code for retrieving the magic 8 ball response and printing it out. THEN I have this fancy script in the main file that executes after you press the ask button, and it pulls the data from the php response file and prints it right on the page and ooooooooo it's so lit. It is just fantastic. In other news, while all that was going down I also learned how you can use strictly php to execute code after a button press, but it takes you to a completely separate page and executes the code there. See, I didn't want that for this, but it's good to have in my tool belt for the future, so thanks for that. The only issue now is that since I'm using XAMPP, I connected my database to the localhost, and that is not going to fly when this all gets uploaded online. I'm going to have to connect it all to the website's server and also make sure the privacy is up to par and that's a whole other activity that I will have to continue on with tomorrow because it is 11:21 PM on a work night and I haven't even showered yet and it is hair day on top of it all so y'all know I'm not getting any beauty rest tonight. Regardless, have a wonderful evening, night, and rest of your life.
I had to come back and take back what I said about changing the site's font. I changed it back to how it was because it was looking a little fucked up on mobile. I also had to fix some things with the padding and how some things were not centering right on mobile. It's always mobile that keeps me up at night.
-
August 13, 2019: Today is maximum productive and minimum get sidetracked by being all fucked up and not knowing what the hell I'm doing. If you haven't noticed, I added a link at the top of the page to take you right to my latest post, because fuck having to scroll down this huge ass thing just to read the latest thing I said, amirite? I also exported my sql database from my computer and imported it into the web server. And okay I wrote that hours ago at this point and while this day was productive, I still fell into a pit of getting sidetracked because I was all fucked up and did not know what the hell I was doing. There were major upsides to today though.
Let us celebrate the debut of what everyone has been on the edge of their seats waiting for...
MAGIC 8 BALL!!!!
That's right, folks. I got my magic 8 ball running. So as I was saying hours ago before I fell into the rabbit hole and into fuckland, I transferred my sql database onto the web server and then managed to set up the whole connection thingy. It wasn't that bad, but I got all fucked up for a little because these tutorial videos were misleading the fuck out of me. Luckily error logs magically materialize on the server, so I was able to look at those and pretty quickly identify what my problem areas were. My server name was a little off and some shit in how things are pulled from my database were messed up, which caused me to go back to my php code again and write it better because I just learned today that the function MAX() exists and is exactly what I wanted. Then the website was pulling those responses from the database like a chaaaarrrmmmmm. Then I ran into this issue where I realized that the questions in the ask box wouldn't reset after you ask the question. So then I learned some little diddle of js code on how to clear that and I was feeling so fancy. I still am. I feel really good about it. Then once all that was set up I started going HARD on trying to stylize the magic 8 ball section of the site. I am very proud of my cute little banner I have going on. It's very aesthetically pleasing to me. Now when it comes to the actual stylized magic 8 ball response thing, I thought it would be so easy and fun to try and do it all with CSS. Yeah that's right, to take a circle, a triangle, and the text and mash it altogether to look like how a magic 8 ball looks when the answer surfaces. It seemed so easy, but it's really not. I got as far as the bigger circle with a triangle actually successfully centered inside, but I had some major issues. 1) I couldn't get the shapes to center themselves on the page, they just loved sticking to the left. I have no clue what the fuck I did wrong. 2) I was so close to getting the text lined up perfectly in the center, but I'm having an issue because some responses are longer than others, and depending on how long the response is it literally populates on the page different. Like, it would shift in how high or low it would appear. It was sooooooo annoying because the answers of three lines (which like at least a third are) looked perfectly centered, then as soon as it was 1, 2, or 4 lines it looked all fucked up. Naturally, I'm pissed. Luckily that's outweighed by my sheer joy in how successful my overall endeavours have been today. So obviously the only thing for you to do next is to go check it out and ask questions until your heart explodes!!!!!
-
August 14, 2019: Okay so amazing news - I emailed Mattel the other day to see if they could give me a list of all the responses to all their themed magic 8 balls. While I cannot tell you I have that list with me today, I can tell you the person who got back to me was SO nice and is actually trying to help me. She told me she couldn't find a list, but that she's going to reach out further and see what she can find. Isn't that so freaking exciting!?
Meanwhile, I worked more on my magic 8 ball styling today and it is going along so well. I got the ball and triangle centered, I learned some more js, made my first dedicated js file, learned about showing, hiding, toggling classes, fading in, fading out, y'know, all this really important stuff I need to know to make a proper realistic interactive magic 8 ball experience. My one major issue is figuring out how to center the text in the middle of the triangle. You would think this would be so easy, right? Like I did such a good job centering the triangle in the ball. Same principle, right? Apparently not because it is not working out for me. And the transform() function loves to make the line where the first line of text starts all wonky. Get this, with no transform all the text starts at the same height and y'know if some text is a little longer it takes up a couple more lines below. That is FINE I'm FINE with that, if it just stayed that way then I could move it up and over and just make sure the longest pieces of text still fit in the triangle. Well as I was saying yesterday, it apparently doesn't work like that. I need to use something other than the transform() function or something, because when I use that the text gets all fucked up with where it begins. Despite that though, I am making clear progress and I am so excited to come back and keep working on this. I'm angry I have to go to bed.
-
August 15, 2019: So bad news. I got my email back from Mattel and they couldn't help me. Can you believe they don't have lists of all their themed magic 8 ball responses? Somebody had to write them down at one point or another!!! Either that or they just wanted to sound nice in the email when it's actually confidential information, which makes no sense considering anyone can go out to the store and buy every ball and figure out all the responses. I'll give them benefit of the doubt and assume they literally just don't have lists of responses. That's fucking gay. Now I basically have to start a physical magic 8 ball collection so I can extract the responses from each of them. I spent a bunch of time today rolling my Batman magic 8 ball around to get all the responses from that, so you can thank me for creating that database. I set that up and made a Batman page without even finishing the styling off the classic page, so now I have two very similar pages that are only different in the database they pull from and neither are ready to go live on the site yet. Perfect.
I also set up an email today, so you can finally actually use my contact page to contact me. No more paying Drew those processing fees. Thank god too, he is very expensive.
Anyway, so of course I set all that up and now I don't even have time to finish this whole actual working magic 8 ball thing, so unfortunately that will have to wait. Feel free to email me your grievances.
Hours later: I came back and decided to upload my unstyled Batman page, so now you have two magic 8 ball themes to choose from, but they aren't pretty....I'm working on it!
-
August 16, 2019: We're working it out today, folks. I got my magic 8 balls styled. I was able to fix the text problem by using translate() and negative margins. I swear I tried both of those previously and they weren't helping me, but hey, one thing I've gathered about programming is some days shit just decides to work even though you swore you tried the same exact thing three other times to no avail. One problem I did run into though: the word
batcomputer
was literally the one word that spilled over the triangle. So I looked back at the physical magic 8 ball and it hit me...not every response faces upright on an upside down triangle. I don't know why I thought they did. I was a fool and had to roll my magic 8 balls around again and look at all 20 responses on each again to find out which responses were on up/downright triangles. So I added another column to each table and I have accounted for those flips. Then I ended up really confused in trying to add an if statement to account for that, so I decided it was stupid to even bother with that right now before implementing what else I want to implement.
Hours later: Yeah so fuck that flip shit, at least for now. I worked tirelessly (aka fucked around for hours and then finally spent the past 20 minutes doing what I should've done 3 hours ago), and now consider my magic 8 balls in a comfortable place stylistically. Y'all, I am so proud, my shit is so fucking cute I cannot gush enough. I changed the font to match the style of a real magic 8 ball better and that literally fixed my problem because now the font is smaller and all the responses fit much better and it is SO CUTE OH MY GOOOOOD. And I have a little interactive loop going where you ask and then reset and it's so fluid and straightforward, it's just so beautiful. The javascript took like 3 seconds to write, but I don't care. It's amazing and I made it. I've added new images to my gallery to showcase the bare bones I started with, but you can go check out my magic 8 balls and see how beautiful they are now!!!!!
-
August 19, 2019: Ey what's gooood. I hope y'all been asking a lot of questions over the weekend. I know I've been working tirelessly to bring you the premium content you crave, but I just wanted to put it on record that I'm going to take a break for a bit. My next mission is to set up this comic I want to make, but unfortunately I've spent so much time on learning all this website stuff that I've been majorly shirking my Japanese studies. So I'm going to really buckle back into that, get back in the groove, then I'll go at a more reasonable pace with setting up this comic. Without Japanese there would be no comic, so you gotta work with me. I don't even know if I mentioned the comic. Oh well, you'll figure it out soon enough. All I can say is it will become your most coveted Japanese study tool. ;)
-
August 27, 2019: We're back and better than ever, folks. I've vaguely been looking into developing javascript games and based on a suggestion from my good boy, Jack, we're making a snake game. But not just any snake. Drew eat bred snake. I am ever so grateful for Tammi's assistance in cutting out images of Drew's head. On top of those, I've gathered the images I think I'll need to make this game. I sat down and experimented with creating a canvas and populating rectangles and images. I'm forcing myself to pace myself so unfortunately I have to stop after just that today. If I don't stop now it'll be 3 AM before I know it and the entire game will be completed...But I have work tomorrow, so too bad.
-
August 28: 2019: I am so proud, everyone. I feel like such a fucking badass today. Maybe making games is my calling,because I have run into the fewest bugs so far in my entire life. After pulling information from a number of tutorials, I was able to populate my little Drew on the screen by drawing him; get him to move by clearing the canvas, updating his position, and redrawing him (to a set interval); and read keypresses so you can actually control him by changing his direction based on what key you press. Amazing! Then I added my own little flair because I decided I wanted at least something functional and hilarious to go up online tonight. So I wanted him to be able to stop if you pressed the key opposite the direction he was going. I'm such a fucking rockstar that independent of any tutorial or gay thing I was just copying down, I came up with my own logical code and where to put it in order to do that. I'm so proud. I have a brain and I can use it. I swear. I decided I needed to actually stop programming today because I didn't stop after I already said I was going to, so I didn't make anything look nice or anything, but I had to add a media query to stop the webpage from even loading if you're on a screen smaller than the width of the canvas. Fuck your mobile shit if you want to play my game. I don't even know how you would control it without a keyboard.
-
August 30, 2019: Progress on Drew Eat Bred is going swimmingly. I made it so his head is facing whatever direction he's going. It's pretty damn adorable. I also created the bred he will eventually eat and made it so it populates in a random spot on the map.
-
September 2, 2019: I added the code to account for when Drew
eats
the bred. He consumes it and another piece populates on a different part of the map. I also made it so when that happens his head changes to a sprite depicting him biting the bred, so that's pretty damn cute if you ask me.
-
September 3, 2019: My Super Mario magic 8 ball came in the mail!!! So of course I took a break from Drew Eat Bred today and put the Super Mario magic 8 ball up on the site. That involved the regular business: Extracting every response from the ball (well this one is actually a cube), putting them into a table on my SQL database, and then copy/pasting everything else from my other magic 8 balls because it's the same process, you just call a different table and refer to different php/js files. So that was very straightforward, I had it up in like 20 minutes. What took up the rest of my time today was fonts. I learned a lot about fonts today. I started off on a high note and managed to find an immaculate FREE Super Mario font by some super nice person on dafont.com. Then my Super Mario section was looking so cute that I felt compelled to add a Batman font for the Batman page. Well I had a rude awakening. First off, fonts cost MONEY. Second, they're kind of EXPENSIVE. Third, font stealing is REAL, RAMPANT, and lawsuits DO exist for their theft. This is some real shit. I found the perfect Batman font that was literally the font used for the Animated Series, I swear to you. I even found websites where I could download it for free. But I ain't tryna be out here disrespecting people's craft and stealing from them. That ain't right. So we all have to settle for some random font I found on Google Fonts called Pathway Gothic One. If anyone wants to donate to my font cause, contact me and let me know you want me to set up a paypal account for said donations. If I get enough offers I'll make one. But anyway, I fucked around with fonts for a while, learned some devastating things, and ultimately styled my pages a little more so they are looking cute and poppin'. Very productive day.
-
September 6, 2019: Hi hello I have been sick as fuck and work has been extremely busy, so I have come home exhausted the past few days and fallen the fuck asleep. Today has been EXTREMELY productive though. I am so proud. I did a little styling on the bred page, so it looks a little cuter than it used to. I added a banner that isn't much of a banner, moreso just a title at the top of the page, but whatever. I added points so you can actually gain something for eating all this damn bred. I fixed this issue with wall collision because this youtube video I've been watching is gay. Following that video I was left with like, imaginary gutter pockets that Drew could hide in if you positioned him right. He could literally move on the outskirts of the screen. So yeah, I fixed it to where when he runs into a wall he actually ends up coming through on the opposite side as he's supposed to, with no stupid secret gutters. I managed to program in his body getting longer as he eats bred too. I want him to have little shirts protruding to make him look like a deformed centipede, but it's hard to program okay, so right now we're doing tests with just him growing a million heads, which is horrifying enough as it is. All that was beautiful and gorgeous and my game is looking spectacular, but I've hit a wall when it comes to game states. I blame it on a poor foundation thanks to this youtube video I've been following, where the person who made the video has no clue about the intense dreams I have. I'm going to have to come back and rework everything from the ground up, because otherwise this shit makes no sense and is too hard. I wasted so much time tonight on bullshit. However, I did manage to get a screen that pops up before the game actually starts, so that's a solid plus. Basically it looks beautiful, but Drew can't die yet. He's invincible. I have to figure out this stupid collision thing, and it partly has to do with this whole foundation problem I'm having. So fuck it, I'll figure all that out later because I am so fucking tired right now and I never even ate dinner and it is 1:40 AM so it's too late for that now anyway. Goodnight.
-
September 18, 2019: Holy shit wow I haven't worked on the site in almost 2 weeks. I should be ashamed. I just needed a break, man. I really wanted to play video games, and I have been. A lot. But now I need to get back to the grind and finish my OWN video game. Okay so all I did today was add an event listener to stop the arrow keys from doing anything other than their INTENDED PURPOSE. Initially while the arrow keys controlled little Drew boy, if your screen was small enough that it could scroll, the arrow keys would also control page scrolling, which makes for an unbearable experience. It was extremely easy to fix though, I just had to add the event listener with a function using the preventDefault() thingaling and that prevents the default action from happening. Yee haw.
-
September 19, 2019: I did quite a lot today. I started off with adding a pause feature. It was easier than I thought it was going to be. I thought I was going to have to re-work and re-organize a bunch of stuff, but nah, not really. I just moved some stuff around, created some more functions, and gave myself and the user more control over the gamestates. Had to state the states in order to manipulate the states, know what I mean? So after implementing pausing, I added a function that detects when Drew runs into himself. Then once that was through, I was able to program in a death screen (which I secretly created last week but couldn't use yet), and make the game stop and have that pop up once Drew runs into himself. Then I went even further to allow the user to restart the game from that death screen, which y'know I have a little restart function that resets everything and starts the game over. I almost forgot to reset the points, but luckily realized at the last minute that it kept the score from last game. So yeah. I'm really very extremely extra happy right now. This game is like, a full-fledged game. You can play it, pause it, die, and play again. And earn points to track your progress. That's really all you need in a game. You could sit on this one webpage for hours playing this beautiful masterpiece I have created. But I'm not done yet. I still have some things I need to implement to make it more rounded and enjoyable, of course. But y'know, it's 11:18 PM, I haven't done my yoga yet, and it's already past my bed time. Goodnight!
-
October 3, 2019: Yeah so Drew fucking SUCKS at EVERYTHING. Dwes informed us today that we should make a custom 404 page, and here I am taking time away from doing that to fix the shitty ass index Drew created. It looked fine and good from the outside, but his code SUUUUUUUUUCKED. His logic was to treat each individual link as something unique and special and wrote all the css for each one individually. The reality of it is each link is pretty fucking identical minus the colors, so I had to delete all his bullshit and make ONE class for the little boxes the links are housed in. He even had the font-family re-written for each one instead of just assigning the font for the whole page. It's not like ANY FONT IS DIFFERENT ON THE PAGE. IT'S ALL THE SAME, DREW. YOU ONLY HAVE TO TYPE IT ONCE. For anyone who is interested in getting into programming, know this one thing: 99% of the time you REALLY ONLY NEED TO WRITE SHIT ONCE. It's like making a little buddy who you tell to do what you want him to do. Then every time you want him to do something, you just assign him to the task like,
hey little buddy do that shit for me. You know what to do.
That's what classes are FOR, DREW. WHAT THE FUCK. So yeah I redid all that much better. Drew only had the link attached to the text in each box instead of the whole box itself. I fixed that because who the fuck wants to have to click on the specific line of text, people want to click on the whole box like a button. Jesus christ. I also made it so when you hover over the boxes they light up. Hehe, so cute. Other than that, I did make custom 403 and 404 pages. It's actually extremely straightforward. So overall I fucking guess it was a productive day if you call cleaning up incompetents' messes productive. I also changed the cache settings because I hate how often I had to refresh my cache after just updating the site. I change things so often there really is no business going off cached data. Fixed that problem, though. It was another pretty straightforward fix.
-
October 5, 2019: I've gotten a few emails and they have been very sweet. People love BRED. But they also notice the bugs. God dammit. It was never supposed to get this big. I have to actually like, make it good now. Luckily the glaring flaws were easier to fix than I expected. I fixed the long established bug where you could input arrow keys fast enough that you run into yourself by illegally flipping your direction. My good friend, Jackie, informed me this issue is called as a
race condition.
It would've been helpful to have known that term weeks ago or at the very least before I figured out how to fix it myself, but whatever. Bred had also been able to spawn underneath Drew. At the time I just called this lore
and to me it meant he was so fat he was starting to find bred under his disgusting folds. The people didn't seem to understand my vision, though, and I decided maybe it isn't good for a game to do that anyway, so I added code to make it so it never spawns where Drew's body is already populated. Other than those things, I added a cute list of controls, 100% because I want people to know there's a pause button. That is literally the only reason I made it. It's so adorable though, I love it and I'm keeping it. Not that this helped me do anything on my site today, maybe probably possibly for the future it'll be helpful, but I also watched a bunch of videos on like website security and how to code correctly so you don't fall prey to exploits/hackers. Not exactly planning on creating something on this site that requires the protection of user data but it's always nice to learn new things.
-
October 7, 2019: Uhhhh yeah, so I rewrote the code for bred populating under Drew like 14 times before realizing I'm fucking retarded and the major thing I was missing was coding collision with the HEAD. That's why I felt like the code I had written previously mostly worked, but it seemed like it just decided to not occasionally. Well that occasionally was because if it just so happened to spawn under the head and not a part of the tail, BAM bred stuck right underneath Drew's noggin. So that's over with and I'm pretty proud. When it comes to the opposite direction fix, my stan told me since I fixed it the game isn't as responsive. Well I looked into that, and tough luck, folks. It just isn't going to be as responsive. That's just how this thing is built -- on intervals. The only way to make it more responsive I think would be to increase the speed of the interval (which I did slightly) and/or to make the sprites smaller. Then the game would refresh at a faster rate and therefore pick up key events faster. For now y'all just need to learn the rhythm of Drew. There is a rhythm and you can play just fine if you take it into account. Thank you, have a good night.
FAVICON!!!
-
October 11, 2019: That's right, you guessed it. I made us a favicon. We're now official. The obvious choice was Drew's emblem. I had to edit the fuck out of it though because it was way too dingy if you just threw the original picture into a favicon generator. Thank you paint.net for providing a wonderful free service that allowed me to do this (contact me so I can sponsor y'all next time hehe). I had to thicken the white lines so they would pop, as well as cut out the background to make it an actual circle. I'm pretty damn satisfied with the end result. It looks good, kids.
-
November 5, 2019: You missed me, didn't you? I know I know, I've been gone for way too long. Blame it all on me, I've been a humongous procrastinator, mostly because I started playing Catherine: Full Body and it was all over from there. Anyway, today I worked entirely on sounds. I gave Drew an eating sound, I added music (that I actually recorded weeks ago so look I was kind of productive a little bit), I added a cute little button to turn the music on/off because it will probably melt people's brains if they listen to it for too long, and even a couple death sounds. Yes, a couple. New life has been breathed into bred, thank you very much. I also fixed an overlooked bug where on the death screen you could still press pause and then cheat your way out of death. Hehe oops, small oversight. As always.
-
November 11, 2019: Happy 11/11 everyone, make a wish. Well, for one thing I went back through this about me page and added break points after all the passages so it's a little less of an eyesore to read and distinguish between entries. Other than that, I worked on graphic design today. B) The truth is initially I wanted Drew's tail to be made up of little shirts with sleeves to make him look like a disgusting little shirt centipede. Him just growing heads was more of a placeholder than anything, but then I got lazy. Figuring out how to program the shirts was really hard because I couldn't figure out how to make them always populate in the right direction on the page. So I said you know what fuck it, it can just be repeating heads, right? But apparently people think it being duplicates of the same head makes it confusing when you get a longer and longer tail, so fine, I decided to give him a shirt. It fittingly says
Fat Fuck
on it. You're welcome. He's now a happy little green centipede-type caterpillar-onesie-sleepingbag monster. I also made all the sprites smaller and the refresh rate a tad faster in hopes of making the movement more fluid. Smaller guy, quicker refresh rate, quicker ability to react to your input. Makes sense to me. :) It still isn't perfect, but we're getting better every day. Or every week at this point because I'm a lazy shirking fuck who likes to play video games more than make them. But who doesn't, right?
-
November 12, 2019: My little birdy hates my updates. He doesn't like how small Drew is. He doesn't like his circular bod. He's just not pleased at all okay. So I put Drew back to the same size he was. I'll have to see about changing the body. I also made it so you die when you run into the walls. I felt like the game was too easy before.
-
November 13, 2019: I basically ran off in the middle of this yesterday, made a carrot cake, and never came back. Until now. There was an issue with Drew's chomping sound where if he ate two pieces of bred in quick succession it wouldn't play the chomping sound again. Javascript is gay, it needs the sound to go to completion before it will play again, so it won't play the same sound file overlapping. So you know what I fucking did? That's right, I just loaded it in twice, and added an if statement so if the first file is already playing, to just play the second! So don't eat three breds so quickly that neither files get a chance to finish, otherwise that third sound will be lost. It should be fine though. My rationale is if it plays the first one, then has to play the second as a backup, by the time all that happens if a third one gets eaten the first file should have played to completion by then. I'm sure there's no way this could go wrong. :)
-
November 21, 2019: Hi yeah so uh okay as much work as I've done on bred and as much work as I'd like to continue doing on it, fuck it. Just fuck it right now. As you can tell I've totally lost my will to do shit for this website the past couple months because the bred has gone stale (pun not intended until right now). So I'm going to move on to the project I actually had in mind when initially creating this website: my webcomic! My nerdy ass webcomic about Japanese kanji!!!
Except oops I had to re-install XAMPP because it wasn't working for some reason hahahahaha. Then since I had uninstalled then re-installed like a fool I fucked up my sql databases and had to re-import them. Luckily I'm not that big of a fool because I have the sql files saved elsewhere for safe keeping. But good thing when you uninstall XAMPP it asks if you want to delete the htdocs folder because I was about ready to delete my whole website haha thank you XAMPP people hahahahaha. That was a huge waste of my time. Moving on.
I didn't do that much today, I kind of just made a few files and set up some basic shit. Look I got caught up singing songs and cutting my toe nails. Sue me.
-
December 3, 2019: My bred advisor let me know Drew's shirt didn't have a transparent background and it's deadly obvious if people use dark themes. This angers me because I swore I used my magic wand and cropped it so it had a transparent background, but WHATEVER I GUESS THAT DIDN'T HAPPEN. I decided fuck all of you and for the unforeseeable future I'm going back to Drew's heady design. He's most disgusting that way.
Meanwhile, I decided I'm not quite done with bred and I have to do one last thing that I wanted to do from the start: a leaderboard. It's kind of hard though, it was so easy on paper until I realized how little I know anything about web development. So oopsie daisy that'll be done when I figure it the fuck out. I think I'm half way there. Maybe 60%.
-
December 4, 2019: I made wild strides today on this leaderboard. I successfully connected it to a SQL database, set up a form where you can put in your name after the game ends, and it'll submit your name and score to the database! So cool!!!! I even got it to do a cool toggle thing where it pops up when you get game over, and disappears when you start a new game. Thanks jquery I couldn't do it without you. I was going to upload it tonight, but it's late, I still want to test it out some more, I want to not only store the scores but also list them on the website, and when I upload the site to the server I have to create/change some stuff to connect the database and all this whatnot, so I decided whatever, I'm going to roll out the entire leaderboard altogether instead of eagerly uploading some text box tonight where people can magically submit their scores that will never be seen again. I'm pretty proud of that text box though. I had to do all this research on SQL injection attacks and prepared statements to make sure I wasn't utterly fucking myself by connecting my website to a database and allowing people to type shit into it. That's a big no no, y'all's on lock down.
-
December 6, 2019: I was showing some of my art to my friends and I was like wow I already have an art gallery I should put some art in it. So I added a lil' portfolio.
Other than that, Y'ALL I DID IT. I added this leaderboardddddd. So as I said the other day, it's this cute little toggle thing where when you get a game over a textbox appears where you can put your name in and it'll save your score in a database, and those scores saved in there get spat back out onto the website so we can finally see who's the best of the best. I should give a cash prize to whoever wins first. Good luck on that front.
-
December 11, 2019: I had the leaderboard on the main bred page populate a max of 15 entries, but I decided to change it to 5. There's a separate page with every single score anyway so who needs to see more than 5 on the main page? No one.
-
January 6, 2020: Oh my god haha hi happy new year, haven't seen you in a while. Look bitch, I been busy. I been relaxing. I had two weeks off okay I was getting my dick wet and reading books and platinum trophying Catherine: Full Body. But listen, I'm here to tell you I'm back. It's the new year and I'm HERE. But listen, I got bad news. My cousin is having a baby shower in February and I need to knit this baby blanket because I'm a fool who wants to do cool shit that takes way too much time and effort with way too short of a deadline. My current goal with the website is to get this comic up and running so I'm gonna try to work on that, but I got this blanket and will probably make shit progress on the site in the next month. I just wanted to share that so you aren't hanging on your toesies. Hehe thaaaaanks.
-
January 14, 2020: Haha hey here I am I'm making pretty good headway on this blanket yeah haha I knit like 4 hours a day whatever no problem. I'm here because DREW wanted my HELP making a damn GUESTBOOK on his side of the website. Nothing crazy or too special. Figured I'd say hi while I'm here. Hi. Bye. See you next month when I'm out of knitting hell.
-
February 29, 2020: Welcome...to the leap year day. You never thought I'd make it back, huh. Well I'm here. On the day that does not exist. Yes. You guessed it right.
Updates:
- I got my drivers license today
- I made a baby blanket and it was a dashing success
- The baby the baby blanket was for was borned
- One of my family members died
- I'm fucking tired
- Life is overwhelming
- Oh yeah and my dream school rejected me so now I'm re-evaluating and don't even know if it was my dream school or dream career in the first place
- I won't even mention a bunch of other dramatic bullshit that also happened
So yeah a lot of shit has been going on and I had to say fuck this website I have no time to sit at this computer and do this shit right now. And now through all this re-evaluating and whatnot the website is of as little importance as ever. I need to get so many other things straight before I'll feel ready to jump back into this. So honestly I don't fucking know when I'll get back to this shit, but if I got back to it right now I'd just be stressed out and it wouldn't be fun, so I'm saying fuck this temporarily. I'm going on hiatus. It's official. Mark my leap day words. Email me all your complaints. Thanks, have a nice day.
-
May 27, 2020: Oh my god, hey. I'm crawling out the woodwork here. It's been a while, I know. And no, this is not Alexa's return or reawakening or rebirth or any of that fancy shit. I'm just here because Drew Linky was talking to me about renewing our SSL Certificate. But in doing that, it really made me realize just how long ago we started this little journey into web development. You guys, it's May 27 and drewlinky.com went live for the first time on June 21, 2019!!!! Can you believe our little baby is almost one year old???? What a beautiful moment to reminisce. I know I totally abandoned it like a bad parent, but man I had a good time for like 8 months from June 2019 - February 2020. And I hope to continue my shit in the future, I'm just currently on a very long hiatus. And also Twitch streaming. Follow me on Twitch: twitch.tv/bollucks. But overall, I haven't looked at the site basically since I abandoned it in February, and it's so weird looking at it from farther away. I'm like holy shit I almost FORGOT I did all this. I feel like I was on crack for 8 months and learned all this shit just to poop out this baby and leave it in the digital dumpster that is the information superhighway. Can you even believe it? I'm just so proud of all the things I've done. This place is fucking gorgeous. I've accomplished so much. And very characteristically, I just looked at the clock at exactly 2:22. If you know, you know, if you don't, I guess email me and ask, you whore. It's a whole entire god damn thing I need to make an entirely separate blog about. But alas, I just wanted to pop in and say hello. I also got sick of the stupid ass title I had on the homepage, so I just changed it to
Drew Linky Says Welcome
. It's times like these I wonder if the punctuation should go in or out of the quotes, because it isn't a part of the quote, but my American grammatical ass was always under the impression you can't just leave punctuation hanging outside the quotes like that (even though the Brits do it just fine). Where did we go astray? Answer me that. Otherwise, have a wonderful evening, morning, noon, day, night, and most importantly, life.
Wait hold on, I did one other thing I've wanted to do for a while. My magic 8 balls have reset buttons that reset the magic 8 ball and erase your question so it's all raring to go for your next one, but people tend to not realize this and will manually erase their first question, type in their second question, then accidentally hit reset and erase it because they think they're hitting the ask button again. To fix that, I not only highlighted the reset button in red, but actually set my Javascript to disable the input box after you hit the ask button, so you physically have to hit reset before you can ask another question. BOOM, BITCH. You might ask yourself, But Alexa, why do I have to hit reset? Why can't I just spit fire questions repeatedly? Why can't you just program it where it automatically resets the ball and re-rolls it whenever I hit the ask button and get rid of the reset button altogether?
And my answer is this: If you knew how to properly shake a real magic 8 ball you would understand. You can't rapid fire ask magic 8 balls questions, you have to give sincere thought and consideration between each question. You have to allow the energy from the previous question to leave the ball and then you must supply the ball with new energy as you ask the new question. Each question is its own independent event, I cannot stress this enough. Do I need to create a Masterclass on how to properly use a magic 8 ball? First rule: You're not actually supposed to shake it violently, I don't know how many times I have to say this. Jesus christ, get learnt and stop disrespecting your magic 8 balls. This is my PSA to the world. Thank you.
-
July 27, 2020: Well would you look at that, clocking in exactly 2 months later to the date. 27 must be my lucky number. Just kidding, more like my unlucky number. Fuck you people. Last time it was Drew pulling me out of my cave to help renew our certificate, now it's you other people breaking my poorly crafted game. Y'all can't give me a break. I have issues and try to be lazy and gloss over them, but you find them so quickly. I can't say I'm angry because I'm glad people are forcing me to actually program things well instead of it being all these shitty sideways half-assed efforts, but at the same time it's annoying because I really don't fucking feel like fixing some shit. It turns out you can edit your code on your browser and it'll change what score gets submitted to the BRED leaderboard. The sad thing is I do distinctly remember having an issue with the whole score thing and the pages talking to each other and yada yada yada... I got sick of it though, so yeah I settled for the hidden form thing. Yeah. I admit it. I fucked up. I gave up. I accepted defeat. I hope no one would notice or care. But guess what, people ALWAYS notice and they ALWAYS care. What a fool I was. How could I? I should be ashamed. However, I'm not. And you know why? Because I spent however many hours today revisiting this issue and guess what, I can't figure it the fuck out. I need more time. I spent a bunch of time trying to figure it out BEFORE and I couldn't, so this is just a head scratcher for me, all right? I'm definitely not fixing this shit today and I don't know when I'll fix it, so I decided fuck you people, I took the leaderboard down. That's right. I can't stand to see that eye sore anymore knowing it's all fucked up. And I'm not going to be periodically checking scores to delete clearly fabricated ones. Fuck that. No. If it's not in tip top working order you people get NO leaderboard. Good news is it's still attached to the SQL database and I didn't take the form away, so for anyone wanting to submit LEGITIMATE SCORES that they sincerely want to be recorded, you can still submit them. You just won't be able to see it. Only I'll be able to see it. So fuck you. All the scores are belong to me. Thank you, have a nice day.
-
June 27, 2021: I sure love the number 27, don't I? Third time's the charm on checking in the 27th day of a month. Except I'm once again here to fix MISTAKES after I stopped bothering with this project (boo hoo). All I wanted to fix was the technical difficulties message on BRED. As you all know, I have a message that displays when your screen is too small and nothing else on the page gets displayed. Well I went on mobile a few weeks ago and realized the technical difficulties message was showing on mobile and was even overlapping the text already there, so I said god dammit why is that text even visible there? It should only be visible with the rest of the game on an actual computer screen. Well it's because I slapped it on like a retard and didn't realize it was out the correct brackets or whatever the fuck. So I fixed it. Hurray. The fucking end. Die. I mean have a nice day. We only spread light and love here, you fucker.
-
January 28, 2024: omg guys look, I'm back. I actually came back last night, but forgot to write anything here. Well, I'm back to add and improve some much-needed things. First off, I have two new magic 8 balls to digitize! Last night I created the folders for those and copy/pasted the framework and edited those. So the frontend is mostly set up since all the magic 8 balls' frameworks are essentially the same. Unfortunately, I came back this morning to add the sql databases, but need Drew Linky to get us into our account so I have access to that type of shit. Fuck him, being the powerhouse in all of this. Speaking of Drew Linky, I also want to fix the BRED leaderboard (finally). I've got a couple ideas, so we'll see how those work out. So all those things are to come, you should celebrate my return now.
It's hours later and I'm back now that Drew Linky has given me access. However, I messed something up because when I try to ask the new magic 8 balls questions it throws errors...Really confused considering like all the code is the same. I tested by changing what database the ball pulls from, and literally just changing it to one of my already established databases it works. So maybe I fucked up setting up the sql shit. Fuck. I'll come back later and try to troubleshoot that, too lazy to deal with bugs right now.
It's more hours later and I'm back again. I actually figured out the fooooonts, thank god. I'm a programmer. So that's out of the way. I also realized the sql tables weren't working because there's the local machine and the server and I have to have the shit set up in both places to test it. So even though the tables were set up on the server, they weren't set up on my local machine, meaning when I was testing using XAMPP, the sql tables just didn't exist on the local server. I fixed that and the ball is ROLLING, BITCHES.
-
February 11, 2024: Oh my god, you guys...I think I did it. I fixed the bred leaderboard. I made it so when you inspect the page and change the score it doesn't change the score that is submitted. I did itttttt. Prove me wrong. Show me I didn't actually do it. I dare you. I don't actually dare, you please don't make me take down the leaderboard again. Please don't cheat. The leaderboard is so fun to look at and participate in.
I also finally made the two new magic 8 balls (Darth Vader & World's Smallest) live! Fixed the issues of the Darth Vader triangle being formatted stupidly. Yay. And I made it a fun shade of red because that's the color of the die inside the actual Darth Vader ball. How fun! Dunno when you'll ever see me again, but it was fun fixing and adding things that have needed fixing/adding for a long time. I suppose you'll see me the next time I have another magic 8 ball to add. Until then, toodaloo.
Something I noticed actually: My Darth Vader magic 8 ball is off kilter on mobile and I have no idea why. Problems must befall me, it seems. Otherwise it looks good, so fuck it.
check out my website's evolution
back to home