1 - 6 of 6 posts
  • NotesHub - The story behind a new note-taking app

    Introduction

    Hello my friend. I may assume that some of you also write blog posts. Then the next question for you, how do you author them, what tool/platform do you use? WordPress, Blogger, Medium, anything else? Since I'm software developer and not always try to find easy and straightforward path, I developed my own simple blogging system where all the blog posts are stored in Git repository as markdown files. During the build process they will be compiled into HTML files to easy serve from CDN. However, in this approach there is one single problem, it may not be the most pleasant way to change or create blog post from VS Code or GitHub website. Luckily, my recently developed tool NotesHub solved this puzzle, and this post is meant to open the curtain behind my new project.

    Birth of the idea

    I started thinking about the idea of my new side project in late Fall 2020. The main driver was the dislike of some core principals of OneNote, at that moment the primary note-taking app for my personal needs. I like everything to be in order, to match styles and it's not an easy task when you deal with such apps like OneNote. When you copy-paste a text from the browser it will preserve all the styles including font colors, font sizes, etc. As a result, you will end-up when all your notes look different. You may see echoing of style preserving also when you look at your notes on mobile device, and see horizontal scroll to appear, where I would only expect vertical scrolling. The second annoying thing for me is that it's too easy to change something, I had several times when I changed the notes by accident and then realized it too late. Don't put me wrong, OneNote is amazing application. It has a lot of strengths like supporting real-time collaboration, writing with stylus and many more, however those benefits are not really important for me, and disadvantages appeared to overweight everything else.

    I started looking for alternatives. Since I'm already familiar with Markdown, it become the first think to come into my mind as format for notes. Markdown solves the problem with styles since it has limited formatting options. For instance, you can't change font face, color, size just with syntax itself, that is exactly what I needed. By searching in App Store, I found GitJournal application which kind of what I was looking for. When I showed it for my wife, she said that it's not good enough to pay for it. My response was: "Ok, challenge accepted, I'll write my own app". That event become the starting point for NotesHub project.

  • Progressive Web Applications - Start Developing Today

    Introduction

    As a developer, by my nature, I'm really eager for code reuse and for different kind of universal approaches.

    When I first heard about Progressive Web Applications I exclaimed: "This is it! That's how application development should look like". Truly cross-platform, one solution for every platform, from mobile to desktop. Fast, offline, responsive, installable and many more.

    Then I decided to build my very first PWA! In this post, I want to share all my findings which accumulate my experience with Progressive Web Applications. Let's the story begin.

    PWA

    I want to start from the definition of what is actually Progressive Web Applications. First of all, PWA is not a programming language and not a framework; it's a set of web standards. For better understanding what it is, read the PWA characteristics below:

    • Discoverable — since PWA just a website, you can discover it on the web using search engines like Google and Bing.

    • Installable — thanks to Web App Manifest for this, you can install a regular website for offline use and pin it's icon to desktop.

    • Re-engageable — even when the PWA is not open you can still receive push notifications, thanks to service workers.

    • Network Independent — the PWA can work offline and on a slow network. This is achieved using service workers, which can cache static assets as well as API calls.

    • Progressive — work for every user, regardless of browser choice because they're built with progressive enhancement as a core tenet. It means if the browser missing some features, try to substitute them with something else.

    • Safe — data delivered over HTTPS protocol, which is a secure channel. It means that you need an SSL certificate for your app, but this is not a problem nowadays. You can get a free certificate with such services as Let's Encrypt.

    • Responsive — thanks to CSS media queries, it's not difficult to create responsive UI, which will look good on different screen sizes from desktop to phones.

    • Linkable — again, since PWA is a website, you can share it with your friends using URL.

    Basically, in a few words, you can transform your website and use as "native" mobile/desktop application with all advantages like offline work, push notifications, standalone mode, etc.

  • My experience with migration to ASP.NET Core 2.0

    I started developing my website in 2012, and it has gone through so many changes. The first version was written in PHP. Then I eventually moved to ASP.NET MVC 3.0. The UI changed a couple of times, and the major version already exceeded number 5.

    The last major iteration was switching from classic .NET Framework to .NET Core 2.0 and ASP.NET Core as well.

    With those changes, you can get many benefits. Some of them you will find on the official introduction page. You can find many articles regarding ASP.NET Core migration like this. However, they don't cover all cases, that's why I decided to share my own experience.

    aspnetcore-migration

  • Secrets auto-rotation in Azure: Part II - AAD certificates

    In the first post of the series regarding secrets auto-rotation, I mentioned AAD certificate as part of a communication process between a client and Key Vault. Now it's time to touch this topic in more details.

    You may need AAD application for different reasons, and Key Vault access is one of them (how it was in the case of the first post).

    NOTE: If you have Azure connected VM you can reach Key Vault using MSI (managed service identity). There are many other use cases where you may need AAD application, and you can't leverage the power of MSI so this post will be useful anyway.

    Certificate-based authentication with AAD application is not the only one option (you can use keys or user credentials), but this method indeed the most practical from my experience.

    Summarizing above, the algorithm of ADD certificate auto-rotation is on the way!

  • Secrets auto-rotation in Azure: Part I - IIS SSL certificates

    Introduction

    With the modern digital world, it's essential to be secure as possible to protect your business and your customers.

    To accomplish this goal, you need to separate secrets for each purpose. If something is compromised, you will need to revoke/rotate only one of many.

    Why do you need to rotate secrets? The answer is straightforward. Short living secrets have the advantage that in the event of a compromise they will work only for a short period until the next rotation.

    From another hand, having short living secrets means that you need to rotate them more often which will cause pain from a secrets management point of view. So you need to automate this process to make your life easier.

    In these series of posts, I want to share some experience in this non-trivial journey!

  • My very first blog post

    Hi everyone, my name is Alex, and this is my first blog post!

    I'm a software developer, and I'm about to share my ideas and thoughts with other people on programming and IT in general. I do a lot of coding in my job as well as in my spare time. My current favorite technologies based on .NET technology stack and JavaScript, I like desktop/web/cloud/mobile development.

    I'm excited to live in this time where everything is developing so quickly that is hard to catch up. There are a lot of things that we need to know to be in focus of IT world. With modern technologies, we have powerful tools such as blogging to share our knowledge, exchange opinions and express our thoughts.

    I hope you will find a lot in the future posts and don't forget to leave a comment. It's just the beginning!