Wednesday, August 26, 2015

Web Development part 3: Into the WordPress

I finished another track on Team Treehouse, specifically working with the PHP programming language. There is lots more for me to discover as this was just an introduction, but I decided to take a detour to explore their content concerning WordPress, a popular blogging and website creation tool. I've only just scratched the surface but I am already impressed and mostly convinced that I should just use WordPress for creating most simple websites. It's easy to use, customizable if you know how to code (and I do), powerful, and super easy for a non-tech savvy client to upkeep and add to once a website has been created. It's also free to use, so that's a good thing since my current budget is about $0.

WordPress comes with loads of free designs which save having to create them from scratch. Pick a theme, plunk in the content, tweak it by changing colors + pictures, and "Ta-da"a good looking functional website... at least that's what the process looks like from my current bedazzled perspective. I'm sure it can't be quite as easy as that, else nobody would hire freelancers to do the work for them.

If nothing else the friendly user interface is enough to keep me invested. Instead of having the client have to go into the HTML and CSS code (where it can be confusing and easy to break things) to add / change content WordPress gives them a nice text editor with a publish or edit button. Definitely a good feature for a church website or small business.

So it looks like I'm going to add WordPress to my digital tool belt. Yay WordPress!

Greg Out.

Sunday, August 16, 2015

Concerning Good verses Evil - There is no Dualism

I've written about this topic before, but it came to mind again and perhaps deserves a new context of explanation. In Christian belief we hold that there is good and evil in the world. Good is championed by God who is made manifest to us through Jesus by the power of the Holy Spirit. Evil is championed by a being that the Bible identifies as Satan. This is not a new idea for us in North America, popular culture still repeats the idea of God being the good guy dressed in white up in Heaven that the Devil being the bad guy dressed in red (or black) down in Hell. God has angels who are on his side and the Devil has demons who are on his side and the two sides war against each other. There is a parallel between Christianity and this understanding of good verses evil in pop culture spirituality.

The key point of difference is the extent of the power struggle between the two sides. Pop culture spirituality along with most non-Christian spirituality envision the forces of good and evil to be like celestial boxing match where either opponent could gain the upper hand and knock the other out. Take this cutscene from Blizzard's Diablo III as an example:



Are angels more powerful than demons? Will the Devil foil God's plan in the world? For someone with a spiritual awareness outside Christianity these are very real questions. All over the world people turn to magic, karma, holy relics, or hardened self determination to ensure that good remains more powerful than evil whether that be in an unseen spiritual realm, within one's own heart and mind, or in trying to control what could be called "fate." Even Christians sometimes think and act this way as though the amount of people praying somehow empowered the angels against the demons or made God more favorable towards the outcome you were hoping for.

This is not how the Bible envisions the struggle between good and evil. God and the Devil are not in a balance of force as though God were the incarnation of good and the Devil were the incarnation of evil. God is sovereign of the universe and holds good and evil in his hand. The Devil is a fallen creature who being created by God will always be subservient to God which is why Jesus is able to drive him and all his demons away with a word and why with just a word he is able to cast them into a lake of fire and keep them there forever. The Devil may be the baddest guy on the block, but he's no equal to God and he's not evil incarnate. There is no question as to who is more powerful or who would win in a fight. The battle, if it could be considered a battle, could be illustrated by Gandalf leading the Rohirrim in the battle of Helm's Deep. No casualties for good, entire army of evil obliterated.


For the Christian the question isn't "how do I ensure that good remains stronger than evil," because God is already victorious! The question is "how do I continue to live in God's victory?" After all, before Gandalf arrived on the scene the defenders of Helms Deep weren't doing so well. Of this the Bible has much to say. In the Old Testament it was to have faith in Yahweh your God according to his actions in making a covenant with Abraham, leading the people of Israel out of Egypt, driving the Canaanites out of the Promise Land, and providing for those who trusted in him. This faith in Yahweh culminated in his incarnation as Jesus and defeated evil in his life ministry (healing and exorcisms), death (identifying with fallen humanity and paying the price for our sins) and resurrection (defeating death and sin championing both). Before Jesus ascended he told his followers that he would give them his spirit, the Holy Spirit, and it is by living in accordance with the Holy Spirit that they and we are able to participate in God's victory over evil. The apostle Paul constantly instructed the early Church to live according to the Holy Spirit and not according to the evil desires of the flesh. By submitting to God and allowing his Holy Spirit to guide you his goodness lives in you and you are living in God's victory.

Wednesday, August 12, 2015

Web Development: part 2

I learned something about web development that makes my head spin a little. Way back in the dark ages of the internet (1999) web developers built everything from the base elements of HTML, CSS, JavaScript, PHP, and probably a few others I don't know about yet. The point is that they built everything from scratch typing it up from a digital ex nihilo (out of nothing). So far, this is how I have been learning to code, either starting with a blank file or using a pre-made template that was created the ex nihilo method. This way of coding makes sense to me, it is relatively straight forward albeit time consuming.

Then I learned that this is not how web development works anymore. Nobody just codes everything from scratch. Over time coding languages evolved and web developers put together entire libraries of commands and alternate languages that take the base elements of coding and turn things that would take 10 lines of code into 1 line of code.

Here is a popular example that illustrates my point.




How to change the background color in JavaScript (base programming language)

Function changeBackground(color) {
          Document.body.style.background = color;
}

Onload="changeBackground ('red');"



Now here's that same code again but this time in JQuery (library that manipulates JavaScript)

$ ('body') .css ('background', 'red');



Alright, so now there are shortcuts that make coding quicker and easier, that's cool right? Well yes, it's very cool. So what's the problem then? The problem is that there are so many powerful libraries and alternate languages out there today that simply managing them has become a paramount skill for success in the industry and its a skill I don't have yet. The more code I see for websites the more I see that they are built off of lists of enormous libraries of commands that I have absolutely no understanding of.

I saw this first a few days ago training in PHP on Team Treehouse. I was walking through the construction of a functional website and the first half of the lesson was simply installing all of the extra libraries we would use. Heck even the libraries were inside a library that needed to be installed before we could begin! Then we started to utilize all these extra pre-made functions in the code and the magic started. Instead of having to code the sanitization of user input myself (would easily take up 100 lines of code) the instructor called the 'sanitize input' function from one of the libraries with one line of code. Instead of creating our own code for sending emails he just referenced 'quick mailer' and hours of troubleshooting turned into 4 lines of code that will work every time. Then things got even crazier when he moved every piece of code that was repeated between different pages, deleted it all from those pages, and brought it all back with 2 lines of code that referenced back to the saved template so that every new page on the site could be created in seconds and any changes could be made equally as fast.

So web development isn't about being able to code, although that is still a necessary skill, it is now more about knowing what tools (libraries and languages) are out there and when / how to use them. Any web page can be created any number of ways, there is rarely ever a single right way to reach your destination (true in programming, not so much in theological matters) the key is knowing how to get there efficiently and with solid code.

So I have more learning to do. I need to become familiar with importing libraries and reading the documentation for how to use them. I find the documentation to be the most intimidating part. I barely know what I'm looking for and scanning the hundreds of functions for the one or few that would accomplish what I need is like finding a needle in a haystack except the needle is proverbial and the haystack is on fire... or something like that...

And now I hear my two year old son is up to mischief...

Greg Out.

Monday, August 10, 2015

Web Development part 1

A little over a year ago the web designer for Briercrest College and Seminary casually suggested that I go into web design. We had brushed shoulders off and on for a good five years and he figured that I had the personality and tech-savvy to join the ranks of the internet wizards and build websites like he did. The idea intrigued me. I had always enjoyed working with computers and I was able to figure out basic HTML and CSS all by myself to fix the Distance Education website. I asked him for more details and he introduced me to the ultimate website for learning all things Web Development related: Team Treehouse. He said it was a lucrative business once you knew your stuff and that he had several projects that he worked on in the evenings that paid $20 an hour.

"Not bad," I thought to myself. Then he told me that that was the price he used for Churches and non-profit organizations and that a professional web developer could charge upwards of $75 per hour!

Holy Smokes! That can't be right... I did some fact checking... yep... $75 per hour...

I told him that I was indeed interested and thought I could maybe pick it up as a secondary income once I finished my masters degree and the insanity of being a new parent wore off. Months went by and I would check in with my web developer friend for more details every now and again. The prospects sounded better all the time. It paid well, I would get to set my own hours, I could work from home if I needed to, and it was interesting work that would keep my brain engaged. Someday I would do it.


Then I received word that my position with Distance Education was being cut. With a thesis still to finish and no other employment in sight I tried out the free trial at Team Treehouse and ploughed through HTML, CSS, and started into JavaScript. I was able to build a simple church website and had people asking me what I charged within a month. Unfortunately I only knew the very basics and did not feel that my humble abilities were adequate to charge money. There was also the time constraints of my thesis and the unique health challenges posed by our second pregnancy. In the end family needs and thesis prevailed and web development was put on hold.


Half a year later my masters degree is finished, our second child is healthy, and I have recovered enough to take it up again. It's only been a week and I've blasted through the remainder of the Front End Development track on Team Treehouse and completed half of the PHP track. I'm learning lots in leaps and bounds and it is terrifying. Every time I learn something new it feels like I've put another block onto my tower. I've always been really good at building block towers but the taller they are the more wobbily they get and I start to feel like it will all fall apart. Now that I know the basics I'm being introduced to a whole new layer of apps and libraries that I had no idea even existed. Three or four systems I could handle but add to that a dozen extras from UNIX to Composer to Twig and I feel like I'm still at the bottom while also feeling like my tower is too wobbily. But then I look at other websites and know how I could make them myself. I think I'm almost ready to start doing this as a business and I'll keep learning and growing along the way.