Tuesday, March 10, 2015

Great article: Writing Code for Humans

This great article, Writing Code for Humans, contains some great advice for writing more readable code. The advice includes:
  • Use nothing but what you absolutely must. Do not include a single line of code (especially from libraries) that you are not 100% sure you will use and that it is the simplest, most straightforward solution available.
  • Write more human code. Give your non trivial variables (and functions) descriptive names. Make shorter lines but only if it does not compromise readability.
  • Treat your code like poetry and take it to the edge of the bare minimum.

Monday, October 20, 2014

Playing with CSS3







Now Hear This!



You can search around for CSS tools to make your blog post look more interesting. Copy and past them to the HTML format (upper right) and then write your blog post.

It is good to pay attention to what features work on which browsers. Many of the flashing types of headlines from the 1990s no longer work in Chrome -- for good aesthetic reasons.

Watch out for Public WiFi Networks

In this article, What we give away when we log on to a public Wi-Fi network, the author works with a white-hat hacker to find out what he can learn about users in a cafe with public WiFi. The answer will astound you.

For example:

  • In 20 minutes, he knew where everyone else was born, what schools they attended, and the last five things they googled.
  • We learn that Joris had previously visited McDonald’s, probably spent his vacation in Spain, and had been kart-racing.
  • We see that one visitor has the gay dating app Grindr installed on his smartphone.
  • We also see that someone’s phone is attempting to connect to a server in Russia, sending the password along with it, which we are able to intercept.
  • In less than 20 minutes, here’s what we’ve learned about the woman sitting 10 feet from us: where she was born, where she studied and that she has an interest in yoga.
  • Within 20 minutes he’s obtained the login details, including passwords for my Live.com, SNS Bank, Facebook, and DigiD accounts.
So, how can you be safe?  Read How to safely use a public Wi-Fi network

Friday, September 26, 2014

Designing a Compelling Game

In class today we looked at some examples of the Mario game from other students, and talked about what we look for as the characteristics of a good game design. These are good to keep in mind as we design other games this year. We first need to meet the requirements. And the more compelling we can make the game beyond that, the more fun it will be to play.

Here is the list of characteristics of good game design from our discussion, in the order the students shared them.

  1. Good story line. Make it interesting, not boring. Have a plot to follow.
  2. Different. We like playing new games more than returning to old ones. 
  3. Intricate. Have lots of things happening to make the game more interesting.
  4. Winnable. At some point the player wants to think he or she can win at the game, and make that point clear. What is the objective?
  5. Score Points. Along the way show progress by awarding points for various achievements. Players can get a sense of progress even if they fail to win the overall game.
  6. Challenging. While the player wants a chance to win, he/she does not want it to be too easy. 
  7. Social Gaming. Set up the game to enable players to play with friends. Compare scores. Put various players in the game. Talk with each other while playing. Whatever.
  8. Not Buggy. Make sure the game works smoothly. Bugs are distracting.
  9. Good graphics. Many of the best games are nice to look at. 

Feel free to add comments to this blog with other characteristics we missed or which of these you find most important.

Thursday, September 25, 2014

Truth Tables

Today we talked about basic Boolean operators -- AND, OR, & NOT -- and how to use them in Truth Tables. Understanding how these work is fundamental to computing because IF-THEN-ELSE statements must test for conditions to tell the program where to go in the algorithm.

In case this is tricky for you, you might want to check out this brief video to review the concept of Truth Tables. Make sure you understand before you proceed because so much of your programming will build on this simple logic.

Wednesday, September 24, 2014

Make Big Money As Security Expert

The class may remember the brief discussion about Kevin Mitnick, who was one of the original hackers. He was caught, convicted, served time, and has now turned to good.

This recent article, Kevin Mitnick will sell you security exploits, if you have $100,000, highlights how people on the "good" side of security can make money. Although this article points out he is in "murky" territory.

He is offering to sell zero-day exploits (which means recently-found security holes) to companies. Presumably this would be to the company that needs to fix the exploit rather than companies who will try to make money off the exploit.

Many companies offer cash bonuses to people who report security flaws to them ... first. But I suspect $100,000 is on the high side of the bonuses offered.

Tuesday, September 23, 2014

Turing Machine

We discussed Alan Turing and his concept of the Turing Machine. This is the foundation of computing.

The video we watched is from Computerphile.

The Google Doodle that simulated the Turing Machine is at this link.