Tag Archives: thoughts

Get over the loss

Listen to ... life

He is lost. He doesn’t know what he wants to do. Like a boat in the middle of the sea in a night.

If you have ever think you don’t have anything more to lose, it’s like his feeling now. The feeling is not easy. Or maybe it is easy, somehow. Knowing you can’t lose more, you can’t make any more mistake. There’s some upside in that.

Like, staying in the solitude cover for a while may really make the calm. But it will never make restoration. Never make a moment of happiness.

Listen. Outside, there are flowers. There are rain. There are voices of people you don’t know. There are market. There are clouds. There are your sister who don’t know how to solve her homework. Like, there are people who wants to know you.

To get over the loss, care more.

Model Thinking – an after-course review

Model thinking icon

The “last last”(*) Sunday is the last date on my course “Model Thinking” from Michigan University. It’s such an enjoying experience, with a lot of materials that help looking our world in a brand new way. I’d love to address the some interesting topics of this wonderful course in a recent day. Here’s a short summary of what makes me remember about it.


1. Knowledge should be free

Yay, a slogan :) . Along with many many online courses out there, what makes this course stand out? The first thing, it’s free. Truly free. From the beginning to the end. No premium membership, no payment for extra lessons, no cost for materials (although they introduce some books in the course, but they are optional and can be skipped). I like it. I mean, premium membership is ok, but if a course claims that they are free, then it should be truly free. Asking people sign up for membership after a few trial lessons… well, I understand that the publisher needs money, too, but that brings a feeling of being tricked. The work of Professor Scotte is very impressive, too. Pulling such a lot of knowledge into the easiest-to-understand form is no easy-feat. He explains the concepts from a variety of theory: advanced statistics, automation… with a very clear and short style. It reminds me about the spirit of Wikipedia- a garden for high quality knowledge – but friendly with “often-poor” students. It brings students from a far-away countries (like me) a feeling of how people studies in the Michigan school. Isn’t that cool?

2. Organization matters. Simplicity rules.

I have joined several online courses with different way of interaction, but the “Model thinking” course is my best experience so far. One may argue that the content of the course is rather simple and general, but that’s only one thing. Actually, in the course there are some knowledge about high-level statistics, automat,… but they tackle from a very simple view, on the surface, and only what really matters to the main idea. There’s space for enthusiastic students to explore more by themselves, so don’t need to stuff all in the course :) The way by which knowledge is transferred matters. As you can see from the picture, the main learning interface is somewhat “plain and simple”. But it proves itself as a good way to eliminate distraction. I took part in several other courses with more-interactive learning interface, and surprisingly this interface is far more friendly than others.


A normal interface of the course

The quiz is quite good, too. There are small quiz attached after some parts of a lesson to confirm what we just learn. Although some minor odds, I can say that the teachers do their best to keep everything clean and make progress track-able. That’s a very well-placed effort. And yes, no advertising! I guess it’s just a problem of time… since I still not know about other ways that they can support a free course forever, but it’s great when there’s no distraction. I think this course will proceed far if it can live with donation money from the sponsors, not the advertisers.

3. Still lack of Interaction.

Although many improvements made, this course still not achieve the perfection – requires. Participating in forums and Facebook pages are fairly rare, and only a very few people are active. Mostly they only leave a “hello” message, then disappear (well, that includes some of me, too).

In the normal sense, we shouldn’t blame the organizers, since this is the problem that all the online courses struggled over years. People are busy, having different time frames and plans… But I think we should have the right to expect more from such a well-defined course. If Mr. Scott can come up with a way to engage people to a community (just like his lesson about Standing Ovation), I think he would be able to transform the way people learn from the Internet. For those who missed this course, I would recommend to wait a little to take that course again in September.


(*) Yep, this blog post was in my desk from 2 weeks ago.

(**) I would like to use this post as a thank one of my “big” friend, who showed me that age doesn’t have anything to do with the willing to learn. Hope some day you can read this.

Don’t lose the ability to be surprised


Any fair-experienced CSS developers know that, if we want to be sure that a parent-div truly contains a child-element, we should put “overflow:hidden” in the parent div.

I was told that, too.

Ok, that solved the problem. And we continue going without truly knowing the reason “WHY”?

“Don’t fix what ain’t break” – people say.

In fact, I’m type of people who don’t like to invest time into things that aren’t useful. So I accept that trick as it is. Until today.

I was surprised (or remember that I was surprised) – like the first time I heard the trick. It took no more than 10 minutes to find an answer… but the question is that WHY I didn’t ask that question any sooner. How can I let the “magic” slip without wondering???

I suddenly remember a lot of other things that I take for granted. When I first come to this field, everything is new and shiny. After a while, things get normal bit by bit. And gradually I forgot my ability to wonder.

I remember the time when I was assigned to do OAuth 2.0 for a Facebook application. Instead using a library, I “silly” re-wrote the whole authentication process by Servlet/ HttpRequest & Response. By now I’m nearly sure that there must be pre-built library to do that thing somewhere. Whatever, I don’t regret. The time I put in studying how OAuth 2.0 works let me confidently say that I fully understand it, and I can (and did) manually write authenticate process for both Twitter & FB… They are all HTTP requests, basically.

What’s the way of your choice: learn just enough to do things – or learn intensely to truly understand how things work?

P/s: I have some ideas about “Key Concepts” (to overflow:hidden, it’s Document flow). But this post’s long enough.

Sometimes it’s happy just because you have a work


Happy working

Don’t know why I spare the small time to write this post.

Sometimes happiness is hard to explain. Having a work, which you loved to do (or simply just because you do it well) is really a bless.

It’s kind of playing a game, but more… you have a product at the end. You know your hard work will yearn good results. You know that all your efforts are not for your own richness or pleasure. You know that what you create will last.

Hope you all find a good work. :)


Books – Cover, content and the presentation

/** Vietnamese: Cảm nghĩ khi xem bộ sách viết về kinh tế “Chào mừng 1000 năm thăng long – hà nội **/

Today I have a chance putting my hand on a series of Vietnamese economic books. That series is made to welcome the 10 centuries ceremony of Hanoi – Vietnam Capital.

I don’t have much time reading all the things. Skimming my way through the book, I feels that most of it are paragraphs with facts, bullets, numbers and so on… As far as I can tell, there’s no sharp argument or interesting question. If I am an economist, I may guess out the meaning of all those figures. But I’m not, so I’m lost.

The authors are all famous. They are professors, doctors… And to receive the task to write a book series for the most important ceremonies in this century… I don’t think they lack knowledge. But I must say that they failed to transfer their knowledge into their books.

When I first saw the books, I thinks positively: they are made to give us – normal citizens – the overview of the nation we live. But this series doesn’t seem to care about normal readers. Who will buy those books? Economists PhD & Master?

There’s a reason that Thaksin buy cell-phones for Thailand’s farmers. There’s a reason that Fukuzawa Yukichi writes lines that inspired a generation of Japan. Information are important. It’s important not only about what’s their content – how the information are organized & presented also matters much.

I still remember the feeling while reading Fukuzawa Yukichi, with all his enthusiam & efforts put in his works. The good books are the books which create the problem in readers’ head, and make them think. Only by thinking may the reader remember the content. Otherwise, it’s no difference to listening morning news.

Every tool has its cost


For such a fairly long time I haven’t written anything. Not because I don’t have anything to write, but it’s hard to pull complex things out of my head. But now it seems to be time for a warm-up :)

One of my senior, Mr An, has a favorite sayings: “Until you don’t depends on tools, you are not truly a developer.”

Truthfully, I don’t think I have fully understand what he means. A developer with more than 10 years in this industry may have a different view to a young one like me. But to some extent, it seems to be a good idea.

For a certain amount of time I have tackled Maven, Spring Framework, Java Serverpage, Freemarker… I end up spending most of the time trying to fix bugs, caused not only by the framework, but also by mis-configuring Eclipse & its plugins. To be honest, it’s annoying

Actually, Eclipse is such a good tool: nearly everything you think that a good IDE should have, it exists in this free solution: refactoring, navigation, source-control-supported, Maven-tools… Such many functions integrated in a single program. Pretty handy, isn’t it?

But here a problem arise: when you have too much utilities, it will be hard to have a meaningful organization. It make me frustrated when right-click in Eclipse and have a 20-items context menu pop up. Still, navigating through that menu isn’t as hard as understand why and how to use the Eclipse view, explorer, hot key, configuring it to auto-compiling… Those are also the things you need to know to speed the work up. As far as I know, there’s no simple coherent way to do all the tasks.

The same semaphore also applies to any of our developer tools, no matter if it’s an IDE, framework, libraries… or even, methods. In my view, the best tool is a tool with few familiar functions, so that we can easily master and get the best results with minimal efforts. But the fact is that, as long as people want to stuff their tools out to fit everyone needs, that goal is hard to meet.

You must master a tool before you can make it work for you, so there’s a hidden cost. Imagine, if a tool doesn’t allow you work 2 times faster, do you spend 2 weeks to master it, just for use in a 1-month project?

Let’s choose and use tools wisely.

Fighting with the Black Box

Recently I had the opportunity to work with OpenSocial, an rather famous alternative for Facebook Platform. To make long story short, I have a difficult time: the API standard document is fairly good, but it depends on third-party implementations. The troubles arise from here: the OpenSocial implementation of the site is incomplete and have some non-standard parts. I was stuck.

This situation reminds me about many previous cases, in which I must work with a blackbox, with very few documents available. Zend Framework, SocialEngine, Grails… all pre-built system is a big scary Black Box. It’s like a big closed machine: you don’t know what mystery happens inside, but you must depend on it. And in case it’s bad documented, you must figure a way to wade through unexpected results & doubts… Well, I don’t like to say WTF, but it’s really that bad sometime.

On the other hand, it’s just good for not building a thing from scratch. I don’t know how many months it will take if I try to construct something like Grails/ SocialEngine by myself, in case I can live just for doing that. Every programmer once use an API/Framework: nothing new. And all must find a way to ease that pain.

So how to cope with the Blackbox?

First solution is asking senior programmers, who have lots of better experience. I have learn much from Younet seniors in SocialEngine (it have NO bit of document just yet) and just as much about Grails, Java from Evolus seniors. It was a big help when I’m with them – as it still be now.

The second place I look for help is from the community and black-box developing team. Most of this approach happens in cyber space, so I don’t have to worry about disturbing people, but it only works if someone out there know my problem. If the framework/API has a fair community, there’s a good chance that someone met a similar problem before. Hence I can try a Google search, ask on StackOverflow, or simply throw a question on the supporting mailing lists. But notice: when joining a community, there’s some responsibilities that come along with benefits. You need to figure out what you can do in returning the help you received.

Last but not least, in case you get nothing by previous ways, you can only use your creativity now. In my case, if I understand what causes the problem, I will try coming up with a work-around. If I don’t, I will try to throw several kinds of input into the Big Blackbox. The results will tell something, and changing the input little by little may tell where the problem is.

Above is all of my few heuristics for dealing with a closed system. It’s far from perfect and I am looking for some enhancement, but that’s another story.

Dealing with negativity – an incomplete post

Recently, some of my friends often complain about their stress, lonely feelings, worse mood… In short, they feel bad. It’s like spurring ink fluid into a water glass. So I decide to write something for my friends.

About a year ago, I share their same feelings. Graduating from university with not so-high grade, but I’m seriously lacking belief about my ability. I choose to work – not stay at school for learning higher – for the fact that I don’t like studying theories anymore. But I also don’t know if I can work well – I was born an earth-worm and my all family hope that I would become a professor, PhD… But I failed them.

I also failed someone I’m very caring about.

When thing happens, it happen. After all events, I suddenly realize that I fail myself. I fail to protect the one I love for my inability, for the fact that I haven’t trained myself facing difficulties, and lacking of preparation. I said to myself: things can’t be like this any longer. I must get back to shape as soon as possible. The spirit come back.

Well, if someone is in my case, maybe he will be a lot stronger and get back faster. Whatever.

I just need to know what do I live for.

Thoughts when viewing “Studying method for University”

This blog post is the English translation of this post. Because the content gets rather lengthly, I decided to split it to two posts.

Last Sunday I had the opportunity to attend the finals of “effective learning methods” by the Cultural Organizations of Student. Though observing time was short, I feel very interesting with the creation of participating teams. From the professional journals-like reports, to intelligent and witty answers on stage, all showed that participants have a very strong grasp of their learning methods.

The competition wraps up with the winning of team “Dai Nang No”(Great Advance) from the Open University. The remaining teams also gained valuable lessons and lots of fun. However, when the game was over, I feel a little anxious. Student Culture House held the contest to stir the improvement of student learning. But is it really effective?

For a long time, the press has prompted many to complain that their new students are not guided, some was shocked transferring into the university environment. But I’m not sure that hundreds of students sat in the auditorium of the competition, how many percent can apply the methods presented today.

Why do I say that?

Frankly, the “learning method” itself is not the matters of saying and remembering. Learning method is not knowledge.

Knowledge is something static, unchanging, can be recorded on paper. Methods, by contrast, are dynamic knowledge. You can’t learn it by heart, you can write it to papers in case of forgetting. It’s the matter of practice.

Just like learning martial arts, no one can learn by reading or watch others perform. Learners themselves need to practice, so feel each move, each piece of the new technique can be applied. To study a “method”, a learner must apply it, experiment it, flip back & forth his/her problems. Then he can adjust the method to suit the circumstances and character style.

Let’s talk about the most simple: writing letters. 90% of the letters were written by hand, but Nguyen Ngoc Ky, and many other disabled people do by foot. On learning, some people learn best alone, others prefer learning in libraries. Each method has advantages and disadvantages, depending on who all practiced.

So the question here is: How to apply effectively new studying techniques?
In my opinion,  students should note the following when adopting a new method:

  1. The learning methods are merely tools, not a universal key. There’s no silver bullet.
  2. Set a Goal. It can be simple like: I will learn 1 hours at 6 am everyday for a week. Goal itself has the ability to create motivation. This can be considered as the most important thing, help the learner orientation “on track” to overcome obstacles in the learning process.
  3. Notice habits & personal characteristics. Habits form actions, actions form destiny. Choose and form your desired habits, it’s a great asset.
  4. Discipline, autonomy of learners. At begin, it’s hard. As soon as it become a habit, it’s easy. Learn to make your habit.
  5. Review and self-regulation: nothing can be perfect at first try. Do it again and again, improve minor things in every circulation. At last, things change :)
  6. Group learning: not a big deal. It’s great to learn new things from different people.