Monday, January 31, 2011

Reading Blog - Design of Future Things Ch 2

Summary:
This chapter talks about smart machines and AI. IT speaks of the advancment of technology and how it becoming more and more intelligent. He illustrates different scenarios of where machines could have conversations with us using their intelligence. He then explains the differences between humans and machines and shows the vast gap between us. He explains how computers now have no way of being intelligent enough to hold conversations but makes us think of the future and all its possibilities. He says that by establisging a common ground between humans and computers, this may happen.



Discussion:
I think some of the ideas presented in this book are way out there, but I'm sure many of the new technologies we have today seemed far fetched at some point in the past. The design of future things seem to annoy us if they go the way Norman explains them. Who knows what the future will hold, but I am not going to take any lip from any machine.

Saturday, January 29, 2011

Reading Blog - Extreme Programming Installed Ch 4 - 6

Extreme Programming Installed Ch 4 - 6


Summary:
The first chapter dealt with user stories. These stories are a conversations had by the programmers and the customers to see what specifications a system needs. The stories are given in 2 week programmer time and written down on cards. Stories should mainly come from the customer. Chapter 5 deals with testing. It is very important in XP to check test often in order to avoid waiting time later by testing in the end and forgetting the code. This way, bugs are caught much faster. Testing each story is a good way to test the overall program. Another way is to manually compute and check against the software. Chapter 6 discusses the importance of assigning points to each story to come up with solutions to the most important ones first. By doing so, we can choose which stories to do and give an approximation of time. Comparing is a good way to estimate and calling from previous stories implemented. It is good to start early on with intuitive time testing. This helps steer the project. It is best to experiment when dealing with stories never seen before. One will not get the perfect solution the first time around. Keeping records of all this is extremely important. It is the programmers who set the pace of the project.



Discussion:
All these tips seem very crucial and extremely helpful. It can really cut down on time of programming as well as debugging. I will be implementing these methods when it comes to my design project to keep on task and avoid falling behind.

Monday, January 24, 2011

Reading Blog: Design of Future Things Ch 1

Reference:
The Design of Future Things
Donald D. Norman


Summary:
This chapter introduces a problem with machines, their stubbornness. Norman explains that many machines designed to help, assist, or aid users in completing a task do it in such a way that it becomes unclear if the machine is aiding you or telling you what to do. An example of a navigation system is given. The user only has a say in the destination. The technology takes over from there and a user's options is follow the machine or not receive any help at all. There is the improvements of user's choosing a path to follow but how much authority does a child have when a parent gives them options. The user still has no say on how to get there, only how to be told to do something. This causes a problem because machines do not know what users desire, just what they are programmed for(given that they work correctly). The author hints that our lives, although surrounded by technology to control, are controlled ourselves. We are controlled by the need to control. Norman calls for a more symbiotic relation with technology where interaction becomes seamless and natural, but in some instances, just like a relation with a horse and a horseback rider, training is required. The overall vision of this chapter is to illustrate and call the need for natural interaction with machines where the relationship is mutual instead of one telling the other.



Discussion:
The chapter in the book made me reflect on the relationships I share with computers. I sometimes feel tied and constrained to them because I rely on them so much for everyday activities. I see it as a analogy to the same issues raised with televisions. Where users of the TV became so enthralled that it controlled their routine and schedule. I can see a similar path with computers and their users and as Norman explains, its not too late to change it.

Reading Blog: Extreme Programming Installed Ch 1 - 3

Reference Information:
Extreme Programming Installed
Ron Jeffries; Ann Anderson; Chet Hendrickson
Addison-Wesley Professional, October 16, 2000


Summary:
The reading begins by explaining the role of a customer in an XP project and how they decide what is of business value. They inform programmers of the specification with stories- verbal communication explaining how the system needs to work. They also manage the project in respect to the amount of work that can be done by a programmer in a given time. For programmers, the emphasis is on programming. The software is to be built in small releases. This calls for continuous design, rapid feedback, and maintenance of code. Also, sharing the code will be a necessity in XP. The managers role in the XP process is to make the work of the programmers easier by managing anything that may interfere, out of the way, in order for work to get done. Managers also set up meeting before release planning and serve as the middle man for the programmers during the meeting scheduling. Mainly, the manager makes sure everything goes smoothly and stays on track. The reading goes further by explaining the rights of each of the roles. The book explains the "circle of life" in XP by indicating the role of the customer and the role of the programmer in terms of defining and delivering value as well as estimating costs for the customer to choose values. The process is a learning experience for all and leads to success. Customers who are on site provide more value to the project but is understandable that sometimes they can always be there. When this happens the it is best to locate a representative for the company locally for the programming but try to get the real representative there for the meetings. Sending the programmers to the customer is also an excellent way to keep the project flowing. Lastly, if all else fails, make sure the customer can see the released code.



Discussion:
I enjoyed this reading, having done some small extreme programming in another class. It is a different way of programming but I do see the results. These chapters helped me get a better understanding of what I was doing when doing the sample XP. This cleared up some of the roles and responsibilities as well as presented new ones to each of the three groups (customers, programmers, and managers).I know this is only just the tip of the iceberg of XP and look forward to reading more. This will prove extremely helpful in managing our groups for this senior capstone design course.

Thursday, January 20, 2011

Introduction Blog

Miguel A Cardenas

I'm still am not sure what I am doing after graduation, even though it is only a couple of months away. There are so many different fields in computer science that it is hard to decide. I enjoy anything having to deal with networks and security and AI as well. I feel those are the two major fields in computer science that peak my interest. I dont feel I am particularly strong in only one field of computer science but rather, I like getting my feet wet and knowing a little bit about different topics so that one the time comes for me to use that knowledge, learning it will not be too difficult since I have a foundation of the material already. I dont know if I have a favorite project over my college career (I do know there are some I hate) so I really can't pin point a single one. There have been many. My least favorite has definatly to be either the Microprocessor out of logic gates or anything using Haskell. I see mobile phones having one of the greatest evolutions over the past five years. THey have come such a long way and keep coming out with new features, functions, and apps. I see the mobile industry booming right now. As for programming style, the only thing that bugs me is sloppy code that's just all over the place. That is my biggest pet peeve.