Friday 29 August 2014

System Design & Analysis (2) Microsoft Visio

Microsoft Visio 2007 is one of my favorite software. I used it to draw flow charts, diagrams and to build GUI prototypes.

Basic:
1) a drawing software to draw everything in various industry.
2) a commercial software by Microsoft to enrich Office. Thus, Visio is plugin-able in Words, PowerPoint, etc.
3) It is 2-D drawing software.
4) It was first introduced in 1992, made by the Shapeware corporation. It was acquired by Microsoft in 2000.

Development Platform:
1) Programming language: unknown.

System Design: 
Using target: create any drawing in 3 basic steps
1) Choose and open a template
2) Drag and connect shapes
3) Add text to shapes

Key Concepts:
1) Stencils and templates: a group of shapes related with a topic.
2) Shapes: the basic unit that is copy-able and edit-able.
3) Data: associate data with shapes. Different shapes might have specific data and data view.

An example of stencils:














Key Product Features:
1) extremely extendable by new stencils, new shapes and new data
2) support programming
3) work with Word, PowerPoint, Access, OneNote, Access, Excel

GUI:
















Recent Versions: (still not a default unit in Office)
  • Office Visio 2007 (v12.0; Standard, Professional)
  • Visio 2010 (v14.0; Standard, Professional, Premium)
  • Visio 2013 (v15.0; Standard, Professional)

Success?
1) From user's point of view, VISIO is professional, powerful and user-friendly.
2) However, it is also expensive, heavy, and looks not easy to use (even through it is not).
3) From product point of view, VISIO does not get that success as Word and Excel. 
    For two major reasons: 
    A: VISIO itself is (or feels) heavy, both product and expense.
    B: Microsoft did not make VISIO a default unit, and enhanced the draw features of PowerPoint. It makes VISIO not a must for non-professional users. In my view, instead of simplify VISIO for normal users (like: make stencils plugin-able and simplify the GUI), Microsoft decided to borrow VISIO to PowerPoint and leave VISIO to rich professionals and industry users.

Tuesday 26 August 2014

Professional Research Engineer

I like the role as a "Research Engineer". It feels like the role gives me opportunity to do both research and software engineering. Then, how to behave as a Professional one? 

This is the To-Do and Not-Do list. Just for my first Job.

1) To-Do
    A: Do what I believe and then Attitude of making it happen.
    A: Transparency, openness and genuineness.
    B: Save others' time and efforts.
    C: Take notes of my promises. That's a BIG mark.
    D: Aim to be professional: both in hard skills and soft skills. Professional to teammates, not friendly to teammates.
    E: Build trust and respect in career.
    F: To open and aware.
    G: keeping track of career accomplishments.
    H: Learn from teammates.
    I: Be easy to work with.

2) Not-Do
    A: Multi-tasking too much, or Not-prioritizing
        Long-term Targets
        Short-term Works, like: meetings, talks and reports.
    B: Complaining
        Optimistic and Solving
        Release angry on things, not on people.
    C: Making promises you can’t keep !!!
         Be serious! Save my own time !!! 
         Trust is more important than promises.
    D: In charge of others' business.
         Think about Dhinesh. Do not do that, please.
    E: Afraid of mistakes.
         Everyone made mistakes, calm down and avoid the same mistake.
         Take the responsibility only if it is my mistake.
    F: Over-work
         It always (90%) does not solve the problems.

Finally, Rules above all, Be Confident and Positive.

Tuesday 12 August 2014

职业生涯(1)

即将开始自己的第一份工作,
作为一个PhD,进入CS Industry,
想一下PhD这5年,
费了半天劲才拿到一个PhD 学位,
5年的时光,转瞬就过去了,
翻看一下Linkedin上CS PhD的职业生涯,
也算是一件很有意思的事情,
Startup,Director,Professor,Manager,Analyst,Scientist,
好多眼花缭乱的头衔,
Where is my Passion?
说不清楚,应该是介于Manager和Analyst之间,
我喜欢Software,Numbers,Algorithms, and Communicate with Teammates and Clients.
就我现在的能力而言,
编程能力已经足够自信,
算法能力也足以设计大多数的系统,
沟通能力急需改善,这也是面试Google得到的教训,清晰沟通的能力和编程能力一样重要,为此,我打算在工作前报一个澳洲的口语学习班;尽量面对面的那种;
系统设计能力不足,这是不注意观察和讨论的结果,身边的诸多系统的设计原理,我都比较陌生,诸如:Github, Ubuntu, Eclipse, G++, Qt。 对此,我打算定期学习一些身边的系统,然后写一些博客,有空的时候和朋友沟通,
这应该是我对自我职业生涯现状的认识,
具体的技术如data mining,image processing,high frequency trading,UI,website development, mobile network 等也存在很大的差别,根据最近的面试经历而言,每一个行业都存在一定的行业壁垒,
诸如PR身份的问题也是职业发展的一个重要因素,也应该在考虑范围之内,
对于时间协调,人员协调,矛盾化解,这都是我比较陌生的问题,暂时还没有打算处理这些问题,多多观察身边的事情就是了,
试着站在一个更高的角度上看现在的自己,
我对自己的定位是technical problem observer and solver, 不局限于具体的行业或者技术,发挥自己的积极能动和思考能力,为自己争取机会,
根据过去的情况来看,我犯过的错误包括:
没有二次检查重要试验结果,Less Communication,自我定位,
过去犯过的错误应该避免,我的性格不缺乏士气,但易于冒进

Thursday 7 August 2014

System Design & Analysis (1) Octave

Octave
http://en.wikipedia.org/wiki/GNU_Octave

Basic:
1) free software under the terms of the GNU General Public License.
2) a high-level programming language.
3) a replacement of MATLAB.
4) primarily intended for numerical computations, like: regression, plot.

Development Platform:
1) written in C++ using the C++ standard library.
2) uses an interpreter to execute the Octave scripting language.
3) works with gnuplot and Grace software to create plots, graphs, and charts, and to save or print them.
4) later include a Graphical User Interface (GUI) in addition to the traditional Command Line Interface (CLI). GUI developed using Qt.

Key Product Features:
1) Support key things a programming language, e.g. variables, functions, comments.
2) Large number of supports on matrices, built-in math functions.
3) Octave treats incompatibility with MATLAB as a bug, interesting.

GUI:

















Open Source Update:
2011-2012:
about 90 di erent contributors made 2917 commits, 57 of them made only 1 or 2 changes, the top 5 contributors made 2377 commits.

Incomes:
A few large donations from a small number of benefactors
Many small donations from users

Limitation:
1) Interaction with C++ and Java. In many cases, we want to use Octave code as a small part in a large project.
2) No Object concept. But I do not think it is a big limitation currently.

Success?
From users' point of view, Octave achieves its design goal as a GNL free software to replace the expensive MATLab, it is a success.
However, the developer team do need to find more ways to sell Octave.