I can’t speak for most programmers, but I started my career by taking courses online. That’s right, the courses I learned from my undergraduate degree are too theoretical for anything in the real world, so I took upon myself to learn about web/app development. It didn’t take long as there are very good resources out there on websites like Udemy, Coursera, Pluralsight, edX and more. Pretty soon, I reached the point where all web developers would reach at some point of their career, learning micro-service. It’s all about Docker, container, Kubernetes and orchestration. Feel lost yet? Well I did. Not because all of these terms are overwhelming because the courses that teach these things are pretty reasonably paced, but, as soon as you finish the course, you forget how to do micro-service. I have figured out the reason why.Read More »
Although Build 2020 was a online virtual event, it was a fun and full of great announcement, one of which is Project Reunion. Combined with the first preview of WinUI 3, it became the biggest tech story of the day. As a .NET developer, this is a very good news because it unifies all project types into .NET 5 and modernized the desktop app development story.Read More »
This is a long over due follow-up of my original blog about the programming language, Vader, I’m currently developing. Vader Compiler is implemented in C#, and it’s under active development under this repo. My original goal was to develop it into a mature language with it’s own ecosystem, but given the man power and number of other languages available out there, that goal seems unlikely to reach. This does, however, makes me think of another idea for where Vader can go.Read More »
Yea… Something’s gotten into me, and, somehow, I’m building a programming language and a compiler. Later on, there will also be an IDE, VS Code plugin, and frameworks built arount it.
This one won’t be long, but it’s the start of the long journey that I’m taking(or at least trying to). I will write down what I have learned and thoughts along the way. I have decided to call my programming language ‘Vader’ because my next language will be called Kylo and will finish what this one has started.Read More »
I don’t want to say I told you so, but it’s just too tempting. Yes, I told you so! Not long after I published my article about how and why Microsoft should adopt Android, Microsoft adopted Android. It’s not exactly like the way I described in my article, but it’s a baby step and I will take it as a win. I don’t have inside information. I’m just an old Windows Phone fan who moved on. I moved on so I can see which direction Microsoft is moving on too. Yep, in case it’s still not clear, it’s Android.
Microsoft announced Surface Duo in October 2019. It runs Android, and it has two screens. Let’s talk about it.Read More »
It’s hard for a company of Microsoft’s size to stay relevant, let alone turning itself around. It somehow became the biggest company in the world, and that’s impressive. However, what this article talks about is not how this company is run but a much smaller topic. Giving them full credit of running the company so well does not mean I cannot complain about the little things that drive me crazy. Watching them to become more successful is painful to an old fan like myself. Microsoft use to be the Windows and Office company. Nowadays it’s more successful with Azure and Office365. For an old fan, it’s like seeing your divorced wife selling your engagement ring for something more practical. You can definitely understand it given the circumstances, but it still breaks your heart.Read More »
This article is something I have been cooking up for some time now. I finished most of it a week before my hackathon last weekend, but I had to shift focus to the hackathon as we had a commitment to build a complete software solution for a local non-for-profit organization. Now that I have fully recovered from the busy two weeks of planning and hacking, I here present to you my view on the subject matter.
Microsoft should adopt “Android” and make a mobile device.
Whenever this topic/opinion is brought up, people often have different oppositions. The argument is mostly about that Android is owned by Google and that Microsoft needs to depend on them. This is exactly why I put “Android” in quotes. I don’t exactly mean Android. You can say it’s a click bait, but I mean AOSP, ie. Android Open Source Project. Let’s, for the sake of simplicity, call this imaginary version of Microsoft’s AOSP MOS (Microsoft OS). What are my arguments? Let me explain.Read More »
As a junior programmer who’s desperately trying to grow, I try a lot of things. Things like learning new frameworks, programming paradigms, languages, project management and so on. One thing I tried to do is to lead. I worked with a few teams already from my company, and the level of skill that the tech leads provide to the teams are something I have always envied.Read More »
Refactoring is something every programmer has to do once in a while. You start to write something. You search around to find out how everything works and piece them together in your program. Now that everything works, sort of. You want to start thinking about code maintenance before it gets out of control. Now that you have a proof of concept, you want to refactor it to scale up. We’ve all done it, and it’s not easy if the framework you work with is unfamiliar to you.
Express + Typescript
Pretty much every web developer has worked with ExpressJS some point in their programming life. I have too. But this time it’s a little bit different for me. It’s Typescript. I have never worked with Typescript before, let alone writing a ExpressJS backend in it. So I decided to document down how I did it and how I refactored it to be scalable.Read More »
In the process of building Jagra (My open source enterprise task management system), I have always encountered interesting problems that I need to solve. Such as how to hand the control of signing up a user to the admin, how to securely verify users, how to build a comment system. One of these problems is building a file handler with drag & drop interface.