The thoughts of one young developer

Site Redesign 2017

Design aspects

I’ve been wanting to redesign my personal website/portfolio for the past couple of years. I had the previous version since 2014 (if not before), and only made minor updates to it. It did the job, but wasn’t really impressive like I wanted it to be in order to apply to the companies I want to work at. But I spent all my extra time working on other projects and didn’t really have an idea of what I wanted to do with it until recently.

One day in class in my final semester at UGA I got a bit of inspiration to use parallelograms as a slider to show projects, so I made a quick sketch and figured I had enough skill to develop it pretty well. I made use of CSS clip-paths and got a working version of the design in code. However, the result wasn’t as impressive as I was imagining (though I still think it’s cool and could be a valid slider in the future for a different site) and it wasn’t the most usable thing I’ve made.

Developer Chatroom Etiquette

I’ve been part of some web developer chatrooms for ~4 years now. In order to help newcomers quickly get used to them, here are some etiquette tips:

  • Keep the number of messages you post to a minimum. No one wants to read 10 separate messages that should have been one message. It fills up the chatroom and makes less content in total visible.
  • If you’re requesting help, be very concise and clear, generally keeping the question of your scope very limited. This is true in all mediums, but especially true for chat. It is better for everyone, including yourself, to do so.
  • Don’t update people every time you’re leaving or apoligize for not responding immediately. There are exceptions, but in general people don’t expect immediate replies all of the time. Be patient when expecting others to answer and don’t flood the chat with, “be back in 2 minutes” type of comments.
  • Chatoorms operate in UGT (Universal Greeting Time). Or better yet, no time at all. Don’t create a bunch of noise about the time of day when someone includes it in a message of theirs.
  • Use chatroom features appropriately when they are available. If your chatroom platform supports threading, use it. If it supports editing old messages, use that for corrections and simple additions instead of creating new messages. If it has a bot, don’t abuse it by using it too much or posting content irrelevant to the chat. If it supports “pinging” people, don’t do it unless you really need to.

Lessons Learned From a Dining Hall

About business

  • Efficiency > exact precision for most things
  • Good interaction between co-workers is one of the most important things for employee retainment and satisfaction
  • Good interaction with clients is what is memorable to clients and makes employees stand out
  • Good product is necessary for client retention
  • Options (including availability) gets a bigger client base
  • There’s always a place for a good employee
  • It’s better to have (reasonably) too much than not enough
  • People get way more upset about unexpected loss than expected loss
  • Special events bring in some traffic but don’t affect long term growth very much
  • Focus on what your company is good at, including specific products
  • Clients hate things they see as necessary being taken away but will get over it if the product is still good
  • Making things look pretty is not of much concern, though it does play a factor
  • Group buy in helps immensely

About life

  • Meet people where they’re at
  • People love and bond over food
  • Be open minded at all times
  • People can be alone while being surrounded by people
  • It’s good, fun, and profitable to meet random people at times
  • Everyone has their own story and is awesome in some ways
  • Most everyone likes to have a good conversation
  • Diversity in choices is necessary to prevent burnout
  • There are times for big groups and times for small ones
  • Nothing beats a good home cooked meal

An Activity Discovery App

Most any time we go to a new place, we are looking to find activities to do. It could be anything from hiking to finding a trendy coffee shop. When I first came to study at the University of Georgia, I found myself in this situation, particularly in respect to finding activities for groups of people to do and activities to do on dates. Over time I came to know a lot of local places and activities, but it took a lot of talking to people and didn’t always come when I wanted it to. It would have been great to have a way to find out about all of those activities quicker and more easily.

My sophomore year, I created a quick little prototype of an app to do just this. I called it Palm Date. It started as a project just so I could practice UI animations but turned into something I could actually use on dates to help us choose activities to do. A gif of how it worked is below.

So You Want to Learn Web Development?

I’ve had several friends come to me seeking advice for how to get started programming for the web. Most haven’t given too much thought to the idea, but are intrigued by code or websites and want to learn more. If you’re in that position or somewhere similar, this post is for you.

What follows is a collection of recommendations that I have for a person starting out. I’ll keep updating it as time goes on. If you feel like it’s missing something or have a question, don’t hesitate to contact me at!

Creating an Animated Desktop Background Using a Webpage

I love life. Relatedly, I love change (when it comes in appropriate ways), customization, and interacting with stuff. That’s a big reason why I really enjoy the work that I do, creating new and unique ways for people to interact with each other and with the content I am providing.

On a seemingly different note, I have warm memories of the screensavers from when I was kid. The brick 3D maze, the pipes, and the rainbow colored shape that kept morphing into a new shapes entranced (distracted) me as a ~7 year old in school.

Also, ever since I got into animating, I’ve wanted to include the things I make into more areas of my life. One area that has come into my mind several times was my desktop background.

A Brief Introduction to Electronic Music

If you want to follow along with the music without opening all of the pages, I created a YouTube playlist for this post that includes all but the first 3 songs.

I love music. Especially music that varies throughout the song (not all verses and choruses are the same), layered (multiple instruments are playing harmoniously), unique, the quality of the instruments (including singers) is high, and music that gives off an emotion or feeling (generally energetic and happy is my favorite). Regardless of the genre or creator of the song, if a song has these characteristics it’s likely that I will really enjoy it.

The genre that I’ve listened to that most often has these characteristics is electronic music. I was introduced to it as a kid by an older friend and I’ve been an avid listener for about 10 years now. Today I hope to help you better understand why I fell in love with the gigantic, diverse genre that is electronic music.

Spiral Learning

Most of the little time I spend on Tumblr is spent looking at awesome pictures of nature, seeing how math is found in nature, or analyzing animations from pros, but every so often I come across something that has a larger and more direct effect on my life. The most recent was caused by this image:

I have since found out the image was by an illustrator named Budi Kwan and the quote is by Barry Gillespie. While I disagree with Gillespie’s outlook on life, I think the quote describes my thoughts on knowledge well.

The conventional way of looking at knowledge is very segmented and generally linear. Learn one thing, then add onto that, then continue to add on new pieces. While this may be helpful for looking at some types of knowledge, I feel like it’s not a very accurate way of at the learning process in general.

I think back on my own life, whether it be programming knowledge, soccer skills, life truths, my thoughts on this subject, or any other thing I gained knowledge of, and note that while I learned particular things about whatever it is, the process to get to those thoughts was more fluid than suddenly having new thoughts. Additionally, over time I understand a subject more deeply when I get more experience with it or related subjects. This is true even for things that I thought I had mastery over. There are milestones of understanding, but there aren’t really distinct steps. The whole process is more like sinking deeper in understanding. Thus, learning should be thought of more in terms of a spiral.

Whenever someone learns about a subject, they realize that there is more to learn than they originally thought. We continually learn more but also realize better how much we don’t know, causing a greater and greater divergence between the two. Similarly, the deeper in a spiral we go the deeper we see.

Let’s look at an example showing how a spiral way of looking at learning differs from a linear outlook. In a linear outlook, learning how to read would mean that we may learn a few words but before fully being able to comprehend writing we must first learn letters, then learn words, then learn how those words relate to each other and how they are used in sentences.

A spiral way of looking at learning to read is much more fluid: we gather the general concept that words on a page are trying to convey something to us, we learn that words are trying to convey a particular meaning to us each time we see them, we learn that they can be chained together to have a larger meaning, learn that we can break down each word into smaller parts that can be combined in different ways to have different meaning and sound, and we learn rules of what can and can’t be done. Each of these points, while some likely come before others, flow into each other and cannot be learned without some base knowledge in some other.

Looking at knowledge in this way also means that when we try to convey something to others, they may not receive it in a little nugget like we want them to. It may take reiterating, changing the phrasing, or showing it in some other way because their entire knowledge on the subject is being changed, not solely added to.

What implications does this way of thinking about knowledge have?

Working to learn something is beneficial even when no new thoughts form. Teaching the same thing in different ways can be very beneficial. Iterating upon the same information can lead to a deeper understanding and new thoughts. A subject can never be fully mastered; one always has more to learn.

I am sure that there are other implications that I’m missing. I’d love to hear them and any other comments on the subject you have.

Another thing I liked about the image is that the subjects were portrayed as children. Children don’t usually assume they know everything even about a particular subject, are open to looking at something in a new way, and look for the best in whatever they come across. They often are in awe of the world and chase after things they are interested in without care for much else.

Let’s not assume that a subject has been fully explored – it never will be. But let that be encouraging – we can always improve.

When in the editing stages of this essay, my brother the editor brought up this article which describes the learning process as a fractal. Given a spiral is a type of fractal, the argument is very similar and worth considering as well.

Create Useful Things

There are a whole lot of people in the world. Everyone creates something, a lot people create stuff every day. Thus there is way more stuff in the world than people!

Now, our time in this world is limited. That means that we should make use of the time that we do have. Which means that we all have some important questions to answer while we can, like “What is the purpose of life?”, “What happens after I die?”, “What is God like?”, and many others. If you want to discuss what I think about these feel free to message me.

But our limited time also means that we should spend our time creating and doing things that are valuable. Now, there are a lot of things that fit in this category and it depends on the individual and the situation. This is a good thing that makes us unique and diverse. What we need to have is good judgement as to what is important and what is not.

The most important questions are the ones like those I posed above. Belief about spiritual, family, and life matters should always come first. In addition to this, we all work at one point or another and we should attempt to make our work meaningful. But sometimes we just need to work to get money to provide for what is most important so that doesn’t always happen.

However something that we do have control over is what we do with our free time. The time we spend doing side projects and learning different things. This is what I want to focus in on today.

When I started getting into web programming, I created a lot of small projects to learn different programming techniques and skills largely based on StackOverflow questions and recreating things I saw. These were invaluable and taught me the majority of the things that I know now about web programming.

I continued to create these projects for some time. However at some point, I stopped learning something from creating them but continued to make them because they became easy. I was recreating gifs using CSS, but to what end?

I regret this period of time where I spent my free time building projects that didn’t teach me anything nor were helpful to very many people. My time, like all of ours, is more valuable than that.

Once I realized this was happening I decided to change. Now whenever I am working on a project in my free time, I make sure that it will either teach me something worth learning or is helpful for other people to a significant capacity. Optimally it does both!

I suggest that you do the same, whatever your field is, because I don’t want your or my time to be wasted.

Starting JavaScript (JS)

Part 3 of my front-end development crash course.

Starting JavaScript (JS)

Welcome to my series on learning web development! I created this crash course series to help teach a group of mostly designers at my school about web development, especially on the front-end. This is the third lesson but the first where we learn JS. If you want to start from the beginning, check out the first post.

If you want to play around with the JS snippets as you see them on the slides, you can copy it from this JS file and run it on JSFiddle or something similar.