Skip to main content

Ronald Mai

Blogs from this Author

Modern iOS app development part 2

All .net developers know that LINQ can be used to conveniently extract and process data from arrays, enumerable classes, XML documents, relational databases, and third-party data sources. These concepts are adopted by other programming languages such as Java, Javascript, Ruby etc. var cityWiseSalary = from comp in ListCompany select new { comp.Name, Emp = (from emp in […]

Modern iOS app development part 1

iOS is a great app development platform, yet its UI programming model is so 1990s, the UI library is not so productive compared to the html CSS model. After iOS5, UIAppearance did improve such an outdated model and it allows you to modularize UI themes like the follow code: [[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTintColor:myNavBarColor]; [[UIBarButtonItem […]

Modern Objective-C Language Features

Objective-C was quite verbose and lack of visual clue, however after Clang 3.5, there are quite a few improvements, these new language features allow us to write more clean code: The “new” method [Foo new] is better than [[Foo alloc] init] if you don’t need to use custom init methods. Object Subscripting array[i] dictionary[key] are […]

Facilitating a coding dojo

Introducing coding dojo to a new group could be challenging. I facilitated quite a few dojo sessions, here are the rule of thumbs: We need at least 90 minutes to 2 hours If the audience haven’t tried test driven design before, we need to give them brief  introduction to: red-green-refactor concept 2 roles of pair programming: driver […]

Executable specification on Android and iOS platform

Traditionally, in order to test both Android and iOS apps, we need to: Create a test case document. Translate the test document to automation scripts for Android and iOS. As a result, we need to maintain 1 document and 2 scripts for each user story. But now, there is a less painfulway. All we need is […]

Code Kata Plus

What is Code Kata? Code kata is a concept that proposes to hone programmer’s skill by doing small problems many times trying to improve the code at each iteration. Code Kata Plus? But as a programmer, we are not programming in a vacuum. We use tools, commands, IDE etc. Start paying attention to these things […]

How to stop worrying about broken builds

In traditional CI workflow, if you checked in something and broke the build, you would block the whole team. You might end up checking in less frequently. Or the team need to enforce some kind of check in policy. These do not make any sense to me. CI is supposed to give me rapid feedback, and […]

Sonar vs IntelliJ IDEA

You can use Sonar or IntelliJ IDEA to write better Java code. But both tools have their good and bad. Sonar The Good Macro metrics, e.g. Complexity / method, you can get a overall sense of the code quality of the whole code base CI integration by triggering a build failure, you can’t ignore Sonar’s […]

JIT Learning 1.5

Just in case learning JIC learning is the old fashion way of learning; you take courses, read books, and do exercises then hope you might be able to apply the skills/knowledge you learned someday. Unfortunately, the shelf lives of technologies are getting shorter & shorter. New technologies emerge every week. As a result, people in […]

What’s wrong with our development environment?

It’s very common nowadays to use multiple tools in our development environment, we use: Subversion for version control Sonar for static analysis Selenium for web testing automation Hudson for continuous integration Maven for build management etc.

Point of View is Worth 80 IQ Points Part 1, Simplicity

At Xerox PARC, a company, they had a slogan: “Point of view is worth 80 IQ points.” It was based on a few things from the past, like how smart you had to be in Roman times to multiply two numbers together; Only geniuses did it. We haven’t gotten any smarter, we’ve just changed our […]

Opinionate Review On Gitlab

Author Ronald Mai    GDC  Architect Gitlab is a self hosted git management system, or the poor man’s Github. And this is my opinionated review on it: Differences with Github All projects are system level, you can’t create project under your account. As a developer, you can only create branches in the repository. Issues are not […]