Literary Awards–part 2–design

Part 1:

Part 2:

Part 3:

Part 4:

Part 5:


One of the first problem that I was design. How to make a design that works on mobile and web and desktop ? Nowadays, the standard seems to be a menu on the left , that will be hidden when the mobile is rendering  . Also , this menu has three lines that allows to expand / collapse.

There are several resources at .

I have tested all the resources with Window Resizer from Chrome and I was impressed by I was impressed by .

I have found the  empty starter kit ( ) and I started to modify


There was a learning curve here:

The search –  I did not know how to make the search  that was provided , until I found something that was called “

NbSearchService” – always search for a service …

It was a while until a figured how to add a new page to the existing pages ( and now I copy /paste)

I ended up with a bunch of images ( )and other resources that were not needed


All in all, I think that it is more convenient to choose something simpler and not choose a big framework.

The design was pretty simple: Add links on the right to Nobel prize, Booker prize, others and list the authors / books.

And a search will be convenient to find fast the authors on the main page.

But about the data , next time

The source code is at github:

Literary Awards–part 1–start

Part 1:

Part 2:

Part 3:

Part 4:

Part 5:


I was curious to make a project for web and mobile.

The constraints:

1. database just on local, not on a central repository.

2. All with Javascript( OK, TypeScript).,

3. To work on web , mobile, desktop without changing something


The purpose of the project was to list the Literary awards – Nobel, Booker, others. ( I maintain myself a list of best books at )

You can see the final result at ( It is missing the desktop application – but – can you help me with that  – Electron ):

Site Web:

Google Play :

Amazon :

The source code is at github:


In the next blog posts I will show how I made this application – and problems / features / ideas. .

Chrome extensions in 2018

  1. BehindTheOverlay  –  removes the overlay popups
  2. Export all extensions –  exports the extension to a list like those
  3. Export for Trello – exports in CSV format
  4. FoxClocks – to see the hour around the world           
  5. Image Checker – to see if we should resize the image
  6. JSONView – to have a nice view of hson           
  7. New Tab Page for Trello –  for seeing all task fast
  8. OneTab – instead of Google bookmarks
  9. Project Naptha – to copy text from images
  10. Puppeteer Recorder – record for Chrome
  11. Quick Language Switcher – if some site requires english / french
  12. Text Mode  – to see without ads
  13. Timeline Support –  to have the browsing history on Windows 10
  14. Todoist: To-Do list and Task Manager  – for small tasks
  15. Trello – for adding fast to trello

Latest commits notes from github

For AOP with Roslyn I want to automatically get the latest commits message before doing a new commit.

This was  solved easily using 

The code is  very simple:

public async Task<DateForCommit[]> BetweenLatest2Commits()
var client = new GitHubClient(new ProductHeaderValue("GitBetweenCommits"));
var rep = await client.Repository.Get(Author, RepositoryName);
var relLatest = await client.Repository.Release.GetLatest(rep.Id);
var relAll = await client.Repository.Release.GetAll(rep.Id, new ApiOptions() { PageSize = int.MaxValue - 1 });
var relBeforeLatest = relAll.OrderByDescending(it => it.CreatedAt).Skip(1).FirstOrDefault();

var dateLatest = relLatest.CreatedAt;
var dateBeforeLatest = relBeforeLatest.CreatedAt;

var commits = await client.Repository.Commit.GetAll(rep.Id, ApiOptions.None);
var res = commits
    .Where(it => 
    it.Commit.Author.Date >= dateBeforeLatest
    .Select(it => new DateForCommit()
        Author = it.Commit.Author.Name,
        Message = it.Commit.Message,
        CommitDate = it.Commit.Author.Date.DateTime
return res;

It works also as a .NET Global tool
Install with

dotnet tool install –global dotnet-gcr

run with

dotnet gcr

for example for the arguments are

dotnet gcr ignatandrei AOP_With_Roslyn

NuGet at

Full Code at

Connections strings to config

I have the opportunity to work on some pretty old code . There were many projects , all that had a sort of connection string to the database.  This kind of code were in like > 11 places :

string connectionstring = “Data Source=.\\SqlServer;Initial Catalog=myDB;Integrated Security=SSPI;”;

The task was to modify this in something that could read from a config ( json) file . But more than that, was to verify
1.that is called everywhere – because sometimes it were in methods, other time in a static variable and so on .
2. that the json exists or not ( if not return the default string – but log the fact that are not in the settings)

So – how to monitor that your code is actually hit ? One idea is to make breakpoints. Other is to make a class:

So I came up with this class

public class ConnectionSql
public ConnectionSql(
[CallerMemberName] string memberName = "",
[CallerFilePath] string sourceFilePath = "",
[CallerLineNumber] int sourceLineNumber = 0)

Trace.WriteLine("member name: " + memberName);
Trace.WriteLine("source file path: " + sourceFilePath);
Trace.WriteLine("source line number: " + sourceLineNumber);
//TODO: if need speed, make this static - or strConnection...
public string ConnectionString()
var strConnection = ConfigurationManager.AppSettings["sql"];
if (string.IsNullOrWhiteSpace(strConnection))
Console.WriteLine("not found connection sql string in settings , going to default");
strConnection = ".\\SqlServer;Initial Catalog=myDB;Integrated Security=SSPI;";
return strConnection;




How we call ?

string connectionstring = new ConnectionSql().ConnectionString();


Because of the attributes we can figure by looking at the trace if the code was hit or not and by which line.