Sunday, December 28, 2008

On Demand thinking for social media

"because the world needs more great local community groups. We want to help the world's people self-organize."
I got @

Thinking about web is network,
Computer is young subject in history.
The demand from business in mid 20th century, to the demand for the connected world at the beginning 21st century !

So what next ?
More semantic World? More "mobile" world? More digital life ?

What drive our World is the demand for new innovations, so I think we can find the answer is What would you want to do tomorrow ?

About me,NOW I want to use 1 platform for all media I can connect ! ^_^

Saturday, November 8, 2008

Don't feed the problem

"Short iterations provide more-frequent feedback from customers than long iterations and afford the team more opportunities to reflect and improve their work practices".
This picture is what I can imagine after reading this article "A case for Short Iteration" at InfoQ, you can read the original here

Monday, October 27, 2008

GPS game

Finally, after a month saving, I have enough 60$ for small device GPS receiver.
After 3 times tracking, at workplace( near Phú Nhuận Dis), at school (Open University), and my home.
Sadly, only 1 place is correct is at my home. (+_+)
The condition to measure is at outdoor, at 11'33 PM, satellite time is 16.33.58
not bad, the bias is 20 meter away from my home.
Next step is using real data and create some mashups with Google Map. ( aha, old invention (~_~)

Wednesday, October 1, 2008

My thesis and story-focused analysis

Haft a month has passed, now I must focus a little on my thesis.
Try to balance between work and your study is so exhausted, but we must try, isn't it ?
First, I want to show some my key points in my plan for writing this thesis.

My subject: research about requirement analysis document in French, got from my instructor, Prof. Trai.
second, make all clear using Merise Methodology.
First thing to keep in my mind that Merise have lack of practical view on goal-driven development. But it still strong, the Model of Conceptual Communication show some view in interaction between actors (user) and system, some what like Use Case in UML.

Visibility in process is important for understanding what we will develop.
My ideas here is use "story-focused analysis" for getting more visible in business process.

The user story is just basis what user do something with system.
instead of manually, you make it conceptualizing and automate all process front-end to "done".

We can analyze verb-noun to get concepts in user-story to get "noun as actor", "verb as process".

Friday, September 19, 2008

Booch lectures and Architecture of Software

Building a information system as well as building a house, a structure of complexity as social, or even universe.
You can write a song without any note,  rhythm. All form a simple structure.
Things and all their relationship between things make what we see today.
Some philosophy here

Now begin my summary from his lectures:
  • Current trends in software architecture
web-centric systems going back
for many web systems, dynamic frameworks such as what we find in Ajax or Java Server Faces or Ruby on Rails. As we project forward we can see the beginnings of a new kind of web architecture such as surrounding the semantic web.
software engineering involves the resolution of a variety of forces. There are business forces, environmental forces, development forces, operational forces, and even legal and ethical forces.

building a system with a balanced distribution responsibility

there's a very common practice I find among those organizations that are successful and notably absent from those who are not successful. And it's simply this -- those hyper-productive organizations tend to grow a systems architecture through the incremental and iterative release of executables.

what is an architecture?
Software architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and the environment and the principles governing its design and evolution.

Why do we care about software architecture?
A process that is centered around growing an architecture is one that is risk confrontive, it's one that focuses upon simplicity and it's one that deals with building systems that are resilient to change. In short, in software engineering, an activity that focuses around the growing of an architecture is very much one that is a fundamental engineering process.
software architecture is "they architect software".
  • Review the role of the architect
Architecture can be represented in a single blueprint ?? UML, Merise,... ? there are multiple stakeholders with different views and different concerns and therefore architects build models to reason about these architectural decisions.
What is model ? A model is a simplification of reality created in order to better understand the system being created and therefor a model is a semantically closed abstraction of the system. Each model takes a look at a system from a particular view, and we define view as a representation of a whole system from the perspective of a related set of concerns.
Why software contain complexity ? complex systems is that we know we need multiple views, but It's also the case that not all systems require all views. 
Booch's example "If I have a simple system with a single process I can ignore process issues." or "If I have a data intensive system I'll need to look at data schemes more intensely."
Can we classify all view of system ? yes, "logical process, implementation, deployment, and use-case views."
In Merise, the methodology for analyzing information sytem at enterprise level, the another approach from French, " Conceptual view, logic/organizational view and physical view." The conceptual communication view, we can see it has same ideas with use case view in Booch's approach.
With Booch, 
logical view + process view = conceptual view 
logical view = vocabulary of the problem space and solution space, decomposition, interfaces, the collaborations of logic + process = system's use cases
logic "==>" functionality, key abstractions, mechanisms, separation of concerns, distribution of responsibilities
process view = threads + processes that form the system's concurrency + synchronization mechanisms
process "==>"  performance + scalability, + throughput
implementation + deployment  = the physical aspects of a system.
implementation "==>" configuration management
deployment is "platform" , "==>" distribution + communication + and provisioning
use-case  =  logic + process + implementation + deployment 
Why do we care about this representation? We model our architectures from multiple views in order to codify our design decisions, in order to reason about those decisions, and finally and most importantly, to transform those decisions into executable code.
Booch's conclusion is "Architectures are important. They are essential to building quality systems."
For my career as software architecture "Software architecture is an important activity among the stakeholders of building economically interesting systems, and as such the profession of architecting in software is one that is growing into an identifiable set of activities."
What about working as information architecture in IT industry ??
Maybe in next post 

Friday, July 11, 2008

photo stream

Great book from book fair I got

I love this publisher, many Computer Science book here

Quang Trung Software Pack, Silicon Valley at Vietnam

Tuesday, July 8, 2008

SOA, the new thinking in business

Download this book: SOA in Practice

great book, I love this.
SOA is Service of Architecture. Some people said it will replace ERP soon.
briefly speaking , is about architecture of software

XML , web service is more popular.
and the way we exchange information is changing.
I think in the near future, the SOA is main term when we talk about how to build a software.
hope in my thesis , I will have opportunity to apply it in practice not just in theory.
The key is flexibility.

Monday, June 23, 2008

time at DRD

at the end of this week, the new website of is published. working with Peter is fun, although some misunderstanding between me and Peter.

It is a long story and I can't tell but I respect Peter, like my teacher, who teach me a lot.

It's not just technical problems, but more than that.

That 's the honor about yourself, others and about we need to think on relationship between people and people. DRD is non-profit organization, not working for business, they working for the rights for disable people.

I love the job, working as volunteer at DRD, 8 months is long time.

Design a software for normal use is hard, for people but they can't hear you, or see you is very hard. still a lot of thing to learn, usability is hot subject in human computer interaction. As you know, software is for human use, not for computer run.

If you can visit, you can feel it not beautiful, it's so simple, right ?

keep is simple as possible but not simpler, maybe is the idea of Peter. yeah, this layout is design for some screen reader, which can do text-to-speech. They read all words on the page with high structure, for whom can not read, visual impairment.

This weekend is over internship time at DRD, but still I still work when I'm free. The intern time is over like that, so sad.

My thesis for DRD is the another story. maybe begin in August.

and now focus on my job. I like social networking subject. still lots of challenge ahead

Designing online social networks: The theories of social groups

Online communities (facilitated by Web 2.0) have become very important over the past few years - not only to niche communities, but now to mainstream brands. Social networking is about human connection and links between people. The reasons why people join groups and social networks are typically that groups can:

  • Provide encouragement and support
  • Establish identity with others and fulfil the need to feel included
  • Provide the outlet for some people to establish their need for recognition, social status, control and/or leadership
  • Alternatively, provide the necessary control over aspects of lives for those who don't want to be leaders (e.g. Weight Watchers)
  • Help establish friends, relationships and the opportunity to interact with others

Historically group membership has served an evolutionary survival function - put simply, there's safety in numbers

There's been much research into group psychology but not so much about how this applies to a marketer trying to monetise an online community or introduce one to their brand. Here are some interesting phenomena about groups designed to help a brand owner capitalise on networks and the social phenomena:

Social comparison

Social comparison theory suggests that we form our own attitudes and behaviours by comparing ourselves with other people and their opinions. Mostly we compare ourselves against people whom we believe we're reasonably similar to.

Facebook8 capitalises on people's drive for social comparison by offering a plethora of applications like the visual bookshelf that lets you see what books your peers are reading and the 'Compare me' application that allows you to find out where you stand relative to your friends for various categories like cutest, sexiest and smartest. This is very similar to the surveys often found in women's magazines - 'How emotionally intelligent are you? Take our quiz to find out!' It's compelling to benchmark ourselves against others to see where we fit in.

Ecommerce sites can capitalise on this by offering 'most popular' products so site visitors can see what others have purchased. Amazon offers 'Customers with similar searches also purchased' which is along the same theme.

Real group feedback is also extremely helpful and often more trusted than 'official' comment. For example LOVEFiLM9 displays the Radio Times film review followed by those from ordinary members. Similarly, the 'Study buddy' application (now discontinued) let students see when their fellow students are studying which allows them to compare themselves and so shape their decisions and behaviours accordingly.

Social learning theory

Social learning theory is a broad theory developed by the psychologist Albert Bandura. The premise is that people learn new attitudes by observing others and noting the consequences of these actions. If those observed are rewarded positively then those observing are more likely to behave in the same way.

Observing others succeed and being able to interact with them is hugely encouraging. Sites that are designed to highlight success and which reward people succeeding set up a strong social learning dynamic. For example, QuitNet.com10, a site for those who want to stop smoking, highlights success stories throughout the site and provides a discussion forum for interaction.

Similarly, Tesco Diets.com11 displays many success stories to reinforce positive behaviours. Ebay distinguishes successful sellers by providing top seller status and Amazon has top reviewers, offering both prestige and status as reward.

Social facilitation

As humans, we perform better when being observed or in groups - this is because we're concerned about our social image and how others perceive us. Sports psychologists have known this for years and it explains why top sports people are often lifted by the crowd to give world record-breaking performances at big events.

Interestingly, the opposite is true for tasks that we find difficult. For example, when being watched better pool players get better, whilst novices get worse (source: ChangingMinds.org12).

This social facilitation phenomenon extends to virtual presence of others too. For online behaviour this means people might strive to lose more weight if connected to a virtual health facility where others can see them, compared to going it alone. Or someone might bid more on an online auction if they know others can see what they're doing.

The virtual presence of feeling watched is enough to positively change behaviours.

Social conformance

Also known as peer pressure, people may change their attitudes and behaviours to match the expectations of their peer group. If they don't agree then they face being ostracised by the group.

Social acceptance is a huge driving force and the threat of rejection from a group is often enough to change people's behaviour. This obviously extends to online groups too. People making inappropriate remarks in an online group discussion would quickly need to change their behaviour or find themselves out in the cold. Social sites should offer group members the option to flag unsuitable content.


When designing online communities or group websites, it's necessary to understand the underlying psychology of human group behaviour. Armed with this knowledge you stand a much better chance of delivering an effective site that supports interaction between users.

Provided you listen to your customers, concentrate on offering a first class service and win people over then you can let the social networking machine work it's magic - namely to broadcast information freely and easily (both positive and negative) about your brand. A friend-to-friend recommendation is the strongest endorsement a company can possibly have.

And, as with any Web 2.0 application, don't rush into creating social networks for the sake of it - get the basics right first. Find out what communities are saying about your brand and engage with your customers.

This article was written by Lisa Halabi. Lisa's crazy about usability - so crazy that she's head of usability at Webcredible, an industry leading user experience consultancy13, helping to make the Internet a better place for everyone. She can often be found developing information architecture14 and is extremely talented at writing for the web3.

Saturday, June 21, 2008

Lessons form Google

This post is copy from
I post at my blog for the future use and I need some cookbook(@my blog) for my work

Google's aspirations

The Google User Experience team aims to create designs that are useful, fast, simple, engaging, innovative, universal, profitable, beautiful, trustworthy, and personable. Achieving a harmonious balance of these ten principles is a constant challenge. A product that gets the balance right is "Googley" – and will satisfy and delight people all over the world.

Ten principles that contribute to a Googley user experience

1. Focus on peopletheir lives, their work, their dreams.

The Google User Experience team works to discover people's actual needs, including needs they can't always articulate. Armed with that information, Google can create products that solve real-world problems and spark the creativity of all kinds of people. Improving people's lives, not just easing step-by-step tasks, is our goal.

Above all, a well-designed Google product is useful in daily life. It doesn't try to impress users with its whizbang technology or visual style though it might have both. It doesn't strong-arm people to use features they don't want but it does provide a natural growth path for those who are interested. It doesn't intrude on people's lives but it does open doors for users who want to explore the world's information, work more quickly and creatively, and share ideas with their friends or the world.

2. Every millisecond counts.

Nothing is more valuable than people's time. Google pages load quickly, thanks to slim code and carefully selected image files. The most essential features and text are placed in the easiest-to-find locations. Unnecessary clicks, typing, steps, and other actions are eliminated. Google products ask for information only once and include smart defaults. Tasks are streamlined.

Speed is a boon to users. It is also a competitive advantage that Google doesn't sacrifice without good reason.

3. Simplicity is powerful.

Simplicity fuels many elements of good design, including ease of use, speed, visual appeal, and accessibility. But simplicity starts with the design of a product's fundamental functions. Google doesn't set out to create feature-rich products; our best designs include only the features that people need to accomplish their goals. Ideally, even products that require large feature sets and complex visual designs appear to be simple as well as powerful.

Google teams think twice before sacrificing simplicity in pursuit of a less important feature. Our hope is to evolve products in new directions instead of just adding more features.

4. Engage beginners and attract experts.

Designing for many people doesn't mean designing for the lowest common denominator. The best Google designs appear quite simple on the surface but include powerful features that are easily accessible to those users who want them. Our intent is to invite beginners with a great initial experience while also attracting power users whose excitement and expertise will draw others to the product.

A well-designed Google product lets new users jump in, offers help when necessary, and ensures that users can make simple and intuitive use of the product's most valuable features. Progressive disclosure of advanced features encourages people to expand their usage of the product. Whenever appropriate, Google offers smart features that entice people with complex online lives – for instance, people who share data across several devices and computers, work online and off, and crave storage space.

5. Dare to innovate.

Design consistency builds a trusted foundation for Google products, makes users comfortable, and speeds their work. But it is the element of imagination that transforms designs from ho-hum to delightful.

Google encourages innovative, risk-taking designs whenever they serve the needs of users. Our teams encourage new ideas to come out and play. Instead of just matching the features of existing products, Google wants to change the game.

6. Design for the world.

The World Wide Web has opened all the resources of the Internet to people everywhere. For example, many users are exploring Google products while strolling with a mobile device, not sitting at a desk with a personal computer. Our goal is to design products that are contextually relevant and available through the medium and methods that make sense to users. Google supports slower connections and older browsers when possible, and Google allows people to choose how they view information (screen size, font size) and how they enter information (smart query parsing). The User Experience team researches the fundamental differences in user experiences throughout the world and works to design the right products for each audience, device, and culture. Simple translation, or "graceful degradation" of a feature set, isn't sufficient to meet people's needs.

Google is also committed to improving the accessibility of its products. Our desire for simple and inclusive products, and Google's mission to make the world's information universally accessible, demand products that support assistive technologies and provide a useful and enjoyable experience for everyone, including those with physical and cognitive limitations.

7. Plan for today's and tomorrow's business.

Those Google products that make money strive to do so in a way that is helpful to users. To reach that lofty goal, designers work with product teams to ensure that business considerations integrate seamlessly with the goals of users. Teams work to make sure ads are relevant, useful, and clearly identifiable as ads. Google also takes care to protect the interests of advertisers and others who depend on Google for their livelihood.

Google never tries to increase revenue from a product if it would mean reducing the number of Google users in the future. If a profitable design doesn't please users, it's time to go back to the drawing board. Not every product has to make money, and none should be bad for business.

8. Delight the eye without distracting the mind.

If people looked at a Google product and said "Wow, that's beautiful!" the User Experience team would cheer. A positive first impression makes users comfortable, assures them that the product is reliable and professional, and encourages people to make the product their own.

A minimalist aesthetic makes sense for most Google products because a clean, clutter-free design loads quickly and doesn't distract users from their goals. Visually appealing images, color, and fonts are balanced against the needs for speed, scannable text, and easy navigation. Still, "simple elegance" is not the best fit for every product. Audience and cultural context matter. A Google product's visual design should please its users and improve usability for them.

9. Be worthy of people's trust.

Good design can go a long way to earn the trust of the people who use Google products. Establishing Google's reliability starts with the basics for example, making sure the interface is efficient and professional, actions are easily reversed, ads are clearly identified, terminology is consistent, and users are never unhappily surprised. In addition, Google products open themselves to the world by including links to competitors and encouraging user contributions such as community maps or iGoogle gadgets.

A greater challenge is to make sure that Google demonstrates respect for users' right to own and control their own data. Google is transparent about how it uses information and never shares data outside Google without a user's explicit consent. Our products warn users about such dangers as insecure connections, different privacy policies on other websites, actions that may make users vulnerable to spam, or the possibility that data shared outside Google may be stored elsewhere. Google is reassuring but truthful about data sharing so that users can make informed choices. The larger Google becomes, the more essential it is to live up to our "Don't be evil" motto.

10. Add a human touch.

Google includes a wide range of personalities, and our designs have personality, too. Text and design elements are friendly, quirky, and smart and not boring, close-minded, or arrogant. Google text talks directly to people and offers the same practical, informal assistance that anyone would offer to a neighbor who asked a question. And Google doesn't let fun or personality interfere with other elements of a design, especially when people's livelihood, or their ability to find vital information, is at stake.

Google doesn't know everything, and no design is perfect. Our products ask for feedback, and Google acts on that feedback. When practicing these design principles, the Google User Experience team seeks the best possible balance in the time available for each product. Then the cycle of iteration, innovation, and improvement continues.

Thursday, April 17, 2008

Hacking student info sistem at my school

Alpha version of info student at my school, Open University at HCM city.
spending a lot of time to figure out how to get grade, the schedule, blah blah ...
And the problem is, I do NOT have any permission on database.

My solution is "PARSING HTML".
it's cool stuff.
You request a page with your passoword, and my job is parsing, get only some useful info, put on my site.

try it, my student ID is 10460113.

Using MVC architecture:

  1. View, Google Web Toolkit, nice tool for Web User Interface,
  2. Controller, ASP.NET , C# and very strong library to parsing HTML is available.
  3. Model: not thing, I just call the page @ working as a remote procedure , and Google Web Toolkit supports very strong remote Procedure Call to fetch data.

Sunday, March 16, 2008

Mình mở cái topic này nhằm mục đích đem lại 1 tí những vấn đề hay trong môn Phân tích thiết kế hệ thống thông tin.
Có lẽ đối với nhiều bạn, đây là một chủ đề nặng về Lý thuyết, và thường "dễ gây buồn ngủ".

Nói chung nếu cái thú vị nằm ở chỗ bạn thật sự có đam mê với nó không hay thui ?
nếu bạn có đam mê và hiểu được nó, thì bạn sẽ thấy cái hay trong đó.

Giống như việc chơi cơ, mình thấy nó cuốn hút nhiều bạn đến mức có hẳn 1 hội cờ trong khoa mình.

Nói lòng vòng mục đích chính là gây 1 tí cú hit trong việc thảo luận về các đề tài trong Database.

Cái mình quan tâm hiện nay là khi phân tích các hệ thống thông tin kinh tế, các quy tắc quản lý (business rules) có thể sử dụng (reusable) lại được không ?

business rules - are they reusable?

Mình vô tình search được cái paper này khi đang tìm tài liệu trong khi viết báo cáo cho phân tích hệ thống quản lý nhân sự ( đồ án môn học).
Thật sự đây là vấn đề khó, vì nếu bạn nào học về phân tích thiết kế hệ thống thì xác định quy tắc quản lý là 1 bài toán khó, nó thể hiện mặt động của chương trình bạn phân tích.

Theo như các bài báo này, thì nó kế luận
When business rules are only harvested for, and maintained in application environments the re-usability of business rules is a big challenge. Only if rules management is separated from application development, both business and IT departments will achieve maximum flexibility.
The ability to generate different business rules applications from a single (re-usable) business rules model can only be achieved successfully if
- The business rules model is declarative;
- The business application generation process is goal-driven.
The business rules approach provides the necessary prerequisites for this flexibility.

Sau 1 thời gian suy nghĩ và tìm hiểu, cuối cùng 1 phần của bài toán đã được giải quyết.

Quản lý quy trình nghiệp vụ (Business Process Management) và sử dụng lại nó 1 vấn đề khó.
Khi nghiên cứu sâu thì bạn sẽ đây 1 vấn đề thật sự.

SOA, Web Services, WS_BPEL, ... là những cái tên quan trọng, nó sẽ chìa khóa giải quyết bài toán mà ngay cả phương pháp Object-Oriented chưa giải quyết được.

OO là mức code, vậy Business Process ở mức nào, ?
Concept, Logic.

Why introduce new notations?
Different target audience:
– UML targets software analysts, designers and developers offering
specification, visualization and documenting artifacts of computer based
– BPMN targets business analysts, system architects and software
engineers offering specification, visualization and documenting artifacts of
business domains,
Different basic paradigm:
– UML is based on Object Oriented Approach
– BPMN is based on Process-Centric approach
Different implementation view:
UML lacks implementation view of Business Models which is highly conceptual.