Posterous theme by Cory Watilo

Quick Fire Challenge

1) Name: Adrian Cabrera

2) Problem Technology: Metromix - Event Listing Website

My Frustrations:

- too busy

- too much going on

- not sure what to click on

- it does not help me find an event, when I can't make a decision

- the only reason why I come back to this website, is because it is the only one that I know of

3) Idea for redesign:

- make it simple, clean, and easy to use

- try to minimize the amount of advertisements

- have an algorithm similiar to Pandora, where it can predict what events you would like to go to based on your interests

 

4) Areas of Interest:

- User-Centered Design

- Web Design

- Social Events

 

Week 6

Comments on 7 languages in 7 weeks:

 

Erlang

 

Erlangs main strength is in concurrent programming and fault tolerance. It was created by Joe Armstrong in 1986. The language is mature and is used to make reliable software. It uses the actor model for concurrency. You can see some similarities between Erlang and Prolog, especially in the syntax. You also see it in the pattern matching as well.  Day one was not too bad, I was able to get through the section alright because of the similarities between it and prolog.

 

Day 1 Self-Study

1)      Erlang official site - http://www.erlang.org/

2)      Function library - http://www.erlang.org/doc/reference_manual/functions.html

3)      OTP Library - http://www.erlang.org/doc/

 

The next section went into control structures, then higher-order functions and pattern matching to get deeper into functional programming and manipulating lists.

 

The last section shows a few ways to make light weight Erlang processes that will receive and respond to messages. We are also shown how we can monitor the processes for a failure and how to revive them.

 

Overall, Erlang is one of the most reliable languages. It is lightweight. The libraries can help build monitored, keep-alive processes, link to databases, and build distributed applications. Erlangs philosophy is “let it crash”.

 

 ----------------------------------------------------------------------------------

Comments on Designing for Emotion:

 

I agree that an interface must be functional, reliable, and usable. The interface must be easy to use, do what I want, and not crash. If any of those three things go wrong, I will not use that application or go back to that website.

 

When the author started talking about Wufoo, I completely agree. There is a huge emotional aspect when I’m trying to pick a product to use. If you are going to make it fun, easy, and do what I want, I will use it. It really is about having a pleasurable experience.

 

I talk to my girlfriend about this all the time. I ask her constantly, why does she keep going back to a certain iPhone app? An example is Pinterest. She talks about how visually stimulating it is and how easy it is to use. There are other applications like it, but the way this application is presented to the user, they just keep coming back.

 

An example of what I just talked about above, is given in the book as well but for Apple instead. I agree Apple is known for its focused, aesthetically pleasing, and usable products. They have a clean and elegant design. And this is exactly why people keep coming back to it.

 

I truly believe that there will always be competition amongst different products, but the product that will always win will be the one who can have the most aesthetically pleasing interface that is simple and easy to use.

I find that funny when the author talks about the VW Beetle. My mother used to always talk about how cars have faces.

 

I never really thought about the importance of a persona in a website. However, it is true, and it wasn’t something that I noticed until it was pointed out to me while reading this section. Good websites will present a personality beyond the computer screen.

 

Later, the author talks about the interface revisions made on Twitter and Facebook. It was true, most people seemed very happy with the option to change to Twitter’s new interface. On the opposite end, people seemed unhappy with Facebook’s revision since it was forced upon the users instead of giving them the option. It’s amazing what a huge effect it can have by just offering the option to the user to change something, instead of forcing it upon them. It really made the user feel like they had some say, or some power in the decision.

 

Going through this book, I am just amazed at all the products he is talking about. I would say about 80% of all the websites or services he mentioned, I use! (Twitter, Facebook, Apple products, Dropbox, Mint, Tapbot, just to name a few)

 

I did not know Flickr went down. The way they handled the situation was awesome!

 

 

 

Project 1 - Final Draft

Presentation Slides: http://prezi.com/jwv9pqy6aoak/ardunio/

 

Introducing Arudino

During the last two years of high school when all my classmates were deciding what career they wanted to pursue, I was still lost as ever trying to decide a possible career path. You go to your parents for advice and wisdom, but having Filipino parents, they tend to push you in the direction of the medical field, more specifically, nursing. So that was my choice, nursing. But it wasn't something that I wanted to do, nor did I have a passion for it. The only logic I had behind that decision was that it was something that my parents wanted me to do and the job outlook after graduation was fairly high at the time. But how are you supposed to make a decision without having some sort of experience in that field. How was I supposed to know what I wanted to do without trying things out? Not much was offered at my high school about exploring possible career options. Sure we had the general classes like math, science, english, etc. But how can you figure out what you want to do based on core subjects? It would have been more helpful if classes were offered that would give you a taste of what a certain career would feel like. Specific to the career I chose to pursue, I wished that Arduino was introduced to us at an early age, at least in high school. Arduino is technology that I personally have not used, but after reading and doing the research on it, I believe it has concepts that will be valuable to anyone.

Arduino is an open-source microprocessor. One can think of a microprocessor as the “brain” of a computer. It is the central unit that takes in information and processes it out. The important term to note in this definition of Arduino is that it is open-source. Open-source means that we can see how this microprocessor was made, to the point that we can actually create it ourselves. One might hear the term open-source more often in conjunction with the operating system, Linux. Linux is open-source because the source code is available to everybody. In other words, we can see the recipe used to cook up Linux. Unlike a common operating system that I'm sure most of us are familiar with, Windows, it is not open-source. Microsoft hides its secret recipe for the Windows operating system.

As I had mentioned before, one can think of a microprocessor as the “brain” of a computer. However, you will not find an Arduino microprocessor inside a desktop computer. Unlike a desktop computer, an Arduino microprocessor will use switches and/or sensors to take in its environment. An example of this is the Botanicalls Kit. (http://www.sparkfun.com/products/10334) This is an example where sensors are used to read the moisture levels of the soil and Tweet when the moisture levels are low. Thus, letting the owner know, hey, you need to water your plants!

You might be thinking, how is this possible? Arduino is a developer’s tool. It is highly customizable. One can think of it like Play-doh. With Play-doh, you can mold it into anything you want. Or you can even think of it like Lego. You can work with one large, flat Lego board and the Lego blocks stacked on top of it to make whatever you desire. Arduino is similar in that you can add other components to it in order to make it do what you want. What makes it possible for the plant to Tweet when it needs water is a combination of the Arduino microprocessor, wires, resistors, cables, sensors, and most importantly the code, or the instructions. A lot of mechanical products you buy will come with instructions. For instance, a game console will come with instructions on how to use it, how to turn it on, how to insert a game, what the buttons will do on the controller. Or a microwave will come with instructions on how to set the timer, or the power level, or perhaps the clock that is built in. The Arduino microprocessor is not going to know what to do without instructions.

The instructions are not written in sentences like you would find in a manual, they are written in a programming language similar to C++. However, don't be discouraged as Arduino was originally created for designers, architects, and artists, all whom of which may not have a science and/or engineering background. “From its inception, the Arduino was developed to engage artistic and design-oriented minds.”

From this comes my stance. I believe that Arduino should be introduced to us at an early age. At the least it should be presented to us in high school. If I had a class in high school that taught students about Arduino, I might have found out early on that this was the field that I wanted to get into. Nonetheless, learning about the Arduino microprocessor and how to use it would be valuable. We are surrounded by technology. Almost everywhere you go, you will find a computer. Arduino can be a tool to teach students how to program, and have a better understanding of electrical circuits. Arduino can have instant gratification which may be appealing to younger students in that the basic tutorials can be accomplished within a class period. There is a growing support community of people using Arduino and a plethora of real world examples of where Arduino is being used today. (http://www.arduino.cc/playground/Projects/ArduinoUsers).

Like Play-doh, Arduino is malleable and can stretch the creative mind to make amazing things. I'm looking forward to see what others can create and see Arduino evolve.

Week 4

Comments on 7 Languages in 7 Weeks:

Scala

-          Allows integration with JJava

-          Runs on JVM

-          Syntax similar to Java

 

Martin Odersky

-          He wanted to combine functional and object-oriented programming

-          Twitter switched from ruby to scala

 

16

It was cool to see the same syntax as java since I have some experience in writing in java. I see where the functional programming comes in with the response back to the user

Self-Study

1)      Scala API - http://www.scala-lang.org/api/current/index.html#package

2)      Comparison of Scala and Java - http://blogs.oracle.com/sundararajan/entry/scala_for_java_programmers

3)      Val vs var - http://blog.sanaulla.info/2009/07/02/val-versus-var-in-scala/

17

Self Study

1)      How to use scala files - http://stackoverflow.com/questions/1284423/read-entire-file-in-scala

2)      Closure vs code block - http://www.javacodegeeks.com/2011/11/scala-tutorial-code-blocks-coding-style.html

 

Overall, I see the elements that scala uses from java. For instance, curly braces, print statements, loops, and the use of constructors. The actor paradigm is better in scala than in ruby. I thought it was great that scala uses the java libraries. The java libraries are huge. Why reinvent the wheel when there are libraries available and scala uses the java libraries, which I think is great. Scala seems to use less code than Java, I believe the lesser the code, the better. However, for someone that has used java before, the following syntax can get confusing:

Def doChore (chore: String)

In Java, I’m used to having the data type first then the name of the variable (String chore). It’s nice that the syntax is similar but it can get confusing.

 

 

 

Comments on Form + Code

 

 

Software influences design

They define form as visual and spatial structures

Codes serve three main purposes

                Communication, clarification, or obfuscation

Talk about code like Morse code, DNA, laws, and writing

Comparing algorithms to directions

                It has four qualities – there are many ways to write it, it requires assumptions, it includes decisions, and complex algorithms should be broken down

Pg 15 talks about the relationship between a human and a computer and how we can talk to each other. We use code that has words and punctuations that we can understand and when compiled a computer can understand it. Instructions for a computer must be very specific, unlike humans, computers cannot in something unless it is clearly stated.

Pg 25 – “writing code is one gateway for realizing these new forms. Learning to program and to engage the computer more directly with code opens the possibility of not only creating tools, but also systems, environments, and entirely new modes of expression”

Sketchpad to CAD to laser printer

The internet – led to the question … do we really need a central office?

Pg 31 – if ocmputers could be used to model what we know, then perhapswe could also use them to simulate what we don’t know

Crt to lcd to led

Repetition can have a powerful effect on the human body and psyche

 

 

 

 

Project 1 - Rough Draft - Arduino

Arduino is an open-source microprocessor. One can think of a microprocessor as the “brain” of a computer. It is the central unit that takes in information and processes it out. The important term to note in this definition of Arduino, is that it is open-source. Open-source means that we can see how this microprocessor was made, to the point that we can actually create it ourselves. One might hear the term open-source more often in conjunction with the operating system, Linux. Linux is open-source because the source code is available to everybody. In other words, we can see the recipe used to cook up Linux. Unlike a common operating system that I'm sure most of us are familiar with, Windows, it is not open-source. Microsoft hides its secret recipe for the Windows operating system.

 

As I had mentioned before, one can think of a microprocessor as the “brain” of a computer. However, you will not find an Arduino microprocessor inside a desktop computer. Unlike a desktop computer, an Arduino microprocessor will use switches and/or sensors to take in its environment. An example of this is the Botanicalls Kit. (http://www.sparkfun.com/products/10334) This is an example where sensors are used to read the moisture levels of the soil and Tweet when the moisture levels are low. Thus, letting the owner know, hey, you need to water your plants!

 

You might be thinking, how is this possible? Arduino is a developers tool. It is highly customizable. One can think of it like Play-doh. With Play-doh, you can mold it into anything you want. Or you can even think of it like Lego. You can work with one large, flat Lego board and the Lego blocks stacked on top of it to make whatever you desire. Arduino is similar in that you can add other components to it in order to make it do what you want. What makes it possible for the plant to Tweet when it needs water is a culmination of the Arduino microprocessor, wires, resistors, cables, senors, and most importantly the code, or the instructions. A lot of mechanical products you buy will come with instructions. For instance, a game console will come with instructions on how to use it, how to turn it on, how to insert a game, what the buttons will do on the controller. Or a microwave will come with instructions on how to set the timer, or the power level, or perhaps the clock that is built in. The Arduino microprocessor is not going to know what to do without instructions.

 

The instructions are not written in sentences like you would find in a manual, they are written in a programming language similar to C++. However, don't be discouraged as Arduino was originally created for designers, architects, and artists, all whom of which may not have a science and/or engineering background. “From its inception, the Arduino was developed to engage

artistic and design-oriented minds. ”

 

From this comes my stance. I believe that Arduino should be introduced to us at an early age. At the least it should be presented to us in high school. During my last two years of high school, I did not know what I wanted to pursue as a career or study in college. I took a leap of faith and decided to major in a degree that involved computers. If I had a class in high school that taught students about Arduino, I might have found out early on that this was the field that I wanted to get into. Nonetheless, learning about the Arduino microprocessor and how to use it would be valuable. We are surrounded by technology. Almost everywhere you go, you will find a computer. Arduino can be a tool to teach students how to program, and have a better understanding of electrical circuits. Arduino can have instant gratification which may be appealing to younger students in that the basic tutorials can be accomplished within a class period. There is a growing support community of people using Arduino and a plethora of real world examples of where Arduino is being used today. (http://www.arduino.cc/playground/Projects/ArduinoUsers).

 

Like Play-doh, Arduino is malleable and can stretch the creative mind to make amazing things. I'm looking forward to see what others can create and see Arduino evolve.

Week 3

Comments on Code by Petzold

Chapter 20

This chapter talks about a coded character set, or character codes. Petzold described the issues and frustrations with creating the character set. He also mentions how the Carriage Return and Line Feed are “by far the most important control codes” (pg 295) as you can jump to the left of the page with carriage return and jump a line down with line feed.

I thought it was awesome to see the punch card like the one shown in class

15

After ASCII came Unicode which could represent more characters, enough for all of the world’s languages.

 

Chapter 21

“A bus is simply a collection of digital signals that are provided to every board in a computer.” (pg 301)

Signal categories

-          Address signals

-          Data output signals

-          Data input signals

-          Control signals

This book has a copyright year of 2000, who knew that a dozen years later, Macintosh would be doing so well. Oh how things have changed! “… Macintosh currently accounts for less than 10 percent of the desktop market.”

For those who are not as technically savvy, I thought the section where Petzold talks about pixels and resolution has a good explanation of it. It is here where we start to see how a series of 1s and 0s can give you letters on a screen.

This was a great analogy. “Memory is like the top of your desk. Anything that’s on your desk you can work with directly. Storage is like a file cabinet. If you need to use something from the file cabinet, you have to get up, walk over to the file cabinet, pullout the file you need and bring it back to your desk.

 

Chapter 22

This chapter talks about the operating system. It’s hard for me to imagine using command line to navigate through files just use the computer overall. But that’s how it started. I’m glad I was born in a generation where computers have already been created and a GUI is available.

Chapter 23 - 25

High level languages – advantages – easier to learn than assembly languages, they are clearer and more concise, they are portable. The disadvantage is that it will be larger and slower than a program written in an assembly language.

“If you have 100 different people to write a program that prints out prime numbers, you’ll get 100 different solutions” I find that true even today. I experience that with Java and C++. My professor would assign us a program to write to solve a specific issue, and we would all have slightly different code.

 

 

Comments on 7 Languages in 7 weeks

Prolog is not like Io and Ruby in that it is not an imperative language. Imperative languages require you to tell the computer how to do a specific job. Prolog is a declarative language in which the computer does the reasoning.

Prolog is definitely different from what I’m used to. I’ve mainly worked with object oriented programming. Programming where I would provide the step by step instructions. Prolog seems to have a mind of its own, its own intelligence. You set requirements and it tries to figure it out for you.

I found this quote hilarious!! “You know what I mean; just do it! C and C++ compiler errors such as ‘semicolon expected’ are symbolic of this. If you expected a semicolon, how about inserting one and seeing whether that fixes it?” This is too funny! I thought the same thing going through my C++ class. If the compiler knew that I was missing something, why not put it in for me?!?

Self-Study

Tutorials: http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/pt_framer.html

Support: http://www.tek-tips.com/threadminder.cfm?pid=345

Reference: http://progopedia.com/version/gprolog-1.3.1/

I thought it was pretty cool that Brian was able to use prolog to create a schedule for the team. I remember when my boss was talking to me about the woes of creating the work schedule and that he wished there was a program out there that could do it for him.

 

 

Week 2

Comments on 7 languages in 7 weeks by Tate:

Io mainly involves the use of objects. More specifically they clone the objects as needed. Io is also considered a prototype language.

Installing Io:

Installing Io was not bad. I am currently running Ubuntu 11.10 on a virtual box within my Windows 7 machine. I went to iolanguage.com and downloaded the deb package for 32 bit linux. The installation went smoothly.

After day one of using Io, it seemed fairly straight forward. The main concept I’m having trouble wrapping my head around is inheritance. I don’t understand how or what a child inherits from its parent. I also did not understand why we were creating a clone from another clone.

Self-Study

Examples: http://iolanguage.com/about/samplecode/

Community: http://tech.groups.yahoo.com/group/iolanguage/

Style Guide: http://en.wikibooks.org/wiki/Io_Programming/Io_Style_Guide

 

The while statement format is familiar to me as it is similar to java.

8

This made no sense to me 

7

 

Overall review of Io:

Io is like object oriented programming except there are no classes.

The cool thing about Il was that you could change it a lot. You can change the contents of a slot. It’s pretty flexible.

I don’t know if I would choose Io for programming as there is not much of a support group, unlike other languages that have a large community base.

The syntax is fairly easy, meaning it’s not that hard to catch on to what’s going on.

 

Comments on Code by Petzold:

Chapter 10

Going over the math was not fun. I went down memory lane with the associative, distributive, etc. properties. Much fun!

I learned that “+” in Boolean algebra means OR, and “x” means AND.

When going through some of the equations that were shown, I was confused at first with equations like:

                F + F = F

X squared = X

Overall + is OR, x is AND, 1- is NOT.

ANDDING

10

OR

11

Now when we look at circuits we can see ANDING like this:

13

Now when we look at circuits we can see OR like this:

12

 

Chapter 11

An interesting thing I learned was that relays can be used to switch other relays on or off. Relays are used to amplify weak signals. I’ve read in the past that relays can do this; however, seeing it visually with pictures really helped. It talked about how wire wrapped around a rod connected to some source of energy can create a magnet. And that magnet can be used to turn a switch on or off. Like I mentioned before, seeing it visually really helped in understanding the concept.

14

Besides learning that concept, this was a tough chapter to read through…

 

Chapter 12

I learned how computers add. In addition, I learned that computers no longer use relays, they now use transistors which are smaller, faster, quieter, and use less power as compared to relays.

Chapter 13

I really liked this quote, “Subtraction is merely addition using negative numbers.” When I perform subtraction in my head, this is exactly what I do. I learned that binary numbers can be signed or unsigned; however, you will not know off hand unless someone told you that it is signed or unsigned. Unsigned 8-bit includes 0-255, while signed includes -128-127

Chapter 14 and 15

I started to see how and why we have 32-bit and 64-bit machines. It was also nice to review hexadecimal again…

Chapter 16

I liked this quote, “We write and we later read. We save and we later retrieve. We store and we later access.” This quote exactly describes what RAM is for.

For most, we add RAM to our computers to make if faster. It was interesting to go over how memory is built and how it works.

RAM is volatile memory in that when power is no longer supplied and the magnetism is gone, then the contents of the RAM are gone as well.

Chapter 17

I agree that some people find coders as a derogatory name and that software engineers is a better one.

Chapter 18 and 19

1928 – Famous line “do not spindle, fold, or mutilate” your IBM card

1935 – First relay computer – Conrad Zuse

1939 – Complex Number Computer – George Stibitz

1943 – ASCC (automated sequence controlled calculator) – Howard Aiken

1944 – First case of a “bug” – a moth found in a relay

1945 – Complete transition to vacuum tubes

1948 – Norbert Wiener coined the word “Cybernetics”

1974 – Intel and Motorola released microprocessors

 

 

Week 1

Installing Ruby on Ubuntu 11.10

The assignment for week one is to install Ruby on a computer. I don't have a MAC book, nor a linux box, so I decided to create a virtual machine on my Windows 7 laptop to run Ubuntu 11.10.

1) Once Ubuntu booted up, I searched for the Terminal

1

2) To install Ruby, I entered the following command:

sudo apt-get install ruby1.9.1

2

3) Finally, to check which version I currently have (to verify the installation), I performed the following command: 

ruby -v

3

 

 

 

Comments on Code by Charles Petzold

Chapters 1-3

It’s fascinating to read about how Morse code and Braille came about. Sure as kids we grow up hearing about these languages in History class, but never to the extent about how the language developed and the thought process that was going on while creating the language.

 

Being an IT major, you learn about binary numbers during the first class. It was nice to review it again and to also learn that the dots in Braille are also considered binary.

Chapter 4

Although I’m sure most of us have learned how a flash light works in previous Science, Physics, or Electronics class, I believe it is important in understanding the circuitry within computer hardware. This chapter covered the anatomy of an atom, how atoms form molecules, positive and negative charges of an atom, then relating it to electricity and the movement of electricity starting out in the batteries of a flashlight, the terms parallel and series, resistance, amps, Ohm’s law, short circuit, the invention of the light bulb by Edison, the calculation for WATTS, and the terms on/off closed/open when talking about wiring diagrams. All of which, like I had mentioned before, are topics we’ve learned in the past, but are most likely good to review to get the juices flowing, no pun intended.

Chapter 5

This chapter went more in depth with the language of Morse Code and its development. In the story, we went from two children talking to each other via flashlights from a distance where they can see each other to laying down wires since their bedrooms are not facing each other. (at this point the children have created a telegraph system).

Chapter 6

This chapter related the story about the two children creating their own telegraph system to the real telegraph system used by Samuel Morse and described how a relay was created. Relating the stories was a great way to better understand how the telegraph system worked.

Chapter 7-8

I was wondering where this chapter was going when it started talking about base 10, base 8 , and base 4. But it made complete sense because it allowed the reader to understand how base 2 works. This was a different approach to learning binary as compared to when I learned in my freshman year of college. We started off learning base 2 without learning about other numbering systems.

Chapter 9

This chapter was very interesting to me as I have wondered how bar codes work. You see it everywhere, at the grocery store, at Best Buy, at clothing stores, etc. To see it everywhere, you must think that it is an almost perfect system. I had no idea the UPCs had a validity checker, it is a very well thought out system.

Read the rest of this post »