“The secured, shared bitcoin wallet” reads the tagline of Copay. You know, that part of the entire marketing strategy of any brand that really gets printed and displayed anywhere to create a strong bond between the message itself and the brand. It also turns out that the “secure” part was not that secure recently as a NPM package vulnerability in v5.0.2-5.1.0 of Copay and BitPay Wallets was discovered few days ago. Still this post is not about Copay or BitPay. Since Copay and BitPay wallets rely on open source software I really aim to depict a timeline of what happened, what can we learn about the current state of open source software and some aspects that all players in the open source community should think about. Continue reading
Few days back I had an interesting discussion with a colleague. We both have studied philosophy earlier in our lives so our discussion went into an interesting direction of mapping programming concepts, more specifically OOP concepts, to philosophical ideas. This discussion was very interesting to me, since when I started to learn programming I did not try to do this at all. It’s strange because it would have been probably easier to learn using analogies to familiar concepts. Most probably, I was thinking at that time that programming and philosophy are totally unrelated. The discussion with my colleague proved me wrong, so I thought about writing a short piece aimed to map classes and objects, one of the pillars of object oriented programming, to philosophical ideas. Continue reading
Single page applications (SPA) have become a standard in the web development world by now, reshaping the way web applications are designed. Traditionally a web browser (client) would send out a GET request to a server and the server would return an HTML page. Nowadays we have SPAs that rely on web APIs for data retrieval and that run like real applications in a browser. That’s why in the .Net ecosystem having .Net Core web APIs with Angular 2+ front end is a common scenario and it might be useful to look into different basic deployment strategies. Before I go any further, I want to point out that this article is aimed for junior developers, developers that are new to the .Net ecosystem or for all those that are on their way to become software developers. Continue reading
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
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 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
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
Azure automation is, in my opinion, one of the heavily underrated offerings in the Microsoft Azure platform. During my time at Microsoft I had the opportunity to work with some great partners on Azure automation projects and also talk about it at the Microsoft Partner Days in Munich. So I thought it might be worth writing a few words about it on my blog and move away from the .NET Core topic. A huge challenge is to keep this as short as possible.
Microsoft Azure Automation provides a way for users to automate the manual, long-running, error-prone, and frequently repeated tasks that are commonly performed in a cloud and enterprise environment. It saves time and increases the reliability of regular administrative tasks and even schedules them to be automatically performed at regular intervals. You can automate processes using runbooks or automate configuration management using Desired State Configuration. I will not give the entire “Intro” talk here :). If you are not familiar at all with this topic, you may check the official Microsoft getting started guide. Continue reading
Few days ago I blogged about .NET Standard, .NET Core and .NET framework and I think it might be a goo idea to write something about .NET Core today. .NET Core is an open source, cross platform development framework in the .NET world. What I would like to do today is to show how to deploy a .NET Core console application using command line. This is nothing complicated or particularly useful, but it will help to get a better understanding on what “cross platform” means. I will use Visual Studio Code and the integrated terminal to run the needed commands. Continue reading
When I talk to partners or during my speeches at conferences I almost always mention the fact that there is a big market for Office add-ins and that developers should clearly exploit it. Today I stumbled upon a great Office add-in called Curriculum Vitae Builder, developed by Egomnia. And this add-in is really great, especially for graduates or for professionals that seek a new professional challenge. With a lot of different versions of résumé it is often difficult to put together a very strong and appealing curriculum vitae. However, with Curriculum Vitae Builder you surely won’t forget any important information about yourself. Continue reading