Thursday, December 6, 2012
Project #1
I e-mailed marimed foundation. They want a new website. They prefer making a website by WordPress. The reason why they want a website by WordPress is that they want to post a something daily. So, I think that WordPress is appropriate for them because WordPress is kind of journal website. Moreover, I think that it is great idea about choosing WordPress because WordPress is kind of simple-to-make tool to create a website. Creating a website is not easy by Java, HTML and other computer languages. If people want a website by them, they will need some programming skills, computer skills and any other technical skills for web. In addition, So much time is needed to create by them. However, WordPress provides us so many templates. I think that there is definitely appropriate template. Of course, it is easy to edit such as posting images, videos, and so on. In case of Marimed Foundation, I think that there are not people who can use HTML, or any kinds of computer language or who are familiar with computer languages. I have never used WordPress and any other simple-to-make tool to make a website. I think that it is great opportunity for me because I am majoring in web design. So, I think that creating web site is always great experience to me.
Tuesday, November 27, 2012
The Essential Process of Debugging
According to Chapter eight (“Defensive Programming”) of Code
Complete, it talks how we can protect our program and how we can avoid error. It
talks about the ways to make defensive program, such as Assertions, Exception, and
Debugging. I think that the most important thing of Defensive programming is
debugging because debugging is essential part of programming. I think that
programming is rare to complete and run perfectly at once. It means that writing
code perfectly is almost impossible. It usually has some errors because of lack
of code. Of course, debugging is not only needed to complete writing code good
to learn how we got wrong and to fix it. The reason why it is also good to
learn is based on process of debugging.What is process of it?
- Check the bug exists or not.
- Check where bug is in program.
- Check why error occurred.
- Make sure of way to fix it/ concern about correct way to run program.
- Fix and test it.
The purpose of this
step to identify or find sigh of bug and knowing a situation that error occurred
and knowing the way to avoid error.
2, Check where is bug in program:
In this step, we need to find and identify which program
cause error.
3, Check why error occurred:
After we find a bug, we will need to know how error
occurred. For example, the situation is program stops because of failure of
data field. In this case, finding error of data field is purpose of this step.
4, Make sure of way to fix it/ concern about correct way to
run program:
After we know the reason that program stops, we need to
think about how to fix it. In this step, we need to know detailed information
of what program is made for because some solution could change its purpose even
if error is fixed.
5, Fix and test it:
After we find correct way to fix the bug, we need to test it
and make sure that the way we try to fix deal with the bug or not and it cause
undesirable side effect or not.
Thus, each step is important to complete code and fix program. In addition, those steps can tell us what, where, and how we got wrong. If we learn how we got wrong and fix it. We can avoid similar error next time.
Wednesday, November 21, 2012
What is difference between BDD and TDD?
TDD is for developers, and BDD is for customers. Those
results are based on developer testing and customer testing
What are developer testing and customer testing?
Developer testing is that developer makes way of test for
only developer.
Customer testing is that developer makes way of test for
customer’s position.
Those testing are tested different ways. Developer testing
runs program by bottom up to test step by step. On the other hand, customer testing
runs program by top down to understand how entire program goes for customers.
As you see, ATDD (Acceptance Test-Driven development) is
placed in Customer, and BDD is between TDD and ATDD on the picture. The reason
why ATDD is placed in Customer is that ATDD is a one of cycle of testing and
repeat testing to implement an application. If testing is passed, it will be
the same meaning of implementation of the application. It is easy to make sure
that complementation of the application and its progress by client’s Position.
The reason why it is easy to make sure them is that BDD is using ubiquitous
language. TDD is not using ubiquitous language because it is for developer. In
case of BDD, a test and progress are described by ubiquitous language. So, BDD is
more understandable than TDD to clients. So, this is the benefit to use ATDD on
BDD for client. Therefore, BDD is for customers. I think that that is one of difference
between TDD and BDD. I want to share this idea to understand difference between
them. However, I could misunderstand about that. If so, Please let me know what
I got wrong.
What is More Important Thing Than Coding?
- Everything describe the routine does
- Avoid meaningless, vague, or wishy-washy verbs
- Don’t differentiate routine names solely by number
- Make names of routines as long as necessary
- To name a function, use description of return value
- To name a procedure, use a strong verb followed by an object
- Use opposites precisely
It talks about that appropriate name helps us to understand
what routine does. Conversely, improper name routines could make us confused.
For example, short name of routines could be easy to write, but it will be
highly possible that name of routine might be weak name. However, too long name
of routine is improper as well. The book says that “Research shows that the
optimum average length for a variable name is 9 to 15 characters.”(171) I think
that too much described names can be too long name. In addition, Avoiding
wishy-washy verbs is important to name routine because some term of words has
several meanings and covers huge meaning such as calculate, call or so on.
Those wishy-washy words will not be appropriate name for routine.
Of course, appropriate name is good not only routines but
also other objects. As I mentioned above, Weak naming variable makes program
harder to understand. If we use weak name for other, it makes us confused as
well. In my case, I used to write too short names because it was easy to write.
Of course, it did not describe what object does. I just described number or
string. We can use any term of words for them such as num1, DailyPay, or etc. So,
this is why I used to write short name for them. However, if we use any term of
words for variables, program can run. However, it can make our brain confused.
One day, I wrote a little long program with short variable names. Finally, I got
confused. So, nice described variable name is important for programming.
Example:
1:Answer = number1 + number2
2:TotalSalary = NumberDayWorked + NumberHoursWorked
As you see, second example is absolutely better than first
one. First one can run, but we do not know and expect what number1 and 2 do. On
the other hand, we can expect what Number DayWorked and NumberHourWorked
somehow.
Friday, November 9, 2012
The World's first RDBMS!
Nowadays, most people have heard term of database and some of them have known function of database. In my case, I had learned basic things of database. However, I do not have enough knowledge of it. According to Chapter 2 of Engineering Long-Lasting Software, "Database have historically provided high durability for stored information." I am very interested in history of relational database because I know how to code for relational database, but I do not have a history of it.
Recently, Oracle, IBM, and Microsoft are famous for Relational Database. those three companies mostly keep 90% of the market share of database. However, question came up.
Which company did develop it and start servicing it?
Edger F. Codd who worked at IBM wrote a essay titled "Derivability, Redundancy, and Consistency of Relational Store in Large Data Banks" in 1969. Database is based on contents of that essay. It talks about definition of relational algebra and calculus, and using predicate logic for controlling database. this is the origin of Relational Database.
in 1973, IBM launched project "System R." at the same time, Michael Stonebraker who was in University of California, Berkeley launched original project INGRES(Interactive Graphics Retrieval System), inspired by essay of project System R.
INGRES by Stonebraker had developed gradually and it had supported to create other RDBMS such as Sybase, SQL server, Informix, and so on.
Larry Ellison who was in Ampex cooperated with his bosses to establish a company Software Development Laboratories in 1977. it had changed name of company to "Relational Software Inc." in 1979 and it had changed its name again to "Oracle Corp." in 1983. They made the world's first relational database management system(RDBMS) on UNIX in 1979. IBM made RDBMS which ran only on VSE in 1981 and another type of RDBNS which ran on only MVS in 1983. As diffusion of UNIX in 1980s, Oracle's RDBMS became popular because its RDBMS is based on C which is highly portable language. on the other hand, IBM's RDBMS could run on only IBM's OP.Wednesday, October 31, 2012
What is the good thing of Ruby?
This is the first time to learn Ruby for
me. However, as compared with other programming language, which are Java, PHP,
and so on. Ruby is much understandable programming language. Programming
language of Ruby makes us simplify programming. There are many advantages of
Using Ruby because it based on object-oriented. What are the advantages of
Ruby?
Simple Example:
Java:
Ruby:
Output of each method shows the same
result. As you see, method 3 in Java is the easiest one. However, Ruby’s one is
much easier than Java’s ones to write. Ruby does not require semicolon and
“System.out.println.” Of course, Ruby makes other situation of methods easier.
Simple looping Example 2:
Java:
Ruby:
In case of looping examples, both Java and
Ruby show the same result. As you see, Ruby is simpler than Java. Ruby can cut
unneeded part of programming language and give us extra time to work other
things.
Object-oriented makes us create a data
field and a method together. It means that we do not need to work them
separately. The concept of object-oriented programming is “object.” We need to
consider about object first, then what things should be around “object”. There
is a list of benefits of object-oriented:- The concept of a data class makes it possible to define subclasses of data objects that share some or all of the main class characteristics. Called inheritance, this property of OOP forces a more thorough data analysis, reduces development time, and ensures more accurate coding.
- Since a class defines only the data it needs to be concerned with, when an instance of that class (an object) is run, the code will not be able to accidentally access other program data. This characteristic of data hiding provides greater system security and avoids unintended data corruption.
- The definition of a class is reuseable not only by the program for which it is initially created but also by other object-oriented programs (and, for this reason, can be more easily distributed for use in networks).
- The concept of data classes allows a programmer to create any new data type that is not already defined in the language itself.
Those lists made by Margaret Rouse. She
talks what is benefit of object-oriented programming easily. Here is entire
article:
In case of this post, I just compare Ruby
with Java. However, I found interesting article about Ruby. Its article compares
Ruby with Perl and Python. I have never used and learned Python and Perl, but it
shows how simple Ruby is. It shows the same program by Perl, Python, and Ruby. Unfortunately,
It is in Japanese, but you can see code of them Here is article.
Subscribe to:
Posts (Atom)












