Custom Partition Hard Disk Sizes With MDT

Our company recently refresh notebook spec minimum hard disk space from 256GB to 512GB. Deploying notebook using MDT has become challenging because for the notebook with 256GB we maintain whole drive as C without partition. While for the notebook with 512GB, we partition C to 300GB and the remaining to D.

After Googling for while, I found the answer from several tutorials. This requirement can be simply solved by adding a WMI query into task sequence.

20180710_145207-01

Let’s see how the configuration works!

Continue reading “Custom Partition Hard Disk Sizes With MDT”

A 5,000 Word (AKA 5-photo) Recap of the Image Processing Python Workshop by Women Who Code

Everyone knows about Photoshop but how many knows what goes on behind the scenes? Women Who Code Singapore hosted a 2-part workshop last month at Titansoft, to introduce the basic ins and outs of Image Processing (using computer algorithms to process digital images) using the Python programming language. Part 1 was a class on the theory of image processing, while Part 2’s hands-on workshop gave junior developers a try at picking up a few tricks.

We thought about writing a 500 word recap on the workshop, but decided to go with the other option – what better way to recap a workshop on Image Processing, than with a photo blog post? After all, a picture is worth a thousand words. So cliché but so true. 😉

OLYMPUS DIGITAL CAMERA

Continue reading “A 5,000 Word (AKA 5-photo) Recap of the Image Processing Python Workshop by Women Who Code”

Immersing Ourselves in Agile

After a full month at Titansoft as interns, we have come to learn more about Titansoft’s Agile culture. So, what is Agile software development?

Waterfall v Agile

Agile is often compared to the traditional Waterfall methodology where a linear approach is taken with software development; each stage is generally finished before the next one can begin. On the contrary, Agile methodology emphasizes the rapid delivery of an application in complete functional components, with a high commitment level from the client throughout the project. With Agile, all tasks are “time-boxed” into phases called “sprints”.

In Titansoft, each sprint lasts a week within which a running list of deliverables planned at the start of the sprint is completed. Deliverables are prioritized according to their value as agreed by the stakeholder and product owner. If all planned tasks for the current sprint cannot be completed in time, work is reprioritized and the information is used for future sprint planning.

Continue reading “Immersing Ourselves in Agile”

Automate Dyson Pure Cool Link with Home Assistant and Fibaro Motion Sensor

habridgefibaro26

Has been a while I’m automated my house and office. Recently I’ve bumped into Home-Assistant which blew my mind away!  There are thousands of components available for install. one of it is Dyson fan, which is running on MQTT protocol.

The result was cool, You can now automate it to function accordingly to your lifestyle. E.g. turned it on when you sit on your working desk or turned it off the next minute after you walk away from your desk and etc.

How far can it go? is it limit by your imagination.

Let’s build one!

Continue reading “Automate Dyson Pure Cool Link with Home Assistant and Fibaro Motion Sensor”

Summer Interns 2018!

Bright and early at 9.30am, the 5 of us arrived at Titansoft, ready for our first day of internship. We were welcomed by our friendly HR colleagues, Sky and Jessie, who tapped us in to a quiet office and explained Titansoft’s unique flexi working hours where Titaners get to plan their own work schedule, as long as work gets done!

As interns, we received a brief orientation where we played some ice-breaking games to learn more about each other and Titansoft. For Summer 2018, we have 4 Software Developer (SD) Interns and 1 HR Intern (who says operational role interns are not welcomed in a tech company!)

photo_2018-06-01_14-35-56

Continue reading “Summer Interns 2018!”

A Product Owner’s journey to becoming a Certified Scrum Professional

SCR20146-Seals-Final-CSP-01This article is about what I have submitted to Scrum Alliance while applying for my CSP (Certified Scrum Professional) certificate, and I would like to use this opportunity to share about my Agile learning journey during my years in Titansoft. This has been a very different journey in my life for the past 3 years as it required lots of guts and commitment.

Continue reading “A Product Owner’s journey to becoming a Certified Scrum Professional”

Misuse of Inheritance in Web Controllers

Inheritance is a common feature in OOP languages to specialise classes/types and allows polymorphism. It is easy to reuse the common functionality between classes by moving it to the parent class and use by the child classes. Without being mindful of software design principles, it can lead to increased coupling and responsibilities, making existing code hard to change. We’ll take you through a situation in C# MVC’s controllers and show how it improves the design by refactoring. The class diagram shown illustrates a fictitious online photo stock website.

misuse-inheritance-1 class diagram before refactor

This is a violation of interface segregation principle (ISP) which states that no client should be forced to depend on methods it does not use. In this case, BaseController has multiple methods and through inheritance, all of the child controllers have access to them but only use some of them and does not need some of them. When there’s a change in BaseController’s GetCredit, the child controllers which use it might be affected and should be checked and tested.

Continue reading “Misuse of Inheritance in Web Controllers”