Category Archives: Op-Ed

Personal, subjective and biased opinions

Thoughts about Cambridge Analytica

Published by:

There’s a huge scandal these days around Cambridge Analytica since The New York Times and The Observer reported on the company’s use of personal information acquired by an external researcher who claimed to be collecting it for academic purposes. In response, Facebook banned Cambridge Analytica from advertising on its platform. Reports also say that Cambridge Analytica CA worked for Donald Trump’s presidential campaign. That’s just to draw the context. As a last introduction note, I won’t make any comment on politics or legal aspects of this scandal! Continue reading

Azure AD B2C vs Firebase

Published by:

Coming from the Microsoft world it was natural for me to immediately jump to Azure AD B2C when I needed to implement authentication in an Angular 5 application. However, things weren’t so rosy, so I had to look for alternatives after an entire day playing around with Azure AD B2C and so I met Google Firebase. And after more days of playing around and comparing pros and cons, I thought it might be useful for others to share some thoughts on these two products.

What was everything about?

I am currently working on a personal project that might be some day a consumer app. Since I like Angular a lot, it was a natural choice for me to use it for my front end work. The larger picture involves also a .Net Core API and all needed application layers. When I started to work on the front end, one of the first things I wanted to do is to implement authentication. Here it’s important to note that my project will hopefully be some day a consumer app. So that’s why I was looking at Azure AD B2C and not the (let’s say) normal Azure AD. Continue reading

Do you want to become a software developer? Here’s how!

Published by:

So, do you want to become a software developer and you didn’t graduate computer science? Do you feel that “your time has passed” and you still think that there’s a lot more to achieve? Well, this post is for you, so you might want to keep on reading! If you ask yourself if this is even possible, well…. yes it is! I’ve studied philosophy and theology and still I’m working for almost ten years in the IT industry, I’m playing around with code for around 2 years and now I’m a software developer. Is it easy? Not at all! Or it depends on what “easy” means for you. But it’s achievable and here are a few guidelines on how you can become a software developer.  Continue reading

SQL design patterns for multi tenant applications

Published by:

Cloud computing is now growing at a very fast pace for over 4 years now. Strictly related to the increased adoption of cloud technologies there is also an increasing interest in software as a service, as companies of all sizes around the world realized the benefits of paying a subscription for the software they use. In these perspective, software development companies and independent developers around the world build now multi tenant applications. However, multi tenant applications are a tricky from the planning phase, since customer data needs to be strictly isolated, the application itself must be highly available and easily scalable. And, as I also briefly mentioned in my previous article, everything starts from the database. That;s why I would like to briefly point out the main SQL design patterns for multi tenant applications.

In practical examples I will refer mostly to Azure SQL databases and the .NET ecosystem, although the main design patterns are still valid for any relational databases you might want to use. A lot of these aspects are described in different Microsoft Azure documentation articles. My goal is to summarize information that is otherwise dissipated in different sources. Continue reading

Databases for modern web applications

Published by:

Databases are one of the first things to think about when developing new software, especially web applications. I know that at a first sight, this topic seems to be a little odd: you simply use a relational database like SQL or MySQL ant that’s it, right? Well, I think that modern web applications are a little bit more complex and it might be worth considering other options and that’s why I would like to tackle this topic.

Traditional relational databases are clearly a goo fit for static applications. By static I think about applications that don’t change very often or that don’t require a huge amount of read and write operations. For example, if I would like to build my own blog at a certain time, I would surely choose SQL. And if I think about the data model for a blog post, it could be designed as something like this: Continue reading

It’s not only about code that works

Published by:

It’s been a month since I became a full time software developer at Amdaris and I thought it might be fun to write down some things I’ve learned during this exciting 30 days. This might be useful for people that are in the same position I was during my last year: having some dev knowledge, but finding it difficult to make a bold steps towards a full time developer role. My insights won’t be deeply technical right now and I will definitely avoid very specific .NET topics.

I didn’t know what to expect at the beginning, but for now every single minute was worth this change, because I really had a lot to learn. My first big challenge was getting fully familiar wit Git, branches, commits, pull requests, user stories and so on. These concepts were not necessarily new to me, but I really didn’t know exactly how they are put in practice during day to day activities. Discovering how developers collaborate using specific tools was so great, that I started to work with repositories also for my “personal” projects, since I can clone a specific repository to whichever machine I am working at a specific moment and I can continue to work even if I’m not always on the same computer. If you’re wondering, I am using Visual Studio Team Services to do that.  Continue reading

Thoughts about the future of technology

Published by:

Technology evolves on a very fast pace and it’s often difficult to predict the future of technology or some specific directions that technological development will head to. Still, last week there was an event that unarguably defines some strategic directions that technology development will surely emphasize. So last week, AlphaZero won a 100 games chess marathon against Stockfish.  Not only did AlphaZero win, but it didn’t lose a game at all! It won 28 games and drew 72. The spectacular aspect from a tech perspective is that AlphaZero learned the game in only 4 hours. Continue reading

.NET Standard, .NET Core and .NET Framework demystified

Published by:

Reading Twitter and several discussion threads on GitHub  or Reddit, I came to the conclusion that there still is a lot of confusion when discussing .NET Standard, .NET Core and .NET Framework. The truth is, .NET Core and .NET Standard are still new and Microsoft also keeps making some changes when releasing different versions that add to the confusion. That’s why I will try to demystify these different components of the .NET world. Before getting into it, I would like to underline that this is my understanding and therefore I might be wrong at some points, but overall I think the overall picture is still helpful for clearing some of the confusion out there.  Continue reading

Some thoughts on leaving Microsoft and the future of this blog

Published by:

As I already announced on LinkedIn, I decided to leave Microsoft starting November 24th. Strangely enough, I didn’t leave Microsoft because I didn’t enjoy the company anymore, but because I stumbled upon a new challenge that I really couldn’t refuse. More than 2 years ago I’ve decided to leave Office 365 behind and to focus more on Cloud Application Development. The solid foundation I had in cloud identity topics helped me a lot, because if you develop an application you pretty sure will also need authentication and authorization and that’s where Azure AD comes in handy. Now, I got the chance to totally shift focus and become a “real” software developer. That’s why I really couldn’t refuse this challenge and am glad to have joined AmdarisContinue reading

#Build 2017 – some exciting things

Published by:

I just finished watching the #Build 2017 keynote and I am really excited by all the new things that were announced in this occasion. There were so many cool things that at the end I started to forget those mentioned at the beginning. That’s why I thought of writing a //build 2017 keynote summary, to serve more for me remembering all the things that I need to keep up with during the next year.

One of the coolest thing is the new Azure Cosmos DB offering. Azure Cosmos DB is Microsoft’s globally distributed, multi-model database. With the click of a button, Azure Cosmos DB enables you to elastically and independently scale throughput and storage across any number of Azure’s geographic regions. It offers throughput, latency, availability, and consistency guarantees with comprehensive service level agreements (SLAs), something no other database service can offer. What this means is that you have a database where you can store documents, tables, graph data and many more in the same place and use really any DB API to access all the data in nearly real time.

Just to stay in the same database area, the announcement of Azure database for MySql was also a nice surprise. Basically, you get a MySql database as a service, without the need to take care of patching infrastructures and so on.

Further, Microsoft announced at //build 2017 the new Azure IoT Edge, a technology that’s meant to extend “the intelligence — and other benefits — of cloud computing to edge devices.” It’s a cross-platform run time that runs on both Windows and Linux, and it will work on devices that are smaller than a Raspberry Pi. This will solve a lot of problems in IoT scenarios with really small devices, since this new features enables a more straight forward communication between Azure and devices.

Next, the announcement of the new Azure Portal App for iOs and Android, together with the built in full featured Bash shell in the Azure Portal was also a very intriguing announcement. First, the mobile app is not available on Windows 10 mobile devices (I know, there are few of them out there, but still….) and second, the first integrated shell is a Bash shell, not PowerShell (PowerShell will come “some time” in the future). On the other side, this underlines once more the heavy open source approach that Microsoft is showing during last years.

The remote debugging of production web apps using Visual Studio 2017 without any downtime was also a great thing to watch.

Let’s go to the AI part. I was already fairly familiar with Microsoft Cognitive Services, but the announcement of the custom vision API was really exciting. This enables developers to easily train their own vision machine learning models, providing the necessary training data. This really starts to look more and more like democratized AI, which should enable developers to build more and more intelligent applications.

The PowerPoint Translator was also a fairly cool demo, but for me it was not necessarily something new since exactly the same thing was showcased two years ago at the Build conference, but back then it was a Skype extension, called Skype translator. These two are fairly similar.

A final observation: almost all demos were made from MacOS laptops and iPhones.

Watching the //Build 2017 keynote was a very good time investment. I still dream to attend this conference in person at some time 🙂