Showing posts with label aflexi. Show all posts
Showing posts with label aflexi. Show all posts

Wednesday, September 28, 2011

This interviewee would only answer the interview questions if I hired him

Over the past 4 days, I dedicated most of my time on resume screening and interviews. It is a boring job but you get some fun out of it sometimes.

So, here's some fun I collected this morning. An interviewee who thought I would hire him straight without asking any questions related to the job.

2011/9/29 Z* H* <*@yahoo.com>
>
> Hi,
> 
> I will be able to answer all your questions in the first day working at your 
> company. 
> 
> Thanks
> ________________________________
> 
> From: Yuen-Chi Lian <*@onapp.com>
> To: Z* H* <*@yahoo.com>
> Sent: Thursday, 29 September 2011, 7:43
> Subject: Re: Application for QA Engineer from H*, Z*
>
> Hello Z*,
> 
> I would like you to answer the following questions before we proceed.
> 
>  1. What does software quality mean to you?
>  2. How... *?
>  3. Do you think... *?
>  4. How... *?
> 
> Regards,
> Yuen-Chi Lian | www.onapp.com
> 
> 2011/9/29 Z* H* 
>
> Good morning,
> 
> Yes, I am aware of it and willing to work hard, whatever it takes. 
> Thanks
> ________________________________
> 
> From: Yuen-Chi Lian <*@onapp.com>
> To: Z* H* <*@yahoo.com>
> Sent: Wednesday, 28 September 2011, 17:08
> Subject: Re: Application for QA Engineer from H*, Z*
>
> Hello Z*,
>
> Just want to be sure, are you aware that this is not a manufacturing QA job 
> but an IT QA job?
>
> Regards,
> Yuen-Chi Lian | www.onapp.com

And here's my response

Date: Thu, 29 Sep 2011 08:33:09 +0800
Subject: Re: Application for QA Engineer from H*, Z*
From: Yuen-Chi Lian <*@onapp.com>
To: Z* H* <*@yahoo.com>
Cc: Malaysia Careers <career-my@onapp.com>

That's very interesting.

But, Z*,

Our team actually built the core logic of the Iron Man's latest armor "Bleeding 
Edge", appointed by Stark Industries after going through their professional 
selection of industrial partners.

We're very serious about QA, as the product is used (and will only be used) in 
critical missions that define the future of the mankind. I urge you to answer these 
questions and hope you understand why and how so serious they are.

Regards,
Yuen-Chi Lian | www.onapp.com

He hasn't yet gotten back to me 'til now. If you have someone better than this guy who is looking for a QA job, or to be a Sysadmin/Java/PHP/Python engineer, let me know at career-my@onapp.com.

Friday, March 20, 2009

Some Particulars like Room Names in Aflexi

This is truly a random post. During the lunch time at Full House (NZX), I talked about red-tape/bureaucracy in corporates that I can't stand, then exchanges of some Oz slangs.

When I got back to the office, I came across a blog titled "101 Guide to going to the Men's toilet in Sydney" in my ex-company's internal blog (we still maintain a good relationship basically).

Here're a number of things I raised and discussed over in a meeting an hour ago with the team:
  1. The developer's roster, tasks and deadlines.
  2. The right ways to use the toilet.
  3. The ashtray pot and your ciggy.
  4. The cups and basin.
  5. The room names.
Items 2 to 4 are small particulars but people neglect or find themselves resistant in conforming to social standards, if that're the right words to use, anyway. The Aflexi devhub in PJ, Taman Megah Emas (which I named it Aflexi Gold a while ago), has quite a number of rooms and 3 toilets. I'm thinking of giving them names (since 2 months ago but things got me stuck), like country's, city's, etc.

How're rooms named in your office?

Friday, October 31, 2008

XML-RPC vs. SOAP vs. REST thoughts and Spring Beans

Recently I am working on the remote API side of my project, and the protocol that we chose is XML-RPC. Somewhere in two blogs returned by Google search suggested that REST > XML-RPC > SOAP. SOAP can only be considered for its wide enterprise adoption and protocol stack (with security management, transaction control, etc.) and therefore it is complicated. Yes, the person created XML-RPC wasn't an expert in XML but it's neat.

Why not REST then? I used to work on design and technical issues of Mule ESB and I was exposed to REST of its sweetness (the simplicity, the CRUD stuff) before more people started to talk about it (now they talk about Cloud). I learned that SOAP is for SOA (Service Oriented Architecture) and REST is for ROA (Resource Oriented Architecture). They are two different paradigms, and the purpose and design of these layers are therefore different, e.g. you don't carry a service/RPC mindset when you create a REST API.

So, no REST for now as IMO it requires more effort to design a proper API. Never I'll create SOAP due to its complexity.

What about JSON-RPC? I had a short discussion regarding this with @ditesh at #myoss@irc.freenode.net. I love JSON for its interoperability and speed (vs. XML parsing). But the available implementations turned me off pretty quickly, most of them stuck in year 2005~2007. For a publicly available remote API, a well-adopted and "mature" protocol is a much better choice.

What about the Spring beans stuff mentioned in the topic? I found the Apache XML-RPC server can't be integrated with Spring naturally (it has but not enough of bean property methods) and the API is quite ugly, e.g. XmlRpcSystemImpl.addSystemHandler() takes a PropertyHandlerMapping, why not XmlRpcListableHandlerMapping?

I took a similar approach suggested by Tomas Salfischberger in his blog and here they are:
  • An implementation of Spring's AbstractController.
  • An extension of PropertyHandlerMapping, this bean is used by the previous.

public class MyXmlRpcController extends AbstractController {
private XmlRpcServletServer server = new XmlRpcServletServer();
private boolean introspectionEnabled = false;

@Override
protected void initServletContext(ServletContext servletContext) {
super.initServletContext(servletContext);
if (this.introspectionEnabled) {
try {
XmlRpcSystemImpl.addSystemHandler((PropertyHandlerMapping) this.server.getHandlerMapping());
} catch (Exception e) {
}
}
}
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
this.server.execute(request, response);
return null;
}
@Required
public void setHandlerMapping(XmlRpcHandlerMapping serverHandlerMapping) {
this.server.setHandlerMapping(serverHandlerMapping);
}
public void setIntrospectionEnabled(boolean introspectionEnabled) {
this.introspectionEnabled = introspectionEnabled;
}
}

public class MyXmlRpcHandlerMapping extends PropertyHandlerMapping {
private Map serviceMap;

public void init() throws XmlRpcException {
this.load(Thread.currentThread().getContextClassLoader(), serviceMap);
}
@Required
public void setServicesMapping(Map serviceMap) {
this.serviceMap = serviceMap;
}
}


<bean id="xmlRpcHandlerMapping" class="my.MyXmlRpcHandlerMapping" init-method="init">
<property name="servicesMapping">
<map>
<entry key="membershipService" value="my.service.XmlRpcMembershipService"></entry>
</map>
</property>
</bean>
<bean id="urlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<value>/xmlrpc=xmlRpcController</value>
</property>
</bean>
<bean id="xmlRpcController" class="my.MyXmlRpcController">
<property name="handlerMapping" ref="xmlRpcHandlerMapping"></property>
<property name="introspectionEnabled" value="true"></property>
</bean>


- yc

Tuesday, September 23, 2008

Aflexi (CDN) Prelaunch

The CDN project that I am working on - Aflexi, is now on prelaunch. There are two videos added to the website:
Feel free to leave your comment there and share with your friends about us too. :)

Updated: Removed the links below as the videos are no longer there. Go here instead.

- yc

Tuesday, September 16, 2008

Seperating visual effects from HTML using jQuery

I remember reading Matt Ryall's blog on 10 things every web developer should know a while back and I would like to highlight the clean code suggestion made there.

I'm migrating the existing Aflexi website to Drupal and at one point I came across an existing code which.. is not too ugly but hard to be integrated into its Menu feature. The code has a few divs that jQuery uses to create sliding effects, I could actually put them into the template page.tpl.php but using jQuery to inject them at the end of page is certainly a better practice.

So, in my template.php, I have:

$js[] =<<JAVASCRIPT
$('#nav').append('lots.of.divs'); // Here's the injection
$(document).ready(function() {
UiHelper.registerSlider('a.menu-1-1-2', '#sliderWso', '#pointerWso', 300);
...
});
JAVASCRIPT;
drupal_add_js(join("\n",$js), 'inline');


By the way, I make the divs a one liner using:

echo 'paste your html' | tr -d '\n'

Then, talking about injection, this is brought into my attention as well - jQuery-AOP.

- yc

Sunday, July 27, 2008

Second Day of BarCamp Malaysia - Awesome!

The second day of BarCamp was simply.. Awesome! I talked about being a newbie wireless user yesterday and I have another newbie experience today on OpenOffice Presentation. We are newbies in certain areas of our life at every single day to learn new things, aren't we?

I started my day by attending a wireless network hacking session by the iTrain guys. A very great and rich session indeed, with a speaker who couldn't stop reminding us that he has a longer toy than us, he showed a number of tools to make wireless hacking easier. And not to forget, Linux is the best platform to launch attacks. It's a shame that the demo didn't work and the session dragged quite a while to make my slot left with 30 minutes time.

Yes, my talk on CDN fell in the same lecture room. Being a big fan of Steve Jobs' style presentation, I made my slides as clean as possible with just keywords, although I didn't deliver a smooth one like his (hopefully next time), thanks God that the decision to make the presentation short saved me from rushing given such limited time (of course, the reason wasn't to run into Ditesh's talk but to have more QnA and interactions).

Followed by it, it was Talat's talk on "Hidden Impact of Higher Mathematics on the World Wide Web". Talat and his talk reminded me of the Oxford Murders.

After having our Subway lunch, I ran into (once again) the Lecture Room 1 as Kamal and Aizat planned to run a ligthning talk session there. So, when I thought I would finish up my day all in Lecture Room 1, we got the news that the session got forked and we just merged with folks in another room.. which started with a talk on hiding porn video files.

It's so excited to see how much information people could share in that one hour time!

- yc, in and out.

Monday, July 21, 2008

Catch Aflexi + CDN Talk in Barcamp Malaysia

Mentioned in my earlier blog that I will be presenting at Barcamp Malaysia this weekend (Sunday) on the topic "Content Delivery Network".

The agenda shall go like this:
  • Problems of the current state of the Internet
  • Introduction to CDN
  • Existing CDN Providers
  • Who use CDN?
  • Aflexi CDN model
I will put up the content of the slide as soon as I have completed it. Still fixing up stuff for prototype development here.

- yc

Friday, July 4, 2008

Welcome to Aflexi

Hi guys,

I did not touch on this in my status update a few weeks back. Anyway, here it is, I have left CustomWare Asia Pacific, a company that I first joined after my undergraduate study and which certainly had shaped my career pretty well -- worked on Atlassian and MuleSource products.

I am now starting a new business with my friends, a company called Aflexi, with a goal to transform the current state of the Internet to a better one, with CDN (Content Delivery Network). I am holding the position of V.P. of Engineering and.. we're still working on the website, feel free to follow our Twitter here. Catch me in the BarCamp Malaysia (first and ever) as well, there will be a session that I will be presenting CDN to the folks.

Anyway, it is the birthday of Rob (founder/CEO of CustomWare) today, so.. happy birthday mate.

- yc