All posts by felixha

Technology (1) – No SQL

No SQL is a new school of Databases that do not use traditional table-based data model to store data.

They can use different models like:

  1. Column: Cassandra … Druid … HBase
  2. Document: MongoDB … CouchDB
  3. Key-value: Redis … Dynamo … Memcached
  4. Graph: Virtuoso … Infinite Graph
  5. Multi-model: OrientDB … FoundationDB

The most famous No-SQL are: (see Database-ranking: http://db-engines.com/en/ranking).

  1. MongoDB (top 1)
    • While the functionality is close to that of a traditional relational database, MongoDB allows users to capitalize on the benefits of cloud infrastructure with its horizontal scalability and to easily work with the diverse data sets in use today thanks to its flexible data model.
    • MongoDB is the easy to learn. It’s strength is SIMPLICITY.
  2. Cassandra (top 2)
    • Cassandra is very easy to manage at scale.
    • If developers want to have faster, more reliable but scalable solution, they go for Cassandra.
  3. HBase (top 3)
    • It’s from same company with Hadoop.
  4. Redis
  5. CouchDB
  6. DynamoDB

News: http://www.infoworld.com/category/nosql/?nsdr=true

Nhập Thần

Đam mê là gì, đam mê là làm một điều gì đó với tất cả tâm hồn. Làm một công việc của mình yêu thích với toàn bộ tâm trí, không có distractions, không có gì ngoài việc mình đang làm.

Sống trong thế giới của việc mình đang làm, một thế giới khác biệt và độc lập, một thế giới chỉ có mình với việc ý. Mình đã từng ở trong thế giới của âm nhạc, ở trong thế giới của cờ vây, cái gì cũng có một thế giới như vậy cả.

Hoàn toàn nhập thần – cảm giác kỳ diệu của Thiên Nhân hợp nhất – từng tế bào nơ-ron rung động trong những điều mình đang làm, dù là lập trình iOS, hay đọc sách về iOS, hay tập đàn, tập võ, tập bóng bàn, cờ vây …

Mình không cần phải thành một đại cao thủ về iOS, mình nên focus rộng ra, làm nhiều thứ, am hiểu rộng hơn là am hiểu hẹp, biết đánh guitar hơn là chỉ piano, biết đánh tennis hơn là chỉ bóng bàn, biết đánh cờ vây, biết nhảy … Làm gì cũng phải nhập thần …

Never trust the limit people put on you (or on anyone)

After a few days working at new place, meeting up with old friends, I am so thankful to God for this opportunity.

Now I have met enough people in a last couple of years to understand this: people’s limit is not in the brain’s capability. The limit is in our attitude and our lifestyle.

1. Let’s take attitude: when you give up before you have done everything you can, when you are discouraged because of some early defeats and give up – your attitude is the reason why you fail. On the other hand, if you didn’t give up, but try to figure out what more can be done, which area to improve, which practice you need to do … not giving up, but continue to put in your time and effort is 80% of the success, another 20% is luck / blessing / God’s reward.

Attitude is the most precious thing you can have in this life. Without a correct attitude, you will self-destruct. With a correct attitude, you can learn everything.

You truly don’t know how amazing is our brain. Spend enough time on something, with great desire to learn it, focus on it all the time, and the brain will gradually pick it up.

Doesn’t matter how hard it is, everything once broken to pieces, can be learned step by step. If you have a correct attitude, there is no limit to your brain.

2. Lifestyle:

Outside of some hours you need to sleep (7), hygiene + eat (2), you have about 15 hours everyday to spend. How you spend it is the indication of how rich you truly are.

All you truly have is time. And health. If you don’t have good health, and scientific way to eat and sleep and exercise your body, then you will become sick and don’t have much time to spend. So, take care of sleep (sleep 6-7 hours), eat well (and regularly) and exercise (works wonder for the brain).

Then, all is left is how to spend the time most effectively.

You have 1 hour in the morning (6-7am), to quickly learn something. Don’t waste it on reading news, it’s not helping you. Spend on learning.

Then exercise and shower, from 7.40am-8.45, more than 1 hour on train to work. Don’t waste it on newspapers, think about work. Visualise what to do, prioritise tasks, break down things, plan.

Then from 8.45-10.45, 2 hours of intensive work. 15 min break and start again at 11-12.30, another 1 and half hour of work.

Lunch break, start again at 1.30-3.30, 2 hours of tasks again. Now you are tired and should take a break, 4-5.30, another 1.5 hour. So in total 7 hours.

About one hour on train, 5.45-6.45, don’t waste it, visualise what you need to learn, summarise what you have achieved today, what to improve.

After dinner, 15min break, back to study at 8-10pm, you have 2 hours to study. Read something, take notes, do something fun, make something you own, build your own kingdom of apps, games. Take 30m break – lets brush the teeth,

10.30-12: another 1.5 hours to just watch tutorials, read books, blog… Going to sleep in the great state, don’t forget to pray !

Your lifestyle is all yours. Your life is yours to live, and you decide 80% of it, the remaining 20% is just what you can’t control, it just happens. Don’t mind.

Trust God

Only God will never give up on you. And you should just trust Him and do your job. Abandon the worries. God will take care of you and your life. Just live well.

And so, never trust the limit that people put on you. The labels that people lay on you. You also have a brain like they do, and that brain’s capability is limitless, if you know how to harness it’s power. You do what you need to do, the other’s opinions are just by-product of your attitude and your lifestyle. So care for the root, and you will have fruit.

Amen.

Những ngày căng thẳng

Mình muốn viết ra đây những cảm xúc của những ngày căng thẳng chờ đợi. Mình mong muốn được đi, dù rằng mình biết phải chờ đợi và đã đọc Ajahn Brahm nhiều để không nghĩ về việc đó. Nhưng quả thật hai tuần qua có cảm giác như người mất hồn. Thế mới biết dù mình đã có rất nhiều thành công từ ngày sang Úc, dường như mình vẫn chẳng có gì. Bởi vì những thành công đó đều là được Chúa cho chứ nếu không theo Chúa thì mình có gì đâu?

Từ hôm đi pv đầu là thứ 5 hai tuần trước, cho đến hôm nay đã được 2 tuần. Cảm xúc lên xuống như thuỷ triều, lúc mừng vì được đi tiếp, lúc lại hồi hộp, lo âu, sợ hãi… Những cảm giác sợ hãi thật quá nặng nề, cho dù mình cầu Chúa liên tục và cố gắng quên nó đi nhưng vẫn không thể quên được. Mình thấy dường như nhiều người không thích mình nữa, và có lẽ việc mình ở lại cũng chẳng mang lại ý nghĩa gì. Mình quan tâm gì những người không thích mình, hãy enjoy những người yêu quí mình thôi. Không thể please tất cả.

Hôm nay là thứ năm, mọi thứ đã có nhiều triển vọng. Chúa không phụ lời cầu nguyện của mình, có lẽ thực sự thì Chúa đã sắp sẵn một chỗ cho mình – mọi sự trong cuộc đời này của mình đều có bàn tay của Chúa sắp đặt và hướng dẫn. Cho dù mình có đi đâu đến đâu, điều quan trọng nhất là sống yêu thương và đi theo Chúa cả đời, thì Ngài sẽ luôn che chở và bảo bọc cho mình và gia đình mình. Cảm tạ Chúa và xin Chúa ở cùng con trong cuộc sống này. Amen.

3 phases of any skill

Murray lost to Djokovic yesterday night. Supporting Murray, I can clearly see the weakness in his mental attitude, which is why he lost the last set 6-0. Of course you have to be Djokovic to beat him 6-0, but in a game so mental and also physical like tennis, you need to conserve your energy, both mental and physical, to have a chance to win.

Like tennis, table tennis or any other skill, there are 3 levels of learning:

  1. Strength: first to be able to learn a skill, you need a strength. Whether it’s your forehand in tennis, your serve in table tennis, or your vocabulary in languages, you need to focus in one strength. Then you can use that strength to excel and get rewards. Usually by having just a great serve, you can do quite well in tennis world. This is first level.
  2. Weakness: the next level is to eliminate weaknesses. Identify the areas that you are weakest and work on them. Like in table tennis, my backhand is bad and if opponents keep serving and playing to my backhand then I will lose more and ultimately lose the close games… At work, if my weakness is the lacking of knowledge about the custom components, categories, or the properties of standard components like UIViewController / UICollectionViewController … then I have to work on them, patch the knowledge holes.
  3. Details: Once we don’t have big gaps in knowledge, there is the level of details that improves you. At home, the level of details can make your home look great, can make your life efficient, can make you productive. But it’s the last level of the game, you don’t get there if you still are stuck in previous levels.

 

 

Vision at work !

The way to write reusable code, similarly to the way to play go, chess, pool, table tennis, or to cultivate a garden, requires vision.

Vision is the way to think ahead, to predict the future and be prepared for it.

Work is not a mechanical place to just do what you are being told. Work is the place where you need to think and visualise. Visualise how the tool that you make for a purpose, can be reused for a slightly different purpose, therefore you can make it configurable, like a spoon-fork which shows vision.

Vision is at work, will always bring invention, just ask the question “how can this be used in a different way in the future how generic we can make it can we design this in the best way so that it can be adaptive to future improvements / upgrades / changes?” 

How life should be lived

A life focused in self-satisfaction is harmful, you waste your precious time on games, movies and leisures, and not live a meaningful life.

A life focused in discipline is boring, people can’t be like robots especially me, I thrive in happy, loving environment. I have to find motivation, passion to live.

A life lived with direction – a life lived with a sense of purpose, is what motivates my mind.

True happiness is not to be found in the past, nor in the future. True happiness is found in consecutive, tiny successes of the present time.

So, to collect tiny successes now, in a unified direction of BEING AN EXPERT & A CONTRIBUTOR – is true happiness.

 

 

5 Steps to technical questions

  1. Ask specific questions: 
    • Linked List or Arrays
    • Numbers: int or real
  2. Design an algorithm:
    • Space/Time complexity
    • Lots of data
    • Leverage specific information
  3. Pseudo-code
    1. Examplify
    2. Pattern matching
    3. Simplify & generalise
    4. Base case & build
    5. Data structure brainstorm
  4. Code: 
  5. Test your code: 
    1. Extreme cases: 0, negative, maximum, null
    2. Analyse bug before fixing
    3. User error (not integer ..)

To become a top IT developer, it’s important to know what and how they are looking for IT talent. These are the new ways companies use to estimate your level as a programmer:

  1. Hackathon: Even a cross-department hackathon where the ideas come from accountant or marketing guys.
  2. Showcase projects: these projects are even better than the hackathon.
  3. Suggestion box: lets encourage people to come up with new ideas.
  4. Tech talk: lets them talk about new things that interest them.
  5. Best Interviewers: get the star coders to do interviews.
  6. Hire ambitious people: hire people who have their own business, or other passions.