How to create a Patch using SVN?
When I am in Broadcom, I used TortoiseSVN which create a patch to allow anyone in the open source development to make contribution to the application. This way if someone find a bug and want to debug, he can send the patch to the team.
two error, 1, a node file is missing 2. a particular file is wrong
- add a existing file and source code, build solution, everyhthing should work fine for compilation
- the linked list is wrong, fix it, then good
- for the added file, go to the location of the added file, right click then select TortoiseSVN, then select 'add', then select added files, then OK
- then the branch has the newest code we wanna to create a patch.
- right click the branch, 'TortoiseSVn', create patch which include everything you have changed.
choosing the patch location
for the patch, we want to record: Issue ID, Summary, PatchName(for which ticket.patch)
ex: IssueID1.patch
apply the patch to truck, tortoiseSVN, apply patch, select IssueID1.patch
you can review the patch
when you satisfied, select patch all items
testing, open truck, check everything file has the desired change and run the program
now, upload the patch to developer
create a README.txt, like issueID, summary, and patch name
zip the patch and README.txt to IssueID.zip
send the zip file to the developer
New Product Launch Question:
Step1:
- Launch Goal: is it about awareness, or is it about sales?
- Competitors landscape: primary competitor? secondary competitors? what is their primary market, what are their creative features?
- Target market: who are the customer? i need to create persona for they market
- what are the opportunity for the product to fill the market: is this a brand new product? or the improved version of other relevant product
- Who the measure the success: based on sales? awareness?
Step 2:
general research: talk to the people who will be effect be the launch
Step 3: market planning
- TV ads? youtube ads? ....
Step 4: implementation and performance review
- during the first quarter, you want to review whether your product is performed well.
How to debug?
- after compile, find the line number which show the error message
- 看JC debug 笔记!
Software Development Life Cycle:

Stage 1: Planning and Requirement Analysis
Requirement analysis is the most important and fundamental stage in SDLC. It is performed by the senior members of the team with inputs from the customer, the sales department, market surveys and domain experts in the industry. This information is then used to plan the basic project approach and to conduct product feasibility study in the economical, operational, and technical areas.
Planning for the quality assurance requirements and identification of the risks associated with the project is also done in the planning stage. The outcome of the technical feasibility study is to define the various technical approaches that can be followed to implement the project successfully with minimum risks.
Stage 2: Defining Requirements
Once the requirement analysis is done the next step is to clearly define and document the product requirements and get them approved from the customer or the market analysts. This is done through .SRS. . Software Requirement Specification document which consists of all the product requirements to be designed and developed during the project life cycle.
Stage 3: Designing the product architecture
SRS is the reference for product architects to come out with the best architecture for the product to be developed. Based on the requirements specified in SRS, usually more than one design approach for the product architecture is proposed and documented in a DDS - Design Document Specification.
This DDS is reviewed by all the important stakeholders and based on various parameters as risk assessment, product robustness, design modularity , budget and time constraints , the best design approach is selected for the product.
A design approach clearly defines all the architectural modules of the product along with its communication and data flow representation with the external and third party modules (if any). The internal design of all the modules of the proposed architecture should be clearly defined with the minutest of the details in DDS.
Stage 4: Building or Developing the Product
In this stage of SDLC the actual development starts and the product is built. The programming code is generated as per DDS during this stage. If the design is performed in a detailed and organized manner, code generation can be accomplished without much hassle.
Developers have to follow the coding guidelines defined by their organization and programming tools like compilers, interpreters, debuggers etc are used to generate the code. Different high level programming languages such as C, C++, Pascal, Java, and PHP are used for coding. The programming language is chosen with respect to the type of software being developed.
Stage 5: Testing the Product
This stage is usually a subset of all the stages as in the modern SDLC models, the testing activities are mostly involved in all the stages of SDLC. However this stage refers to the testing only stage of the product where products defects are reported, tracked, fixed and retested, until the product reaches the quality standards defined in the SRS.
Stage 6: Deployment in the Market and Maintenance
Once the product is tested and ready to be deployed it is released formally in the appropriate market. Sometime product deployment happens in stages as per the organizations. business strategy. The product may first be released in a limited segment and tested in the real business environment (UAT- User acceptance testing).
Then based on the feedback, the product may be released as it is or with suggested enhancements in the targeting market segment. After the product is released in the market, its maintenance is done for the existing customer base.
ABAP/4: http://basicsofabap.blogspot.ca/2009/02/what-is-abap4.html
ABAP (Advanced Business Application Programming) is a programming language for developing applications for the SAP R/3 system. ABAP is one of many application-specific fourth-generation languages (4GLs) first developed in the 1980s. The most basic functions were written in ABAP. ABAP/4 is the language created by SAP AG for implementation and customization of their R/3 system.
The ABAP programming language was originally used by developers to develop the
platform. ABAP was one of the first languages to include the concept of Logical Databases (LDBs), which provides a high level of abstraction from the basic database level.
It was also intended to be used by SAP customers to enhance SAP applications – customers can develop custom reports and interfaces with ABAP programming. The language is fairly easy to learn for programmers but it is not a tool for direct use by non-programmers. Good programming skills, including knowledge of relational database design and preferably also of object-oriented concepts are required to create ABAP programs.
SAP R/3:
SAP R/3is the former name of the enterprise resource planning software produced by the German corporation SAP AG (nowSAP SE). It is an enterprise-wide information system designed to coordinate all the resources, information, and activities needed to complete business processes such as order fulfillment,billing,human resource management, and production planning.[1]
The current successor software to SAP R/3 is known as SAP ERPCentral Component (ECC).
What do you know about SAP?
- SAP stands for System, Application & Products in Data Processing
- SAP is created in 1972, headquartered in Germany, it is software cooperation that makes enterprise software to manage business operation and customer relations.
- Now, SAP is a global company and its branch across 130 centuries.
- Now, SAP is the most ERP(enterprise resource planing) product in the world
- some popular product lines such as: SAP Business One, SAP HAHA
What would you want to work at SAP?
- I've always wanted to work in the enterprise software industry and SAP is the leader in the this industry. I think that SAP work on interesting problem and solving the problem in a efficient way. Unlike its competitors that just rely on technology, SAP also innovate and develop its own technology. Real time processing is really difficult to get right and your company is a leader in this field. Being able to work in a challenging environment like that is something that excites and motivates me.
Tell me why we should hire you?
- My education and my previous co-op experience are the two strong point for qualification of the job requirement
- I am a SFU student with computing science major, and my previous co-op job have similar task with this job description.
- I am always able to learn new knowledge quickly and carry out my responsibilities
- I believe I can use my past experience and knowledge to do this job well
- (I always like to improve things and would like to help people. If I could make someone's day a little better by solving an issue that they have, then I know that I have done something that is useful.)
What is your goal or your plan for the next year?
I am eager for learning new knowledge and I am new to this industry. Therefore, my goal for the next year is to learn and put as much effort as possible. I would like to make myself know as a good communicator with great leadership. In the next 5 years, I will continue to grow as a build product engineer and want to achieve a senior level in this field.
How would you debug when an error occurs?
- First thing is to evaluate what the traceStack shows.
- It will tell which file and which line causes such error.
- Generally speaking, errors can be divided into different categories, such as Networking error, CPU usage Error, and the Code Error or build error
- For Networking error, try to verify whether the network is running properly, by using 'ping'
- For CPU usage error, in Linux, use the command "top", it will bring up the CPU usage. When doing test, try to capture the initial CPU usage and compare with the after each operation's CPU usage.
- For Code Error, try to build and load previous version source code on the same device, and comparing the difference
- For build error, sometimes, some files authority has not been granted, by using 'chmod' to grant the authority.
Which one will you choose? Software developer or Assembly and Build Product Engineer?
I will definitely choose this job. My strength are communication skill and problem solving skill. I think they two skill will be used deeper and wider in this job rather than software developing. Also, my previous coop term with Broadcom have similar task, since I provide customer support for our product support for 8 month. I think my strength, knowledge and experience are more suitable for this job.
Do you have any product releasing experience?
Yes, when I worked with Broadcom, our team in responsible for releasing several VoIP phone.
The procedure are:
- try to have a customer work environment, such as use the their OS system, use the production-ready board
- when build the source code, configure the code to customer-friendly, such as, file source path using their source path, if not possible, give the instruction in the README file, and let them konw
- run snity test, to make sure the most basic and core function works properly
- put the the test result into a document and show to manager
If you have a problem, that you cannot solve it immediately, what will you do?
first, try to get the good understand of the problem, such as, what caused this problem and how this problem occurs? consistenly occur? or randomly occur?
then, if still cannot fix it, check whether the confluence page or FAQ page contains this problem. I find a lot of problem that are common and someone else have the same question and already posted the answer on the FAQ page or on google
If still cannot solve it, finally, I will check whether my supervisor or co-worker's avaibilblty and if they are not busy, I will ask for help by showing the problem and what procedures that I already tried.
Based on past experience, the problem can be solved by the steps I described.
What do you enjoy the most and the least from the last job?
- Most the working enviornment is very friendly, and my team co-workers are very helpful. I really learned a lot from these senior level people. such as problem solving and communication skills.
- lease: there are some repetitive work I have to do, but I understand that the most time consuming part for testing is to deal with repeated work. Therefore, in the gap between the two test, I read the documents about the technology and try to wrtie script to automate the test. In this way, I increase the productivity and learnt new knowledge from that.