Archive for March, 2014

Web site refresh 7 years later

Saturday, March 8th, 2014

JacksonLeung.com has been registered for 7 years now. My site looked exactly the same for the last 7 years. An astute follower might noticed that my site has gotten a face-lift of sorts.

I’ve added the linux console from xkcd to my main homepage simply because I think it’s cool. I really wanted my site to reflect me, which is simple, effective, and have cool interests. Too many bells and whistles get in the way of the core essence of what things are, and my site reflects that point of view.

I’m pretty proud of the xkcd console because it doesn’t do what it does for my homepage out of the box, there’s definitely some Jackson magic in there. It’s not perfect, but I probably won’t have to touch the code for another 7 years, so, it’s perfect enough. Although truth be told, I can see a thousand different ways it can already be improved.

I’ve also made my homepage and blog mobile friendly. Let’s face it, mobile’s here to stay, and if you haven’t adapted to it, then you’re behind.

It was really cool spicing up my site and reflecting on how times have changed. It’s a very symbolic change, I feel like the site merely changed on the surface, the things I really care about, the core of the site, the message, the person, it has all stayed the same. Some ancient elements from the past, like XHTML and CSS validators have remained. I realized that there’s a possibility I pioneered the one-page app concept as well. All these things remained intact after the site redesign.

It’s amazing how time flies.

Thinking in Reverse

Saturday, March 8th, 2014

I find myself thinking in reverse more often than I am thinking forward. What is “thinking in reverse”? I believe thinking in reverse is seeing the end goal, and then trace from the end-goal to the present moment. Things like, I want to make x dollars a year in salary, I want to help this company make x dollars in revenue, I need to get these pieces into this position in order to solve this puzzle. If I want to be have this sort of lifestyle and live in this location in 10 year, what are the things I’d have to do, where do I have to be, who do I need to know? So on…

I wonder if this is part of planning, or if I merely came to a self-realization that everyone pretty much thinks this way.

The concept of “budgeting” is a clear example of thinking in reverse. How much money can I spend? What can I spend this money on? A forward thinking approach might be, I’ve buying, and bought x items, and then checking the balance to see how little money is left in your bank account and make a decision from there.

I like solving puzzles from two ends, the beginning, and the end. What does the end have to look like, what does it look like in the beginning? Then I meet everything somewhere in the middle, and I have my optimum path. This technique works really well for me in any type of pathing sort of puzzle (think mazes). Come to think of it, even Soduku puzzle in a way tell you how things MUST be before you even start.

Makes you wonder what things you really thingĀ forward on, and if you spend all your time thinkingĀ reverse, what type of life are you leading, what does it mean, is it a good or bad thing?

Wait Constraints

Thursday, March 6th, 2014

I was pondering about how to speed up project deliveries, and I realize that often times, no matter how much knowledge I have on the topic, it will still take a fixed amount of time, because certain processes simply involve “waiting”. For example, if you need to restart a server, you need to deploy some code, you need to wait for something to compile, and programs to simply start.

The way to unlimit yourself is roughly let someone else do the waiting, and focus your energy on other things. This constraint is an important one, and if you can bypass this constraint, then accomplish a large project in a much smaller time. It’ll also bring into question what you’re capable of, and what your role in the project truly is.

Project Constraints and Project Selling

Tuesday, March 4th, 2014

There are 3 things you can control about a project, time, resources, and features. Of the three, you at best can control 2.

Which is why I propose for projects to have the following creation and definition flow:

  1. Feature gathering
  2. Resources / Budget constraints
  3. Time / Delivery constraints
  4. Project planning, project options, packaging, pricing
  5. Investigation
  6. Execution

 

  1. We want to under to undergo feature gathering first, because how can you size something with unknown dimensions?
  2. We want to know what are the budgetary constraints to the project, since we limited resources, we’ll have limited options, and we’ll have to live with the consequences of having limited resources.
  3. We want to know when the project needs to be delivered by, often times, if it’s something that needs to be rushed, then over time might be necessary, or perhaps more resources.
  4. This is where we plan the project and price out the project. I think it makes sense to allow the client to control 2 of the 3 factors of project planning. Once we know what the client is willing to give up, then we can go ahead and structure the deal around it. I’m sure with the resource allocation any venture can be profitable.
  5. During this phase we need to figure out exactly what is entailed with the project, and whether or not we can properly take on the project.
  6. During this phase we basically get it done.

This flow seems to make sense to me, if a person knows a better flow, let me know because this is the flow I’ll stick with for now.