6 posts about
Software Development

Retrospective: 2 years of F5 Works

YEAH !! F5 Works team just moved to new dedicated office ~ :muscle: Here is our new office address, come visit us: Flat T, 1O/F, Everest Industrial Centre, 396 Kwun Tong Road, Kwun Tong 觀塘毅力工業中心 10樓T Google Map Why this post ? Before we made this decision, we also took this chance to evaluate and plan ahead for near future...


Read More

Gotcha using paranoia - a soft delete gem for Ruby on Rails application

Gotcha using paranoia - a soft delete gem for Ruby on Rails application thumbnail

To implement soft delete mechanism in Ruby on Rails, paranoia is the life-saver. Sample Usage After destroying a record, the record is still stored in the database, but it won't be returned in most of the ActiveRecord collection methods. For example, the following method call only returns Product that has not be soft-deleted: Product.all There are use...


Read More

Software Development Quotation Process and Project Proposal

Software Development Quotation Process and Project Proposal thumbnail

Before software consultancy project starts, there are lots of discussion and documentation needed. Among those, project proposal (or say quotation) is the most difficult one to produce. Project proposal is the agreement between vendor (i.e. F5 Works) and clients on software deliverable service deliverable how much does it cost how long does it take other terms and...


Read More

Rant: Quotation Enquiries (a.k.a. Life as a consultant)

Rant: Quotation Enquiries (a.k.a. Life as a consultant) thumbnail

We have been doing software consultancy for ages and project quotation requests are received everyday. However, the following enquiry conversation keeps happening again and again. Life as a consultant These are the two most common enquiry emails we got: how much does it cost to build a website ? how much does it cost to build an apps ? I...


Read More

Google Analytics: Tracking Different User Types With Custom Dimensions

Custom dimensions is a powerful feature that allows you to track values that persist across multiple events or pageviews. When you set the dimension to a value, it is activated and will be attached to any event/pageview that is triggered during its active state. We can specify when it should be deactivated by setting its scope. In...


Read More

No command history in Ruby console

When using Ruby console (either by irb or rails console, it's very handy to access previous commands by up arrow. However the history is broken after upgraded Ruby to v2.3+. Turns out it's a native extension readline that required by v2.3+ Ruby was missing during the installation of Ruby. Here's the quick fix: brew install readline...


Read More