2014年10月30日星期四

Vidreview2: Simple Made Easy

This is another video review that is based on a presentation given by Rich Hickey, the founder of Clojure. The presentation is about "Simple Made Easy" in purpose to help other programmers to especially distinguish the differences between simple programming and easy programming.

While many programmers(including myself) often chooses easiness over simpleness, Rich emphasizes simplicity's virtues over easiness'. As a support, he stated that many easy-start programming might end up with complexity and the better way is to choose easiness along the simplicity path.

Goods:


  • Rich started with the origin and the dictionary definition of the words and inherit them into programming terms. This is a great intro and helps the audiences to quickly pick up his points that being simple is completely different from being easy.
  • Stated that being simple vs being easy does not only exist in programming but also our daily life. To me this is very connective to me because logical thinking in programming is almost identical to decision making in our life.
  • Emphasized that being easy is always a relative statement which tells people not to avoid things that are not familiar to miss the opportunity to learn.
  • I enjoyed the chart a lot that shows a list of complexity vs simplicity. Similar topics also includes complect vs compose, modularity cs simplicity and environmental complexity.

Awesome Quotes:

  • "If you want everything to be familiar, you will never learn anything new." 
  • "Programming is not about typing, it is about thinking."

Bads:


  • Topics / the way of Rich's explanation is made exclusively for programmers which is the reason he did not explain a certain terms. This is not necessary a bad thing but to me it is a little confusing.
  • It is a typical presentation / lecture form which might or might not be an expressive/interesting way for some people.
  • Doesn't sound like that there should be an exception of where the complexity should exist in prior to simplicity which in many cases it does. IMO under a certain environment/requirement it is necessary to take a more complex approach to maintain and secure the performance. If that's the case, I think Rich should emphasize that simpleness should exist in prior to complexity based on the same level of performance.

Overview:

Generally I would give a thumb-up to the presentation. Rich made programming sound so easy which is very interesting for me to feel how he feels about programming. It is also inspirational to know that in many cases easy approaches might actually be more complex and slows you down. Thinking about an easy approach does not always mean you will spent less time struggling.


2014年10月28日星期二

Vidreview2: Simple Made Easy

http://www.infoq.com/presentations/Simple-Made-Easy

XO Smoke Test

This is the Smoke test of the XO that I mentioned couple weeks ago. It is generally a list of steps that you have to go through in able to test the device on both hardware and software sides. I've had a lot of fun with this device as well as some pains.

Hardware:

Hard wares are working great. Battery and network adapters are in excellent conditions. Additionally, microphone and camera are actually much better than I thought. One exception would be that the laptop will have a hard time finding a nearby wi-fi when the system is under "sugar" mode - but that will be the software side problem and is relatively minor.

Software:

Software consists a list of steps including running local activities, transferring files and installing activity or library bundles. The main purpose for these steps is to test the functionality of the current installed system. This is the place where I ran into some trouble.

Local Activities:

The local applications are all running great. Lots of fun times playing around with the interesting apps while testing out the functionality of the microphone and camera.

Image Transferring:

Ran into a little trouble while I tried to copy the image onto a clipboard. I had to save and use the image instead.

Activity & Library Bundle:

This is where the pain starts - the USB file transfer works great except that the laptop runs into an error when it tried to install the sudoku.activity.xo. Additionally, a "bible" library bundle also had no reaction when it's been downloaded and executed(the other smaller library bundle Web_design-3.xol however installed just fine).

In general, the system works okay as I follow alone the steps - it did actually ran into "crashed screen" for a moment occasionally when I tried to run some apps. I will look into the above issues and try to not let it be in the way when I start developing my own games.

2014年10月23日星期四

Vidreview: RiP: A Remix Manifesto

This is a video review on the movie "RiP: A Remix Manifesto" directed by Brett Gaylor. It is a open-sourced documentary film released in 2008. Throughout the movie, it talks about the history and concept of copyright in United States, as well as the world. Additionally, it included different people's opinion toward copyright and the evolution of copyright.

More specifically, the movie includes the following topics which are exclusively interesting to me:

In able to demonstrate the ideas, the movie uses the examples including:


Good:
  • The movie focused on a following outline. During each point, the movie talks about the cause and effects by listing different examples that demonstrates the situation during the period of time.
    1. Culture always builds on the past
    2. The past always tries to control the future
    3. Our future is becoming less free
    4. To build free societies you must limit the controls of the past
  • Mouse Liberation Front(Air Pirates) demonstrated the idea of copyright in an ironic way which I thought was amazing. It questions people by asking "If Disney can do it, why can't we?"
  • It's very interesting to know that the Happy Birthday song actually has a copyright... This means people who sings the song in any public domain without a permission(from Warner Chappell who owns the copyright) will be charged and is considered to be a crime. This is also another ironic approach to the copyright issue.
  • A lawyer suggested to consider the copyright in terms of a "fair use" instead of "stealing" just like how literatures quote each others. Since the line between "fair use" and "stealing" is so blurry, the copyright issue then turns into  a "word game" that nobody can clarify.
  • The ends with a strong quote to support its point.
  • "If this(remix and equivalent issues) is crime, then we have a whole generation of criminals."
Bads:
  • The movie is relatively bias on its points and shows almost no counters on copyLEFT.
  • Girl Talk took up a huge portion of the movie - I understand that it's a good example of copyLEFT but it's not necessary to continuously talk about him throughout the entire movie.
  • The 4th point of the outline of relatively rough - the movie spent only the last few minutes talking about Creative Comments which it should actually play a huge role in the copyright issues.
  • The movie continuously emphasize "copyright is been manipulated for profits" so that the copyright is extremely evil to the audiences - which I believe that's not the only case of why people would protect copyright.
  • The movie kind of put remixing and pirating issues on the same line which they're actually different things.
Overall the movie is good to me. Even though it is a bit bias on the copyRIGHT vs. copyLEFT, but at least it's reasonable on proving the copyLEFT side. It is a good movie for people to know and understand the idea of copyLEFT.

The complete movie is linked below:

2014年10月15日星期三

HFOSS - Team Project Proposal

Team Members:
Name               |  Email
Tom Conroy     |  tdc5536@rit.edu
Anjali Tewari    |  axt6472@rit.edu
Danny Nguyen |  dxn7335@rit.edu
Lanxi Xing        |  lxx4650@rit.edu

Which project did your team choose?
A project that we will develop from scratch called 24.
2-Liner Description of the project?
24 is an arithmetic game that references the old classic math game by the same title, where players are given 4 numbers that they must use each once to create an equation using any operators they choose to get the number, 24. This game is also planned to be have a multiplayer aspect to it, where players compete to see who can get 24 the fastest.
What will each team member's role be?

Tom Conroy : Coordinator, Developer (Front-End)
Anjali Tewari : Research, Back-End Developer
Danny Nguyen : Documentation, Developer (Front-End)
Lanxi Xing : Documentation, Developer

Source Code Repository URL:

What are the easy parts?
  • Determining the set of numbers each round (must be possible to get 24)
  • Determine basic mechanics of game and storing of data (simple data being stored)
  • Check player's inputs/attempts for accuracy 

What are the hard parts?
  • Designing the interface for the game (must be 4th grader friendly)
  • Developing the game to be multiplayer (deciding how many players at a time, how to maintain open connection between players, how data is passed, and how winner is to be determined/calculated)

How will you overcome both? Include milestones.
  1. Solving math problems without much context is boring, so some kind of motivation (mission aspect in game or competition) is highly needed. We will need to brainstorm possible concepts
  2. The user interface for the game must be intuitive and friendly enough that 4th grader would easily understand and use. We will have to study other educational games made for kids and design the game to fit their similar practices
  3. Most importantly, with our limited knowledge of the XO technology, we will need to study on how to create a steady connection between devices in order to have the multiplayer aspect be possible. (Leaderboards, time collections) We can possibly analyze the File Sharing Project previously developed for the XO to study how they managed to connect multiple devices.


2014年10月14日星期二

Picking up Python...

Believe me or not, picking up a language that you've not been using for the past three years is harder than you thought...

I started Python programming when I was a freshman majoring Computer Science. The syntax of the language was very interesting and it is actually a great language for program starters.

Recently I started to pick up Python because the task now for my HFOSS class is to design an educational game for 4th graders. The game should(and is easier to )be implemented using Python.

I went back and looked at the code I did back when I was a freshman. Python contained a .turtle graphics class that allows the programmer to type in a list of commands that draws shapes. It is a great way to introduce programming to new programmers.
This is a recursion code I did to draw a series of circles.

Also by going over the old codes that I did, I found out that Python is ultimately fast at calculating small data. This is a big advantage over other languages in my case because the educational game should not really take a lot of calculations (both for the machine and the student).

The hard part for me in learning Python is mainly the syntax of the language(or my coding habit). Since python handles variable and data differently, it will switch your variable from a type of a string to an int - which is a horrible design pattern issue. Therefore I had to be really careful in creating variables to keep both me and my variables static...

I will keep up learning Python myself and hopefully by the time my team started to develop the actual game I will be more familiar than I was.

XO?

So I was messing around with the device we just got in class last week and I thought it is a pretty interesting device. Therefore I decided to write a post and talk about my experience over this XO laptop.

A XO laptop is a laptop device that is designed for younger generation students (4th graders), developed by On Laptop per Child(OLPC). It is a low-cost, connected laptop for the world's children education.The hardware of the laptop is actually not that powerful(which make sense, it's considered to be an educational device instead of a high-performance entertainment device).

The XO laptops run Fedora Linux with the Sugar Labs GUI - which is an interesting GUI that I've never seen before. I tried to play around with the device, it provides some basic PC functionality including typing, connecting to internet, browsing and etc. But the operating speed is really not that fast...

Our task on this device is to develop a educational game for 4th graders that runs on the XO laptop. The game will be most likely be coded with Python - which is a language I've not been touched in a while. By playing with the device, I'm already seeting a lot of possibilities that the device can have in order to run a educational game.

I will soon writing a blogpost about the smoke-test I did on this device.

NY & MA 4th Grade Math Curriculum

The next step for our HFOSS class is to develop a educational game for a 4th grade student. The game should be running on a XO laptop, supported by the One Laptop per Child program. Our current task is to analyze the math curriculum for 4th graders in both NY and MA.

In order to correctly analyze the curricula and design the game, we will have to answer the following questions:

  • Among the two curricula, how are they the same?
  • Among the two curricula, how are they different?
  • Which one of the topics would you prefer to implement?
  • How will you implement the topic you choose?
Below are the links to the curricula:
MA - 4th grade curriculum
NY - 4th grade curriculum

Among the two curricula, how are they the same?
  • Both the introductions are exactly the same (3 major topics, examples, and even wording)
  • Eight Mathematical Practices
  • Grade 4 Overview
  • 4.OA: Operations and Algebraic Thinking
  • 4.NBT: Numbers and Operations in Base Ten
  • 4.NF: Numbers and Operations - Fractions
  • 4.MD: Measurement and Data
  • 4.G: Geometry

Among the two curricula, how are they different?
  • 4.NBT: MA curriculum additionally requires 4th grade students to know multiplication tables and corresponding division up to 12 x 12.
  • 4.NF: NY curriculum additionally expect 4th grade students to know fractions with denominators of 2, 3, 4, 5, 6, 8, 10, 12 and 100.

Which one of the topics would you prefer to implement?
  • "Understand decimal notation for fractions, and compare decimal fractions"

How will you implement the topic you choose?
  • My initial thought would be to have students compare a set of fraction numbers to a set of decimal numbers. This includes converting, equaling, > or <, and possibly rounding.
  • Will implement multiplayer mode if the device allows.


Hudl Visit

This is a blog post about a visit of Rob Hrusa(@robhrusa), a software developer from Hudl. Hudl is a video analysis / editing tool for aethlets and coaches. This is a digital version of the playbooks for sports teams back in the time.

During the visit, Rob not only gave a presentation that talks about Hudl and himself, but also the meaning of FOSS from both the developer and business perspectives.

OSS / FOSS / FLOSS
There is a difference between Free Libre and Open Sourced software, most of these issues comes from licenses. Libre allows everyone to use it but does not documentary mention anything when it gets to the source code distribution. On the other hand, open source means that the source code is open for both the developers and users.

FOSS on Business
It might sounds a little contradictory when we talk about FOSS and business together. However, it is essential to meet them together since FOSS is ultimately a product and business essentially needs to make money. During Rob's presentation, he listed out both reasons of why business would and would not join open sourced software.

For example, business would use open sourced software because they save costs, contains less bugs and is robust throughout the time. FOSS also helps business to avoid licensing problems - which ultimately also saves money for the business.

On the other hand, there're also many reasons of why business would not use open software. FOSS are really hard to regulate, they are not invented locally and they could possibly have security issues. Additionally, one of the big reasons would be that the business don't want to lose their competitive advantage. However, Rob countered the reason by saying that not all of the code has to be open sourced. It is smart and useful to keep a little code for yourself and keep the reusability of the code.

Finally, Rob talks about his general opinion towards the FOSS. He describes the developers as the catalyst of software. It is great to be a piece of the community that solves problems and improves project together. Remember that perfect is the enemy of innovation.