Saturday, April 11, 2015

Extra Blog; Structured Query Language (SQL)

On April 5th, me and my mentor met to learn about creating tables in the Oracle database and using SQL to retrieve, update, add, and delete records from the database. We also briefly went over how to convert my JIIS HTML pages to ColdFusion Pages and how the Financial Reporting System for my mentor's work uses the database. The following is the work assignment that lists out what we did:


First, we went over creating a table in the PL/SQL Developer. Creating a table was pretty straight forward. All we needed to do was right click on the "Tables" Object from the PL/SQL Developer and select "New..." Doing this displays a popup window that lets us define the name of the table, the columns/fields of the table, the datatypes for each column/field, and the primary key for the table. After doing so, the table that we created was listed in the Tables Object in the PL/SQL Developer.

Since there was no data within the table we had just created, we used an existing table to see how to retrieve, add, update, and delete records. We right clicked on a table named "Departments" and selected "Query data." Doing so displayed all the data within the Departments table, as well as showed us the SQL code that retrieved the data. My mentor pointed out that there was a little blue arrow that pointed downwards at the top of the table display. She said that this meant that there was more records than what was currently being displayed on the screen. Upon clicking it, the rest of the data was displayed (after scrolling  a long way down).

The SQL code that displayed was:
select * from Departments
This code retrieved data from the table "Departments" and displayed it on the screen. The select command retrieves and displays the data from the specified column(s). In this case, the columns specified was an asterisk (*). This mean that the indicated column to select was "all" the columns in the table. To indicate which table to select 'from,' the command from, followed by a table name allows the SQL code to know which table to retrieve all the columns from. In this case, the table is "Departments"

My mentor showed me how, instead of selecting all columns, it is possible to just indicate specific columns from the Departments table to select from. This was done by typing each columns' name in place of the asterisk in the order that we wished to display them, each separated by a comma. Doing so would only display the specified column(s), once the code is executed by clicking the "Execute" button at the upper left corner of the PL/SQL Developer.

Following  the from command, there was more code that could be written. These were the where and the order by commands. First, the where command filtered what was being retrieved. It created a statement 'where' if the condition specified was true for a record, the record would be selected. If a record did not meet the condition, that record would not be retrieved and, therefore, would not be displayed. For example:
select * from Departments
where ID = '1234'
Doing this will only display the record(s) with a value of '1234' in the ID column/field. To specify multiple conditions, the word and can be placed directly after a condition. For example:
select * from Departments
where CITY = 'Pomona' and STATE = 'California' 
The second additional piece of code was the order by command. This ordered the records by a certain column in ascending order. The first records to be displayed were the records that had no value (null) in the field. Then, the records with a numbers and letters in the specified field would be displayed (ex: 1, 13, 1G, 2, 24, A, A3, AB, B45, BC, BW, C, ect.). For example, the SQL code
order by CITY
displays the records ordered by the CITY field.

After showing me the different pieces of SQL code for retrieving data from a table, my mentor then showed me two different ways to add and delete data from a table. The first way was right clicking on a table, selecting "Edit data," and editing the records from there.

The second way was selecting "Query data" and typing in for update after the initial select command. After running it, the displayed table had a plus and minus button in the menu bar, as well as a "Post changes" button. Clicking the plus button would create a new record row in the table, while selecting a record row and clicking minus would result in deleting the selected record row. Once changes have been made, it is required to click the "Post changes" button to save the changes. To confirm the changes were made successfully, my mentor executes the SQL code again. To delete all the records in a table, we can type the SQL code:
delete from Departments
This delete command can also contain a where command.

In addition to showing me SQL code in the PL/SQL Developer, my mentor also showed me that, for my current HTML programs, I can open them in Adobe Dreamweaver where I would be able to convert them to ColdFusion programs. This is done by changing the file extension from .html to .cfm.

Afterward, my mentor taught me how the FRS Web Application uses a database. She showed me FRS tables, views, and stored procedures. The tables were organized similar to the Department table; they just had different values pertaining to different things. She then showed me existing FRS View Objects, which contained SQL code that contain combinations of tables to be used for specific inquiries. She then showed me Stored Procedures and explained that they were like sub-programs to save multiple SQL statements in a single procedure and to use parameters in conjunction with the SQL statements.

Tuesday, April 7, 2015

Extra Blog; Databases

On Friday, April 3rd, my mentor and I sat down to install a new Oracle Database and ColdFusion Web Application Development Platform on her computer so that I could work on my Independent Component 2, an extension of JIIS. She created a work assignment for what we were going to do and we followed each step, using past documentation as an example.


The first thing we did was to install an Oracle Database 11g Release 2 64-Bit Server on a server for my mentor's computer to connect to. In doing this, we setup the database name, set up the Administrative password for the database, and the directory in where the database would be saved (D: Drive). Once we finished setting everything up, the database started installing. Due to my mentor's fast computer, the set up took only 30 minutes. She stated that at here work, it took around three hours. After it finished, we also has to set up the passwords for the SYS and SYSTEM Database accounts. The SYS and SYSTEM accounts are the initial accounts that are used to access the database since no users had been created yet.





Next, we setup the Oracle TNSName Network Connection in an Oracle folder under the D: directory. We created backup copies of the existing TNSName Network Connection file and altered the file to connect to the server's IP address. Due to the file being an ORA file type that is not originally designated to be opened by a preset program, we opened the file using notepad. In the file, there was a line that had the text "HOST =" and "PORT =" in separate parenthesis. For "HOST =", the IP Address of the server we were connecting to was required. My mentor stated that typing the IP address directly did not work since the IP address was given a name. However, typing in the name associated with the IP address worked instead. Therefore, we we entered in the name associated with the IP address of the server we were connecting to, rather than the actual numbers of the IP address. As for "PORT = ", the preset port associated with the IP address was typed.

After this was set up, we installed the PL/SQL developer, a tool that would allow us to create, add, update, and delete tables in the database once we connect to the server. This was easy to install; it was just like any other software and was not nearly as difficult as installing the database.

In order to connect to a server, a computer must have a client that can connect to it. Therefore, what we did next was to install the Oracle 11g Release 2 32-Bit Client onto the computer. At first, I was confused with this. I didn't get why we were installing a 32-bit client when associating with a 64-bit software. I wasn't  even sure if that would work. My mentor assured me that it would work with either a  32-bit client- or a 64-bit client.The only reason why we installed the 32-bit version was because of the PL/SQL Developer, a 32-bit piece of software. In order for the PL/SQL Developer tool to work with the data base, it reqires the client to be 32-bit as well.

Next, we tested the SYS account for the PL/SQL developer and created new users that could be used. Upon opening the PL/SQL Developer, we entered in SYS for the Username field, the designated password for the account, the database name, and what to connect to the database as. We connected as SYSDBA. Before connecting, we turned off windows firewall since leave it on can cause some errors in the connection process. After doing all of this, were were able to connect successfully to the database.



We then created new users by right clicking on the User file and clicking "New..." In the popup window, we were required to fill in the username, the password for the account, and the permissions for the account. First, we created an account with the name "MISADMIN" and tested to make sure it was working properly by logging in to the account. Once we confirmed that it was working, we then made 4 other accounts in the same way, but with different permissions.



To fill the database with tables and data records to test and work on, we then transferred test data records from the FRS Test Database by exporting and importing those files. First, we created a folder to designate with as to where the exported data should go to. We then opened cmd.exe while connected to the server the test database was in. We used the command "exp" and filled in necessary information such as the username and password. We also created a .log file to record what is exported. After running the program and waiting for a significant amount of time, we finally ended up with both a .log and a .dmp file. The dump file contained all the data records and tables from the test database.

In order to transfer this file from the test server to the server with which the new database was installed, a tool named Total Commander was used. The servers were already connected to each other so, in Total Commander, all we needed to do was to move the .log and the .dmp files over. In the server with the database that we just installed, we opened cmd.exe again and, instead of typing in "exp" for export, we instead did the "imp" command to import it into the corresponding location.

Next, we needed to install the software that would allow us to actually create web applications. In this case, we used the ColdFusion 9.0 64-Bit Enterprise Server as it could be used with the Oracle Database. In making this work, we set up the Internet Information Services (IIS) and the Web Server IIS. We enabled this through windows by going to the Control Panel and running the server manager. Here, we enabled IIS and allowed for Application Development, IIS 6 management Compatibility, and the FTP Server. After installing the IIS, we tested it to make sure it was working by opening Internet Explorer and typing in "http://localhost." What was display was an image of IIS7.

After this, we installed the ColdFusion 9.0 64-Bit Enterprise Server on the same server as the database. This installation was straight forward. It was like installing any other piece of software with a product key. After filling the key in, marking the corresponding settings, and creating an administrative password, the installation of the ColdFusion 9.0 64-Bit Enterprise Server was complete.


We then setup the final settings for the ColdFusion 9.0 Administrator Configuration Site. We connected to the servers IP address and opened the file under the directory CFIDE/Administrator/Index.cfm. There, we entered in the password and changed the settings for each major component: Server Settings, Data & Services, Debugging & Logging, Server Monitoring, Extensions, Event Gateways, Security, and Packaging & Deployment. Each one of these component consisted of many different sub settings. Once all of these were set properly (which took a long time due to the immense number of settings), the installation of the Oracle Database and ColdFusion Web Application Development Platform was complete.


Overall, this entire process of completing this work assignment took 9.5 hours in total and spanned over 2 days.


Saturday, March 21, 2015

Extra Blog: Computer Building

On Februrary 27, 2015, my mentor gave me a new work assignment that seemed quite daunting. This assignment was to build a whole new computer from individual parts for both of our use. My mentor gave me a list of general spaces she wanted and I was required to find compatible parts to those specs of balanced value and quality. I was also required to research how to build it, what each part does what, and how to install the Operating Software and drivers. The website I used, as well as the website my mentor recommended me to look at, was http://lifehacker.com/5828747/how-to-build-a-computer-from-scratch-the-complete-guide. She stated that when dealing with IT, it is important to not only learned the software side of a computer, but also the hardware side of it. Building a computer deals with the hardware side and allows for a better understanding of the computer as an entire whole. The following is the assignment sheet in writing:



I sat down with my mentor on the 6th of March to review the additional and specific parts that I found such as the case and we ordered it online. Once all the parts arrived we made sure everything was there and decided to start building the computer on the 13th of March.

Before building the actual computer, we set up and got everything read to ensure that finding parts and protecting them would be easy. We went over the part list again to make sure we had everything we needed (which we did.) We then set up and anti-static mat (tin foil connected to wires plugged into the ground) to make sure that the parts were protected from static shock that may occur. We also unboxed everything and got prepared to assemble everything together.


The next day, we started to build the computer itself. It was a length process that took up most of the day. We first opened the case and, upon inspection, we took note on different areas where we would place stuff such as the drive bays and the motherboard mounting area. We then decided to test the main components first to check to see if anything was faulty from the start. We mounted the motherboard and mounted the power supply (twice because the 1st time was upside down.) In addition, we installed the CPU, its cooler, and the RAM. After connecting the power supply to the motherboard and the outlet to the power supply, we turned it on and it displayed a green LED indicating it was in standby mode, ready to be powered on.


After this initial test, we mounted the HDD, SSD, and Optical Drive in their corresponding places. We then ran cables from the motherboard and the power supply to these drive in the 'back' of the motherboard to reduce air blockage inside the main area of the case itself. We then ran the power cables from the power supply to the drives as well in the same direction. The same was done for the fan to their location. After this, the video card was installed. We had to remove some of the back panels so that the ports at the end of the card could come through. Once these were installed, we ran cables to it from the power supply through the back. We read the user manual for the motherboard and case to make sure everything was done correctly. It was a good thing that we did because we almost damaged the motherboard by plugging in a 1394 cable into a USB port. After checking, we hooked up a monitor and keyboard for these tests so we could actually see things.

The first test worked fine and the boot menu came up stating to pres F2 or DEL to get to the BIOS setup. It work the first time, but after that nothing would show. We went through the process of looking up solutions and trying them out, finally finding that resetting the BIOS was the solution (and turning on the monitor.) Once the system was able to boot again, we prepared everything for Windows to be installed. After inserting the disk, the OS installed easily.



Afterwards, we installed the final drivers for certain parts such as the GPU and the motherboard. In addition, data was transferred from another computer, the layout was changed, and various software was installed to finish the computer.

At the end of all this, the computer was a success. Not only was the computer built by myself with some help, but everything worked fine and as planned in the end. This experience has inspired me. It showed me that even though certain things in life might be overly complicated or too far for a regular person to go to, persistence and determination will allow a person to accomplish those tasks.

Wednesday, March 11, 2015

Fourth Interview Questions


  1. What is your name, job title, the place where you work at, and the amount of time you have been in this field?
  2. What would you say is most important to learn before coming into this field of work?
  3. Have you ever needed to learn any new things since you started working in this field? If so, what did you learn and why did you need to learn it?
  4. How much does the change of technology over time affect your work?
  5. What do you consider to be the most influential factor in determining success in this field of work?
  6. What kind of database do you use, how often do you use database, and what do you use it for?
  7. How is the database structured/organized?
  8. What is SQL and what do you use it for?
  9. What are the benefits of using a database, particularly in what you work on?
  10. How do you retrieve information from databases from a program?
  11. How do you receive a service request and who do you receive them from?
  12. How do you ensure that you understand a customer's service request completely?
  13. How important is it to understand who your customer is?
  14. What do you do to ensure that you complete the service request?
  15. Do some projects or service requests require multiple people to complete? Why or why not?
  16. How often do you meet with your customer, co-workers, and managers?
  17. What kinds of service requests do you receive?
  18. Do you keep in contact with your customer after completing a service request? If so, why?
  19. How can an individual become a successful computer programmer in general?
  20. How can a software developer create applications that best meet customers' needs?

Wednesday, March 4, 2015

Blog 17: Third Answer

1. EQ 

How can a software developer create applications that best me customers' needs?

2. Answer #3 (Write in a complete sentence like a thesis statement)

A software developer can best create applications that best meet customers' need by actively keeping up to date with technology and continually learning new technological subjects.

3. Details to support the answer (a detail is a fact and an example)

  • "Technology changes fast. Don’t get left behind."; A quote from Clint Shank, an author of programming and technology topics. Technology changes constantly and new platforms and internet browser versions are constantly becoming apparent in use. Therefore, in order to to best make an application for a customer, one should learn what the latest technology is and whether one should learn previous versions of software. Either way, the developer must continually learning new subjects, new or old, regardless of past experience to design something catered directly towards customer's needs.
  • Software being updated at a steady rate; From my research, I have found that the languages change quite often and certain things from earlier versions become less applicable or unusable in new versions. For example HTML5 being updated recently and the change from C++ to C#. These differences should be known in order to know what can, and cannot, be created.
  • Knowing how to use software that is new to you; One example of this is my experience from mentorship where I was learning how to create Oracle database tables and use the PL/SQL Developer to retrieve, delete, add, and update data in the tables. In addition, I learned how to use ColdFusion programs to work with databases as well. I found that learning databases as well as the tool is very important. In the future, ideas and concepts such as these should be learned, if previously unknown to the developer.

4. The research source(s) to support your details and answer

Boehm, Anne and Delamater, Mary. Murach's ASP.NET 4.5 Web Programming with C# 2012 5th Edition. Fresno, CA: Mike Murach & Associates, Inc., 2012. Print. 14 Feb., 2015.

Carr, James R. "Computer Programming in the 21st Century: Quo Vadis?" University of Nevada Reno. Web. Aug. 8, 2014. <http://www.uh.edu/~jbutler/anon/carr.html>

Jollymore, Amy. "7 Ways to Become a Better Programmer in 2014." O'reilly Radar, Jan. 1, 2014. Web. Aug. 25, 2014. <http://radar.oreilly.com/2014/01/7-ways-to-be-a-better-programmer-in-2014.html>

5. Concluding Sentence

 Technology is always changing and it is a developer's responsibility to keep up with technology to best carter to the changing market and medium in which they make applications. Continuous learning of these new pieces of information will not only help to optimize the application in the best way possible for all users, but it will also help to manage and organize data and code. Therefore, keeping up to date with technology is a way that software developers can best meet customer's needs.

Saturday, February 28, 2015

Extra Blog; Retrieve, Add, Update, and Delete

On February 21, 2015, I met with my mentor and she taught me about databases. My mentor showed me a Production database she used for the Web Application System called Financial Reporting System and recommended me to read chapter 12 of the book “Murach’s ASP.NET 4.5 Web Programming with C# 2012 5th Edition” by Mary Delamater and Anne Boehm titled “An Introduction to Database Programming.” The following will be information about databases that I have learned.


The book my mentor recommended to me.
(Less pretty than that other book)


Table of contents of what I read.

First of all, there are many different types of databases, some of which are more commonly used than others, depending on the system that is being used. Types of databases are Flat-file Databases, Hierarchical Databases, Object-Oriented Databases, Relational Databases, and many others. My mentor, who is in charge of the FRS system, uses the Oracle Database and is a Relational Database. In order to access the Oracle database, she uses the PL/SQL Developer Tool. To have access to the FRS data records from the database in the PL/SQL Developer, she uses SQL code. SQL is an acronym for Structured Query Language and it is the programming language used to retrieve, add, update, and delete data records from the tables in Oracle databases. My mentor walked me through how to use SQL code to retrieve FRS records from a specific table as well as the concepts of the Relational Database.

In the Relational Database, each table consists of one or more records, or rows, that contain the data for a single entry. The tables have primary keys which uniquely identify each row. The tables can also be defined by one or more indexes which provide an efficient way to access data from a table based on the values in specific columns. Relational Database tables can relate to each other between primary keys and foreign keys, the keys that refer to the primary key of another table. When a row in a table relates to one or more rows in another table based on the keys, it is called a one-to-many relationship. When two tables are related via a foreign key, the table with the foreign key is referred to as the foreign key table and the table with the primary key is referred as the primary key table. There are also one-to-one relationships and many-to-many relationships.

Each column in a database needs to be defined a data type to determine how the computer reads each row in the column. The data type also determines what can be stored into that column, as well as the length, precision, and scale of the data. It is also possible to make the columns “nullable” in that it allows a null value to be stored in a field. A null value is like an “empty” space. It is a value that represents that something is occupying that space, but the value itself is unknown. Default values can also be assigned to each column. When new rows are added to this column, the row will contain the specified default value. Identity columns can also be made. New rows that are added to this column will contain a numeric value that is generated automatically. To restrict values that a column can hold, you can define check constraints. Check constraints can be defined at either the column level or the table level.

One of the major portions of information that my mentor gave me is the actual use of SQL code to obtain data records from the database. There are four SQL statements I learned that retrieve, add, delete, and update data. They are the Select, Insert, Update, and Delete statements.

The Select command retrieves and sorts selected rows and columns from a specified table. An example is as follows:

Select ProtuctID, Name, UnitPrice
From Products
Where CategoryID = ‘props’
Order By UnitPrice


This will result in a table being displayed, consisting of all the selected columns (ProtuctID, Name, and UnitPrice) from the specified table (Products) that meet the condition where the CategoryID is equal to ‘props’. The table will then be ordered by the specified column (UnitPrice) in alphabetical order or least to greatest if it is a numeric value. The column names can be replaced with * which specifies all of the columns in that table.

The Insert command adds a row into a table with a certain value. An example of this is as follows:

Insert Into Categories (CategoryID, ShortName, LongName)
Values (‘food’, ‘Spooky Food’, ‘The very best in Halloween cuisine’)

The values specified (‘food’, ‘Spooky Food’, and ‘The very best in Halloween cuisine’) will be inserted into new rows in the corresponding columns (CategoryID, ShortName, and LongName) in the specified table (Categories).


The Delete command is similar; it removes a certain row in the table. It is coded slightly differently:

Delete From Categories
     Where CategoryID = ‘food’


The command will delete the row(s) of the specified table (Categories) that meets the condition where CategoryID = ‘food’.


The Update command consists of setting the value of a row equal to be equal to a new value.

Update Categories
     
Set ShortName = ‘Halloween cuisine’
     Where CategoryIN = ‘food’

The value of a certain column (ShortName) in the specified table (Categories) will be set to a new value (‘Halloween cuisine’) if the condition is met (Where CategoryIN = ‘food’).

The Relational Database can contain other database objects like Views. They act like tables, but aren’t technically tables themselves. Views are predefined queries that are stored in a database and are accessed by issuing a Select statement that refers to the view. The View creates what is known as a virtual table, which is a temporary table that’s created on the server. Views consist of simple SQL statements.

The Relational Database can also contain Stored Procedures which can contain more complex and generally more SQL code than views. Stored procedures can use the insert, delete, and stored commands.

Wednesday, February 18, 2015

Answer 2

1. What is your EQ?
How can a software developer create applications that best meet customers' needs?

2. What is your first answer? (In complete thesis statement format)
A software developer can create applications that best meet customer's by having a solid foundation in programming knowledge.

3. What is your second answer? (In complete thesis statement format)
A software developer can create applications that best meet customer's by understanding the business aspects of the application.

4. List three reasons your answer is true with a real-world application for each.
  • Knowing what the customer/userbase wants is vital to making an application dedicated towards their needs; Mentor, as well as other employees at my mentor's work place continuously meet with customers and establish who will be using it
  • Understanding the business structure can allow for the application to be made and developed as effectively as possible; FRS is designed for court employees to enter, record, and calculate court records by their month-end report. This application is optimized for this task, therefore meeting their needs more effectively.
  • Ability to understand how to communicate with the customer as well as how to develop applications as a team; Conversing with customers, whether client or target audience, is common and keeps the application on track. Also, many big projects have teams of people working on them at one time. Understanding one's role, and the roles of other people will allow a more efficient work environment and a more synchronous team.
5. What printed source best supports your answer?
Vigil, Diane. "Web Design, Ad Copy and Targeting your Target Audience." Web Design Help. DianeV Web Design Studio, n.d. Web. Jan. 23, 2015. <http://dianev.com/web-design-help/web_design_basics/target_audience.html>

Describes importance of understanding the customers, establishing who and what the application will stand for, and how recognizing the non-technical side of an applications is also very important.

6. What other source supports your answer?
After notifying my mentor on my changed EQ, she stated how she thought that understanding the "business side" of the work was most important. She stated how it can give you the idea of what the customer wants, as well as how to work within the the system. Doing this can also developers to make application that are designed specifically for the customer and those who will use it.

7. Tie this together with a concluding thought.
This answer combines having knowledge of the customer/target audience, the work environment, and type of usage. I might need to reword the thesis statement a little bit to make it sound more clear and lass vague. I will need to research more about this answer so I can have an idea of what to specifically teach about during my presentation.