Project July 2016

It’s been slow around here. I’m home from college, so there’s not much structure to my life. I try to set up a self-imposed schedule, but when I’m doing it lone ranger, I can only keep myself doing it so much. Here’s what I’ve managed.

May & June Projects

  • Programming: I finished the first iteration of the Primescraper project. The only time it failed me was when the site I get links from threw a 500 error. I started on the Liturgy2.0 project, but I had problem after problem with that, and it demotivated me. Since then I’ve just been hopping from topic to topic. Most recently I’ve been learning procedural generation and neural networks.
  • Writing: I fell short of my June writing goal by about 3,000 words. I have another story brewing, and I want to devote time to it.

May & June Habits

Habit development has been a struggle. Because I’m home all day, I’m prone to being interrupted and distracted. Because I’m doing things by myself, I have next to no accountability to keep me going.

  • Religious activity: on hold until August. I’m a bit burned out, really. Once I’m back on campus, I’m sure I’ll find my drive again.
  • Exercise: my excuse is that it’s simply too hot. I don’t handle high temperatures well.
  • Reading: I gave up on Lord of the Rings. It’s not written in a way that I can emotionally relate to the characters, and that kills my interest. I’ve instead started reading Isaac Asimov’s Foundation series, beginning with the prequels. Prelude was alright, but Forward lost quality about halfway through. I intend to skim through the rest, then get into the main trilogy.
  • Socializing: has not happened in any meaningful way.

July Habits and Projects

This is going to be an abbreviated plan. It’s already more than a week into the month, and on the 31st I’ll begin my journey back to college and into my apartment.  I don’t know how much will get done.

  • Programming: I’m delving deeper into the topics of procedural generation and neural networks. For procedural generation I am reading through an online textbook. I’ve shelved a project that simulates ships flying around a galaxy and whatnot. I’m going to bring that back, and use it not only to explore networking concepts, but also procedural generation. It would be nice to give my little ships a universe to explore!
  • Writing: I will work on the story I mentioned earlier. I want to try a more incremental approach to it, getting an overall synopsis done and then basically working in pieces at a time, instead of trying to get it all out in one go.
  • Diet: I’m working on setting up a cheap and healthy meal plan to follow in college. I’ve got breakfasts more or less figured out, now to tackle lunch and dinner.

Projects June 2016

Somehow the month of May slipped right by me. I actually had a May 2016 post prepared but I never got around to publishing it.

April & May 2016 Habits

May was divided into two parts: finishing classes and returning home. I passed all my classes with 2 A’s, 1 B, and 1 C. The B was a surprise, I guess I was right at the bottom limit for it. Then I got home the Saturday after finals week. I’ve been working to get some habits in place. Let’s recap my old ones:

  • Prayer: Back in class, two of the three daily prayers (morning and afternoon) were going strong, yet the pre-dinner prayer never happened. Now that I’m back home, I haven’t prayed for a long time.
  • Devotionals: Lack of  a system in this regard meant I got nothing done.
  • Exercise: Didn’t happen. Hasn’t happened.
  • Social: I’ll be honest, I didn’t really fit well with my dormmates. I’ve also started questioning if I should really associate with the people I currently do.

April & May 2016 Projects


  • Toward the end of the semester I tinkered with Pygame, a graphics library for Python. I have a space-themed project I was originally planning to implement with HTML5 Canvas. But I’ve since switched it to Python given its greater strength. Right now this is on the backburner. I’ve got a queue of things to do.
  • My first project, which I completed in about a week, was Primescraper. It grabs links for TV shows from Primewire. I’ve been using it in daily life and so far it’s worked without a hitch. I have ideas for improvements but those are for later iterations.
  • My current project is a remake of the liturgy project. Remember me talking about it so much, yet never getting it finished? The original version did what it needed to, but sorely lacked in scalability or customization. Liturgy2.0 is currently underway and has way more features and usability. I hope to have the core features done in about a week.
  • In queue are two more projects. First is a personal time management/goal planning tool called Mission Control. It’s going to be neat. Right now I’m looking at making it in C#, but I may opt to use more familiar PHP. The other is the Pygame project above.


I’m taking part in a mid-year novel writing challenge called JuNoWriMo. I’m going to be finishing a novel that I started years ago. And if I finish that one, I’ll finish another one.

June 2016 Habits

June will be a bit of an odd month for me, as it will be the only full month I’m back home with my parents this summer.  As a result, I don’t have much chance to develop long lasting habits. Habit creation is by nature gradual, needing more than a month. Even so I should try to get at least a little done.

I think I’ll try rating these by difficulty.

  • Prayer: I still have room in my days for a three-prayer scheme. My present liturgy2.0 project could actually help in this regard since I can have them ready for me just by going to the right page. Rating: 2/5
  • Exercise: An hourly walk each morning wouldn’t be a bad idea. I have too much free time as it is, may as well use the quieter morning to burn some calories. And maybe actually start listening to those files from Concordia! Rating: 4/5
  • Writing: 1,000 words a day until my first novel reaches the 50,000 mark. That may take about an hour a day. Rating 3/5
  • Programming: Keep on keeping on. Rating: 2/5
  • Reading: I could likely finish the first Lord of the Rings book by the end of the month. My reading habit is largely interrupted by the other parts of the day being hectic. Rating 3/5
  • Socializing: There’s no reason I shouldn’t be able to get in touch with a real-life friend every week. Except, of course, the fact it’s a hard thing for me to start doing. Rating 4/5

Primescraper – Scraping Primewire Links

My first project for summer 2016 is complete! Check it out on GitHub.


Back in 2012 I decided to get to my sci-fi roots and start watching shows considered to be major contributors to the sci-fi genre. I used 1Channel, alternatively known as Let Me Watch This or Primewire. However, I find it tedious to have to click so many times to get to a video. Plus sometimes I’ll get a video source that doesn’t work, or is too slow. It could be a real pain. Not to mention, I might lose track of where in the series I am.  Primescraper handles all that for me.

Under the Hood

Primescraper is a web application written in CodeIgniter. This handles all of the backend stuff, making it easier for me to just write the code and go. I use Bootstrap, Font Awesome, and jQuery UI for the front end, and jQuery itself for scripting and Ajax. It’s very fluent in JSON.

The most intense part of it all is getting links off of Primewire. For this I use the PHP Simple HTML DOM Parser, aka Simple HTML DOM. It seeks the page for the given episode and scrapes links belonging to specified domain names. Naturally this is the bottleneck in the process, because it depends on my Internet and laptop speed.

The database stores the URL and name of the series, what episode you’re on, how many seasons and episodes there are, and what sources you’ve permitted Primescraper to get videos from.

There are three pages. The index page is called Watch. When you arrive at this page, Primescraper checks the database to see what episode you’re at in the series. Then it goes to that episode’s page on Primewire and returns a list of links. They’re kept in a JavaScript array so you don’t need to repeatedly poll the episode’s page. The first link is put into an iframe on the Watch page, and usually that source is good enough for viewing.

Below the iframe are four buttons. Two handle going to the previous and next episodes. The third tells Primescraper to switch to another source, and the fourth tells the application’s tracker to go to the next episode. Manually saying “I watched this episode” seemed better than trying to automatically guess things.

On the Series page you get a simple form to set what series you’re watching. It’s as easy as typing in the name of the show you want to watch and clicking it in the search results. This page uses Ajax so no reloading is necessary!

The Sources page allows you to determine what video source domains you want to use. Some of these video hosting sites are annoyingly filled with spam and pop ups. Others are not so bad. Some are also more reliable than others. This page lets you input a domain name and what type it is (more on that in a moment). You can also sort them in order of which source sites you’d like Primescraper to get links from first.  Sources can be edited and updated on the fly.

Source type is a bit technical. I studied the appearance and HTML code of several of the video hosting sites and found that a few of them are basically the same thing, differing only in name and appearance. A currently unimplemented feature would use this to directly get the video to you, not just take you to the page. This was supposed to happen in version 1.0, but ended up being more challenging than its worth.

Things I Learned

I’ve always been a bit unsure how to use Ajax in jQuery. The API didn’t really make much sense to me. After some experience with it elsewhere I decided to give it another try. Primescraper uses $.post() for every Ajax request.

I also learned how CodeIgniter is mysteriously able to turn pieces of the URL into variables. As per CodeIgniter’s manual, if there are more than two segments in the URL (such as index.php/controller-name/variable-1/variable-2/etc…) then the segments after the second one are made into variables. I also got a bit more experience with htaccess. Having to include index.php in the URL all the time was annoying, I’m glad I was able to get it out.

Finally I learned more about using discipline with Git. I’ve been loath to use git merge, not really understanding what went where. The rule seems to be that when you merge, you merge into the branch you’re on. It’s a pushing, not a pulling.

Future Improvements

With 1.0 complete I’ll be leaving the code alone for now. If I ever come back to it, there are some things I’d like to add.

  • Get the link to the video itself, not the page holding the video. This didn’t make it to 1.0 because it took so long I got errors. If I can find a way to solve this issue, it would make Primescraper totally what I wanted.
  • Add a series queue. Suppose you want to watch every Star Trek series. It would be nice if you could just make a list of them. Like the sources list, this could be editable and sortable. It would be smart enough to know when you reach the end of one series and go to the start of the next.
  • Register/login feature. So if multiple people are using it on the same computer, they don’t conflict with each other.

A social feature would be neat, but I can’t see Primescraper ever actually getting enough users for that to be worthwhile.

Semester of Code VI

Final exams start about a week from now, so I think it’s the right time to look back at the spring 2016 semester and the code therein. I haven’t changed what languages I used, but my experiences have been different.

PHP: It’s a Mess, But It Does The Job

Continuing my work as a web developer for the college, I have spent more time adding code in this language. My senior project has also shifted gears a bit away from purely Web languages, but PHP remains the most important component. I’m starting to discover a couple of the language’s quirks (such as some search functions taking the needle before the haystack, and others taking the haystack before the needle). But in general I’m using it in a more disciplined matter.

Python: Seriously, Just Do Whatever

One of my problems with Python is that it makes things so easy, I get a bit power drunk with list comprehensions. I’ve managed to control myself a bit better with it. It’s truly an enjoyable language to work with. Recently I’ve started using Pygame, a popular graphics library. I think I’ve figured out the basics.

C: Using Rocks for Hammers

This semester has given me a foul experience with C. It’s a low-level programming language, which is useful in its own ways. However it also has a knack for making things pointlessly more difficult. The class I’m using it for has been teaching me new data structures, which interest me. However I don’t care for the crappy error reporting that gcc has. Or the unnecessary attention for detail that writing code in C requires you to have. If I need something that performs super fast I’ll come back to C. Otherwise, I’ll stick to Python or PHP.

Projects April 2016

I can’t believe it’s already time for one of these posts!

March Habits

  • Prayer: I’m still not praying every single night, nor am I always remembering what I pray about for that night of the week. However after three months I think I’ve pretty well set down the basics. I’m ready to step up in this.
  • Exercise: The walking routine was followed very strongly in March, to the extent I think I’m ready to make the next step in my goal of better physical fitness.
  • Talking to friends: Eh. April looks like a good month to get my social life in order.
  • Writing: Didn’t happen.
  • Devotional: The walking and listening to podcasts worked together really nicely!

Projects April 2016

Overall, March has been a busy, stressful month for me. It has been dominated by two of my computer science classes.  An assignment in one of them impacted my emotional state quite negatively, but now it’s over. It doesn’t look like things are going to slow down in April, either. Therefore in April I will need to keep my non-school efforts a bit lean, so that they don’t require too much time or energy – because I won’t have much of either!


It’s funny. In February I really had no urge to work on any programming outside of class. However the homework that put my nerves on the fritz also made me want to do resume work on my unfinished projects. But I doubt I’ll make any progress on them in April. I’ll be out of classes late may and all of June, perhaps then I’ll do it.


I’ve also caught the writing bug again, sort of. But still, not enough hours in the day for it. Also not enough uninterrupted solitude – I just can’t write when there’s the opportunity for someone to look over my shoulder! This comes down to a fear of being judged or made fun of for what I write. I suppose I could overcome this by only writing around people I’m comfortable with, or around strangers who don’t really care what I’m doing. not this month, though.

Reading, Minecraft

No change in these regards. My computer is slowly becoming far too weak for Minecraft. I have a new laptop in my sights, a Toshiba Satellite S55t-A5227. I am sorely disappointed with Intel HD Graphics and will be avoiding that like the plague.


I’m finally ready to step up my exercise routine from walking to proper exercise of some sort. Unfortunately, I am running into the problem I think a lot of others have encountered: what do I do? Google gives me so many results that I don’t know what to pick. Asking people just gives me half-baked opinions. It’s something I’ll need to research. I would ideally like something that is just three days a week for max of an hour.

April Goal Habits

  • Praying: While having one period of time dedicated to prayer is of course good, what I really want to do is have a habit of praying throughout the day. Generally in small one or two sentences, as either requests for help from God, or thanksgiving for things going well. So therefore I’m going to aim to have two of these a day, in addition to my typical prayer at day’s end.
  • Devotionals: A friend sent me a link to an article series that I’m going to read through. After that I want to start listening to podcasts from Concordia Seminary. I need to work out all the details of that, but it should be more than enough to last me a few months.
  • Exercise: Figure out a good work out routine geared toward weight loss. I still need to adjust my eating habits, but that’s going to be a battle in and of itself – maybe too much for me to tackle this month.
  • Social: After three months at failing at this, I’ve concluded it’s too much effort. If I can get myself to make the effort twice a week, that’ll be a good enough start for me.

Discipline with Git

During this school year I have been using Git a fair deal. It’s truly a great tool for tracking changes, and working on many features at once, without them bothering each other.

My Git discipline has grown a lot in this time. My first serious uses of Git mainly just had one branch – master – that I did all my work on. For small  projects this is trivial. But for larger projects like my liturgy project, it could really make for quite a mess. The project is still incomplete and I have dreams of adding new stuff to it.

In the past few months I have learned about the master branch/develop branch setup. A lot of this has come from Vincent Driessen’s post on his development model. Basically there are two branches in the Git repository that stick around forever.

master is the latest version of the code released for clients to use. If your code was going to be downloaded by customers, the latest version of master is what they would get. In the example of my liturgy project, probably the latest version that should have been on master was the version before I started trying to convert things to object-oriented programming.

develop is the hub of the action. The develop branch holds all the stuff that will eventually go into master. For smaller projects it’d be OK to do all the work in develop, then merge it into master.

If it’s not a small project then you’ll want to do work in feature branches. These are branched off of develop and are where stuff is added, then merged back into develop. For my senior project, my team is using Sourcetree, which natively uses feature branches. It took me a while to see the use of them. But once you’re working with three other people on a complicated project, working on your own branch really helps stop you from messing up others’ work.

I do most of my work these days in feature branches, and I think that’ll be true of most people. When the feature is done, it’s merged into develop. And every now and then develop gets merged into master, once things are ready for release.

Beyond these are release and hotfix branches. Release branches are used to do the last minute tidy-up work before releasing the next iteration of your code into master. I can’t say I use these very often. If you want there to never be any commits in develop, ever, then I can see needing them.  A hotfix branch is really the only thing that should branch off of master outside of develop. Should there be an issue in production that needs to be resolved ASAP, that’s the kind of branch I would make. I haven’t needed to make one yet. I imagine I will one day.

I am interested in using this scheme in my projects in the future. I recently deleted a lot of stray projects from my computer, then pulled a few from my Github account. Those were all on master branch. There’s now a master and develop for all of them, and once I get around to working on them more, I’ll be making a lot of feature branches and doing most of my work in them.

Project March 2016

So February was a busy month for me. March shows no signs of slowing down. Let’s look at those habits I tried starting in January, and see where I need to push on!

January Habits

  • Half hour of reading daily: that fell flat around the time I started classes. Part of it was due to what I was reading. Lord of the Rings is very slow paced, which made it a strain to read. Now that the main characters have reached their first main destination it’s starting to pick up, but I’ve yet to keep reading.
  • Minecraft: This game takes patience and mental energy for me to really enjoy, and with all the thinking I have to do during the day, I don’t have much of either leftover for it.
  • Exercise: I was actually doing great with this, until around middle of February. At that point, a couple of my classes became so time consuming that I needed to give up my post-dinner walk. I’ll call this half a victory since I only had to stop out of necessity.
  • Read a chapter of the Bible daily: along with exercise, this fell to the wayside as I grew busy, and has remained there since.
  • Nightly prayer: This one has been straining to happen. I’ve adopted a system of having certain things I pray for each night of the week, and also I pray for a different person every night. Another half victory because I have trouble remembering what to pray for, but the list is there.
  • Meaningful conversations: This really hasn’t happened. I’m not one for reaching out to people.

Projects February 2016

Here are the things I worked on in February, and would perhaps like to do more with this month.

Web Development

Programming in general has been on hold. I deal with enough code for my classes and work, I don’t really have the urge to do any more. I don’t see myself trying this in March either.


I haven’t been putting much energy into my writing skills, either. I feel like this is something I want to do more with. There’s this huge story line that’s been in my head for years, but I’ve never been able to get it near a state of completion. I get too caught up in both the big picture and the details.

Reading, Minecraft, Exercise

Already mentioned.

Social Activity

I’ve been a bit of a hermit due to my busyness. I’ve made attempts at getting to know the people around me, but I’ve been met with general disinterest, which bummed me out. Through church and Cru I have chances for broadening my social circle a bit, and I’m slowly taking that opportunity.

Religious Activity

My actions have not been reflecting my intentions. My desire to resist sin and temptation has been lax for many months. This is something I will need to work on.

March Habits

  • Solidify the habit of daily prayer
  • Get back in the walking routine.
  • Talk to a friend, either face-to-face, or online for a little bit every day.
  • Work on fleshing out one of my stories. If I can start writing it, all the better!
  • Since I’m fairly burned out on my typical habit of reading a chapter and reflecting on it, I am going to try listening to podcasts. Concordia Seminary has a bunch of stuff on iTunes I will look at. I can listen to it during my evening walks, and since I almost always have a notepad and pen on hand, I could write down things that stand out to me.

Projects January 2016

With the start of the new year, I have decided to make a few resolutions. The first is to make yet another attempt at weight loss. The second is to become more socially adept. The third is to become more politically informed. And the fourth is to be more OK with the often slow pace that life change takes.

I’m going to borrow a term from Agile programming: “sprints.” In each sprint you set goals and work toward them. At the end of the sprint you reflect and see what got done, what didn’t, what needs to be redone, and what to do from here. For my resolutions, I’m going to focus on building a couple new habits each “sprint.” The sprints in this case are a month long, beginning and ending with their respective month.

The January sprint is going to be a little short, since we’re already a week into it. At the end of the January sprint, I’ll review what progress I’ve made and see what I can expand upon, and what needs to be refined further. So, onto the categories!

Web Development
I have been working on two projects. The first one, which I’m calling Primescraper, is a program that simulates a television by pulling videos from sites like Primewire, YouTube, and Twitch. It’s based on the My Decade TV project, which it mimics fairly closely.

The second project is also my first adventure with HTML5’s canvas tag. It’s a simulation of how ships and starbases from Star Trek might communicate with each other. It’s turning into a bit of an Internet simulator, really. I’ll have to make a post about it. For now check it out at

In terms of habit forming, I won’t be trying to make this into a habit. During classes I don’t really have time for hobby coding. And if something does hit me with inspiration, I’ll find the time for it.

Originally I had come up with a plan where I’d do two months of plotting and three months of writing per year, taking two months out for rapid planning and NaNoWriMo writing. But I got burned out on the book I’m supposed to be planning for. It’s fairly Medieval in nature, but I know next to nothing about writing for Medieval stuff, so I’m stuck there. Right now I’m working on a massive plot that I’ve had in my mind for several years. I’m making good progress with it. Eventually I might even write some of the story!

I tried establishing writing as a habit, but it didn’t stick after NaNoWriMo. I think it comes down to my muse just coming and going so much. That and my plot is so big as to be too abstract – though I have certainly made some progress in chopping down to the story arcs. I will not make an attempt to make writing a habit this month’s sprint. By February I will be back in classes, and I will see what the workload will be like.

I’m pushing myself through Tolkien’s Lord of the Rings. So far I’m really surprised the book could be considered revolutionary, when the main characters just don’t seem to do much meaningful stuff. I am hoping the story will surprise me, soon.

I’m fairly active with Minecraft now. I have plans for that, but I won’t divulge it right now. I’m trying to play a half hour every day, and so far it’s turning out to be a pretty easy habit to form. Eking out the time at college will be a challenge, but my schedule will be fairly reasonable.

Yeah, this one is a habit I need to form. My weight recently topped out at 215 pounds, the highest it’s ever been. My ideal weight was recently re-calculated to be 150 pounds. This sprint is going to be one where I try to get myself into the habit of doing a little exercise each day. Things like better food choices and whatnot will come next month, if I can get myself going this month.

From today to the 16th I will work on just doing some light exercise each day. Not much, just some push-ups and sit-ups. When I get back to college on the 17th, I’ll spend the rest of the month trying to get in a half hour of walking every day. It could be going around campus or using a treadmill – I just need to get myself moving.

Religious Activity
Besides church attendance, not much going on here. I was reading Revelation, but that petered out. I’ve recently passed 8 years as a Christian, and in that time I’ve read the entire Bible once, most of the Bible twice, and some parts of it several times.  I get the point. The general concepts are old news to me.

I’ve concluded I want to do something with the knowledge and the teachings I get from the Bible.  Perhaps I could look for a habit to try and develop that would help show God’s love to others. I doubt I could make much progress this month, so maybe in February I would go further with this.

Praying is something I would like to get better with. Generally my main prayer session has taken place when I got into bed. It just works. Yet my prayer life has been struggling for the last few years. There are all sorts of resources out there that suggest things to pray about on a given day of the week or whatnot, I’ll have to look into one of those.

Social activity
One of my resolutions is to become more socially fluid, i.e. be able to make conversation with people and maintain friendships. I’m just not used to having to work at keeping friendships alive, because I’ve spent so much of my life at schools and jobs where we were required to be in proximity with each other. Now’s a really good time to pick up that habit.

Recap: Habits for January

  • Read for a half hour every day. Upgrade to an hour if the story is particularly fascinating and I have the time to spare.
  • Minecraft: play for a half hour a day, working on this project or that.
  • Exercise every day, be it simple push-up/sit-up routine while I’m home, or walking for a half hour every day when I’m at college.
  • Read a chapter of the Bible every day.
  • Come up with some style of prayer and pray every night before going to sleep.
  • Have a meaningful conversation with a friend every day.

This all should take less than 2 hours a day. I’m not going to be a stickler about this. It’s not the end of the world if I forget a day or if circumstances prevent me.

[TOU] Reflecting on the Semester

This is another entry in the blog post series that I’m calling The Overworked Undergrad, in which I talk about my experiences in college.

Over the last three months I’ve experienced quite a few new things. I’ve also tried some new things. I thought I’d take a moment and talk about what I liked and didn’t like this semester, and what I might try next semester.

What I liked

Scheduling things out like mad. About a month into the semester, I sat down and began planning out what I wanted to do during the week to an insane level. It went beyond just class, work, homework, and floor dinner. I also charted out when I wanted to do readings, shower, work out, and other things that weren’t covered by my standard routine. It gave me a feeling of control over my life that helped my mental state, and did a great job of combating the mid-semester burnout I usually experience.

Putting myself out there more. I am a perennial loner, a typical introvert. My biggest hangup is initiating and progressing conversation. I’ve always been passive about it – just let people come to me. This semester I took baby steps toward being more active by being the one to start a little small talk or ask a question to move a faltering conversation forward.

Dropping a class. I was originally enrolled in a 500-level class on artificial intelligence. The first couple weeks were alright, but then I started falling behind in the readings. The lectures were frequently over my head, and the first couple assignments were far too confusing for me. I lasted a little over a month before deciding the class was going to be more pain than its worth for me, and dropped the class on the last day I could without getting a W on my record. Not only did it give me much more free time to focus on other classes, which it was taking me away from, it also did a lot of good for my mental health.

Getting a job. I currently work as a web developer for a department in the university, and I enjoy it. My coworkers are pleasant people, and the work both fits what I like doing and provides the right amount of challenge.

Managing my finances better. This semester I’ve started paying attention to my expenses more, seeing where my money goes. I could be doing better in this regard.

What I disliked

Not getting to know people better. The first two weeks were full of ice breaker activities, and I didn’t attend a single one. That put me at a distinct disadvantage when it came to getting to know my floormates. I’ve met most of them at this point, but I bombed my original intentions of getting to know the basic information of everyone on the floor. I fell back into my old habit of being the guy who’s always there but doesn’t really say anything for the first couple months. I know I could have done better with this.

Living in the dorms. Perhaps this is a bit ironic given my last point – or maybe it was part of the problem. I’ve never been terribly fond of dorm life, but this semester I seem to have crossed the threshold into “I can’t do this anymore.” Having to share a space with someone, as well as dealing with people making loud noises all hours of the afternoon and night has grated at me more than ever before. I’m going to look into an apartment or shared house next year. I need my own space.

Not eating better. I don’t care what anybody says, my college has good food. And I know this because I tend to eat more than I should. What’s more, I really like chocolate. And I know this because I eat far more chocolate than I should. The weight gain speaks for itself.

Not working out more. I actually had a consistent workout routine during my previous semester of college (spring 2014). But for some reason I couldn’t stick to it this semester. I’d go a couple times for a week, then not go for another couple weeks. I guess I just didn’t see the point in it.

What I want to do better

So going into next semester, what do I want to do differently?

Get out of my room more. Not as in “get out and talk to people more,” thought that could be a side effect. Rather, be in my dorm room less. I want to be slightly less of a homebody next semester. I had a start this semester, because I spent a lot of time in the floor lobby. But there are many other places designed to be used by the general student body – the student union, the library, various other locations – why not spend some time there? Let the dorm be a place for me to relax, not focus on classwork.

Mix up my routines. As much as I do well with routines and schedules, doing the same thing for too long wears at me. That’s why I’d like to add a little variety. Instead of only writing in my free time, alternate writing with programming or gaming. Or maybe do a 3-4 split of writing and gaming one week, 4-3 split the next week, and so on. If the classes I’m in have predictable homework or reading requirements, I could change up when I do those. The idea is to keep a level of freshness in my schedule, while still getting things done.

Be more socially active. I’ve spent a good part of this semester learning about conversation and social skills, and have dipped my toes in the water a bit. I’d like to start applying my knowledge more, by starting to engaging in those little one-off small talk conversations that arise through the day, as well as being a more active participant in conversation in general. Part of me wants to set a goal of having x conversations a day or whatever, but given college life I don’t know if that’s realistic. I also want to be more intentional about talking to current friends, who I usually don’t talk to much because they’re not physically in front of me.

Buckle down on my eating habits. I started eating healthier this semester by switching away from chocolate milk from every meal and exchanging for iced tea. (It’s unsweetened to my dismay, but it’s not terrible.) The dining hall posts its menu online, so I’m thinking I might check that out a few days ahead of time and actually plan ahead what I’ll eat. Having ice cream ever 5 out of 7 meals has to stop as well. Knowing ahead of time what I’ll be eating should let me have more control things.

Exercise more. That’s just a given. I had something I wanted to try at the beginning of the semester, but somehow it just didn’t work out. I’d probably be better just using the treadmill or elliptical machine for a half hour.

Semester of Code V

Yes! Finally after over a year and a half, it’s time to review another semester of programming! This semester, I used PHP and Python, instead of the C variants from previous classes.

PHP: What Web Developers Dream In

I currently work as a web developer for my university. I am also working on my senior project, which involves adding functionality to a product that a local software company develops. Since I’m working mainly on Web-based stuff, I’m using PHP for nearly everything.

PHP is what I consider one of my two “native” programming languages, C# being the other. I’ve read many a website talking about the design flaws of PHP, and have probably made a few similar complaints. But the fact remains, PHP is a popular and very useful language. When I graduate college I’m fine with becoming either a software engineer or Web developer. But since I’ve been working with PHP so much, it looks like I’m going the Web developer route. And that’s not so bad – as long as people don’t expect me to make pretty webpages. Maybe I’ll work on that skill down the road.

Python: Just Do Whatever

Before the semester started, it was hinted that I would be using Python. (I didn’t need it nearly as much as I thought, which is a shame). So I set to re-learning the language. I first committed to learning it when I was 18, but now that I’m experience with programming, the docs made much more sense.

I’m completely enamored with Python. It has a philosophy of making boring stuff easy and assuming “we’re all grown ups here.” I was surprised to find that keywords like public, private, or protected doesn’t exist. That’s because everything is public. Python assumes you’re a smart person who intends to play fair, and makes everything accessible, and that’s really cool.

But the one thing that absolutely made Python stand out as the latest and greatest of languages for me was the lovely thing called list comprehensions. I’d never run across anything like this before. List comprehensions turn nested fors and ifs into a single line and returns the list (Python’s equivalent of an array) on the same line. It looks something like this:

[ x.age + 1 for x in names if == "Shawn"]

In PHP this might look like a foreach loop with a nested if statement. If you didn’t know what a foreach loop was, you’d have to construct a for loop with the if in it. But with Python? This line does it for you in a compact fashion, and it makes things so much easier.

Bonus: Programs and Frameworks I’ve Learned

Here are a few things in the realm of programming I’ve learned (more) about:

  • Git: my skills were gitting (heh) rusty, but I’ve ironed them back out.
  • CodeIgniter: And model-view-controller. I don’t think I’ll ever program anything major in any other structure again.
  • Slim: Neat little framework for making APIs.
  • Bootstrap: Yep, I’m a few years behind the trends here. I’ve never learned Boostrap but now that I’ve got it, I can definitely see its use.
  • Red Bean: A PHP tool that makes and runs a SQLite database on-the-fly. The way it approaches things is a bit confusing.
  • Virtual domain names: This is very cool! If you have projects on your computer, in Apache you can edit a couple files and have virtual domain names for each project. For example, the liturgy project (still unfinished by the way) has the virtual URL
  • Netbeans: I’ve actually done most of my PHP programming over the years in Notepad++. I’m just not fond of IDEs – many of them try way too hard to help, to the point of just getting in the way. Still, it’s important to use a decent IDE when doing big-time coding, and I’ve chosen Netbeans to be my IDE for general programming.