Me 2.0 – March Summary

By | April 5, 2017

First of three months in Get Noticed contest just passed. Some code were written, and some posts have been too. Let’s wrap this month up quickly and see what I’ve got for the foreseeable future.

If you don’t know what’s Me 2.0 and/or Get Noticed contest is about just head to this post.

Things got done

I’ve covered pretty much all of 3 main areas (entities?) in the application: users, tags and contents, all of them are represented by an actors in hierarchy under their manager actor responsible for creating them and routing messages to them. It was quite easy and they’re exchange some gossip between them already.

I’ve also included persistence for their state using Akka.Persistence, sadly I’ve done it in Azure SQL database, I’ve planned to do that in Azure tables but project for persisting data in this storage is way too outdated to use it safely in my opinion, I’m thinking about contributing to this project in the future or write my own solution for that case after Get Noticed, we’ll see about that. For now it’s Azure SQL, maybe I’ll try to use Document DB, I haven’t made my mind yet.

I’ve my connected entire Actor Model to some basic endpoints done in Nancy FX. This was the tricky part because I wanted to introduce as much possibility to add new modules and extensions as possible without even touching existing code. I’ve achieved it in rather simple way – every entity have a collection of dispachers that are being executed when we instruct API to post, delete or update something. Every dispatcher is simple class that send one or more messages to actors. I have dispatcher responsible for sending messages about subscribing to something, dispatcher responsible for creating something, rating content, updating user data and so on. It’s pretty simple and if I’ve ever create another actor with for example statistics, I’ll just add dispatcher that will send necessary messages to Ninject and use them in any request I’ll se fit.

I’m finishing similiar mechanism for querying for anything. I’m considering usage of SignalR to communicate with actors for getting data from every single actor independently but everything that I’ve got for this case is theory for now. I’m interested in some mechanism where I could send query to hundreds or even thousands of actors and return for example first ten results I’ll get. But for now I’m doing simple querying and’ll probably think about something more sophisticated later.

I’ve chosen and used a bit of js framework called Vue.js. I’ve been using Angular 1.x for some time now and I must tell you few things:

  • Vue have really low entry threshold
  • Vue is easy as hell
  • It’s fun to use and easy to integrate with existing applications
  • There is no need to use complicated templates, long installations with CLI or fightning with NPM…
  • …  but it’s possible to do so.
  • Syntax is so angular-like I’ve been wondering if someone just copy/pasted it 😉
  • While it’s amazing Im still not fond of frontend stuff

I have also a bunch of started and not finished stuff on local git repositories that I’ll finish soon (or not) but thay’re not done so I won’t include them in this summary.

Next month…

I hope in april I’ll do some ugly frontent that’ll work as I intend to, thought I know it won’t be pretty. I’ll need reliable querying so that’ll need to be finished too.

Almost certainly I’ll need some cleanup mechanism that will mark some tags as duplicated and just aggregate result from them together (like content from tags C# and CSharp or JS and JavaScript). That means I’ll need to work on some kind of moderation. In the future I’ll need to expand this functionality further.

I’ll need to add some more interaction between actors on the lowest level like notifying users that have subscribed tag “c#” there is some new stuff or some great reads based on ratingsof other users. Maybe in some cases it’ll be worth to send them an email with new content? I think I could integrate with Microsoft Flow for doing that really easy.

Basically I want to have basic functions till the end of april.

… and beyond

I have going on Akka.NET tutorial now so I’ll probably continue on writing that even after Get Noticed, maybe someone will use it someday. I also want to take a closer look at Service Fabric and compare them a bit.

I want to be things a bit different than year ago in Get Noticed, that’s why I really want to finish this product and do a release of working version, don’t know if It’s possible to finish till the end of may but I’ll try to wrap up some MVP till then.

Problems

I’ve encountered three problems so far.

  • Naming things
  • Having time for anything
  • Sleeping

Even though I prefer clean shave, I have “no-time-for-that-beard” (more like a stubble really). No one told it’ll be easy but… It’s fun and satisfying.