Labels

Monday, February 27, 2012

The last post for Chapter 3 (Sudoku - New Game Button)

I have tested all of the feature in Chapter 3 including debug print window.

I have implemented "New Game" and "Exit" button today.
It can pop out "Difficulty" dialog box as the same way as  I did for "About" button. The game is not started since it has only an entry point and it is supposed to print a message on the screen.

2 problems I encountered:

  • It did not show the message "clicked on ... " as the book said.
RESOLVED: They are not printed to standard output. There is a log window in Eclipse
Click Window->ShowView->LogCat
See image below.
  • It did not exit the game by pressing "Exit" button.
Page 56-57 of Hello, Android
In Sudoku2.java


private void startGame(int i) {
    Log.d(TAG, "clicked on " + i); // This prints nothing (?) See LogCat window
    // Start game here 
}


case R.id.exit_button:
finish(); // Did not exit the program (?) 
break;


New Game Dialog is implemented 

LogCat Window for Log.d output
At the end, I would recommend you save the directory (whole package) after each feature worked then start modifying files for the new feature.
In general, there is labeling mechanism in source code control system. I do not know if Eclipse has the feature. If you know, please let me know.

Sunday, February 26, 2012

(Chapter 3) Implemented "About" button successfuly


  • Today, I implemented actual activity for ABOUT button. When I press the button, it navigates to the next  window in the format so called "Dialog box" since I defined the theme of "Dialog" in AndroidMainifest.xml. 
  • AndroidMainifest.xml is the file which maps the activities to the xml pages or texts you have created.
  • XML (layout) and Java activities are synced with IDs. If there are some discrepancies in between, Eclipse will put bug marks in the files and also on the lines which have problems so that the developer will know easily and fix them.  
  • For this feature, I needed to call OnClickLisner function. Unlike C, Java calls its functions "Methods". Methods belong to a certain Class. 
  • Other buttons can be implemented exactly the same way.




Friday, February 24, 2012

(Chapter 3) User Interface Design

Android app uses XML to define the user interface on the screen.

I learned how to use graphic design tool in Eclipse.
By using the graphic layout tool, editing of XML file could be minimized and shorten the development time dramatically.

Following is the layout I designed for the example Sudoku game.



(Chapter 10 ) Vertical Integration – NOTES and OUTLINE


Corporate strategy:
How management react to take advantage of the environment (market) in corporate level.
One of the major issue is to determine supply chain.

Vertical integration in supply chain means that a firm owns its upstream suppliers and its downstream buyers.


  • 3 variations of vertical integration (Need to review)
  • Advantage: Monopolization (may not good for customers), control of price, stable or predictable market managed by own. Investment growth.
  • Disadvantage: More effort and resource on management side 

1.       Forward

Supplier own its producer. When Suppliers manage the distribution of its products in the same supply chain belonging to one owner, it called Forward vertical integration
[EXAMPLE] Farmer sells vegetables to the local restaurant which he/she own



2.       Backward


Producer own its suppliers.  A company parches the parts from its own companies and produces its products.
[EXAMPLE] Ice cream company owns a dairy farm.


3.       Balanced  



·         Example and analysis

The 2003 purchase of DirectTV by News Corporation is an example of a forward integration through acquisition. DirectTV is a satellite TV company, and its purchase enabled News Corporation to use it as a medium to distribute more of its news, movies and television shows by managing the process itself.


Starbucks is best known as a chain of coffee shops. As such, it has various suppliers and inputs -- it buys coffee beans to make coffee as well as customized mugs and products to sell in its stores. It backward vertically integrated when it bought a coffee farm in China, because normally it would have to buy coffee beans from a coffee bean supplier.



Wednesday, February 22, 2012

(Chapter 2) Basic Concepts


·         Architecture

------------------------------
Application and Widget
Application Frame works
Libraries
Embedded Linux Kernel
Drivers
------------------------------
Hardware
------------------------------

-          As you see, Application runs on Linux OS so that is why we need Emulator on Windows. With Emulator, application uses none of the Windows resource but runs on emulated smart phone resource.
-          Linux OS will provide a certain degree of abstraction from Hardware layer.

·         What is the difference between Application and Widget?
Application will hold the entire screen once it is launched. Widget runs using only a part of the screen (similarly  windows applications on PC or any other shell)

·         What is dalvik?
This is a virtual machine developed by google.

·         State machine
      - Android app is a state machine
- By using  Java’s object oriented mechanism, all applications can be written based on a certain base classes such as Activities.


Tuesday, February 21, 2012

Independent Study BUS596 - Proposal

Strategic Management - BUS 523 (Requisite) 





  • Describe the proposed Independent Study.  Include a description of the work to be accomplished and specific information on the tasks required (attach additional sheets if needed).


I would like to study Strategic Management (BUS 523) which I missed to take in the last semester in CALMAT. This course is one of the required courses to graduate and earn MBA degree.

Research topic (as a final presentation) is “DELL ‘s M & A analysis”

                BOOK: Jay B. Barney, Gaining & Sustaining Competitive Advantage, 4th Edition, 
                                Prentice Hall
                                From PART III Corporate Strategies, Page 271-
( Chapter 10 - 15 )  


  • Describe the nature of the final report, the expected end product or deliverables.

1)      I will create a blog with the label “BUS 596”. The blog will contains the summary of what I learned from the chapters and some feedback from my experience.
2)     As a final outcome from this course, I will submit the slides for 5-10 minutes presentation. Probably upload video to the blog.

(Day 2 HW) Design assignment: Your Killer App (individual, ready for group work next time)

Propose it to the Android App Competition at  http://innovation.csumb.edu/ideas-march

Ideas of March – Android Development Camp and Competition
Teams of students and software professionals will produce a real, working application in 54 hours.

I would propose something easy and fun to use at this time.


Font Creator

  1. Select the images from { Cat, Dog, Flowers, Plants, Snake, Pencils, etc } 
  2. Input text or message
  3. Generate text/message with the font selected
  4. Share-able the message with facebook/twitter 


  • The example of Cat Fonts




  • In Spring, one can create a message with cherry blossom.




(Chapter 1) How to run Hello Android JAVA program on Android (AVD) Emulator on my Windows PC



Emulator main menu and HelloAndroid Icon

Output from the changed code

The procedure summary (not in detail) below:

Setup Development Environment

1)      2 Downloads from internet

·         JAVA SE JDK 6u25 Download for Windows x 64 (Oracle Official site) – JAVA APIs and core
·         Eclipse IDE for Java EE Developers for Windows 64 (Indigo Pakage) from eclipse.org – Development platform

2)      Another download from internet thru Eclipse Development platform. This process called “Android Plug In”

·         Launch Eclipse
·         Select Help and Install New Software
·         Add “Android Development Tools” (https://dl-ssl.google.com/android/eclipse/)
·         Then download.

Run Built-in Sample Program

3)      On Eclipse, create an Android Package
This process creates  sample project and some source codes.

4)      Run package on Emulator
·         Launch ADV Manager thru Windows Menu.
·         Create emulator thru ADV Manager
·         Run package on Emulator thru Eclipse

NOTE: ADV Manager and Eclipse are 2 different things so I recommend to run separately. (Run ADV first)

5)      Find Hello Android Icon on the Emulator screen and click to run
6)      At last, change the source code text and test it whether the change is reflected.

Tuesday, February 14, 2012

In 200-400 words, describe a "killer app" that you believe will be popular in your industry or user group



As the traditional telecom technology migrates into the new mobile wireless smart phone and high speed internet cloud computing world, the opportunity came to create whole new infrastructure for business to improve people’s life.

I am proposing “People Link” to provide a software interface between highest quality of service providers and clients who really need help. By this I mean I develop an interface software application with collaboration of   cloud and smart devices in other to connect  with providers and the clients under decentralized working environment. Such a service may be at most applied to educational or senior support fields.

Program Proposal:

eClass – Connecting qualified teachers to children in hospitals or children who are physically weak or have sickness and disadvantage in their normal school activities.  The class should be maintained as fun environment and all students should benefit from it regardless of their disadvantages.

eCoach – Connecting qualified tutors to individual students who want to improve their grades or scores in study.

eFriends – This is for old individuals who want to be watched and monitored daily by others. On the tablet device, there will be emergency button, meeting button, or consultation button so that old clients can get hold of our licensed care specialists. The purpose can be just having fun by talking for encouragement. 

CSIT638 Day 1 (Feb 4th) Reading Material: Introduction to SW Engineering


The Author is Laurie Williams, 2004. The author discuss the difference between SW Engineering and Computer Science in the 1st chapter, was interesting. In sum, as follows:

·         Engineering

- Computer Science provides theory and knowledge for the design (of computer and computational process)
- Engineering focuses on practical aspects in the process from requirement analysis/specification to production /maintenance; thru early stage to later stage of the making software.  The practical issues are for instance, quality, development process/methodology and resource allocation (people and tools so on), market timing, development period(duration), and also economics.

Next things I think important in this chapter was understanding of these term definitions which the author uses.

·         Development

SW development process = The process by which user needs are translated in to a SW product.
SW process model = simplified, abstracted description of a SW development process

1.       Plan-driven model
        All info about requirement can be obtained prior to the development and the info is stable.
2.       Agile model
        Gather additional requirement info during development, adding on-the-fly.
3.       Hybrid model
        Mix of 1 and 3

  • Challenge



The key ideas are:

Tractable medium
Sw is tend to be thought tractable (actually not)
It is still the HW which determines  what it can do. (processor speed, memory size etc)
Sometimes sw is asked to resolve some HW related issue. (by adding workaround etc) but the problem is it asked in the last minutes.

Changing requirement
Come from many sources, not only HW changes.

Schedule Optimism
Tend to give the optimum/aggressive schedule to the customers,  and then delay is not good. Should be realistic and conservative.

Schedule Pressure
Due to competition of the industry, project tend to have aggressive schedule.