Some time ago I’ve attended a .net developer days 2017 conference. I was quite busy since (traveling, teaching .net, working) that only now I got some time to share some thoughts about it. As a bonus I’m including a short interview I did during the event. I need to state here, just to be clear, I got a free ticket for the conference from the organizers but I’ve paid for workshop by myself. Read More

We developers don’t like documentation. We don’t like to read it, and we even more we don’t like to write it. But sometimes it is worth to read it. Like when you find out that by using datetime in SQL DB you got a milliseconds precision but only if it ends on 0,3,7 (link). That was brought to my attention by Lech Osiński  at Programistok 2017. Lech was describing some WTF experience when dealing with datetime if you don’t read the docs. I had a similar experience this time with .NET.

I was asked why this

returns true. My first impression was WTF, it should not return true. Empty string doesn’t have all characters equal to ‘+’. But a quick check in LINQPad confirmed that it does. So what now? Well we could go to read the docs but who would do that? What we did (as this now become a office problem :]) decompiled the All method and check how it is implemented. So All returns false when it predicate returns false but if for any of the chars it will not be false it will return true. So for an empty string, the predicate will never be executed thus All will return true.

A bit counter-intuitive I would say. Counter-intuitive? Yes – but of course documented. If you got to the docs for All it’s clear that for an empty collection (in this case, an empty string) it will return true.

true if every element of the source sequence passes the test in the specified predicate, or if the sequence is empty; otherwise, false.

So read the documentation and don’t be surprised when something is not working as expected – at least it’s documented.

Photo by: https://unsplash.com/photos/wk833OrQLJE

In the previous post we’ve removed some of the technical debt that could be found in our NetDeveloperPoland Website application. In this one we will remove it even more. We can even maybe reach a B? Let’s see where we’ll end up at the end of this part.

Read More

As you could read in the post about NDepend – the Technical debt feature was I think the best what was new (to me) in NDepend 2017. I’ve decided to use it and write couple of posts how I use this feature to actually reducing it in the NetDevelopersPoland WebSite project.

Read More

If you have ever written an application that’s a bit bigger than a standard Hello World and that will live a litter longer than just for showing it to your significant other – I bet you’ve experience the same. You try to make it clean. You try to make it perfect but in the end it’s not as perfect as you would like it to be.

Read More

Microsoft Cognitive Services & Bot Framework - video

If you prefer to watch that to read and you like Cognitive Services and Bot Framework here’s something for you. Read More

Microsoft Cognitive Services - applications

Even the best technology is not worth much if there are no applications that uses it. The same goes with Microsoft Cognitive Services.

Here is the list of few websites or apps that uses Cognitive Services. Let’s see if this technology is already getting adoption.

Read More

Making procedurally generated endless runner game

 

When we started making Little Creeps – the 2D endless runner game on mobile – we were faced with the problem of creating an algorithm that is going to be the core of the game – creating unique path in realtime so we can play as long as we like without the feeling that we are running around in circle.

Read More

Microsoft Cognitive Services - Search API

The last leg of Microsoft Cognitive Services is Search API. Lets check what we can find in this part of the API that could extend our application with intelligence. Read More

Microsoft Cognitive Services - Knowledge API

Continuing on Microsoft Cognitive API. Today lets find out about Knowledge API. In this category we can find services like: Academic Knowledge, Entity Linking, Knowledge Exploration, QnA maker and Recommendation API. Lets have a closer look at each of them.

Academic Knowledge

This API allows you to search through academic papers and retrieve information from Microsoft Academic Graph. MAG is bing based knowledge database. More can be found at: http://aka.ms/academicgraph.

Entity Linking

With this API we can identify entities in our text and match them with different one that has the same meaning based on context.

Entity Linking example

Knowledge Exploration

Allows interactive search experience. In this category we can find services like: natural language understanding, query auto-completion, evaluation of structured query and attribute histogram.

QnA maker

With this service you can easily convert existing FAQs into knowledge based that allows your users to query with a natural language.

Recommendation API

This API we can use to provide our users with services like product recommendations and frequently bought together option. This might be used as an excellent addition to online shopping experience.

 

Have you already used Microsoft Cognitive Services in your application? If so I would like to know what are you using it for – share your ideas.