Adrian Cabrera http://adriancabrera.posterous.com A closer look into an IT major posterous.com Tue, 01 May 2012 12:03:00 -0700 Re-write of Project 1 http://adriancabrera.posterous.com/re-write-of-project-1 http://adriancabrera.posterous.com/re-write-of-project-1

Introducing Arudino

I felt like a tortoise in a race against a hare, actually against hundreds of them. While the majority of my high school graduating class figured out what they wanted to pursue as a career or a major to study in college, I was still way behind and could not figure out what I wanted to do. I felt the pressure bearing down on me, as if I were diffusing a bomb waiting to go off, to make a decision about my intended major. Which wire should I cut? There were so many to choose from. My parents suggested nursing school; however, my gut feeling said that was not the right career path for me. Fortunately and unfortunately, I figured out what I wanted to do after a year of college. I decided to major in Information Technology. I say fortunately because I eventually found the major I wanted to study and I say unfortunately because I only found that out after I was in college, just a little late. I believe that if I were given technical classes in high school, I would have had a better idea of what I wanted to study in college.

I have not used this specific technology before; however, after reading and doing research on it, I believe Arduino has concepts that would be valuable to someone pursing a major in computer science or information technology.

By looking at what Arduino is, we can begin to educate students about technology they might not have known about in the past. 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. A 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. Just in this definition of Arduino, we can inform students that there are other operating systems besides Windows and MAC. An open-source operating system is available for students to explore and learn about.

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! Giving students this kit to build would be a start at introducing concepts of electricity and learning terms like ohms and resistors. 

You might be thinking, how is this possible? To me, 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, I would not 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.” I believe this is a language that will be easier to learn than other languages like Java or Ruby. This will give students an idea of what programing is like and may inspire them to learn other languages in the future or avoid programming entirely. Nonetheless, it will broaden their knowledge about computers.

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. Nevertheless, 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).>

For students making a decision about their career, working with Arduino can be a first step at making that decision. Working with this technology involves problem solving, troubleshooting, understanding electronics, integrating components with other objects, and programming. If a student finds interest working hands on with the equipment, information technology may be the direction to head. On the other hand, if a student enjoys programming, perhaps computer science would be best suited for him/her.

Overall, Arduino may help give insight to students trying to figure out a major to study, or a career to pursue. 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.

 

References:

http://www.sparkfun.com/products/10334

http://arduino.cc/

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763133/IMG_0012.JPG http://posterous.com/users/cPumAg5h2lVvc Adrian Cabrera adrian-cabrera Adrian Cabrera
Tue, 01 May 2012 09:52:00 -0700 Week 16 http://adriancabrera.posterous.com/week-16 http://adriancabrera.posterous.com/week-16

It’s the last week of class for Humanizing Technology. It's been a great semester. Project 1 pushed me outside of my boundaries, outside of my comfort level of technology and brought me towards Arduino. It was something I haven’t heard of before, and I enjoyed doing the research on it. I’ve decided to take a summer class that incorporates Arduino, so I’m very excited for that. Project 2 really pushed me to my limits. I do simple web updates for the School of Applied Technology. That involves basic knowledge of HTML, CSS, and Javascript. Creating the CTA interface in HTML from scratch involved lots of sleepless nights and numerous revisions of code; however, it pushed me to learn more about HTML, CSS, and Javascript. In addition, I worked with a great team that all pulled their weight in different parts of the project, which helped out significantly. I feel very fortunate to have worked with such talented students. Project 3 allowed me to look back at the entire semester, thinking back to the CODE book, how technology started, how it has evolved, and the interaction between humans and technology, or the merging of the physical world and the digital world. I got the chance to talk to my girlfriend’s grandfather about a lot of things, and the most interesting thing we talked about was his experience with computers, or lack thereof. His story became an inspiration for project 3, as well as helping me figure out what I want to do with the rest of my career.

 

Check out my personal statement at http://adriancabrera.squarespace.com

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763133/IMG_0012.JPG http://posterous.com/users/cPumAg5h2lVvc Adrian Cabrera adrian-cabrera Adrian Cabrera
Tue, 01 May 2012 09:34:00 -0700 Week 15 http://adriancabrera.posterous.com/week-15 http://adriancabrera.posterous.com/week-15

Project 3 has been assigned to us, and I think I will take the project on developing a personal statement. It's a fairly open topic, but I know I want to talk about specific things:

1)     Current issues we have with technology - from a usability point of view

2)     People that have made efforts to humanize technology

3)     Importance of usability, the user experience, emotion, etc.

4)     What I want to do and more about my views

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763133/IMG_0012.JPG http://posterous.com/users/cPumAg5h2lVvc Adrian Cabrera adrian-cabrera Adrian Cabrera
Tue, 17 Apr 2012 15:45:00 -0700 Week 14 http://adriancabrera.posterous.com/week-14 http://adriancabrera.posterous.com/week-14

Comments on Abstracting Craft, The Practiced Digital Hand by Malcolm McCullough

This article associated the concept of "craft" to the technology that we have today. We think of a craft as a kind of art form, something that takes practice, something that takes a long time to perfect even to the point where you don’t even have to think about what you are doing, you are just doing it. Usually we think of craft as something we do with our hands, something we can manipulate. Technology has, in a way, stunted that. Thinking about a computer decades ago, we were limited to a keyboard and mouse, where there was not much room for creativity and expression. In addition, technology moved so fast, that it was difficult to take your time with it, to make it a craft.

McCullough talks about the good and the bad in new technology, the great technological advances and the unfortunate setbacks. Although at first, it seemed that craft would be impossible with computers, the author mentions software like CAD, which allowed an individual to create like people once did with wet clay. I feel that McCullough wants something great to come out of a person, not the computer. He wants that masterpiece not created by the computer, not for the computer to do all the work, but for the human to create something great.

I feel that Apple has done a great job with making their technology transparent to the user. Products like the new iPad have really found a way to integrate into an individual’s life. No longer does the user see themselves using a device, rather something that is an extension of themselves. When a user is holding an iPad, he/she doesn’t intentionally think that he/she is holding a camera, or a computer, it is just something that he/she uses. I feel that some Apple products have matured to the point where people can be creative with it and create something great.

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763133/IMG_0012.JPG http://posterous.com/users/cPumAg5h2lVvc Adrian Cabrera adrian-cabrera Adrian Cabrera
Tue, 10 Apr 2012 00:02:00 -0700 Week 13 http://adriancabrera.posterous.com/week-13 http://adriancabrera.posterous.com/week-13

Some add-ons we had for the interface in addition to what the current  fare card machines have, is the ability to purchase unlimited passes. We also created the ability to let users choose a destination on a map. This would then provide them with an itinerary, or a list of where to go/what stops to go to.

We performed more user studies to continue to make changes to the interface.

To take this interface to the next step, we were thinking of having a completely integrated system. A system that connected fare card machines, to a website, to a mobile application, etc. To have one main system that connected everything together. One advantage of this would be to allow users to add money to their card whether they are on the website, on a mobile application, or at a fare card machine. A potential feature could be analysis of a user’s spending habits. This would allow the CTA to suggest a purchasing an unlimited pass. Another idea is to have smart phone integration with the bus or train stops. An individual with a visual disability could use headphones attached to their smartphones to hear what stop he/she is at via GPS location. 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763133/IMG_0012.JPG http://posterous.com/users/cPumAg5h2lVvc Adrian Cabrera adrian-cabrera Adrian Cabrera
Mon, 09 Apr 2012 23:01:00 -0700 Week 12 http://adriancabrera.posterous.com/week-12 http://adriancabrera.posterous.com/week-12

This week we were given a challenge. Our challenge was to come up with icons to represent the words on our interface. This would allow people who are illiterate to be able to use our interface.

The group and I had some difficulties coming up with appropriate icons. We would come up with something, but it could also be thought of another action. This was tougher than we thought.

Progress done on the interface: added more CSS to create more visual appeal. We created buttons that would look like they got pushed in when pressed. The buttons are currently blank and we will make icons to put on the buttons. We also added gradient fills for the header and footer.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763133/IMG_0012.JPG http://posterous.com/users/cPumAg5h2lVvc Adrian Cabrera adrian-cabrera Adrian Cabrera
Mon, 09 Apr 2012 22:47:00 -0700 Week 10 http://adriancabrera.posterous.com/week-10 http://adriancabrera.posterous.com/week-10

Now that the paper prototype is complete and has been discussed with the group we can move on to a draft of the interface written in HTML5 and CSS. I had some disagreements with the group. After making the paper prototype, I felt that we needed to finalize on a design. We needed to finalize how the interface would look, where the buttons would go. And I say that because, I don’t want to write all this HTML5 and CSS code, to then change it to the groups liking. It is easier to throw out ideas about a final layout of the interface through balsamiq, a wire framing tool, than to rewrite code. I tried to express my thoughts to the group, but they didn’t seem to want to finalize on a layout.

Normally, when I create web pages, I use HTML5 boilerplate and 960gs. I decided to try something new, another boilerplate called getskeleton. It uses the same concept has 960gs; however, according to their site, getskeleton resizes well for tablets and mobile phones.

After creating the draft interface, it turned out to be more work and more pages than I thought. But the rough draft is done, and now I will see how the group likes it. We will see what we need to do next. Right now it’s only written in HTML and CSS, I’m sure we will add jquery to add some nice visuals.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763133/IMG_0012.JPG http://posterous.com/users/cPumAg5h2lVvc Adrian Cabrera adrian-cabrera Adrian Cabrera
Sun, 11 Mar 2012 21:36:00 -0700 Week 9 http://adriancabrera.posterous.com/week-9 http://adriancabrera.posterous.com/week-9

Comments on 7 Languages in 7 Weeks

Wow, finally on the last language. This feels good =)

Haskell

Haskell was hard...

Haskell is a functional programming language. It uses static typing like Scala and is supposedly “the most effective type system of any functional language.”

Haskell feels like Erlang with the module declarations and list comprehensions.

During the interview, I agreed with Walders statement, “Any good programming language really becomes a means of extending itself to embed other programming languages specialized to the task at hand.”

Self-Study Day 1
1) haskell wiki: http://www.haskell.org/haskellwiki/Haskell
2) online group: http://hackage.haskell.org/trac/ghc/wiki/GettingStarted

Day 2 goes over higher-order functions, partially applied functions and currying, function composition, an lazy evaluation.

I got to see map, fold, zip and zipwith. Some of the lazy techniques were the ones I used previously in Clojure. All functions in Haskell are curried. And we used partially applied functions to translate a function that took multiple arguments at once to one that would take single arguments at a time.

Day 3 went over types, classes, and monads.

Self-Study Day 3
1) monad tutorials: http://www.haskell.org/haskellwiki/Tutorials#Using_monads
2) monads: http://www.haskell.org/haskellwiki/Monad

 

Comments on The Human Factor

In the second half of the book it talks about the political side of things. The author covers the case of E. coli in Ontario and finds system design elements like legal regulations and budget allocations which found its way affecting environmental factors and eventually leading to the tragedy of people dying and getting sick.

The author says that we need to find a way to improve our lives and move away from the technology that has caused deaths. There are ways we can do this, for example, being smart about the items we buy. We should purchase items that hare more human-tech. Use technologies that are human friendly. If we can start making better decisions now, we will have a better future tomorrow.

 

Comments on Project

It was harder than I thought, coming up with a simpler design. Its hard to create an interface, if you don’t use it on a daily basis and understand the frustrations other people are having. I’ve used it once just to give feedback to the group about my experience using it. It was a large machine, a lot to look at. I wasn’t sure what to look at first. Obviously my eyes immediately focus on what’s directly in front of me at eye level, but I’m still confused as to what to do first. I later found instructions at the top of the machine. However I felt like I didn’t have enough time since there were people behind me. I felt rushed. I agree with the group, we should have a touch screen, one that is at eye level. This way the user does not have to look anywhere else around the machine. In regards to designing the interface, I think it would be most beneficial for us to do paper prototyping and present it in front of different people and get immediate feedback. I think this will help us decide on a solid design.

 


 

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763133/IMG_0012.JPG http://posterous.com/users/cPumAg5h2lVvc Adrian Cabrera adrian-cabrera Adrian Cabrera
Sun, 04 Mar 2012 21:06:00 -0800 Week 8 http://adriancabrera.posterous.com/week-8 http://adriancabrera.posterous.com/week-8

Project 2 Humanistic Design/Redesign 

We have decided to go with redesigning the CTA fare machine for project 2. The CTA fare machine is an object that numerous people use on a daily basis. But not only do Chicago natives use it, people from out-of-state use it, and possibly tourists from outside the US. According to my classmates, this machine can be confusing to use, especially for someone that has not used it before. I suppose I have the luxury of living in the suburbs and not using this “terrible” machine; however, we figured out that I would be a great test subject to see how “terrible” this design was. I have not tried it out yet, but I will the next time I’m in Chicago for class.

I’ve started to have an interest in user center design. A professor once said in class that there will always be a competitor to a product that you will create. The product that will win over your audience is the one that is easy and simple to use. I see evidence in that in Apple products. I’m not saying that Apple products are the best; however, they do a great job with design. They have created an easy to use interface that does not require too much instruction. Most tasks can be done intuitively. Interfaces that are hard to use will not make it in the market.

Through pictures from my classmates, I have seen that the CTA fare machines are not all the same. Some only accept credit cards, some only accept cash. The machines are not standardized throughout the city. I believe it would be best if they were the same throughout. This would reduce confusion and reduce the amount of time needed to learn a new machine.

After doing a quick search through Google of other fare machines in other cities and countries, I found that color blocking was a nice way to segment different sections of the fare machine for different tasks/uses. For example, a portion of the machine would be colored red. This was the cash return. A portion of the machine was green to signify the starting point of a transaction. A blue section to signify a place to swipe your credit card. Finally, a green section to tell the user to place cash here. I think color blocking, if it isn’t already implemented here, would be a great idea.

Overall, I’m excited to work with the group. We come from slightly different backgrounds of IT and Communication. Most of us have some experience in web design, others in mobile application development, and finally networking in IT. I’m excited to see how far we can get this idea/product to go, I believe we have a great group =)

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763133/IMG_0012.JPG http://posterous.com/users/cPumAg5h2lVvc Adrian Cabrera adrian-cabrera Adrian Cabrera
Sun, 04 Mar 2012 19:31:00 -0800 Week 7 http://adriancabrera.posterous.com/week-7 http://adriancabrera.posterous.com/week-7

Comments on 7 Languages in 7 Weeks

Clojure

Clojure is list processing that runs on java virtual machine. It is a functional language with data structures such as lists, maps, and vectors. Lists are ordered collection of elements. Lists are used for code. Vectors are ordered collection of elements as well. Vectors are used for data and optimized for random access. Sets are unordered collection of elements. Maps are key-value pairs.

We can define functions by using defn and def for defining data. We also have the ability to access any portion of an argument as a parameter. Anonymous functions allow you to create unnamed functions.

Day two covers sequences, macros, and protocols and records. A sequence is an abstraction that wraps around collections. To test a sequence you use the predicate function. In day two, we are also introduced to lazy evaluation. This allows us to make and efficiently work with infinite sequences.

Day thee focused on concurrency.  It supports the concept of software transactional memory. Also discussed in this section are atoms, refs, and agents. All three are wrapped pieces of data. In a reference, you cannot change a reference outside of a transaction. On the other hand, Atoms allow you to change outside the context of a transaction. Finally, an agent will block until a value is available. Data can be mutated asynchronously using functions.

 


Comments on The Human Factor by Kim Vicente

In the first chapter, Vicente talks about how technology has gone far beyond human control. He goes out and observes situations where people are using technology without considering and taking into account the human factor. Things are built, human error occurs, and sometimes lives are lost. Overall, although technology can be good, according to Vicente, it is getting out of hand and people are dying.

 

This problem is occurring because two entities are working separately instead of together. There is the mechanical entity that engineers a product without taking the human into consideration. And the human entity that forgets that machines are an important part of human activity.

I think too often, a product is created for its function and not taking into consideration that a human needs to easily be able to use that product. Sometimes I think about Microsoft Office in this way. Office has a great suite of products, but there are always a lot of buttons to press, none that are intuitive to select. The functions are there. The usability is not.

I thought that by reporting near-misses in the hospital was great. A 90% reduction in medical mistakes in a hospital is great news!

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763133/IMG_0012.JPG http://posterous.com/users/cPumAg5h2lVvc Adrian Cabrera adrian-cabrera Adrian Cabrera
Tue, 21 Feb 2012 18:03:58 -0800 Quick Fire Challenge http://adriancabrera.posterous.com/quick-fire-challenge http://adriancabrera.posterous.com/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

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763133/IMG_0012.JPG http://posterous.com/users/cPumAg5h2lVvc Adrian Cabrera adrian-cabrera Adrian Cabrera
Sat, 18 Feb 2012 20:30:00 -0800 Week 6 http://adriancabrera.posterous.com/week-6 http://adriancabrera.posterous.com/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!

 

 

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763133/IMG_0012.JPG http://posterous.com/users/cPumAg5h2lVvc Adrian Cabrera adrian-cabrera Adrian Cabrera
Fri, 17 Feb 2012 00:22:00 -0800 Project 1 - Final Draft http://adriancabrera.posterous.com/project-1-final-draft http://adriancabrera.posterous.com/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.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763133/IMG_0012.JPG http://posterous.com/users/cPumAg5h2lVvc Adrian Cabrera adrian-cabrera Adrian Cabrera
Sat, 04 Feb 2012 19:51:00 -0800 Week 4 http://adriancabrera.posterous.com/week-4 http://adriancabrera.posterous.com/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

 

 

 

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763133/IMG_0012.JPG http://posterous.com/users/cPumAg5h2lVvc Adrian Cabrera adrian-cabrera Adrian Cabrera
Sun, 29 Jan 2012 22:14:00 -0800 Project 1 - Rough Draft - Arduino http://adriancabrera.posterous.com/project-1-rough-draft-arduino http://adriancabrera.posterous.com/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.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763133/IMG_0012.JPG http://posterous.com/users/cPumAg5h2lVvc Adrian Cabrera adrian-cabrera Adrian Cabrera
Fri, 27 Jan 2012 17:55:00 -0800 Week 3 http://adriancabrera.posterous.com/week-3 http://adriancabrera.posterous.com/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.

 

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763133/IMG_0012.JPG http://posterous.com/users/cPumAg5h2lVvc Adrian Cabrera adrian-cabrera Adrian Cabrera
Sat, 21 Jan 2012 18:39:00 -0800 Week 2 http://adriancabrera.posterous.com/week-2 http://adriancabrera.posterous.com/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

 

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763133/IMG_0012.JPG http://posterous.com/users/cPumAg5h2lVvc Adrian Cabrera adrian-cabrera Adrian Cabrera
Sat, 14 Jan 2012 13:43:00 -0800 Week 1 http://adriancabrera.posterous.com/installing-ruby-on-ubuntu-1110 http://adriancabrera.posterous.com/installing-ruby-on-ubuntu-1110

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.

 

Comments on 7 Languages in 7 Weeks by Tate

The author of the book took a survey to see what the top ten languages are. I’m interested to know why Ruby was not as popular, yet the author felt it was necessary to include it.

I don’t have much programing experience. I’m currently taking C++, I’ve taken Java this past semester and I’ve also taken an introduction to object oriented programming two years ago. It will be interesting to see, if any, similarities among the languages that will be presented in this book.

I’m excited to broaden my knowledge on different programming languages.

Ruby:

Ruby will always talk back, it will always have a response to a typed command.

As with all programming languages, a missing quotation mark, or special character will cause the programming language to spit out an error. At one point I could not figure out why my output did not match the output from the book, but that was because I used a single quote, instead of double quotes.

6

The use of if, then, while, etc. is the same in other programming languages I’ve seen, but the layout is different. It is interesting to see how different languages are written to accomplish the same task.

Ruby is object oriented, strongly typed, dynamically typed

Duck typing (example from book – first element was a string, the second was a float, but it was then calculated as int)

 

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1763133/IMG_0012.JPG http://posterous.com/users/cPumAg5h2lVvc Adrian Cabrera adrian-cabrera Adrian Cabrera