Slow Progress, Various Resources

I have been bogged down this week and making very little progress on my Udacity work, to be honest. I still found a few good resources.

Good resources I found this week:

Device Screenshot Emulator allows you take screenshots of how your site looks on various devices. This has been especially handy when I want to place images of projects I’ve worked on into my Udacity resume project. It is so accurate, the function on my site that I could always get to work in emulation in Chrome, but not actually work on my iPhone, fails to work in this emulator.

JSHint allows you to paste a chunk of code into the screen, and will make suggestions about things you may have missed or done in a non-standard way. This helped me a lot when I was getting an obscure error in Chrome due to some missing brackets.

Non JavaScript resources:

HTMLFreeTemplateStuff a Tumblr of interesting HTML and CSS templates.

Fantastic list of art tutorials by Jonathan Rector check out his art.

This isn’t even a resource, but I really have been helped by using HabitRPG to motivate myself. Losing virtual hit points by failing to complete tasks has been compelling! It also motivates me get at least 5k steps a day (yes I know 10k would be better), spend more time in prayer, work on my biceps, and any other thing I set for myself as a task. And I get to ride a pink dragon and have a pet zombie octopus.

 

Now I get to check “Write a Blog Post” off my task list!habitrpg

JavaScript is Messy

I told a friend I was having trouble with JavaScript and she said “JavaScript is messy”. I thought about this and she’s right. I am only starting to learn it, but it does have more instances of “you can do this legitimately a bunch of different ways1 than you might want your computer language to allow.

I have trouble even remembering where you need to put a “{ }” or where you just need a “;”. I don’t think those are the “messy” parts, those are just me learning the grammar of the program; learning the punctuation.

But when browsing StackOverflow I can find questions like “Why is JavaScript inconsistent across browsers” and articles on Reddit like “My JavaScript is Messy” and ycombinator articles that just confuse me (but contain some good links).

I guess JavaScript is a language. Languages grow and change. It was created by a guy back “in the day” on Netscape, and now it’s being used long after Netscape is cold in the ground. I’m sure they didn’t develop it in the 90’s thinking that it was going to become this big standard thing, used by everyone, everywhere. Now people are so constantly and consistently asking JavaScript to do things, lots of other programming frameworks and libraries have been built up around just trying to make JavaScript work faster/do things you want better/easier/more consistently. Like Node.js and Angular and JQuery and Bootstrap.

And I’m sure I’ll love the speed and ease of use those bring. But first, I’m still trying to work my way into a basic knowledge of JavaScript. The best resource this week has been the Mozilla Developer Network. This is a great, thorough explanation of just about everything you could want to know as a front end developer.  If you were somehow trapped on a desert island with a copy of MDN you would emerge from the harrowing ordeal with a substantive knowledge of the web as we know it today, and also, starve to death.

Ok, back to trying to make a for loop without crashing my browser.

1What is up with “Object Literal Notation” people. OR you can use a constructor? Too many choices!

 

I don’t Understand JavaScript

So I finally hit a little “wall” in my Udacity course. Starting from my code background of “null”1, I don’t really understand JavaScript at the pace they are giving it to me in this course. So I thought “There must be a How to learn X the Hard Way  for JavaScript that I can check!” I was wrong.2

But I found something else that was very helpful! I found an article on tuts+ called The Best Way to Learn JavaScript.  And it recommended going through the JavaScript course at Codecademy. Oh! Why didn’t I think of that? I really enjoy Codecademy anyway. So now I’ve paused Udacity studies this week to get a refresher at Codecademy.

Further on the “list of things I should have realized but didn’t”, if you are working through a course at Codecademy and get stuck, you can’t continue, and they don’t give you a solution. In order to find a solution when I was stuck, I discovered people are broadcasting themselves going through the classes on YouTube! It’s a great way to watch someone else struggle with the same thing you are (and get a hint). Note, they may be doing it on Twitch.tv too, but I didn’t check.

Finally, I started reading Eloquent Javascript which is free to read online. I haven’t gotten too far, but I expect I will buy a copy just to support the author.

1 Well, “nil” but “null” is a JavaScript term, so it’s a weak pun, yay.
2And even if there was one, it may have been beyond me, to be fair.

I don’t understand Git and GitHub

I have sometimes wanted to throw the computer across the room when trying to figure out Git, but I found some good tutorials! I’ll put the links at the bottom of this post. Not only did I find helpful tutorials, but I want to put some of what I learned about the Git commands into “non technical terms”.

Git is used to help you organize backup copies of your program. Every time you commit a copy of what you are working on, it is like saving a copy of your document/project. Typically you do this every time you’ve added something or worked on something. All the previous saved versions of your project (or whole program directory, called a repository,) still exist, and you don’t  have to keep making incremental file names the way I usually do. And before you save your file, you can look at the differences you’ve made since the last time you saved. Status will check to see  which files are staged to be saved (commit).

I end up with a big directory full of confusingly-named copies like HorseFridayA.PSD, HorseFridayB.PSD, HorseFridayB2.PSD as I am working on an Adobe Photoshop file, for example. But with Git, your current save contains a log of all the changed versions you’ve made in the past! So if you need to go back and undo something, you have all those undo-states available.

Not only can you see a log of all the changes you’ve made, if you want to go back to a previous version and then “try something different and crazy that may not work” you can clone the project and make a branch. In the branch you can create a second version of your project. Then you can work on that version. And if you end up liking those features and wanting to add them back into the original version, you can merge them back together. Handy!

But another major reason people use Git is this: when you upload your project repository to GitHub other people on your team can make changes and work on the documents at the same time you are in them. Then you can update and merge them all back together. Git will warn you if you have made conflicting changes, and you can resolve them before you merge. And you can see the differences between what you did to your copy of the file, and the other team member did.

You can even use GitHub to fork and make a copy of another person’s code repository and alter it to do the things you’d like it to do. You can pull that copy down to your local computer, make changes and push it back.

So Git and GitHub are powerful and useful, once you know what they are for! I still don’t exactly understand why the command line is favored over a graphical interface, but it is, and “they” say you will find it great after you get used to it.

 Ok, now for the tutorial links. These are some I found especially clear and easy to follow:

Making the command prompt easier to use:

Online Learning Tools (Part 2)

After I wrote that blog post on Online Learning Tools, I realized that I knew there was a site called Udacity that I had never tried. So, in the interest of being thorough, I went there to check it out. Let me tell you, I’m glad I did!

Udacity
Now I hesitated to try Udacity since I was already enjoying Udemy and I thought it would just be “more of the same.” They aren’t the same. Udacity has aspects of Udemy, sure; it has online classes at your own pace. But it has them arranged to form “Nanodegrees“: comprehensive sets of courses, developed by a key set of teachers working together. They aren’t random “this class looks interesting” buffets (which is how I am/was treating Udemy).

In Udemy there are sub-sets of classes within the classes, by “teaching group”. Say, you can group classes by “Infinite Skills” brand, and often they will go on sale that way “all Infinite Skills classes are 20% off with coupon AWESOMECOUPON“. But you could also find Infinite Skills classes at www.infiniteskills.com proper. Udacity, on the other hand, is very focused in what it offers, and who teaches it. I would say “which gives an overall more consistent learning style” but I haven’t actually enrolled in any courses yet. But I’m so convinced that Udacity is quality stuff, I’m about to enroll in the Front End Web Developer Nanodegree when enrollment begins. Wish me luck!

And Many More
Now there are so many more education options out there that I didn’t mention, like Skilledup and Coursera, edX, who knows how many others. I’m just going to add a link to LifeHack’s list of 25 Killer Sites for Free Online Education.

OddMall 2014

I had a table at OddMall!  I was next to SikRik Masks.  OddMall was held in the John S Knight center in downtown Akron Ohio, because it outgrew its old venue. I had never been there before, though I am acquainted with the guy who runs the whole show, Andy Hopp, from attending his other conventions. It was exciting to be in a big juried show like this!

Unfortunately I didn’t sell very much. But it was a good experience! If you are interested in buying any of my jewelry or dragons, some of the jewelry is up on Etsy, but it is better to just ask me about my dragons via glimmer [at] glimmerville.com.

Here be Dragons

Glimmerville at Odd Mall

Favorite Photo Apps

 

Several months ago I caved in and bought a real, live iPhone. I had never even had an iPod, (apparently) deciding that iTunes was evil. I had a Rio Diamond mp3 player (Anyone remember that? It  held a half hour of music, woo!) and then nothing, and then resisted the urge to buy an iPod, and eventually had a couple of Zens (which were very nice, and I still use my Zen XFI sometimes). But… this iPhone is amazing.

The iPhone is basically a sonic screwdriver. It does everything.

It has been a very fun experience, full of games as good or better than my Nintendo DS (or actual ports!), art apps that are as fun in their own way as my Bamboo tablet, and a GPS with Geocaching apps that is better than the GPS I used to have. Not to mention a compass, a flashlight, and an app that lets me find my parked car! (Note: Many people have told me that they want an iPhone just for this app!)

People can, in fact, take serious photos with an iPhone. I just listened to This Week in Photo and heard them interview Jack Hollingsworth who said that he could easily see people taking wedding photos with an iPhone – especially since most photos these days only need to be “screen quality”. But he also pointed out that he could make a nice 16×20 print out of an iPhone photo. Amazing.

The one drawback is that no one takes you seriously as a photographer when all you are holding is a camera phone. [Future Update Note, in 2015 this is changing. – RR]

I will only point out a couple of apps that I enjoy here:

  •  Instagram:  This is free. It was practically the first app I installed. and it just a fun “Twitter, but made up of photos” app. Very fun! And sends the photos to Twitter, too.
  •  Camera+: I resisted buying this for awhile. Why do I need a camera replacement app? I thought. But it’s a very solid app, with many features. Still figuring this one out, since I actually bought it today. Additionally, here is some interesting info about the woman behind this app.
  •  Photoforge2: Another app that allows me to manipulate photos in a pseudo-photoshop way. Lots of filters and lenses, textures, colors, borders, grunge. This has a great function for sending images “to the cloud” as well – not just Twitter, but also Tumblr, Dropbox, e-mail… many options. And if you pay extra you can access many more features.
  • [2015 Update: This app is apparently gone.]

  • I also enjoy Silent Film Director, for converting your film into an “old-timey” black and white style, complete with title cards and soundtrack/clackety movie reel sound effect. But I just don’t take as many films as I take photos.
  • Lasty I will add SketchBook Mobile – a fantastic drawing app, that also allows you to import a photo and draw on top of it! This one was worth buying a Stylus for.

Anyway, feel free to suggest other Apps in the comments!