Think Security for the New Year!

Happy New Year!  I wish everyone a happy and prosperous new year.  But in order for that to happen everyone must remain aware and vigilante of their own security.  So this year I plan to post more security relevant information as well as tidbits that will help all my visitors recognize when things are just not quite right.  To start I urge you to remain aware of the security used when going to some of your favorite and trusted websites.  When using banking websites or websites that ask for your personal information you should always use https, which is used to make a secure connection between your browser and where you’re visiting.  Below are some examples of how different browsers show you’re connected securely:You should be aware of this especially when connecting wirelessly because wireless connections can be hijacked to obtain your personal information. Krackattacks.com has released a video showing how a man-in-the-middle attack can be done to you even when using WPA2, one of the most secure Wireless protocols (See Below).

So while browsing this year train yourself to be aware of whether a secure connection is being made and if not don’t enter any personal information because it may not be secure.

 

Resources to get kids into computers

If you’re trying to get your kids into computers and programming here are a few resource that may be useful.

Alice (http://www.alice.org) – Alice is a 3D programming environment desgined to teach childrean object-oriented and event-driven programming.  
Arduino (http://www.arduino.cc) – Arduino is an open-source electronics prototyping platform with both hardware and software components. Arduino’s hardware is programmed with a language similar to C++.
Blockly (https://developers.google.com/blockly/) – Blockly is Google’s refinement of Scratch using the same interlocking building blocks metaphor, but it can output code in several different programming languages. 
Hackety Hack (http://hackety-hack.com) – Hackety Hack is an open source application that teaches the basics of programming in the popular Ruby language.
Kodu (https://www.kodugamelab.com/about) – Kodu is a game programming app from Microsoft designed for the Xbox 360.  Although this has been abondoned it could be useful since it works on Windows 7 and XBOX 360.
Lego MindStorm (http://mindstorms.lego.com) – Lego mixes robotics and programming with its MindStorm kits.  FIRST even holds yearly competitions which will allow your child to adventure to a whole other level in teamwork.
Lightbot (lightbot.com) – Lightbot is a programming puzzle game from Danny Yaroslavski, a Canadian university student.
Scratch (https://scratch.mit.edu) – Scratch is the MIT Media Lab visual programming language for children age 6 and up.  My kids like this program when introduced to it because they could see the results of their coding and making animatiosn was fun.
Swift Playgrounds (https://www.apple.com/swift/playgrounds/) – Swift Playgrounds is an iPad game designed to teach kids how to program in Swift, One of Apples App programming language.
Tynker (https://www.tynker.com/) – Kids learn fundamental programming concepts with a Lego-like visual language, then progress to JavaScript and Python as they develop skills and gain confidence in their new abilities.
Twine (https://twinery.org/) – Twine is a storytelling app that can be used to teach structure and non-linear games and stories.

Other useful resources for learning coding concepts and programming:

Which programming language should you learn

So if you want to be a programmer you should pick the language that matches the area of software you want to develop in.  For example, learning html and php would be a good start if you want to develop websites and website components.  Java and javascript are other languages that are used in website development but there is a big difference between the two.  Java is the actual object oriented programming language for building stand-alone applications run on billions of devices world wide.  While javascript is web based programming language that runs in your browser from html documents.  I mention this because programming can be done at any level of the computer stack.  Some people, mainly engineers, program at the lowest level of programming using assemblers and custom  which are one level above machine code, the ones and zeros.  Others write applications like the programs you use to browse the web, make documents or play games.  These programs are usually written in languages like C++, C# or Visual Basic.  At the highest level you have interpreters which are programs that are not compiled to be turned into binaries like the applications you use on your desktop but instead are directly executed. Perl, Python and RUBY are examples of interpreters.
Below are a list of the programming languages I’ve worked with or used and what they’re commonly used for.  They’re alphabetically so I don’t sway you with my preferences.
ASP – This is Microsoft’s server side scripting language.  I compare this to PHP in the non windows environment.
Basic – This was one of the first programming languages I came across and used to write programs while in elementary and middle school.  It is a straightforward high level computer language that was used in the beginning days of the micro/desktop computer.
C/C++ – I was introduced to this language in college and it was my introduction to object-oriented programming.  According to Wikipedia, C++ is the third most popular language behind Java and C.  Lots of applications like Office and your web browser are written in C and C++.
COBOL – Primarily used in business, finance and administrative systems I’ve only seen this language once while at NASA running on one of their old mainframes.  It was still doing computations at the time but the project I was working on was create to come up with its replacement.
FORTRAN – I like to call this one the Math language.  FORTRAN is a programming language suited for numeric compilation and scientific computing.  Most mathematicians I’ve met in my career have used FORTRAN or still do.  FORTRAN 90 is the latest version of this language.
Go – Google has decided to develop its own language and this is it.  Go has been gaining moment and is a fairly simple to use programming language.  According to golang.org, the motivation for Go was to build a language that worked well for building the large software that Google writes and runs.  I’ve used it and seen it used to replace programs that we would normally us Java but takes less lines of code.
HTML – HyperText Markup Language is the language used for most web pages.  If you’re old enough to remember the days of using Gopher and WAIS you know why HTML was created.  HTML is the language that brought about the modern browser for accessing the internet and is used to display content through the browser.
Java – An object oriented language created by SUN used world wide.  This is probably one of the most used programming languages I know.  It used for all sorts of applications and devices.
Javascript – This would be the programming language for the web.  Javascript, like Java, is object oriented but is an interpreter language.  It is a scripting language for web front ends.
MATLAB – Another Math focused programming language.  This programming language is designed to manipulating matrix and math data as well as plotting functions.  This is another language I see in the mathematicians toolbox.
Perl – This programming language is another object-oriented language which is heavy on text processing and manipulation.  It is also used behind some web sites and with various mark up languages.  I used it to write CGI scripts for web backends.
PHP – This is a programming language suited for web development.  The CMS WordPress is written in PHP along with several other web based applications.  It can be embedded into html which makes it very useful for web development.
Python – This is a high level programming language that I’ve used for various things.  Mainly I use it when I want to accomplish a task in linux without writing millions of lines of code.
R – This language I’ve seen used for statistical computing and data analytics.  This is another language in the mathematicians toolbox.
Ruby – I taught myself the basics of this language in one day.  Its a very simple programming language with syntax that was very easy to read and write.  And I’ve used it to accomplish simple scripting task.
Swift – Apple developed swift for its iOS platform.  Swift is the programming language for Apps and programs written for its devices.
Visual Basic – Microsoft created this language for developers to create applications for the windows operating system.  I’ve written some simple code but I’ve been told you can do a whole lot with it especially when developing applications for windows.
So which to choose.  That my friend is really up to you.  You can, like I have, learn a little of each and then decide which you will master.  Or, like most of the developers I meet, select the language that is easiest to accomplish the task your being asked to do.