mooo

http://ift.tt/1rdyTS8 via /r/funny http://ift.tt/1wghFnf

http://ift.tt/1phEpRJ via /r/funny http://ift.tt/1phEogT

“In the beginning, God created the earth, and he looked upon it in his cosmic loneliness.

And God said, “Let Us make living creatures out of mud, so the mud can see what We have done.” And God created every living creature that now moveth, and one was man. Mud as man alone could speak. God leaned close to mud as man sat, looked around, and spoke. “What is the purpose of all this?” he asked politely.

“Everything must have a purpose?” asked God.

“Certainly,” said man.

“Then I leave it to you to think of one for all this,” said God.

And He went away.”
― Kurt Vonnegut, Cat’s Cradle

Bokononism

“In the beginning, God created the earth, and he looked upon it in his cosmic loneliness. And God said, “Let Us make living creatures out of mud, so the mud can see what We have done.” And God created every living creature that now moveth, and one was man. Mud as man alone could speak.

Read More

http://ift.tt/1olGHg5 via /r/ProgrammerHumor http://ift.tt/1lYv0to

This weekend Steve Bosworth shared a great article from net tuts+ on our program’s Facebook group. It’s titled The 11 Phases of a Web Developer’s Career (As Illustrated by Memes) and it is written by Jeffrey Way.

The 11 Phases are as follows:

  1. Noob
  2. The First Steps
  3. Complete Frustration
  4. The Aha Moments
  5. Fragile Code
  6. Copycat
  7. Cocky
  8. Learning Vim
  9. When Code Becomes Art
  10. Seasoned
  11. Rockstar

I found this article very relatable. To describe Phase 1 (the Noob Stage) Way writes

the period when you have absolutely no clue what you’re doing. Like a fish out of water, each new line of code is a mystery. Doctype? Huh? What the heck does a <div> do? The first phase is an intimidating, scary, but exciting one. How many dang languages are there?

 

I can distinctly remember learning for the first time what a doctype was. I knew what a div was, but that isn’t much to celebrate. I was definitely out of my element.
The next phase, The First Steps is described by Way as the Phase where you slowly start building your skill set and actually start to see your code from your code editor reflected in the web browser. In this phase I often gained a sense of pleasure from trying things and seeing them visually.

Phase 3 made me laugh. It is called Complete Frustration, and it is so true.
Way writes

Imagine being lost in a cave, shining your flashlight down each tunnel, as you search for a way out. With each step, you hope to see a glimmer of light. Unfortunately, the learning curve in our industry is a steep one. That speckle of light won’t come for a long time, I’m sorry to say. Expect to spend hundreds of hours in this phase, reading technical books over, and over, and over, as you desperately try to make sense of the madness!

 

Our teachers have told us that this moment would could and pass, however when I was experiencing it, their words did not help. It is the point where you feel like giving up because you want to do something and you just can’t figure out how to do it. Every article, book, video is using a different version or language or program to achieve the result you want and you often end up search through Stack Overflow for hours.
Way reminds the readers at the end of this phase that “if the frustration becomes too overwhelming, find peace in the fact that every one of us felt that exact way at one point or another in our careers. You’re not alone. Stick with it, and, before long, you’ll reach the aha phase!”.

This brings us to the Aha Phase. It is describes by Way as “one of the greastest feelings in the world: that brief instance when, suddenly, you “get it”. This phase is definitely my favourite ones so far. I have had that experience of looking at my code and suddenly I could see exactly what I needed to do to make something happen. It made me feel like all of my studying and flipping through textbooks was suddenly worth it.

The final phase I will go over is the Fragile Code phase, because it seems to me that I am at this phase or at least approaching it. Way explains,

Like it predecessors, the Fragile phase is a lengthy one. At this point, you are successfully building applications and achieving your desired end result, but the underlying code is one client feature-request away from popping. In this phase, your methods are dozens of lines long, and the concept of testing hasn’t yet entered your brain.

Although concept testing has entered my brain because of Security and quality assurance, I am fairly certain this is where I am. We are building features and websites that are achieving our desired end result, however it isn’t an easy process. It still takes a long time to build something simple, which I assume is what Jeffrey means when he writes “the underlying code is one client feature-request away from popping”.

This article was really great after a particularly stressful weekend. It helped me realize that I’m not in this alone, that it does get better, and that every web developer has gone through these phases.

Have a read for yourself: http://net.tutsplus.com/articles/general/the-11-phases-of-a-web-developers-career-as-illustrated-by-memes/

The Stages of a Web Developer’s Career

This weekend Steve Bosworth shared a great article from net tuts+ on our program’s Facebook group. It’s titled The 11 Phases of a Web Developer’s Career (As Illustrated by Memes) and it is written by Jeffrey Way. The 11 Phases are as follows: Noob The First Steps Complete Frustration The Aha Moments Fragile Code Copycat

Read More

For the ASP.NET website I’m building a feature that I’m working on is a virtual greeting card creator that also emails the card

I am creating a virtual greeting card creator as a feature for my ASP.NET website. It’s functionality allows a user to create a custom greeting card by selecting an image, font-color, font-size and writing a personal message. The user must also specify the e-mail address of the patient they would like to send the card to.

An issue I came across when building this feature was sending the Panel control in the e-mail. I kept getting System.Web.UI.Panel showing up as my e-mail content instead of the card that the user created.

I realized I needed to convert the Panel control into HTML so I could send it  via e-mail. I found the following solution to fix my problem.

Step 1: Create a Render Control function and import the following namespaces:

using System.Web.UI.HtmlControls;
using UserControlHandlerDemo;
using System.Web.SessionState;
using System.Text;
using System.IO;
using System.Web.UI.HtmlControls;

private string RenderControl(Panel pnlCard)
{
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter writer = new HtmlTextWriter(sw);

pnlCard.RenderControl(writer);
return sb.ToString();
}

Step 2:  Create an emailClass (App_CodeemailClass.cs)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Net.Mail;
using System.Net;
using System.Configuration;
using System.Net.Mime;

public class emailClass
{
public bool sendEmail(string _conName, string path, string _conEmail, string _conReason, string _conMessage)
{
MailMessage objMail = new MailMessage(_conEmail, _conEmail, _conReason, _conMessage);
NetworkCredential objNC = new NetworkCredential(“email@email.com”, “password”);
SmtpClient objSMTP = new SmtpClient(“smtp.gmail.com”, 587); // smptp server for gmail

using (objSMTP)
{

objMail.IsBodyHtml = true; // allows use of html in body
objSMTP.EnableSsl = true; // enable ssl, required for gmail
objSMTP.Credentials = objNC;
objSMTP.Send(objMail);
return true;
}
}
}

Step 3: On the code-behind of the aspx file, once the user clicks the send e-mail button call the RenderControl for the update panel and the following information is passed to the emailClass.

emailClass objEmail = new emailClass();

protected void subClick(object sender, EventArgs e)
{
TextBox txtName = (TextBox)FindControl(“txt_name”);
TextBox txtPatient = (TextBox)FindControl(“txt_patient”);
TextBox txtMessage = (TextBox)FindControl(“txt_message”);
string txtReason = “Greetings from ” + txtName.Text;
    Panel pnlCard = (Panel)FindControl(“pnlCard”);
        string panel_html = RenderControl(pnlCard);

_strMessage(objEmail.sendEmail(txtName.Text, txtPatient.Text.ToString(), txtReason, panel_html));// name, email, subject, message)

}

This week in PHP we learned how to send mail using the mail() function. We had to upload a php file onto our servers and send an e-mail to our group mates through that file. This sounds straightforward, however everyone in the class is using different hosting companies. There are a few people who are hosting their website on GoDaddy, a few on Hostgator (myself included), and then a handful more that I’m not sure of. Every time we have to configure something in class with our web servers it takes at least half an hour. This is due to the inconsistencies between hosting companies and the limited knowledge everyone had regarding what we would be needing our servers for specifically.

I was trying to use this simple code to send my mail:

<?php

$from = “Ender Wiggin”;
$subj = “Battle School”;
$email = “test_email@gmail.com”;
$body = “test”;
$headers = “From: anja@mydomain.com” . “rn”;
$headers .= “Reply-To: “. $email . “rn”;
$headers .= ‘Content-type: text/html’ ;

message = “<html><body><h1>$from has submitted a contact form!</h1>”;
$message .= “<p><b>Name:</b> $from</p>”;
$message .= “<p><b>Email:</b> $email</p>”;
$message .= “<p><b>Subject:</b> $subj</p>”;
$message .= “<p><b>Message:</b> $body</p>”;
$message .= “</body></html>”;

$success = mail(
“anjag@mydomain.com”,
$subj,
$message,

 

$headers);

 

echo “You did it!”;
}

?>
[disclaimer: *@mydomain.com should be replaced by whatever your domain is]

 

When I used the above code I kept getting this error:

Warning: mail() [function.mail]: SMTP server response: 550 <test_email@gmail.com> No such user here in D:InetPubvhosts….

 

It was extremely frustrating as one of my group mates who was using GoDaddy as their hosting server was able to send the e-mails with no problem and I was struggling to debug my code.

After countless hours spent googling this issue, I combined the various solutions that other users found and was able to get it working. For Hostgator Windows Shared plans, you cannot send e-mails to gmail accounts using the mail() function. Instead, I downloaded PHP Mailer and followed the instructions to upload the following files onto my server:

  class.phpmailer.php
  languages/phpmailer.lang-??.php ( 'en' is hardcoded into PHPMailer)
If you are using the SMTP mailer then copy class.smtp.php as well.

I put them in a PHP folder where I keep all my PHP projects. Next, I entered the following code:

<?php
require_once “../class.phpmailer.php”;
require_once “../class.smtp.php”;

$mail=new PHPMailer();
$mail->IsSMTP();
$mail->Host=’xx.xx.xx.xxx’; //your server address, I always enter mine in using the server IP.
$mail->Port=25; //This is used for SMTP
$mail->SMTPAuth=true; //
$mail->SMTPDebug=2;//Comment out once it works, but the debug info is invaluable
$mail->Username=”anjag@mydomain.com”; //e-mail username associated with your hosting account
$mail->Password=”password”; //your password for the email account above
$mail->setFrom(“anja@mydomain.com”); //the email you are sending it from
$mail->Subject=’Look what i CAN Do I am the Hostgator MASTER’;
$mail->Body=’Hihihihihihihi. Monkeys monkeys monkeys fly!’;
$mail->AddAddress(‘test_account@gmail.com’);/*email of person you want to send to*/
$mail->Send();
?>

And it finally worked! I thought I would share and try to save someone else from spending a whole afternoon googling.

For the first time in this program we have written out requirements documents. The next step is to bring those features and requirements to life. This process sounds more simple than it is. For my three features, there are a number of components that I have no idea how to code.  In order to get everything done on time, I will have to have a strict schedule/timeline to follow.

My plan is to begin researching the topics that I know the least about. During the researching phase, I will also begin coding the aspects of my features that I already understand how to do. This will allow me to get an idea of how certain components are built, and get some of the more tedious coding out of the way. Ideally, I would like to be able to start experimenting with the code that I researched as soon as I find a few useful resources that make sense to me.

When it comes to ASP.NET in C#, I find that a lot of the time I get overwhelmed with the amount of code that goes into database access code and confusing class files with code-behind pages. This weekend I tried something new. I printed out the presentation page, code-behind file and class file of a LINQ example we did in class. I went through it line by line, highlighting important sections such as data controls and panels. Then I linked each subroutine to their trigger event and followed the entire process by just looking at the code. Wow — what a difference that made. It really helped me understand the processes that took place when I wrote all the code, and helped me identify what each part is doing and why it must be there. This helped me so much that I was able to go back to the example and manipulate it to change a few things in a few easy steps, something that took me an hour previous and a lot of frustration. I think I will be using this method of researching for my features.

From Theory To Reality…

For the first time in this program we have written out requirements documents. The next step is to bring those features and requirements to life. This process sounds more simple than it is. For my three features, there are a number of components that I have no idea how to code.  In order to get

Read More

Today is almost the end of a long week, and I finally have a moment to pause and reflect on the past few days. During the previous week, reading week, I spent most of my time working on my PHP and ASP.NET assignments. I also typed up lecture notes on this flash card program I downloaded that really helps me with memorization.
However, it seems like my preparation was not sufficient. I still struggled in most of my exams, and although I did know a lot of the written/multiple choice material, I found the practical aspect very challenging. I didn’t have a chance to finish the ASP.NET practical, and for the PHP practical I could not figure out how to do the final question. I believe that is partially due to the fact that I get a bit panicked during the exam. I am not used to coding something with such a tight schedule. I typically do my assignments by reading about them, doing a little, researching some more and then doing a bit more.In the exam, you don’t have time for any researching.

I didn’t know how to do a few things, such as the MultiView in ASP (I couldn’t recall ever using the control before) and how to populate the table using a Linq class file which uses the <List> instead of the <IQueryable> method. I am sure that if I was given more time to research how to do those things I could have bridged the gap in my knowledge. However, it makes me question my abilities as a programmer because even though I prepared well for both exams, I was still unable to complete them successfully. I did learn a lot by doing them, but I wish I could have learned those things prior to the exam so that I could see a payoff for my hard work.

I am not sure how to improve my skills for the next exam. The method I am using is not working as well as I would like, and I don’t have any extra time to spend studying due to all the other projects assigned to us and the need to feed, bath and clothe myself. I am anxious to see my results.

Using your head…

Today is almost the end of a long week, and I finally have a moment to pause and reflect on the past few days. During the previous week, reading week, I spent most of my time working on my PHP and ASP.NET assignments. I also typed up lecture notes on this flash card program I

Read More

This weekend I watched a movie called “Robot and Frank” directed by Jake Schreier. It’s about an aging father, Frank, who is becoming forgetful as he grows older. His son gives him a robot butler who is programmed to take care of him. The movie explores the relationship between Frank and his robot, who he despises at first but then grows fond of. The movie is set in the future, but not the distant future. Almost everything looks the same except for robots, communication methods (such as video to video calling), and computer screens.  Computer screens are more advanced and responsive than the ones we have today, and work with augmented reality rather than the mouse and keyboard like modern computers do.

This movie inevitably had me thinking about programming and how far we are from simulating artificial intelligence. Inventions such as Siri, Watson (the robot who beat the best human at Jeopardy) and the Cheetah robot appear to be a natural progression towards artifical intelligence. The Turing Test, which is best summarized by Wikipedia as: “a test of a machine’s ability to exhibit intelligent behavior equivalent to, or indistinguishable from, that of an actual human.” I think that the general attitude of the population regarding artificial intelligence is that it is inevitable, and the complexity of creating a machine that would pass the Turing test is often overlooked.

However, now that I am a programmer, I can truly appreciate how complex it would be to create a machine that behaves in a way that is indistinguishable from an actual human. Even in today’s best and most popular applications, there are still many bugs which result from the developers inability to foresee every situation that could cause a bug. It is difficult enough to develop an advanced application that does straightforward tasks. I cannot even begin to fathom how you would use programming logic to create an algorithm to understand subtleties of human nature as well as the subtleties of the English language.

The strange thing about humans is that we are not fully logical beings. Humans say things that we don’t mean, and often context and body language play a large part in how we understand what people actually mean versus what they say. Although I believe that some day we may reach the point where we are able to stimulate artificial intelligence, I definitely won’t be buying one of the first robot butlers. I think that it will take a long time to create sophisticated enough computers to simulate a type of intelligent interaction that won’t make you want to rip your hair out.

Robot & Frank: artifical intelligence and the future

This weekend I watched a movie called “Robot and Frank” directed by Jake Schreier. It’s about an aging father, Frank, who is becoming forgetful as he grows older. His son gives him a robot butler who is programmed to take care of him. The movie explores the relationship between Frank and his robot, who he

Read More

This week in our XML and Web Services class we learned about XPath and XSLT. I am always surprised at how many different languages there are available to programmers and web developers. It is almost overwhelming because it is impossible to become an expert in all of them.

Prior to learning how XSLT and XPath work together to style XML, I couldn’t fully understand the benefit of using XML. It wasn’t clear to me how writing XML documents would interact with web pages to become something more than just tags and text. I watched a really great video tutorial from Lynda.com called “XML Essential Training” Chapter 7, 8 & 9 (XPath and XSLT respectively). I found that watching those videos and seeing examples of how the syntax is used, and exactly what it does helped me understand it much better than reading the chapters of our book. For certain things in programming, such as syntax and the execution lifecycle, I find that seeing and trying examples helps me a lot more than reading over my notes does.

One example that helped me a lot was the following:

XML File (items.xml)

<?xml version=”1.0″?>
<animals>
<animal>
<breed>Long Haired Tabby</breed>
<type>Cat</type>
<photo>kittycat.jpg</photo>
</animal>
<animal>
<breed>Golden Doodle</breed>
<type>Dog</type>
<photo>puppydog.jpg</photo>
</animal>
</animals>

In this file you have 2 animals elements, and within those elements they have the same elements (breed, type and photo).

We want to display the image of the animal, along with the type and breed of the animal in text next to the image.

In order to do that we need to a template match at the top of the file after the stylesheet declaration. An XML file should have at least one template. The match=”/” refers to the root of the XML File.

Next, we can write a head, title and opening body tag. After the body tag, we want to do a for-each (<xsl:for-each select=”XPath Target”>) so that our XSLT file goes through each animal and does the same formatting for each.

So we go declare the target using XPath of “/animal/animal” because that takes us to the animal node, and from there we can style the elements within the Animal element.

Next we open an h1 tag, because our text will come right after the image. After this we open an image tag. This is what really stuck with me, and helped me to better understand XML/XSLT.  I’ve never seen an image tag without a src attribute directly within it (for example <img src=”…”/>.

In XSLT you can add attributes to an element. In this case we do <xsl:attribute name=”src”>… this adds a src attribute to the image tag because the image tag above it was left open, and the xsl:attribute is a child element of that tag. That src attribute gets its value from the following line <xsl:value-of select=”photo”/>. What this line is doing is using the select =”photo” XPath target to get the value of the text inside that <animal> element’s <photo> element. It takes this value and adds it to the image as a src value. Therefore, when the XML file is run and referring to this XSLT stylesheet, the tag actually will take that information for each <animal> tag and display the image for each animal item. If you had 50 animals items, the for-each is a huge time saver.

After we close the </xsl:attribute> tag and the </img> tag we move onto printing out the breed and type of the animal. You do this by simply refering to the <xsl:value-of select=”breed”/> and <xsl:value-of select=”type”/> followed by a </h1> and </xsl:for-each> to close the loop. What the value-of tag does is simply get the value of that element and dsplay it within the h1 tag.

In order to use this on a website, the following XSLT (Extensible Stylesheet Language Transformation) makes each image appear, along with text describing the image.

<?xml version=”1.0″?>
<xsl:stylesheet xmlns:xsl=”http://www.w3.org/1999/XSL/Transform” version=”1.0″>
<xsl:template match=”/”>
<html>
<head>
<title>Animals</title>
</head>
<body>
<xsl:for-each select=”/animals/animal”>
<h1>
<img>
<xsl:attribute name=”src”>
<xsl:value-of select=”photo”/>
</xsl:attribute>
</img>
<xsl:value-of select=”breed”/>
<xsl:text> </xsl:text>  <!– this just creates a space between the two elements. You could have put  <xsl:text>  …. </xsl:text> and the … would have shown up between the breed and type element–!>
<xsl:value-of select=”type”/>
</h1>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

I hope this helped, and didn’t confuse you more. I highly suggest taking a look at the Lynda videos to see the thought processes that go behind making an efficient XSLT stylesheet.

There is always more to learn.

This week in our XML and Web Services class we learned about XPath and XSLT. I am always surprised at how many different languages there are available to programmers and web developers. It is almost overwhelming because it is impossible to become an expert in all of them. Prior to learning how XSLT and XPath

Read More

With the second semester well under way, it is time to start thinking about internships. During my research, I have found myself thinking about my competition. My classmates are suddenly my competitors, and there are thousands of other computer science students who are also looking for an “in” into the Computer Science industry. This thought has led me to think about some of the challenges I will face trying to secure a job in Web Development. It has also made me realize that one of those challenges is the fact that I am a girl.

You don’t need to read an academic paper to know that there are more men than women in Computing and Information Technology industries. However, if you want to, here is a website with some current statistics regarding women in computing. I have never been conscious about being at a disadvantage due to my sex, but now I am aware of the fact that I may have to prepare for that. People’s prejudices and stereotypes may cause potential employers to overlook me based on my gender.

However, I also think I can use this inequality in the industry to my advantage. I know that I am as capable as my male peers in all the courses that I have taken this far, and perhaps even more capable in some. I know that I have what it takes to be a web developer because I love what I am studying, I am motivated and I am dedicated. If being a female sets me apart, I hope that means it will also make me more memorable.

I would also like to help bridge the gender divide in web development and computer science. There are a few associations such as Girls Who Code that, according to their website are “a new organization working to educate, inspire and equip 13- to 17-year-old girls with the skills and resources to pursue opportunities in technology and engineering.” I have contacted the organization to see how I can get involved and help out, so hopefully I will hear back from them because it seems to me like a very worthwhile cause.

Why aren’t more girls coding?

With the second semester well under way, it is time to start thinking about internships. During my research, I have found myself thinking about my competition. My classmates are suddenly my competitors, and there are thousands of other computer science students who are also looking for an “in” into the Computer Science industry. This thought

Read More

One of our new courses this semester is called “Security and Quality Assurance”. Over the past two weeks, the security portion of the course has really caught my attention. I have always been fascinated by hackers and what I heard about them in the news. One of our assignments was to find 3 big hacking events of the past year. Aaron Swartz’s death was not exactly a hacking event, but instead a response to a hacking event. He was 26, a computer programmer and activist as The Economist puts it in their obituary for Swartz (http://www.economist.com/news/obituary/21569674-aaron-swartz-computer-programmer-and-activist-committed-suicide-january-11th-aged-26-aaron). Aaron was facing up to $4 million dollars in fines and up to 30 years in jail for illegally taking articles from JSTOR, which is an archive of academic journals, and making them publicly available. Aaron believed that information should be free and accessible to everyone. He believed that information was power. Upon learning of his suicide, the hacker/activist group Anonymous did a DDoS attack of the MIT (Massachusetts Institute of Technology) website and hacked into their servers as well. They left a message on the MIT website urging computer crime law reform. Many people believe that the charges brought against Aaron were not proportional to the crime he committed. On the MIT website, Anonymous quoted Aaron’s call for open access of information: “There is no justice in following unjust laws. It’s time to come into the light and, in the grand tradition of civil disobedience, declare our opposition to this private theft of public culture” (source: http://tech.mit.edu/V132/N61/graphics/anonymous.html).

This quote stuck with me, because it changed the way I looked at hackers. I always pictured some evil super geniuses or some bored teenagers who enjoyed destroying things. I know those types of hackers are still out there, but there are also people who hack for different reasons, such as Aaron. He fought for the freedom of information, and used his skills to make the world a better place (at least in his eyes). He was an internet vigilante. And as I start to learn more about the Anonymous group, it seems to me that they are responsible for more good than harm. It is interesting that we persecute hackers so intensely when their crimes are often a type of protesting against big business and government oppression (such as oppression of information). It has given me a lot to think about, and I’m currently following Anonymous on twitter, which has made for some interesting reads.

Internet Vigilantes

One of our new courses this semester is called “Security and Quality Assurance”. Over the past two weeks, the security portion of the course has really caught my attention. I have always been fascinated by hackers and what I heard about them in the news. One of our assignments was to find 3 big hacking

Read More

The first week of a semester is always inspiring and terrifying to me. It’s nice to have a clean slate: new classes, new teachers, new groups, and new assignments. It is refreshing. However, change is also scary. In the past semester we learned so much. Hearing the teachers go over each courses’ syllabus and explaining all the new material we are going to cover is a little overwhelming. I find myself thinking “Can I learn PHP in 4 months?”, “Will I be able to keep up?”, “Is there more room in my head?”. These type of questions can lead to a lot of anxiety.

Although I have some anxiety over the amount of material we will be covering in the next 4 months, I’m also extremely excited. I want to become a web development expert, and what better way to become one then diving head first into the most material you can. I have started utilizing other resources to help me learn during my downtime. For example, Harvard offers a lot of free online courses in Computer Science. You can download the course notes, the lecture video, and even an MP3 version. This free resource is a great idea, and it’s an effective way for me to learn. I sync the lectures to my ipod and run my errands, go to the gym, and even wakeup to a lecture about topics such as XML, Servers and PHP.

It’s a good way to fill in the gaps of some of the things I don’t fully understand. For example, although I understand how the internet works, I have always been confused about certain things such as DNS servers, and router switches. Then I watched a podcast called “How the Internet Works” and it filled in those  gaps of my knowledge.
With such a large amount of information to cover in each of my courses this semester, I will definitely turn to outside resources such as podcasts to build on what I learned in class and go into more detail about things that our professors don’t have time to dwell on.

My courses this semester include: XML, Mobile Application Development, Web Services, Information Architecture, Security and Quality Assurance. Luckily, I am interested in all of them. I understand the place of each in web development, and I look forward to having some more tools to build useful, efficient, and beautiful websites.

Fresh Start

The first week of a semester is always inspiring and terrifying to me. It’s nice to have a clean slate: new classes, new teachers, new groups, and new assignments. It is refreshing. However, change is also scary. In the past semester we learned so much. Hearing the teachers go over each courses’ syllabus and explaining

Read More

This past Wednesday was the last day of our Digital Design course at Humber College. Royce was a great instructor. He covered a lot of material, while managing to keep the classes interesting. It’s hard to keep that kind of pace in a classroom. Often a teacher will move too quickly and the class cannot follow along, or the teacher will move too slowly and lose the classes attention. It’s a fine balance.

Coming into the program, I was mainly looking forward to improving my CSS & HTML skills. I thought that digital design would be the main focus of the program. To be honest, I was hoping to have a chance to show off what I then thought were some great CSS tricks. Boy, was I wrong. Not only were my CSS tricks unstable on multiple browsers or deprecated tags, but I also had failed to fully grasp some of the most important fundamentals when teaching myself CSS & HTML.

The first mistake I had been making before this course was using HTML tables for the layout of my webpage. This was a huge mistake according to all my instructors. However, two years earlier at Western University we were taught to make websites using tables in a Computer Science Course. The curriculum for that course was more than a little outdated I now realize. Using divs, and html5 header, article, section, aside containers makes a lot more sense. It’s useful for creating responsive websites as well. They are such a fundamental that I can’t believe I wasn’t using them for the layout of my webpages until a few months ago.

The other concept I did not fully understand was the float property. I knew what left and right meant, but I did not understand what clear:both meant, or exactly how “float” worked in general. A great tip Royce shared with the class was putting thin dotted coloured borders around containers so you could see exactly where each div was positioned. For example, if you are trying to fit a left and right div into 600px side by side and it’s not working, temporary borders can make your troubleshooting much quicker.

Another concept that I did not fully grasp was the difference between margin and padding. I now understand that difference. Padding allows for extra white space around the element. The margin property on the other hand positions the element based on the margins of the container it is within (for example, the browser window if it’s the only element on the page). Using Royce’s border trick that I mentioned above helped me see the difference visually. That was much more effective by reading the definition of each on the internet.

Looking back, I was pretty sloppy in my coding. Some of my fundamentals were lacking, and what should have taken me only half an hour would sometimes take me 1-2 hours. Without the fundamentals, it’s very difficult to improve. Although I am still not a CSS wiz, I know I have the tools to become one with enough practice and patience.

I will miss Royce’s class in the next semester. It was a pleasure meeting him and I am very thankful for everything he taught me. I could always tell he spent a lot of time and effort on his lesson plans, and I appreciate that.

Before & After: CSS & HTML

This past Wednesday was the last day of our Digital Design course at Humber College. Royce was a great instructor. He covered a lot of material, while managing to keep the classes interesting. It’s hard to keep that kind of pace in a classroom. Often a teacher will move too quickly and the class cannot

Read More

I had big plans for the weekend that just passed. Very big plans. Those plans consisted of me waking up, sitting at my desk, and working. I did plan on moving for an hour or two a day, to consume some food and to get some exercise. Everything started off well. On Friday night, I made some popcorn and sat down at my desk to get working on my assignments. I worked until 1:30 am, at which point I decided to call it a night because I wanted to have an early morning. I had a bit of trouble falling asleep, so I decided I could push back my wake-up time by an hour and watch a show before bed. I turned on my computer, and I got the loading bar of death. To those who are unfamiliar with macs, or the loading bar of death, let me explain. When I went to boot my mac, a grey screen with the apple symbol appeared and a loading bar which was inching by very slowly. Once the bar finally came to the end, the computer just shut down. At first I thought maybe it was just a glitch. But after an hour and a half of trouble shooting  — 3:00 am at this point, I decided to call it a night and leave the computer in repair mode. Unfortunately, the repair failed and the next morning I was left in what is best described as an extreme panic. I had not backed up my files (kicking myself for this one), and I had no way to access them. With finals two weeks away, I didn’t know what to do next.

I did some research online about people with similar problems. They had a few suggestions, but whatever I tried did not work. I went to the Apple store and brought in my computer and they helped me install mountain lion on an external hard drive I bought. I still do not have access to my files, but when I load up my windows partition (which works perfectly), I can see that the files are there. With the operating software installed on my hard drive I have a computer that I can at least use in the meantime. However, my files are currently unavailable.

Needless to say, not a lot of work was accomplished this weekend. Instead, it was mostly spent troubleshooting. This could have been avoided so easily if I had done what I always promise myself I would do — which is back up my information. I have learned my lesson, and I understand how important, especially as web developers, it is to back up your computer.

I still have hope that my files will be accessible, however I understand that I may have to go through finals without my notes. This is manageable — not preferable, but manageable. Luckily, many of my classmates who heard about my situation are sharing their notes with me. I apologize for the late post this week, as you can see, I was having some technical issues.

Technical Issues

I had big plans for the weekend that just passed. Very big plans. Those plans consisted of me waking up, sitting at my desk, and working. I did plan on moving for an hour or two a day, to consume some food and to get some exercise. Everything started off well. On Friday night, I

Read More

In the Web Development program at Humber College, we have lot of individual assignments and independent studying to do, but we also have a lot of group work. Our teachers, who have worked or are currently working in the industry, tell us that the reason for having group work is that in the real world almost everything involves working with others. I agree with them, and I am glad that we have a chance to build on our teamwork skills during this program. However, group work is not without it’s frustrations.

One of the greatest hurdles to working effectively as a group is finding a time to meet that works for everyone. Unlike the business environment where people are more likely to have the same schedule (for example 9-5)  or are employed specifically to work on the project, students tend to have a very irregular schedule. The best solution to this obstacle is to plan well in advance. When a group meeting time is agreed upon a few weeks in advance it gives individual members a chance to arrange their schedules around the group meeting. It is important for all, or most, group members to be present at every meeting so there is no miscommunication.

Another obstacle related to group work is managing different personalities. Earlier in the semester, we did a TrueColours workshop as a class. This workshop involved filling out a questionnaire and adding up points. The number of points you finished with in each category told you what your true colour was. There were 4 categories: blue, gold, orange and green. Then, we split into our respective colours and we learned about the different personality types associated with each colour. This was very helpful because we even covered which colours are most likely to clash, and what types of issues may arise. With this foresight and knowledge, it allowed our class members to become better teammates. For example, although I am naturally a leader, and like to take the reigns, there are a few oranges in my group. I understand that it is more effective to have one leader, than 3 leaders. Therefore, when one of my group members takes the lead during a meeting or brainstorming session, I remember to back off and just participate as a group member. In my opinion, a lot of potential arguments have been avoided and wasted time has been saved because I was able to use my TrueColours information to know when to backdown and sit on the sidelines.

Playing With Others

In the Web Development program at Humber College, we have lot of individual assignments and independent studying to do, but we also have a lot of group work. Our teachers, who have worked or are currently working in the industry, tell us that the reason for having group work is that in the real world almost everything

Read More

In the Web Development program at Humber College, we learn a lot of things that are completely foreign to me. I’ve dabbled in HTML & CSS before taking the program, but nothing beyond the basics. I’ve even had my own website for a few years, which I designed from scratch. However, I never knew just how much there was to web development. At times it feels like I’m trying to learn 5 different languages at the same time. But the great part about learning these languages (Javascript, PHP, Ajax, c#) is that things start making sense! Don’t get me wrong, I’m very confused about 80% of the time (it used to be 90%). But the other 20% of the time, I am learning a lot — and quickly. Most of my learning happens when I come across an obstacle in an assignment. Figuring out how to solve the problem by yourself takes a long time, but it is very rewarding. You learn the way that the program reads the code, and you understand how pieces fit together to give you the desired outcome.

These learning experiences are invaluable. I’ve heard people say that the best way to learn a foreign language is to live in the country and submerge yourself in the culture. I believe that this is true for programming languages. Reading a book helps, and so does theory, but when it comes down to it, it is the experiences that count. The more things you try, and the more mistakes you make along the way, the more you learn. I may not completely understand everything my teachers are talking about right away, but when I go home and do the assignments, what they were saying becomes a lot more clear. You can read all you want about a subject, but experiences and experimenting are invaluable in my opinion.

Learning a new language.

In the Web Development program at Humber College, we learn a lot of things that are completely foreign to me. I’ve dabbled in HTML & CSS before taking the program, but nothing beyond the basics. I’ve even had my own website for a few years, which I designed from scratch. However, I never knew just

Read More

As we started learning Javascript in class, I began noticing a reoccurring pattern. Everything we were learning in class made sense to me while the teacher was standing infront of the class and teaching us. However, as soon as I sat down on my own to attempt an assignment, it became clear to me that I knew very little about Javascript. I kept thinking to myself, I wish I had a javascript expert sitting beside me who could answer all the questions that I had along the way. I knew that was impossible, so I turned to the alternative: books. I found a few helpful books such as Javascript Step by Step and Modern Javascript. Although finding the answers wasn’t quite as easy as asking a question, these books held the answers to my questions (for the most part).

The problem with finding help to javascript problems on the internet is that sometimes you stumble upon the solution, but you do not understand all the parts. I find this extremely frustrating because I like to the how and why behind a solution. I am not just looking for a quick fix when I am trying to learn. These published books were more helpful than the internet because they gave me a foundation of knowledge and then built upon what I knew.

However, I found that when I used both the internet and books, I was able to overcome the obstacles I found in my projects much more efficiently. A reason for this is that the internet is full of every type of javascript example, problem and solution. So typically what I do is turn to the internet for a specific example relating to a problem that I am experiencing. The books come in handy to fill when I need to fill in the blanks. It allows me to look up parts of the code that I don’t understand, and explains why the code works the way it does.

Although the internet is full of information, as a new web developer, I strongly suggest picking up a book to increase the depth of your knowledge.

Solving Problems as a Web Developer

As we started learning Javascript in class, I began noticing a reoccurring pattern. Everything we were learning in class made sense to me while the teacher was standing infront of the class and teaching us. However, as soon as I sat down on my own to attempt an assignment, it became clear to me that

Read More

1 166 167 168