I finally Code in COBOL…Again

If you happen to be millenials, you may not know COBOL or COmmon Business Oriented Language. COBOL is primarily used in business, finance, and administrative systems, as a compiled English-like computer programming language, never for more bare metal purpose, not until now.

I’ve known COBOL since my childhood and used it extensively for learning and developing apps. After more than 30 years, I’m back to use it in order to program firmware for microcontroller! Yes, you read it right, COBOL is for programming microcontrollers.

Why on earth you want to use COBOL for microcontroller? Well, for starting, I’m getting bored of C and C++. I’ve been using C-like language since I coded professionally, more than 20 years! C, C++, Perl, Java, PHP, C#, and especially using Objective-C for the past 10 years. As it seems I’ll be programming for microcontroller for many years to come, it’s time to use another language, so I won’t be bored to death.

How?

As COBOL supported object-oriented since 2002, it became easier than ever to use it for any use cases.

For this particular use case, I managed to make GnuCOBOL – a free and open-source modern COBOL compiler and runtime environment – to work together with Xtensa’s toolchain to compile COBOL program and target it for ESP8266.

A “hello world” LED blinking code to make LED connected to GPIO 15 to blink, is something like this:

That’s easy!

I have yet to manage it compiled and run for AVR-based microcontroller. But I hope that will change soon.

Why?

I should start with why. For starter, verbosity and English-like syntax of COBOL always fascinate me. With the maker movement and its “promise” to democratize hardware programming, I believe COBOL will be much easier to learn – even for kids – than other language.

With the abundant of now-retired oldtimer COBOL programmers and the more accessible hardware (microcontrollers, single-board computer), I believe they will be back to “hot seat” of programming, spending hours and days in front of their laptop and hardware kit, and eventually fill old age with happiness.

Then imagine, kids learn COBOL accompanied by their parent or grandparent that happens to have COBOL experience in the past, spending time together hacking hardware, man… that’s priceless. And that’s what really drive me to evangelize hardware programming with COBOL.

I will be back with some more details, sample code, working development and runtime environment, and share all resources on my GitHub.

Really exciting!

Apa Gunanya OS di dalam IoT Device?

Perhatian saya “terperangkap” ke dalam sebuah obrolan di Facebook Group IoT Geek Surabaya, yang sedang membahas standards dan protocols seputar Internet of Things (IoT). Saya ikut nimbrung dengan sedikit berpendapat tentang messaging protocol seputar IoT dan sekaligus menyertakan referensi ke deck yang saya publish di sini, untuk memperlihatkan technological possibility around IoT:

 

Ternyata mas Muhammad Hadi Lo sebagai thread-starter dari obrolan di atas tampaknya membaca slide-slide lain di dalam deck itu, terutama tentang beberapa kemungkinan Operating System (OS) seputar IoT. Lalu dia menanyakan sebuah pertanyaan yang menurut saya cukup profound, saya kutip di sini: Continue reading Apa Gunanya OS di dalam IoT Device?

Wearables + Azure Development – Global Azure Bootcamp 2015

I know, I should’ve posted this long time ago. In fact, it’s almost 1 year since the event in which I talked about the stuff. I simply forgot. Well, better late than never.

The event was called Global Azure Bootcamp 2015, a worldwide community-driven event that merely talks about all stuffs related to Azure. The event was held in hundreds of countries in the world, including Bandung and the other 2 cities in Indonesia. All happened at the same time, April 25, 2015.

Beside as one of the organizers for Bandung chapter, I also delivered a talk in it. The talk was about Wearables app development and how the app can work with Azure services. In that talk, I particularly focus on Apple Watch app development that accessing Azure App Services (it’s Azure Mobile Services at that time).

I’ll be back for more in Global Azure Bootcamp 2016, along with the other Microsoft MVPs or other speakers. Stay tune!

Continue reading Wearables + Azure Development – Global Azure Bootcamp 2015

Journey to mbed Platform – Part 1

This post is more to my note than a tutorial or article, so that I can get back to it when trying to replicate the steps. But hopefully you’ll find it useful as well. Keep in mind, I’m using Mac as development machine. If you use Windows or Linux, some of steps may not be compatible.

So, got my first STM32 board, STM32F401 Nucleo development board. Although it has its own development framework, it seems the world has been taken its attention to ARM mbed platform. It seems the community is quite vibrant, a lot of libraries and sample code, and possibly I can code cross platform with another ARM-based board.

12303954_10153665887826855_8036219025334785268_o-2.jpg

To start, I create an account in mbed developer website. Then my attention goes to NUCLEO-F401RE page. Continue reading Journey to mbed Platform – Part 1

Bandung IoT Developer Day

Yay!… H-1 sebelum acara “Bandung IoT Developer Day”! Acara gratis ini akan berformat seminar dan dalam episode pertama ini (sebagai awal dari episode-episode selanjutnya) diusung tema “developing for IoT with web technologies”.

Acara ini sudah diideasi sejak 3 bulan yang lalu, dan mulai dipersiapkan sejak 1 bulan terakhir. Two thumbs-up buat organizer: DycodeEdu sebagai leading education provider yang berfokus pada modern/latest technologies, dan Iot4Bdg sebagai komunitas IoT pertama dan terbesar di Bandung. Organizer telah menyiapkan semuanya dengan cukup baik, dan berhasil “sold out” akhir minggu lalu dengan mengumpulkan 100 peserta dan lebih dari 50 diantaranya sudah ter-confirm akan hadir. Mewakili penyelenggara, saya berterima kasih kepada calon peserta yang sudah daftar. Terima kasih pula buat media partner dan teman-teman lainnya yang telah ikut men-share info tentang acara ini. Semoga besok semuanya lancar dan kita semua bisa mendapatkan manfaat dari acara ini.

Continue reading Bandung IoT Developer Day

Berkenalan Dengan Firebase Command Line Interface (CLI)

Arguably untuk banyak kasus, sebagai developer, biasanya kita bisa bekerja lebih cepat menggunakan keyboard. Itulah kenapa banyak Command Line Interface (CLI) tools disediakan oleh vendor/provider untuk bekerja dengan platform atau SDK mereka. Tanpa terkecuali, Firebase. Sejak Mei 2014, Firebase me-release CLI tools mereka, yang bisa diakses di sini.

Installation

Untuk menginstal Firebase CLI, pastinya kita perlu punya akun Firebase. Belum punya? Tinggal mampir ke sini.

Lalu, kita perlu install Node.js dan npm. Seharusnya dengan menginstall Node.js  npm akan ikut terinstall. Kalau sudah yakin npm terinstall, menginstall Firebase CLI semudah me-run command ini di Terminal/Command Prompt:

By that, command firebase akan terinstal secara global dan bisa diakses dari mana aja via Terminal/Command Prompt.

Continue reading Berkenalan Dengan Firebase Command Line Interface (CLI)

8 Years and Beyond

It’s DyCode’s 8th anniversary.

It’s amazing adventure so far, and I’m so grateful to be part of it. It’s amazing feeling to be able to help enterprises, startups, communities, and personals with the journey of DyCode, and also to make DyCode as the second home for more 50 DyCodes and ex-DyCoders so far.

When I co-founded DyCode with 5 other friends 8 years ago, we never thought that DyCode will be as it is today. At that time, we only thought that DyCode was our answer to software development industry in Indonesia that we’d put more focus on software quality and technologies underlying it, also early adopting technologies to optimise the software value, instead of just delivering mediocre software. We’ve been doing a lot of coding, hack things up, learn and explore new things.

Continue reading 8 Years and Beyond

Visualise Apple Watch App More Realistically

Xcode 6.2 includes iOS 8.2 SDK coming with WatchKit framework and Apple Watch simulator that allows us to develop Apple Watch app. As its function to simulate how the app will look like and accept user input (touch), the Apple Watch simulator only focuses on the screen. Hey, there’s not even a way to simulate Digital Crown input. When you run your app in simulator, you’ll get something like this:

Apple Watch Simulator

That’s it! A rectangle window is all you get.

Continue reading Visualise Apple Watch App More Realistically

Apple Watch App + Azure Mobile Service

In the spirit to embrace wearables industry, especially tomorrow-preorder-opened Apple Watch, I need to share about developing Apple Watch app with WatchKit framework. But the real world app, including Apple Watch app, needs a backend and what I know best is using Microsoft Azure. So, you may wonder how it is possible.

However, for now, to my knowledge, it’s not possible to access backend service, or do network request in general, directly within WatchKit app. We have to do it in big iOS app or so-called parent iOS app of the WatchKit app. Hey, WatchKit app is not even a standalone app, it’s actually an extension of an iOS app. Continue reading Apple Watch App + Azure Mobile Service

Talk: End-to-End Mobile App Development

Yesterday (March 15), I had an exciting opportunity to share technical stuffs with a community that was not in my circle before, called ProCodeCG in their weekly meetup called codeMeetup(). The great man behind it is pak Budi Rahardjo is well-known veteran in startup and IT scene in Indonesia, which happens to be someone that I admire since I knew him when I’m undergraduate student in ITB. Finally met him in person, my first impression was how humble and smart he is. Great person to discuss stuffs, movie, government, Bandung, and of course, coding.

Continue reading Talk: End-to-End Mobile App Development