Brunei Geek Meet #4 (12th September 2014)

Thanks to Tru-Synergy for hosting Brunei Geek Meet #4 and thanks for all those who attended! It was a much better turn out than I expected and hope for more meetups to come!

Open Source Involvements: Experience in working on the OpenMRS CPM open source project

thewheat.github.io/presentation-open-source-involvements

  • People Management is essential
    • there is a need to manage expectations
  • High barriers of entry => great killer of enthusiasm
  • Reproducible developer environments
  • Documentation
  • Project Management: list of things to work on
  • Communicate
  • Code
  • It takes time
    • commit 4 – 8 meetups to see where you can contribute
    • nothing is too small
  • Places to contribute
    • OpenHatch is a non-profit dedicated to matching prospective free software contributors with communities, tools, and education. openhatch.org
    • CodeTriage: receive a different open issue in your inbox every day. codetriage.com

Testing: TDD, BDD, WTH?

thewheat.github.io/presentation-testing-tdd-bdd-wth

  • TDD: Test Driven Development (Red, Green, Refactor)
    1. Write test (watch test fail in test suite: Red)
    2. Write code (to make test pass: Green
    3. Refactor
  • BDD: Behaviour Driven Development
    • Focuses on clear understanding of software behavior from stakeholders
    • Focuses on why code should be created: thinking “from the outside in”
      1. Given [initial context]
      2. when [event occurs]
      3. then [ensure some outcomes]
  • Unit Tests
    • Testing core unit of works
    • Isolated: no interaction with other systems (e.g. databases, web services)
  • Integration Tests
    • Test the integration between 2 different “units” / systems (e.g. your core system and the database / web service)
    • Database interaction: test database or in-memory databses (H2 / SQLite)
  • Functional Tests

Long overdue Brunei Geek Meet: 12th September 2014

(Note: Due to conflicting schedules we had to postpone to 12th September from the initial date of 9th)

As I’ll be in the country this coming week, I’ve scheduled a long over due Brunei Geek Meet and hope to share my experiences working on an Open Source project namely the OpenMRS CPM that is hosted weekly by ThoughtWorks.

We’re happy to have Tru Synergy hosting our meetup and hope to see any interested developers / project managers / tech enthusiasts there! The event is free and you can RSVP here.

Agenda: 7pm – 830pm

  • 7:00 – 7:10: Intro
  • 7:10 – 7:40: Talk #1: Open Source Involvements: Experiences from the Trenches of an Open Source Project
  • 7:40 – 8:10: Talk #2: Testing: TDD BDD WTH?
  • 8:10 – 8:30: Discussions
  • 8:30 onwards: Discussions at the bar! (I mean some coffee place)

Open Source Involvements: Experiences from the Trenches of an Open Source Project

Tim will share his experience working on an OpenMRS module for the pass 8 months and discuss ways to get open source projects off the ground, what to expect and how to contribute to them. We can also discuss community projects for Brunei

Testing: TDD BDD WTH?

Testing is a key part in the development life cycle and can provide assurance that your code is doing what it is meant to do. We’ll explore some basics of testing referencing the OpenMRS module in the first talk

RSVP for the Brunei Geek Meet Tuesday 9th September: 7pm - 830pm

Hope to see you there!

Masjid Mana?

Image

Stumbled upon OpenBrunei’s Map of Mosques in Brunei-Muara and thought I would do a simple geolocation web app. Still needs much work but very usable ATM for those who require it. Don’t have an app icon yet but you can add it to your home screen on iOS, Android and I believe Windows Phone too.

http://bruneigeekmeet.com/masjid

“Intro to Dart” @ Dart Flight School, Brunei 2014

On the 15th of February the Google Developer Group (GDG) Brunei held a Dart Flight School at DST’s Signature Store.

Dart is a new language that learns from Javascript and adds features that are missing in Javascript such as classes and optional static typing. It aims to provide a better developer workflow and efficiency, better performance vs Javascript and can compile to Javascript in order to be deployed anywhere.

I prerecorded an “Intro to Dart” video just in case as with all things, technology can be troublesome at times =)  There is also a 4 hour long Hangouts on Air recording of the entire event

Intro to Dart slide deck

Dart Flight School

The code labs served as a way to learn Dart and it is even deployable on Heroku. We also covered a bit of Angular JS with a work in progress AngularJS intro project on GitHub.

All in all, Dart seems compelling that it is more performant compared to Javascript, can be compiled to Javascript so you reap the development benefit while still maintaining deployability via Javascript, having a single language for both client and server and adding ‘modern’ features added to Javascript make it easier to develop in. Certainly an alternative to Javascript+Node and perhaps something to use in a future project.

Forms and Trust

I was forwarded a link to BELIA BRUNEI BERBAKTI – “Wira Kebajikan” a.k.a. Devoted Bruneian Youth - “Heroes of Welfare” (thanks Brunei Times for the translation in this article) and it seems that they have a good intentions but after all the NSA prism stories and the general rise in privacy awareness, we should be careful about the data we give away.

Part of their sign-up form is shown below and part of the required details are:

  • Gender
  • Full Name
  • Date of Birth
  • Age
  • IC Number
  • IC Colour
  • Address
  • Phone Number

Image

I’m personally not comfortable giving away so much details to an organisation that I know little about. But it also raises the question of why is all this information necessary? Perhaps some transparency as to why all these details are necessary. I under the reason for name, gender and contact details but not the rest.

I also wonder if I’m more averse to this because it is an online form. If it were a physical form, I think I would be more accepting (I possibly have even given up such details before in the past without thinking too much of it). Note to self: when organising future events be transparent with details.

Brunei Geek Meet and RHoK (Random Hacks of Kindness) Brunei

Image

Today marks the first meetup of Brunei Geek Meet (http://www.meetup.com/BruneiGeekMeet/), a meetup where I hope to start fostering the meetup culture that I’ve been experiencing here in Melbourne. We aim to be run by the community for the community. I believe that everybody has something to share and I want Brunei Geek Meet to be a platform for people to contribute to the community as a whole: be it as a learner, as a presenter, as a mentor, as a discussion starter, etc. We are more technology oriented (but are open to geeks of any kind!) and we intend to have talks, code labs, hacknights/days and other events where people can attend, learn and contribute in their own ways.

I am also please to announce that we have a license to hold a RHoK event in Brunei. With the tagline “Hacking for Humanity” RHoK believes in providing a platform for people (particularly technologists) to do social good and make the world a better place.

Image

This is done by hackers working to solve a community problems which can be used in the region of the problem, and even to a bigger audience of the World. When I first attended RHoK, it brought me back to the days I was working on the SMARTER eCVS and I want RHoK Brunei to be of the same nature: for us to see a local need and for technologists to team up to work on a solution.

With that, I would like to extend an invitation to any individuals or organisations that are facing or know of problems that could use a technological solution to get in touch with me and so we can kick off some discussion on how the developer community of Brunei could help. My contact details are tim@thewheatfield.org / @thewheat. I truly hope that you can be a part of RHoK and help contribute to the betterment of the Brunei developer community by providing a real world problem that we, as a community, can get together and help solve.