Monday, May 30, 2016

JavaScript In My Learning Project

I have created a webpage with JavaScript on it!!!

Let me just say, I have learned a lot this week (read, so many mistakes, so many).

As I have stated previously, I have decided to use GitHub as a repository for my code. I am a big believer in versioning, and this also allows any who want to view what I have written. This means I have a profile page at WyerByter.

Then I found another advantage. GitHub has what are known as GitHub pages. The idea is that an individual, organization or project can have a webpage with information about themselves. So, I have set that up. My User page is http://wyerbyter.github.io/. With my learning website underneath at http://wyerbyter.github.io/my_first_website/. There you will find a link to my first page with JavaScript. Added. The page with the Javascript is doing basic math with complex numbers. I promise I will post something explaining complex numbers, they aren't as complex as you think. I will get to the fractal post as well, but I will do the complex numbers first as most fractals are done with complex numbers.

What did I learn? Well, a lot of git. I already knew that creating repositories was easy (that's so last week), but I found out that creating branches is just as easy. Committing code is also easy, just do yourself a favor and write commit comments that mean something (not something I learned this week, but a good rule of thumb). Pull requests are even easy to create, though not necessarily easy to complete. I realize that a lot of this may not make sense if you do not know anything about version control, so I have already posted a list of definitions

I also learned some interesting things about JavaScript. I put the code for this page within the html for the page, this means a loss of most of the intellisense that Visual Studio Code was giving me for .js files. Either that or I still have some to learn on setting up the environments for Visual Studio Code.

I learned that I can do Git commits directly from the Code application, which is convenient.

I also learned that if you specify the type of the script in the script tag, make sure you have it right, and "javascript" is not the same as "text\javascript" which is correct.

Also, spelling is important. Very important.

Sunday, May 29, 2016

Version Control Made Easy... Or Hard, Not Sure Which.

For those not familiar with version control, version control is something that it's used to keep track of a project and the changes that are made. This way previous versions can be gotten to if errors are introduced, to easy multiple people working on the same files, or for other reasons. In the situation that I am discussing this the files are primarily code files, but they don't have to be.

Most of my experience so far is with Microsoft's version control systems SourceSafe and Team Foundation Server (TFS). However, Git is slightly cheaper (free), with web based hosts that are also cheap (free) like GitHub. I am used to how TFS works, I am learning how Git works. The differences in Git leads to a slightly different vocabulary. And those that don't know version control won't know the terms anyway.

For convenience sake I will put several definitions here for those with questions.

A repository is a project and all associated files and all their versions.

A branch is an independent group of files, often a copy of all project files, but not necessarily. The master branch is the main branch of the repository and usually considered "the code" or "the source". Most other branches will be copies of the master branch allowing the code to be edited without effecting the master branch.

To clone a repository means to copy the entire repository to your local machine. This allows the code to be worked on with out needing to maintain a network connection.

To commit code means to persist the changes in the local repository, making them the "official" latest version.

To do a push is to sync a local repository with the main repository. This step is necessary due to the detached nature of the local repository in Git.

A pull request is a request to include changes that have been made in one branch in another.

A merge is the process of comparing changes made in two locations to determine which changes need to be included and which can or need to be dropped. It is possible for multiple people to make changes to the same file and those changes to conflict.

If you have any question please feel free to ask. I realize that this may not cover everything that some might want to know.

Sunday, May 22, 2016

Weekend Update

I want to clarify, my personal goal is to post something at least every weekend with what I have done that week. However, I expect some weekends I won't be able to work, so I am asking you to keep me accountable for every other week.

As for what I have done. I have created a webpage. Not a website, still thinking about that.

If you want to see it I have decided to host my code on GitHub. My First Website.

It's not pretty and it doesn't do anything but display some text, but enjoy.

As far as hosting goes, I am beginning to look for something. I have heard of SquareSpace, and Hover. Also, I have seen ads for Google. Please leave a comment with your favorite host, especially if they are friendly to code.

I hope to get that fractal post out this week.

Sunday, May 15, 2016

What I'm doing (Not the Fractal Post)

So what am I doing? Learning JavaScript, I thought I was clear on that. Oh, more detail. I'm not completely sure, I thought I was clear on that. I have at least one JavaScript book, particularly Thinking in JavaScript by Aravind Shenoy. I have access to Pluralsight. There are lots of sites online that have stuff.

The big idea is to create a website and iterate though several versions of the same basic program. The first a quick and dirty make it work. Then see if I can implement changes to ensure that blocking doesn't occur. Then maybe try and offload the calculations on the server. (Fractals, post coming, hint it's a lot of calculations).

In the end I expect to host it on the web so others can point and laugh. There are a number of things I have to figure out.

Saturday, May 14, 2016

This time I mean it!

Okay, so I'm going to try this again.

I have decided to try and get in to JavaScript development, specifically web and Node.js?

Do I know what I'm doing? No, I'm not even sure I know what I'm getting into.

Why JavaScript? Node.js d'uh. Clarification, I recently got my hands on a quad copter, and there is in the local developer community that has a meetup for robots. Robots need to be programmed, my quad copter can be programmed. This meetup for robots is Node.js based. Also, the local developer community has a Slack channel, and from that I have found that there is a demand in the area for JavaScript developers. I guess I'm just looking for something new and this presented itself. Plus, if I have something on the web, then I can say I did something? Right?

Now a little about my self. I have been a professional developer for over 12 years, and programming for much longer than that. I have programmed in Pascal, FORTRAN, COBOL, BASIC and Java. I have been paid to program in C++, C#, Visual Basic, VBA, SQL and even a little JavaScript (JSON).

As you can see, I have a broad experience with programming languages. I have gotten to the point where I can troubleshoot and even code simple things just by Googling the language or getting a book. Most of the time I find I just need the vocabulary, the syntax is very similar from language to language. Especially in the languages descended from C.

So the hard part is finding a project to do. I find I learn better if there is a goal in mind. But that is the issue, I haven't known what to do, but I'm giving up that and doing my favorite types of projects - fractals.

What are fractals? Well, that will have to be another post.

What are you using? That is a very good question. I'm not sure. I currently have Notepad++, Sublime, Atom and Visual Studio Code installed. If you have suggestions on what to use or tools or tips for the above applications, let me hear them in the comments. I will also need a domain registrar and (maybe) hosting, if I am to let you see my code. Again, any wisdom you have will be greatly appreciated.

The goal going forward will be at least one post every other week. We'll see how that goes!