It has been a long while since my last post, and now instead of a proper post, just a trivial note on the issue I had. Yet it might be the one saving hours for you out there, the hours I wasted yesterday trying so many different combinations just to find out what was trying to do was impossible . So what is impossible? Sending UDP packets (and more generally: just communicating) from a docker…
After a few years of several contending products and tools in the tracing middleware space, it seems the industry has settled on fluentd . I believe this is probably because it has maintained technology-neutrality when it comes to ultimate destination of metrics and logs, i.e. storage/visualisation/search/alerting aspect. The journey had started with Etsy’s statsd back in 2012. It allowed for…
WebAssembly as a specification-first technology, is probably one of the few innovations of the web where the spec is not a retrospective documentation of the technology. WebAssembly community group started in 2015 and with its version 1.0, nowadays it feels like it has crossed from an experimental status into a production-ready first-generation technology - let alone the same also being claimed on…
CacheCow 2.0 Series: Part 1 - CacheCow 2.0 is here - supporting .NET Standard and ASP.NET Core MVC Part 2 - CacheCow.Client 2.0: HTTP Caching for your API Calls Part 3 - CacheCow.Server 2.0: Using it on ASP.NET Core MVC [This post] Part 4 - CacheCow.Server for ASP.NET Web API [Coming Soon] Epilogue: side-learnings from supporting Core [Coming] HTTP Caching on the server In HTTP Caching, the server…
CacheCow 2.0 Series: Part 1 - CacheCow 2.0 is here - supporting .NET Standard and ASP.NET Core MVC Part 2 - CacheCow.Client 2.0 [This post] Part 3 - CacheCow.Server 2.0: Using it on ASP.NET Core MVC Part 4 - CacheCow.Server for ASP.NET Web API [Coming Soon] Epilogue: side-learnings from supporting Core [Coming] State of Client HTTP Caching in .NET Before CacheCow, the only way to use HTTP caching…
CacheCow 2.0 Series: Part 1 - CacheCow 2.0 is here - supporting .NET Standard and ASP.NET Core MVC [This post] Part 2 - CacheCow.Client 2.0: HTTP Caching for your API calls Part 3 - CacheCow.Server 2.0: Using it on ASP.NET Core MVC Part 4 - CacheCow.Server for ASP.NET Web API [Coming Soon] Epilogue: side-learnings from supporting Core [Coming] So, no CacheCore in the end! Yeah. I did announce last…
TLDR; If you need to send large number of events to Azure EventHub from a .NET process or passthru API, consider using psyfon . Over the last two decades, many businesses have transformed themselves and modeled their processes and operations as software (bespoke or customising off-the-shelf products). These systems would turn business processes and transactions into data that can be stored,…
CacheCow is my most popular OSS project which came to being back in 2012. It started its life as part of WebApiContrib but the need for a full-fledged project supporting different storage options soon led me to create CacheCow - which needed both client and server components. With the availability of .NET Core which brings its completely new HTTP pipeline, the question has been when or how…
If you are reading this, you have probably heard of Zipkin. If not, please take my word to leave this post to spend 10 minutes reading up on it - a very worthwhile 10 minutes which will introduce to you one of the best, yet simplest distributed tracing systems. It one word, it tells you where the time to serve requests been most spent helping you to optimise your Microservice architecture. Zipkin,…
If you are consuming a Web API in your server-side code (or .NET client-side app), you are very likely to be using an HttpClient. HttpClient is a very nice and clean implementation that came as part of Web API and replaced its clunky predecessor WebClient (although only in its HTTP functionality, WebClient can do more than just HTTP). HttpClient is usually meant to be used with more than just a…
Did you know what was the most menacing nightmare for a peasant soldier in Medieval wars? Approaching of a knight. Approaching of a knight - a peasant soldier's nightmare [image source ] Famous for gallantry and bravery, armed to the teeth and having many years of training and battle experience, knights were the ultimate war machine for the better part of Medieval times. The likelihood of survival…
So in last couple of days, our .NET community has showed some strong reactions to the announcements in the ASP.NET team stand-up. While Ruby and more recently node community are known to endless dramas on arguably petty issues, it felt that .NET community was also capable of throwing tantrums. For those who are outside .NET community or have not caught up with the news, .NET/ASP.NET team have…
We are certainly at the cusp of a big revolution in the human civilisation - caused by the Information Technology and Machine Intelligence. There are golden moments in the history that have fundamentally changed us: late dark ages for the Astronomy, early renaissance for Physics, 1700-1800s for the Chemistry, late 1800s for the Microbiology, 1950s for the transistors… and the periods get more and…
Interactive DataViz here: http://wiki-rock.azurewebsites.net/top10-album-genres.html Last week I presented a talk in #BuildStuffLT titled “From Power Chords to the Power of Models” which was a study of the Rock Music by the way of Data Mining, Mathematical Modelling and also Machine Learning. It is such a fun subject to explore, especially for me that Rock Music has been one of my passions since I…
I remember when I was a kid, I watched a documentary on how to catch a monkey . Basically you dig a hole in a tree, big enough for a stretched monkey hand to go in but not too big that fisted hand can get out and sit and watch. Source: http://www.tarekcoaching.com/blog/dont-fall-in-the-monkey-trap/ Apart from holes, buttons and levers (things that can be pushed) are concepts very easy for animals…
Azure platform has been there for 6 years now and going from strength to strength. With the release of many different services and options (and sometimes too many services), it is now difficult to think of a technology tool or paradigm which is not “there” - albeit perhaps not exactly in the shape that you had wished for. Having said that, monitoring - even to the admission of some of the product…
In my last blog post , I outlined a few interesting results from a word2wec model trained on half a million news documents. This was pleasantly met with some positive reactions, some of which not necessarily due to the scientific rigour of the report but due to awareness effect of such "populist treatment of the subject" on the community. On the other hand, there were more than some negative…
Seeing is believing. Of course, there is a whole host of Machine Learning techniques available, thanks to the researchers, and to Open Source developers for turning them into libraries. And I am not quite a complete stranger to this field, I have been, on and off, working on Machine Learning over the last 8 years. But, nothing, absolutely nothing for me has ever come close to what blew my mind…
Level [ T2 ] Performance monitoring is an essential part of doing any serious-scale software. Unfortunately in .NET ecosystem, historically first looking for direction and tooling from Microsoft, there has been a real lack of good tooling - for some reason or another effective monitoring has not been a priority for Microsoft although this could be changing now. Healthy growth of .NET Open Source…
Level [ C3 ] REST (REpresentational State Transfer) was designed with the "state" at its heart, literally, standing for the S in the middle of the acronym. TL;DR: Mill is a special type of resource where server's authority purely comes from exposing an algorithm, rather than "defining, exposing and maintaining integrity of a state" . Unlike an RPC style endpoint, it has to adhere to a set of 5…
[Level N ] The world is not perfect. It has given us scientists, authors, artists and politicians - and I have lived enough to know none of them were really perfect. Among these, we have personal heroes, personalities that have made great discoveries, built wonderful things or have lived extraordinary lives. Whether it is Obama, Einstein or George Orwell, they have their deficiencies. I am saying…
Microservices? Is this not the same SOA principles repackaged and sold under different label? Not this time, I will attend this question in another posts. But if you are considering Microservices for your architecture, beware of the cost and availability concerns. In this post we will look at how using containers (such as Docker) can help you improve your cloud utilisation, decrease costs and…
Level [ C3 ] This year I could make it to the QCon London and I felt it might be useful to write up a summary for those who liked to be there but did not make it for any reason. This will also an opportunity to get my head together and summarise a couple of themes, inspired by the conference. Quality of the talks was varied and initially pretty disappointing on the first day but rose to a real…
Level [ C3 ] [ Disclaimer: I am by no means a Scientific Programmer but I am striving to become one ] It is the turn of yet another year and the time is ripe for the last year reviews, predictions for the new year and its resolutions. Last year I made some bold statements and made some radical decisions to start transitioning. I picked up a Mac, learnt some Python and Bash and a year on, I think…
Level [ C3 ] Health Endpoint is a common practice in building APIs. Such an endpoint, unlike other resources of a REST API, instead of achieving a business activity, returns the status of the service and while it can gather and return some data, it is the HTTP status that defines whether the service is "Up or Down". These endpoints commonly go and check a bunch configurations and connectivity with…