2014年12月17日星期三

Get24: Final Deliverable

As up to the due date, the development of our Get24 pygame is finally finished. Unfortunately the GUI version of the game is not fully functioning right now. We’re still have things left to do on deleting and recreating number buttons as well as the winning scene. The last couple meetings with the team was quite stressful because of the amount of works everyone has in the end of the semester. We’re definitely down for finishing up the game afterward.

Things I would do differently if we’re coming back to improve the game:
  • Improve/fix the frustrating event handlings that we got from Fractionauts (maybe rebuild them from ground up)
  • Improve the game playability by adding sets of numbers and store them for different difficulties so we can all levels of toughness to the game.
  • Increate interactivity between the game and the user by adding animations, hovers and sound effects to the buttons.
  • Add the undo button, reset button, and possibly hints button.
  • Add leaderboards with network capabilities


2014年12月16日星期二

.gitignore.oi


So the reason I bring this up is that recently as we're developing our Get24 pygame, random .pyc files are been generated when we execute the game. I believe it is some kind of windows cache files that generates whenever the main .py file gets executed. This is really annoying because we will then keep uploading these .pyc files to our github when we commit.

.gitignore.io is a web application that creates a .gitignore file so you can use it on a github repository. The .gitignore file will contain the kind of language and file format that you want the github to ignore when you're doing a push. The .pyc files in this way will not gets puloaded to the repository which therefore makes the repo cleaner. You may use the web app for basicall any type of language and file format.

The appliation also supports a command line version. To run gitignore.io from your command line you need an active internet connection an environment function. You need to add a function to your environment that lets you access the gitignore.io API.

This application is opensourced on Github and has a copyright license. For a more completed explination and tutorial, click me.

2014年12月15日星期一

Get24: Changing scene & passing event

We're continuing working on the terrible event handlers that we got from Fractionauts since it's already in the middle of the way and we will have to reduce so much stuff to switch back. The event passing is functioning well. However, if I have time I would definitely dive back in and simplify the passing methods.

The graphics that handles the events are however great. It's nice, simple and clean to interact with. If we have more time to playtest with 4th graders I would consider adding more colors to the backgrounds and buttons so that it looks more childish. But sofar I'm satisfied with the interface we have.

Another issue that we ran into is the scene changing. This is also a division of the event handler issue that the state of the scene will not properly pass to the next scene. Additionally, when we switch out the pygame window and switch back, the handlers magically work again. Therefore we switched the type of the button so that detects the location of the click instead of handle the event that it passes.

We're definitely approaching the end of the development since we already have the model of the game done. We will soon create the numbers and operations button and implement the model to the scene.

2014年12月14日星期日

Working with team on Github


Since this semister is the first time I'm working with Github, I'm still kind of new to it. I've been having all kinds of trouble with Github on both my class repository and my team project repository. Until recent I finally found out how to successfully check my conflict files and send a pull request without creating tons of mess.

One thing I found out that having a programming project on Github could somehow be not helpful. It is definitely a benefit for a team to have a project "dropbox" that anyone can access it at anytime. Additionally, when people are unavailalbe to meet they will not having trouble access and edit the newest version of code.

However, when we're having an actual meeting and trying to work the project together, we will still have to work on one single screen together. Due to the size of the project, we're essentially editing the same file and it will obviously cause tourbhe if we're all working on the same file and stepping on each others' toe.

I'm sure there is a way on Github to work around this. However due to my level of knowledge on Github it is pretty painful to constantly resolve merging conflicts. I'm still having a positive aspect toward Github because it is essentially a great platform for project development and management. I will definitely use Github as one of my major tool for developing in the future.

2014年12月13日星期六

XO Develop: A quick look into Fractionauts


As we're developing our Get24 XO game, we're starting to look at the programming structure of the Fractionauts game. Fractionauts is an educational game for the XOPC that teaches fraction operations with rockets. Since the game is involved with many assets and animation, the structure of the game behidn the scene is actually pretty complicated.

The game is basically constructed with a main class, several scene classes, asset classes and helper classes. The main class will init and keep track of the game state. Additionally, main class will initialize a huge (HUGE) amount of listers and helper methods that are used to pass different game states and click events to rest of the scene classes. Each scene class will pass these events to their own handlers that keeps track of their own click button events and state event. They will also triger their own event that calls each helper functions to draw graphics and import assets.

I got really confused between all these event handlers because there events within events that passes events to a event handler which triggers another event in some other classes... I would definitely say that Fractionauts is a well-organized program. However I would also argue that the structure is a little redundant.

Overall I learned a lot from the codes in Fractionauts both in picking up python and integrating pygame. Hopefully I can apply some of these algorithms to the Get24 game we're developing.

Get24: "Your mom's in another computer"




We're currently in progress of debugging the game loop that runs every "frame" and ready to detect the next click event. The major issue we ran into is that whenever the mouse event is triggered, the exception will trigger and the loop will be restarted - which causes a infinite loop, memory issue and etc. Therefore we placed a print statement "your MOM" inside the loop so we could test out when the loop is running. However, after we finish testing with the loop and take out the print statement, "your MOM" is still there when running the loop. We checked every script we had looking for "your MOM" but we couldn't find her (I mean it). It was hilarious that we're constantly suggesting to each other on where "your MOM" could be found.

Solution:
  • We found out that it's the VM that we're running is causing the issue magically. Somehow the print statement is cached somwhere in the system after we removed it. After restarting the VM the print statement was gone.
  • The looping issue still exists... Just without "your MOM".

Get24 - XO Game Dev Progress

 

The development is currently in progress as we're using pygame as our framework. Plans now will be to have mainly two scenes such as initial scene and game scene.

  • The initial scene will contain the start button, help button, quit button and a game logo.
  • The game scene will be the main interface that contains the score, number buttons and operation buttons followed by minor functionality buttons such as skip, undo, restart and help.
Other minor works are also finishing up:
  • Interface and user interaction plan are now finalized
  • Game assets are finished and ready for implementation
  • Game model is now finalized and waiting for implementation once the interface is implemented
  • Created a wiki page for the game on Sugar Labs Wiki
  • Licensing has been resolved
Current Issue:
  • ok what if I did it wrong. Undo algorithm needs to be done
  • you lost my package? Scenes lost the event that needs to be passed to buttons somewhere in the middle during transfer

2014年12月12日星期五

Get24 - XO Game Dev: Using pygame


We're currently in state of implementing the 24 game using a template called sugar-quickstart. It is a template that we use to build a game that can also compile into an activity(.xo) file that runs on XO machines. The issue we're running into is that we're having trouble compiling the activity followed by the error: failed loading sugar3.activity - module not found.

After a certain numbers of examination we decided to leave XO out of the game development for now and implement the game using pygame. Pygame is a set of python modules designed for writing games by adding functionality on top of the SDL library. This allows us to create fully featured games and multimedia programs in the python language. This way we will not have to deal with compiling .xo file issues until the very end.

2014年12月11日星期四

XO Game Interface Design

I'm currently in process of creating a XO game with my team. The game is called 24. It is a math game where users will use four numbers provided and four operations (+,-,*,/) to get to 24.

Since the game is simple enough, the interface should also be simple for elementary students to figure out. We're finally having progress on the UI side of our project.

We had our first interface draft as a list of numbers, operations and follow by a spot for equations: Click me too see our first UI draft. The first issue that we ran into is that we're trying to figure out how to add parenthesis to the equation without adding complexity to the interface.

  • If we "type" in the paranthesis in a queue order, we will have to delete all of the previous inputs since there're no cursor in the game.
  • We can also add a button under each operation signs in the equation so when it's clicked, the paranthesis will be added to the current operation. This really adds complexity to the game and will not be as interesting.

Therefore we decided to remove the equation part and make the calculaton process on the number panel. This interface is much simpler and more like a game by removing the equation region and having the users calculate directly on the number panels. Please see Danny Nyugen's blog post to read about the current UI that we're developing.

2014年12月10日星期三

Locak Hack Day @RIT

This is a post about the Local Hack Day I attended in December 6 (my birthday!) held by codeRIT. It is great event  to learn and celebrate the hacker comment in RIT by creating and building projects over 12 hours. In the even we took time to develop our iOS project which is a space-themed music app. We were trying to solve a recording issue of the project where the recorder is having trouble creating and loading a url where the sound data will be stored.

The event ran a Local Hack Day stream at the end of the event with many other schools who also held the same hackathon. We also took a look at the projects that they created within the past 12 hours. There're many interesting while also inspirational projects including a MLA Formatting application that formats the text into a MLA format and a image shrinking application that removes minor pixels when shrinking a image.

This is the first local hack day event I ever attended in RIT. It was fun to see all of the inspirational ideas that people have and projects that other schools have.

RocPy meet up 11/18

This is a blogpost about the RocPy meet up I attended on November 18th with my HFOSS class. The meet up started by Richard with a brief description of the RocPy and a recap of what we left from last time.

threebean provided a very interesting "module of the month" where he went over a module from the Python standard library each month. This time he gave a talk on itertools which is a module that implements a number of iterator building blocks inspired by constructs from APL, Haskell, and SML. He showed the module with a couple examples of how to use itertools in a project.

Awesome lighting talks provided by Alex Kyle(akyle), Matt Soucy(msoucy), Ross Delinger(rossdylan) and Ralph Bean(three bean). Very interesting and useful presentation!

The main talk for this RocPy was about embedding Python in a C application. The level of the talk was way beyond me and somewhat dry. imo it could be summed in a much better way and save more time.

Overall I'm starting to like RocPy more and more. I hope as I get more and more involved with these topics I could start to understand them better.

2014年12月4日星期四

quiz2: Pedagogy

 Please post both the answers AND questions for this quiz in a post on your
development blog, and send a pull-request to your .yaml file with the key
'quiz2' to the course repository by the end of class. Remember, your quizzes
will be evaluated based on BOTH content AND HTML markup. Good Luck.

0)  Expand the following acronyms:
        a) FOSS:             Free and Open-Source Software
        b) OLPC:             One Laptop Per Child
        c) tl;dr:                Too Long; Didn't Read
        g) LGTM:             Looks Good To Me
        h) RTFM:             Read The F*cking Manual (excuse me)
        i) PEBKAC:         Problem exists between keyboard and chair
        f) LOL:                 Laugh out Loud

1)  Define the following instructional theories:
        a) Didactic: An instruction method that the teacher is considered to be the possessor of knowledge, which he/she then imparts to students through lecture and instruction.
        b) Dialectic: An instruction method that the instructor engages students in a common search for meaning and understanding.
        c) Constructivist: People who generate knowledge and meaning from an interaction between their experiences and their ideas.
        d) Multiple Intelligences: A set of knowledge that are quite independent of each other; that each intelligence has its own strengths and constraints.

2)  Describe the role of the instructor in each theory.
  • Instructors in didactic classroom: are the “giver of knowledge” that follows a consistent scientific approach or educational style to engage the student’s mind.
  • Instructors in dialectic classroom: are more of a knowledge person who leads students through questioning and response towards understanding or a specific learning outcome.

3)  What are the three key aspects of a lesson plan?
  1. Objectives
  2. Methods
  3. Evaluation
4)  How does Sugar integrate and implement constructivist learning theory?
  • Sugar allows the students to learn by having them discover the features and functionalities which at the same time is also fun, easy to use and provides social experience that promotes sharing and learning.

Bonus: Where can new Sugar users and contributors go to find out more
information, ask questions, and get involved?

2014年12月2日星期二

Lit Reveiw 2: Hacking Politics

Edited by:


David Segal: An American politician, activist, and writer who was a Democratic member of the Rhode Island House of Representatives.


What: Hacking Politics: TLDR. The portion in the book lasts 37 pages long.

Where: http://hfoss-fossrit.rhcloud.com/static/books/hackingpolitics_txtwithcvfb.pdf

When: Published in May of 2013.

The Gist: The TLDR of the book is a series collection of quotes from various hackers and politicans who are also associated with againsting SOPA, PIPA and COICA.

The Good:

  • Simple and straight forward with a huge list of quotes.
  • The topic in the book is actually closer to each one of us than we thought - found it extremely realistic.
  • The collection of quotes are from all kinds of people from games, hackers all the way to politicians and billionaries.

The Bad:

  • Extremely informative but somewhat boring on the other hand with the set of quotes.
  • I nearly see any citations - maybe quotes don't need citations.
  • A bit overwhelmed with the tremendous amount of voices.
  • Somewhat one sided: with the amount of people quoted, the side that these people take is however generally the same.
Questions:

  • What is now the outcome for SOPA/PIPA and COICA?

Review: Overall the article was good. Good thing that I figured that TLDR stands for "Too Long, Didn't Read"... Even though I'm not loving the TLDR format with a list of quotes, but it is enough to pull me into researching SOPA/PIPA. 7/10 things.

2014年11月14日星期五

RIT Presentation: Project Spark


This is a presentation in RIT held by Claude Jerome from Team Takota of Microsoft Game Studios, who is also an alumni from RIT to talk about a game that he designed named Project Spark.

For those of you who don't know about this game, Project Spark is a game that makes games. It provides the players a list of tools that allows them to create their own world and logic (including characters/monsters, game system, combat and etc). Additionally, players can share their games by posting their game to the community. Project Spark is now available on Windows 8 and is free to download.

During the presentation, Claue Jerome made a demo on using Project Spark. The game actually contains more freedoms than I thought. You can apply any logic to anything object you want. For instance, you could apply a bird AI to a bridge object so when you walk up to it the bridge will fly away... Jerome then talked about the Project Spark design and product focus, as well as his role in the game design and development. In general words, Project Spark is a game that contains layered complexity that challenges the players to dive deeper to fulfill their wish. I think the game did a excellent job on balancing the "magic" with the "tool" that the players use to create games. The whole gaming experience is engaging and inspiring.

Jerome also talked about his past careers and experience. He stated that it's very important to learn the following lessons:
  • Humility
  • Confidence
  • Ambition
  • Passion
  • Balance

These skills(might not be the actual 'skill') are very important throughout your career's life. To be more specifically, here is a list of what I learned:
  • First and foremost, you are here to learn
  • Embrace your mistakes
  • Constraints yield creativity
  • Create for your client, not for you
  • Perspective is invaluable
  • Speak with confidence, not arrogance
  • When join a ongoing project
    • Assess the project's situation, not just your area/task
    • Understand the goal - don't be afraid to ask why
    • Recognize unique strengths/weakness
  • Don't wait for opportunities to come to you - CHASE THEM
  • In any role, find ways to make yourself indispensable
    • But try to make the transition easy too.


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.

2014年9月30日星期二

Commarch Report

Resources:
Source Code repository: 
https://github.com/jcbrand/converse.js 
Mail list archive: http://librelist.com/browser/conversejs/ 
Documentation: https://conversejs.org/docs/html/index.html 
Other communication channels: jc@opkode.com
Project Website and/or Blog: https://conversejs.org/
 
A. Describe software project, its purpose and goals.
Converse.js is a chat client that runs on a browser as a JavaScript-based plugin, allowing site visitors to chat using the XMPP protocol.
 
B. Give brief history of the project. When was the Initial Commit? The latest commit?
The first commit to the project is on June 10, 2012 by jcbrand. Issues are regularly fixed and new features are added occasionally.
 
C. Who approves patches? How many people?
jcbrand act as both the project manager and contributor
 
D. Who has commit access, or has had patches accepted?  How many total? 
 About 10 people have made significant changes to the project that have been approved by jcbrand
 
E. Who has the highest amounts of "Unique Knowledge?" (As per your "Git-by-a-bus" report. If there is a tie, list each contributor, with links if possible) 
 jcbrand 
 
F. What is your project's "Calloway Coefficient of Fail?"
 The project passes Calloway Coefficient of Fail with flying colors, with a total score of 0.
 

G. Has there been any turnover in the Core Team? (i.e. has the same top 20% of contributors stayed the same over time? If not, how has it changed?) 
 No, the core team has not changed(jcbrand in this case) However, a few developers have become active in the project at different times. 
 

H. Does the project have a BDFL, or Lead Developer? (BDFL == Benevolent Dictator for Life) 
jbrand again
 
I. Are the front and back end developers the same people? What is the  proportion of each? 
 Yes, everything is handled by the same person 
 
J. What have been some of the major bugs/problems/issues that have arisen during development? Who is responsible for quality control and bug repair? 
A major bug existed in the project is that Converse.js sometimes empties the contact list and crashes the browser occasionally when a user is trying to load a huge amount of contacts.The problem is later fixed by jcbrand
 
K. How is the project's participation trending and why? 
There were a few major spikes in the code frequency graph on github early last year, but since then additions have stabilized and jcbrand seems to be making regular updates to the code.
 
L. In your opinion, does the project pass "The Raptor Test?"(i.e. Would the project survive if the BDFL, or most active contributor were eaten by a Velociraptor?) Why or why not? 
No, jcbrand almost is the only permanently active contributor and if he is eaten by a Raptor, a new developer will have to take over the project. 
 
M. In your opinion, would the project survive if the core team, or most active 20% of contributors, were hit by a bus? Why or why not? 
No, for the same reason that it fails the Raptor Test. 
 
N. Does the project have an official "on-boarding" process in place?(new contributor guides, quickstarts, communication leads who focus specifically on newbies, etc...) 
Yes, the documentation provided explains requirements, features, development details and troubleshooting solutions and is very easy for newbies to get started.
 
O. Does the project have Documentation available? Is it extensive? Does it include code examples? 
Yes, the documentation is extensive for developers, users and all newbies.


P. If you were going to contribute to this project, but ran into trouble or hit blockers, who would you contact, and how? 
jcbrand who will be available on the mailing list and GitHub issue list.
 
Q. Based on these answers, how would you describe the decision making structure/process of this group?  Is it hierarchical, consensus  building, ruled by a small group, barely contained chaos, or ruled by a single or pair of individuals? 
 The project is ruled by a single individual


R. Is this the kind of structure you would enjoy working in? Why, or why not?
 Yes, the size of the project is relatively small and simple. This helps up to spot bugs easier and communicate with the project owner(in this case).
 

2014年9月25日星期四

Team 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?
Our team chose to research https://conversejs.org
2-Liner Description of the project?
Converse.js is a light-weight, open-source browser-based XMPP / Jabber chat client. It allows users to have a custom, private and secure chat integrated directly into their website.
What will each team member's role be?
Tom Conroy : Coordinator, Developer (Front-End)
Anjali Tewari : Documentation, Developer
Danny Nguyen : Documentation, Developer (Front-End)
Lanxi Xing : Documentation, Developer
Source Code Repository URL:
What are the easy parts?
  • Gathering project information ( contributors, commit logs, documentation etc. ) as it is all easily available on github.