Skip to main content

When we don't see the sun, we see other stars


What are your motivations for creativity?

- I want to make a change.
- It makes me happy! It is a need of my mind.

How to be creative for a thing?

There are two steps:
- See the thing as every people see it
- Think about a new different thing from it

How to think about a new different thing?

There are two ways:
- Forget all things you have already known.
- A whack on the side of your head. ;)

This was what I have learned from the following great book:

source: Amazon.com
Well! A physical whack on the side of your head is needed sometimes but the meaning behind is that you need to break these 9 following locks on your mind. Remove them!

The lock #1: "The correct answer"

We all learn from schools that there is only one correct answer to a question. For example, a proposition is only true or false in Algebra. In reality, there are always some answers to a question basing on a point of view. For example, number 6 becomes number 9 if you look it in the opposite.

The lock #2: "That is not logic"

There are two kinds of thoughts: soft thinking and hard thinking. Soft thinking focuses on finding a relationship among things. On the other hand, hard thinking focuses on the differences between things. The metaphor is a technique of soft thinking which needed for creativity.

The lock #3: "Follow the rules"

Sometimes, creativity is not always a contribution but a damage. However, in order to create a new model, we need to break an old model. Break the rules!

The lock #4: "Be realistic"

Answering the question "if...then what happens?" is useful somehow. For example:

- Imagine if what other people (your inspirational ones) will do in your situation. E.g: I sometimes say to myself when I face an issue: "What will Mr. A do in this situation?"

- Imagine if you are what you think. E.g: Imagine you are a paper; what are your characteristics to make you more convenient for users?

- Imagine an idea which is obviously not realistic. According to this idea, you can come up with a better realistic one. E.g: original idea: the Government will give money for whom put trash into trash bins. Improved idea: every time people put trash into trash bins, they will receive a random fun from the trash bins.

The lock #5: "Play is frivolous"

"If necessity is the mother of invention, then play is its father". There is no doubt about it!

The lock #6: "That is not in my field"

Specialization is necessary in most of the cases; however, bringing a knowledge from a field to another field is really useful as well.

The lock #7: "Don't be silly"

Actually, a comedian is smart. He/she always thinks in different ways. It is like a movement of a car, sometimes it needs to go back in order to go straight.

The lock #8: "Avoid ambiguity"

People avoid ambiguity because it results in the misunderstanding in communication. However, just keep listening to your dreams and playing with it.

The lock #9: "Mistakes are wrong"

In most of the case, a mistake can result in a very bad situation. However, a mistake sometimes helps you come up with some new approaches.

Reference:
[1]. Roger von Oech, A Whack On the Side of the Head

Comments

Popular posts from this blog

JSF, Primefaces - Invoking Application Code Even When Validation Failed

A use case I have a form which has requirements as follow: - There are some mandatory fields. - Validation is triggered when changing value on each field. - A button "Next" is enable only when all fields are entered. It turns to disabled if any field is empty. My first approach I defined a variable "isDisableNext" at a backend bean "Controller" for dynamically disabling/enabling the "Next" button by performing event "onValueChange", but, it had a problem: <h:form id="personForm"> <p:outputLabel value="First Name" for="firstName"/> <p:inputText id="firstName" value="#{person.firstName}" required="true"> <p:ajax event="change" listener="#{controller.onValueChange}" update="nextButton"/> </p:inputText> <p:outputLabel value="Last Name" for="lastName"/> <p:i...

Junit - Test fails on French or German string assertion

In my previous post about building a regex to check a text without special characters but allow German and French . I met a problem that the unit test works fine on my machine using Eclipse, but it was fail when running on Jenkins' build job. Here is my test: @Test public void shouldAllowFrenchAndGermanCharacters(){ String source = "ÄäÖöÜüß áÁàÀâÂéÉèÈêÊîÎçÇ"; assertFalse(SpecialCharactersUtils.isExistSpecialCharater(source)); } Production code: public static boolean isExistNotAllowedCharacters(String source){ Pattern regex = Pattern.compile("^[a-zA-Z_0-9_ÄäÖöÜüß áÁàÀâÂéÉèÈêÊîÎçÇ]*$"); Matcher matcher = regex.matcher(source); return !matcher.matches(); } The result likes the following: Failed tests: SpecialCharactersUtilsTest.shouldAllowFrenchAndGermanCharacters:32 null A guy from stackoverflow.com says: "This is probably due to the default encoding used for your Java source files. The ö in the string literal in the J...

Attribute 'for' of label component with id xxxx is not defined

I got the warning in the log file when I have used the tag <h:outputLabel> without attribute " for " in xhtml file. It was really polluting my server log files. The logged information actually makes sense anyway! We could find an answer as the following: "Having h:outputLabel without a "for" attribute is meaningless. If you are not attaching the label, you should be using h:outputText instead of h:outputLabel." However, these solutions are not possible just for my situation. Instead of using h:outputText for only displaying text, my team has used h:outputLabel too many places. We were nearly in our release time (next day) so it is quite risky and takes much efforts if we try to correct it. Because the style (with CSS) is already done with h:ouputLabel . The alternative by adding attribute " for " the existing h:outputLabel is not reasonable either. I really need to find another solution. Fortunately, I came across a way if I cha...

4 Remarkable Notes for JSF Apps Using HTML5

In the previous post , I've already shared with you how my team consults clients by using a HTML prototype. This post is about the used technologies for reusing the provided HTML template and communicating with backend. What is the issue when using HTML elements with Primefaces components? Primefaces is a great extension for developing JSF web apps. However, it is really frustrating in case we have to make it work with an existing HTML template. Why? - Primefaces has its own theme for styling. - Primefaces changes the HTML structure. Therefore, that would be a huge effort to use the Primefaces' components to replicate the elements of the HTML template; especially it is impossible for images drawing by " canvas " tag. That requires us to find a better approach. Since Java EE 7 (introducing JSF 2.2 included), it supports to use HTML5 elements . The idea is that JSF components don't effect the style and HTML structure, so we can easily reuse the provided HTM...

BIRT - Fix the size of an image

I use a dynamic image as a logo my report in pdf. At the beginning, I use table to align the logo in left or right. I meet a problem with some images with a large width or height. My customer requires that the logo should be displayed in original size. These following steps solves my problem: 1. Use Grid instead of Table 2. Set Grid "Height" is 100%  and "Width" is blank 3. Set "Fit to container" for images are "true". Download the the template here .