Friday, February 22, 2019

Speaking and organizing Azure DevOps Launch Jakarta on February 18, 2019

Hi guys! New year of 2019, and also new speaking engagements Smile
This 18th February 2019, I not just delivered speaking, but also organized the event of Azure DevOps Launch Jakarta. In Indonesia, we have 2 separate same events but in different cities, one in Yogyakarta that came before the Jakarta event.
It is the same, because the theme of the event is the same, initially organized by Microsoft on 2018 on September, including the recorded video sessions: https://channel9.msdn.com/Events/Microsoft-Azure/Azure-DevOps-Launch-2018
The main theme of this event is 75% to 90% technical, and less emphasize on marketing product. Yes, the event is targeted to more for technical and management that have concerns on DevOps.
The Jakarta event is organized by MUGI Jadetabek, chaired by me with the help from the crew members, Leo, Hendra, and others.
Thanks to Microsoft Indonesia, they had provided the venue and also other necessary support such as wifi. Logistic was provided by Microsoft directly, with the help of Microsoft Asia people such as Annie Matthew and Sarah Thiam.
Big thanks to local Microsoft Indonesia and Microsoft!
The event announcement is on MUGI’s meetup.com page: https://www.meetup.com/MIcrosoft-UserGroup-Indonesia-charter-Jadetabek/events/258037308/
Here is the registration link: https://www.loket.com/event/azure-devops-launch-jakarta_D9bU



The speakers were many, thanks to Microsoft especially Ashwani, my MUGI Jadetabek crew, and also special thanks to Riza Marhaban, Singaporean MVP and DevOps-ID with Made Mulia Indrajaya as speakers!
These are the speaking materials:
  1. DevOps at Microsoft (Ashwani)
  2. Adopting DevOps as culture using Azure DevOps and Azure (Eriawan Kusumawardhono, me)
  3. Journey from Monolithic to Modern application using Containers, Serverless and achieve the CI/CD using Azure DevOps (Riza Marhaban)
  4. DevOps monitoring (Leonardo Irawan and Hendra Pratama)
  5. Optimize DevOps in your organizations (Made Mulia)
Here are the pictures:

Starting from me deliver the opening and general overview of DevOps:


And here are the speaking sessions photos!

We have Ashwani:




And me speaking:





Here are the lunch break photos:




Here is Riza Marhaban:





Leo and Hendra, hardcore duo to deliver DevOps monitoring:







And here are Made Mulia's session:







And last but not least, here all of the speakers, MUGI crews, and the audiences had photo session:




Saturday, December 22, 2018

[ADVENT 2018] Current state of F# 4.x tooling and IDE ecosystem on December 2017

Hi my dear blog readers!

First of all, happy holidays! Now I’m back to joining Sergey Tihon’s  F# advent blog 2018 gathering! Smile


My past 2017 advent blog is available here: https://fsharpmonologue.blogspot.com/2017/12/advent-2017-current-state-of-f-4x.html

In this blog entry, I bring you the states of F# news and updates in two major subtopics: the tooling ecosystem, and the community surroundings.

F# state in December 2018


A lot has happened in 2018, particularly the progress that has been made from Microsoft, F# communities, and the whole cool participations on F# github repo.

To increase clarity, let’s start discussing F# tooling ecosystem.

F# tooling ecosystem updates

The F# tooling is basically evolved since 2005 (as research project before integrated in Visual Studio) into these components:

  1. F# Language Specification
  2. F# Compiler
  3. F# Core libraries
  4. F# Compiler Services (since 2013)

Note that although F# Compiler Services derives from F# Compiler, the F# Compiler Services is very important. Because it brings parity with Roslyn as compiler service. It is also a good sample of having the compiler created with the language you want to compile.

Thanks to its flexibility and power, F# Compiler Services can be used as true component, and it is suitable to be used as language services.

Ionide use F# Compiler Services heavily to provide F# support in Visual Studio Code, and it enjoys many features available in Visual Studio.

Now in Visual Studio 2017 from 15.6, these are the noteworthy F# updates:

  1. Versioning model has been changed to decouple from Visual Studio version releases. This brings F# tooling more freedom and flexibility to progress further, although F# tooling is closely related to a VS release, as described in this RFC of F# versioning plan on GitHub. A follow up article by Phillip Carter brings more detail that VS 2017 15.7.x has F# 4.4, and 15.8.x has F# 4.5, like the captured table below. Note: there will be no 4.2, 4.3 version, it will be version 4.5 or later.
  2. Related to previous point, VS 2017 15.7 will have F# 4.5. And this version will be the same version as F# Compiler Service related iteration.
  3. F# supports the same semantic of ValueTuple as Struct tuple (since 15.6). This brings closer compatibility with the .NET class library of ValueTuple in .NET Framework 4.7.
  4. F# supports full file ordering for .NET Core 2.0 or later project (since 15.6)
  5. Realtime multi TFM targeting (a.k.a. multi targeting in .NET team blog, since 15.6). This brings unique experience compared to other language tooling such as C#/VB, because C#/VB doesn’t have this yet!
  6. Go to definition from the member tooltip (since 15.6)
  7. Removal of dependency to Windows 10 SDK (since 15.6). This brings less size and leaner requirement to have F# development.
  8. ..and many more in 15.6! For more detail, please visit this official blog post: https://blogs.msdn.microsoft.com/dotnet/2018/03/06/f-language-and-tools-update-for-visual-studio-2017-version-15-6/

This is the versioning illustration:

image

This is nicely documented as RFC in F# Language Design repo in https://github.com/fsharp/fslang-design/blob/master/tooling/FST-1004-versioning-plan.md

In 15.7, F# tooling keeps updated too. These are the noticeable updates:

  1. New F# template for ASP.NET Core 2.0 project! This is a very amazing progress since 15.5, because now we could create ASP.NET Core using F# Open-mouthed smile
  2. Enabled generating F# AssemblyInfo from properties with the F# compiler in the .NET SDK. This is not trivial but it is closer to C#/VB feature to support common AssemblyInfo infrastructure that common in C#/VB project.

A quick hands-on sample to use F# new ASP.NET Core template is by executing “dotnet new web –lang f#” like this illustration: (I run against .NET Core 3.0 Preview 1)

image

Now let’s see what’s inside this folder:

image

Looking at the content of Program.fs, we now see that we have the same quick start from C# template:

image

This code implies that we use Kestrel by default.

To be maximally applicable to use F# with ASP.NET Core, I recommend to use Visual Studio Code 1.28 with the updated Ionide.

Now, the other wonderful things happened since July 2018 are the updates from communities!

Bonus fun fact of Microsoft F# repo: it uses Azure DevOps since June as the main CIs!

image


F# community tooling update

These are the best updates from community so far:

  1. Paket now supports .NET Core 2.2 and .NET Core 3.0 as one of its TFM support since 5.181.0.
  2. Fable is reaching version 2.1, and it has tons of bug fixes

That’s it folks!!

Happy holiday and Merry Christmas!

Saturday, December 15, 2018

Speaking at DevOps ID event on Shopee, presenting DevOps culture adaptation and quick demo of Azure DevOps

Yes, another speaking opportunities in the last month of 2018! The date was 13th December, 2018.

In this event, I was invited by Hananto, leader of DevOps Indonesia community (also commonly called DevOps-ID). This is the first time I was asked to participate to speak for community beyond or outside my own community!

Therefore, I feel grateful and many thanks to Hananto for this opportunity! Of course, I always welcome for invitations from other community, not just from my own such as MUGI and Lambda Jakarta.

The host, Shopee, has nice arrangements of materials and speakers, not just me. I am glad that I could see one of their engineer presenting the experiences on optimizing internal’s Shopee apps, with basic telemetry and logging.

I bring the topic of having gentle intro on DevOps, not just as concept but also a culture.

It is common in Indonesia that most companies see DevOps as a dedicated team that oversees both Development (Dev) and Operations (Ops), without actually trying to ensure collaborations and interactions between those two. Therefore, frictions are often seen later instead of continuous communication and collaboration.

I also gave quick intros on how easy Azure DevOps to use with Azure using free basic app services, so dev and ops can have the same streamline experience on how basic cycle of DevOps can be simplified but still applicable on both Dev and Ops department.

Here’s the pictorials from the event:




And this is me, delivering the presentation:







And demo time using Azure DevOps project on Azure!




Then we have fun wrapping up and photo session:




Thanks to DevOps ID community and Shopee, of course!

My slide deck is available here:  https://1drv.ms/p/s!Ak-RlH5R7H66hrZEY8kd9mrGkIVobA

Friday, November 30, 2018

Speaking at MUGI Purwokerto meetup event about DevOps on Azure

Hi my fellow bloggers and audiences! It turns out in 2018 I have had many requests to speak more, and I’m grateful!

Compared to last year, this year I have more than two speaking engagements! It is quite surprising to myself, because usually maximum speaking frequency each year is twice, and at least once.

This November, my speaking engagement is now at Purwokerto to provide DevOps awareness. Thanks to Agus Suparno and his crew of MUGI Purwokerto, I had the chance to visit this small city with my wife.

The event was on 24th November 2018, and it was a continuing collaboration between MUGI Jadetabek and MUGI Purwokerto.

Pwt_DevOps_on_Azure

The preparation of the event was quite long, it was prepared since September. This is quite normal, because usually any tech events in Indonesia must be announced at least two months before, to provide the event awareness early so the audiences could come at least 80% of the expected audience number.

The event was held on Universitas Muhammadiah Purwokerto (Muhammadiah University of Purwokerto), courtesy of the lecturers and the MUGI’s representative there.

The agenda is: opening speak by the lead EO (also one of MUGI Purwokerto lead at Universitas Muhammadiah), by major informatics study head of Universitas Muhammadiah, Azure quick intro by Agus Suparno, and myself about having DevOps on Azure.

I was amazed of the audience’s enthusiasm! The number of the audiences were about 88% of projected 180 audiences!

This was the pre-event reregistration:

DSC_0521

And then everyone entered the room (it was a special room for student’s final paper assignment):  

DSC_0525

These are the opening speaks: (left to right: EO lead, the major head, and Agus Suparno)

DSC_0528DSC_0534DSC_0546

And then myself spoke:

DSC_0553DSC_0561

There’s no official definition of what DevOps is, so I deliberately use the most succinct DevOps definition from Microsoft:

image

for more information about DevOps by Microsoft, please visit this link: https://aka.ms/DevOps

In the near end of the event, we had a small quiz/game:

DSC_0563

Event Retrospective

I have to admit, I have to talk about this. When I started my speaking, most of the audiences many students weren’t aware of DevOps at all. So I had to went back to explaining that the SDLC today has been more demanding, in a sense that most theories thought at universities (unfortunately) couldn’t keep up well enough with the industries, especially software engineering industry. I know this quite often because even in Jakarta, not most of us are aware of DevOps, as part of common modern SDLC. I remembered I had asked about this on my previous speaking at DotnetConf Indonesia 2018 and Azure DevOps on Azure Day.

But many universities have been teaching more conceptual thinking of having true OOP, procedural programmings, regardless of what the languages you learns initially for more than 8 years. This is a welcoming sign, as more and more student are becoming polyglots Smile

I was amazed that Universitas Muhammadiah has started to provide this polyglot awareness in its early semester in informatics majors. Usually I know that there are not so many universities provide this mindset, and as far as I know only a small of handful universities: UI, ITB, UGM, and my own former college, iSTTS. So now yes, I am now adding Universitas Muhammadiah on my list of unis that provides conceptual mindset of polyglot. KUDOS to University of Muhammadiah!

Sunday, September 30, 2018

Speaking at dotnetConf Indonesia 2018

HI there, my blog audiences!
After watching full sessions of dotnet Conf on Channel9: https://channel9.msdn.com/Events/dotnetConf/2018
Now we have dotnetConf in Indonesia!
This event is held on 29th September
But to be honest, the dotnetConf Indonesia is not a complete relay, it’s within the same spirit of the dotnetConf itself: celebrating .NET world as we know and use extensively, especially on using .NET Core on your dev machine, cloud, and on mobile/any devices!
Thanks to Dicoding (https://www.dicoding.com) and Buitenzorg Maker Club (Bogor’s IOT community) to co-host and also promote this event, we have gathered around 100+ attendances!
dotnetconf2018_dicoding_poster
So in this event, we focus on .NET ecosystem and also its application, such as Blockchain using Nethereum, an open source implementation of Ethereum using C# and .NET Core.
I speak on having gentle intro on .NET Core 2.1, and currently at version 2.1.4 (and the related SDK version is 2.1.402).
I also have demonstrated how easy to develop and also at the same time have CI for free using Azure DevOps, as long as it’s open source projects Smile
The demo also focus on the fact that we can code in C#, F#, VB.NET on .NET Core!
.NET Core, although it is quite new, it is a true cross platform of .NET. It is not the same as .NET Framework that only runs on Windows.
Although .NET Core has about 80% API compatibility (except of course excluding Windows-specific API such as WPF, Windows Forms, and Workflow), some of the namespaces haven’t been ported yet.
Some namespaces that needs more works are the parity in System.Data, System.Data.Common, and some inconsistent detail on .NET Framework HttpContext and comparable .NET Core HttpContext.
I gave demo and also gentle intro on .NET Core 2.1, but from the feedback on the audiences, I had to give intro on .NET Core first then .NET Core 2.1.
This is not surprising, because most companies in Jakarta that uses .NET don’t know much or even somehow don’t care much about .NET Core.
We have always hoped that this event will bring more awareness that there is .NET Core, a truly cross platform of .NET and it is also performant!
Here’s the pictures from the event:
dotnetconf_eriawan_00
dotnetconf_eriawan_01
dotnetconf_2018_speaker_namecard
I gave the swag of this event:
dotnetconf_eriawan_02
Here’s Fuad giving presentation on DevOps in general:
dotnetconf_fuad_devops_01
And this is some of the speakers including me:
dotnetconf_speakers_01
From left to right: Puja (MVP), me, Marsya (MS Indonesia), and Fadhil (MVP)
Due to the fact that many of the audiences and also developer communities in Jakarta have asked me to provide blog to track .NET Core, I will spin off a new blog that’s specific to .NET Framework and .NET Core interop!
Watch this blog for the announcement Smile