Page 2 of 2

As you work in a team, collaboration becomes essential. At this early stage, I am leading a small team to build our platform. Although I am the one who writes the most code, I realized how important to start doing code review. I know a lot of companies use Review Board as their code review tool, and some other tools for task management, etc. Back to the time I worked at Minted, Review Board did not impress me; therefore, I started looking for something better, and I quickly found out Phabricator.

Phabricator is a collection of open source web application that help software companies build better software, it does not only do one thing, it can do many things, it is a suite of applications including task mangement, code review, etc. It is also free with self hosting.

I started looking at this, and decide to host Phabircator on a EC2 Ubuntu instance for experiments. Before I decide to do so, I had the chance to ask the CTO at Phabricator that how soon their hosting service will become live, and he replied with “At least a few months”, I could not wait.

Just like all the other people who are also using Phabricator, I got super addictive to it. I spent hours playing around with it, trying different configurations and exploring different features. The following is an image of my Phabricator home page, which is also customizable for everyone.Screen Shot 2014-09-24 at 6.24.30 PM

One of the feature that I found that is extremely amazing is that their Arcanist tool provide a command “arc lint” to analyze the source code and raise warnings and errors about it, like a syntax checker that makes sure you are writing clean code. If you are not, it will raise errors and warnings; for example, the following is what happens for a Python code.Screen Shot 2014-09-24 at 6.34.33 PMFor more about Phabricator, you can find out on their official website. All you need to believe is that Phabricator is cool.

In terms of the price, at KuKy World, my hosting strategy is that we reserved a t2.micro  heavy utilization instance for 3 years with total $109, and hourly rate at $0.002, and a general SSD EBS volume with 1GB data. You can do the math, it is not expensive.

Thanks for reading.

Recently I read a paper about exploring the use of memory colors for image enhancement. Memory colors have been defined as “those colors that are recalled in association with familiar objects”. Several early psychophysical studies support that the majority of people associate and ideal color with an array of everyday objects (skin, grass, sky, plant, sand, and etc).

An interesting fact is that when people use Photoshop to polish their photos, they inadvertently apply a lot of memory colors. Think about some of the modern famous photo apps like Instagram, which also applies memory color to enhance the photos, it has proven that memory color make people more pleasing than the original color.

There are also situations where the association with memory color is less appropriate; for example, the images that convey a certain mood, memory color can make the mood disappear.

The basic idea of using memory color to enhance an image is to shift the original color in some region of that image towards the memory color.

The following is a little experiment I did in Matlab to see how variation goes within an image.

For the common object that people might see every day: grass, brick, sky.

brick  grass  sky

I obtained the following graphs:

brick_rgbgrass_rgb  sky_rgb

The following is the Matlab code that does the trick:

function [ ] = generate_3d_plot( img_str )
  img = imread(img_str);
  [height, width, dim] = size(img);

  s = height*width;
  R = double(reshape(img(:,:,1), 1, s));
  G = double(reshape(img(:,:,2), 1, s));
  B = double(reshape(img(:,:,3), 1, s));
  figure;
  scatter3(R,G,B,30,[R' G' B']./255,'filled','Marker','o');
  xlabel('RED');ylabel('GREEN');zlabel('BLUE');
  title('RGB values');
end

Thanks for reading.