SQL Server connection fails

– IDK: I don’t know
– Y: yes
– N: no

Which version is your SQL Server ?
– I don’t know
– 2016
– 2014
– 2005

Are you using an IP in the conenction string?
– Y
– N

Is the application that need to conenct on the same machine of SQL Server ?
– Y
– N

Are you using a Trusted conenction?
– Y
– N

Are you using “localhost” as server name?
– Y
– N

Do you know which connection string are you using?
– Y
– N

Are the TCP inbound/outboundport allowed for port 1433?
– Y
– N

The Login user in SQL Server is allowed to connect and login?
– Y
– N

+ A001: use “(local)” instead of “localhost”
+ A002: check this: https://support.microsoft.com/en-us/help/328306/potential-causes-of-the-sql-server-does-not-exist-or-access-denied-err
+ A003: use “(local)” or instead of the IP address
+ A004: check this settings in Server/Security/Logins/User/(right click)/Properties/(Status section)
[attach image]


Connection fail to SQL Server after a database restore


Restore SQL Server database X.
Try to conenct using the usual connection string. Conenction fail.

Delete the user in “Security” of SQL Server.
Delete the user from the “Users” of the database.
Create a new user in Server/Securit6y/Logins:
– User name: seelct a user that exists in the machine, ex.: \user
– leave everything unchaged
Create a user in the database in database/Security/Users:
– Login namne: seelct <achine\
– User name: select \
> Yes
< Do you use an IP address in the connection string?

in the database:
– User name: select / using hhe selector
– Login name:
– Default schema:
> No
Check the user defined in the Application Pool of the current web site
> No
> No

MVC API tests – manage unknown error raised by HttpServer

Scenario: integration tests against ASP.Net MVC API.
MVC version 5.2

Create a base class test to manage the repetitive API GET/POST calls like:

protected HttpResponseMessage Execute(HttpMethod method, string url, T data)
url = BASE_URL + url;

HttpRequestMessage request = new HttpRequestMessage(method, url);
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

JsonMediaTypeFormatter formatter = new JsonMediaTypeFormatter();
formatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
if (method == HttpMethod.Post && data != null)
request.Content = new ObjectContent(data, formatter);

using (var server = new HttpServer(GetConfiguration()))
using (var client = new HttpClient(server))
var response = client.SendAsync(request).Result;
return response;


500. Internal server Error.

The server is set like this:
private HttpConfiguration GetConfiguration()
HttpConfiguration configuration = new HttpConfiguration();
//var dependencyResolver = new WindsorDependencyResolver(container);
//configuration.DependencyResolver = dependencyResolver;

// remove all HostAuthenticationFilter due to the error “no OWIN Authentication manager…”
foreach (var filter in configuration.Filters.Where(f => f.Instance is HostAuthenticationFilter).ToList())

return configuration;

mmhh… try to debug:
It enter in the ApiController, get the data from the REpository and it exit from the class with a nice colelction of data… what is wrong ???

Routing is ok, it is actually passing the request to the right controller.
Injection of repositories is ok, it is fetching and returning data.
Log4Net is ok, I’m not calling the “log4net.Config.XmlConfigurator.Configure();” without a proper configuration in app.config.

Adding “configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;”
is absolutely useless for this problem.

What to do now?

I’ll check one of 2 or 3 previous project where I’ve already done this a where I spent 1,2 or 7 days to figure out this ALL THE TIMES fucking problem !

What I think is wrong in Python

datetime.now() vs datetime.today()

datetime.today() returns a datetime WITH the time part.
datetime.now() returns a datetime WITH the time part.
from datetime import datetime
now = datetime.now()
today = datetime.today()

In other languages today is used to return a date time WITHOUT the time part.

datetime.datetime(2017, 6, 24, 21, 11, 27, 374230)
datetime.datetime(2017, 6, 24, 21, 12, 1, 166053)

filter(filter_rule, collection) vs filter(collection, filter_rule)

filter(lambda x: x > 1, []) is Correct.
filter(lambda x: x > 1, []) is Wrong.

I expect to have filter(what, how), that means filter(collection, filter) followinth the “pattern” Object.Action.
I think the form filter(collection, filter_rule) is more intuitive.

%y %m %d is embarassing

Every time I have to parse or format a string to a date I need to read the documentation carefully.

Paypal exchange rate

I recently made some payments with paypal that requires the GBP currency.
I have added the GBP currency to my Paypal account.
I have a debit and a credit card in GBP currency (HSBC) that I use everyday.
I was not able to add these cards to Paypal. The process return the error “This card is not accepted. Please use a different card”.

I noticed that Paypal apply a particular disparaging exchange rate.
I usually use this site, xe.com that is more accurate of Google.
I concede they can use a little different exchabge rate, just enough to not loose money, but these differences seems exagerate to me.

Date Paypal XE.com Google Paypal diff
12 Jan 2017 0.81837 0.85198 8.85 + 3.94 %
10 Jan 2017 0.8196 0.85181 0.85 + 3.78 %

To calculate the percentage difference I used this formula:
Diff % = ((official_rate-paypal_rate) / official_rate) * 100

GIT Merge vs Rebase


When you merge a branch into another you apply both the changes done in the two branches to the final one.
In the picture example there is a merge of the changes in C4 and C5 resulting in C6.
It is a 3 way merging because it involves the common origin commit C3.


When you rebase a branch on another you apply the specific commit of the branch on the one you are.
In the picture example the changes in C5 are reapplied to the commit C4 resulting in C5.


The result of the two operations is the same.
The goal to use Rebasing is to have a cleaner history of the changes, as they appear executed sequentially instead of in parallel.

My 2 cent

Imagine this situation.
You have done 10 changes on a branch called “Create modal dialog for new Order”.
You rebase the commits of this branch on the master branch.
For the commit “Add form validation on save button click” how someone can understand which “save” button you are talking about ?
If the reabase put all the commits under the main branch how can I see the work done for a specific feature/bug ? Detaching the commits from a specific branch seems a loose of information to me.

References: https://git-scm.com/book/en/v2/Git-Branching-Rebasing

Microsoft ASP MVC 5

In MVC 5 Microsoft introduced the Attribute Routing functionality.
With it defining the Route for an Action become immediate and there is the advantage to be more safe when you change a routing, you cannot break previous routing rules.
To enable it you have to call the MapMvcAttributeRoutes() method on the RouteCollection.

Constraints on parameter type become more simple to define.
You can define optional parameters and default values more simply too.

Another feature I use all the time is the RoutePrefix: you can define the “controller” segment on the router only on the Controller definition, making more simple and readable changing the routes on the Actions.

You can continue to restrict the HTTP verbs allowed for an Action using [HttpGet], [HttpPost] and [AcceptVerbs]. This permits to have the same URL route for different Actions; for example you can request for the existence of a file (using HEAD) and to downlod the file (using GET) using the same URL.

[Route("Ping"), AcceptVerbs("Head", "Get")] 
public ActionResult Ping() {     return Content("pong (" + Request.HttpMethod + ")"); 


  1.  https://blogs.msdn.microsoft.com/webdev/2013/10/17/attribute-routing-in-asp-net-mvc-5



Set authentication on mongoDB

By default mongoDB access is public.
This is my note on setting up authentication, it is referred to mongoDB v 3.0.6 on Windows.

The command line parameter to start the service with authentication is:


(I’m sorry for all this space for writing two dash and a word but this shit of WordPress make it impossible in other ways)

From the same server you can connect to a database that is started with –auth but just for set up configuration (in older versions you could do more things).
You can create a user with the command db.createUser(…).
If you had just been connected you will receive an error which say you don’t have authorization.
You MUST change the current database to “admin” (use admin).
Now you can create a user, but just only one!

1) If you create a user without a password you are fucked.
2) If you create a user in the admin database you are fucked.
3) If you create a user without admin roles you are fucked.

Create that user and give it the “userAdmin” (or userAdminAnyDatabase or dbOwner).
After you have correctly created the user you must reconnect with authentication to create more user and in general to manage roles.
In the current session you cannot do nothing else.
You cannot create, update, delete user neither see users (with show users command).

To connect with authentication use the -u, -p and -authenticationDatabase parameters.


mongo localhost:27123 -u <username> -p <password> -authenticationDatabase admin

Reference on mongoDB DOCS



Q. Which permissison and roles are needed for execute show users command?

Indirizzo errato per un pacco postale

Ho comprato sei bicchieri della birra Leffe su eBay.
Sto sempre attento ma stavolta mi è sfuggito di lasciare l’indirizzo proposto da eBay per la spedizione; non ho fatto nessuna modifica all’indirizzo nel momento del pagamento dell’ordine.

E sono stato un fesso!
Perché eBay ha preso un indirizzo che oramai non è più vcalido (era una sede provvisoria dell’azienda per cui lavoro) e che se nonj ho totalmente rimosso ho certamente eliminato come preferenza di spedizione. Ma vi posso assicurare che di “errori” come questo nella piattaforma eBay ce ne sono…

Il venditore ha spedito nel giro di alcuni giorni.
Avevo anche altri pacchi in consegna che ho fatto recapitare (come al solito) a casa di mia madre, nella mia città natale. Dopo alcuni giorni, sono arrivati gli altri due pacchi relativi ad acquisti fatti nello stesso periodo ma non quello dei bicchieri.
Ho chiesto informazioni al venditore che mi ha fornito il codice di spedizione ed ho verificato che ha spedito all’indirizzo sbagliato (non per colpa sua).
Sul sito poste.it c’è il tracciamento di consegne non andate a buon fine dal giorno 07/09 al giorno 14/09. Il giorno 14/09 cerco di contattare “qualcuno” per risolvere il problema, ma ovviamente alle 5 di pomerigigo ai telefoni non risponde nessuno e l’unica cosa che ho potuto fare è usare il modulo “contatti” del sito.
Ho spiegato il problema, fornito il codice di spedizione, il mio cellulare, la mia email ed un indirizzo corretto dove consegnare (nella stessa zona).
Ho anche inserito la mia email nella pagina della tracciatura del pacco per ricevere le notifiche dei cambiamenti.
Il giorno seguente, 15/09, sono andato la mattina presto dove c’è l’ultimo recapito indicato nella tracciatura della spedizione:
Ufficio Postale di Zanardi 32 (Via), 40131 Bologna (BO)
Cercando in internet si trova l’ufficio postale 39 in via Zanardi 28. Nel dubbio ho segnato il numero di telefono. La mattina raggiungo Via Zanardi 32 e scopro che non è un ufficio postale ma bensì un centro di smistamento, il numero chiamato è inesistente e la guardia all’ingresso mi suggerisce di andare all’ufficio postale li vicino in Via Zanardi 28.
All’ufficio postale un impiegato mi fa una ricerca e mi dice che l’ufficio postale in questione non centra nulla.
Non sa darmi altre indicazioni se non il numero di telefono di SDA. Chiamo il numero ma non risponde nessuno. L’impiegato (perché gli chiedo quale sia un modo per sbloccare questa situazione) mi dice anche che la situazione rimane così finche il mittente od il destinatario non fanno qualcosa (e se nessuno fa nulla provano in eterno a consegnare ad un indirizzo errato?). Sono ormali le 9 di mattina e quindi vado a lavorare.
Provo per 2 ore a chiamare SDA ma nulla, adesso ti mettono in attesa ma dopo 3 chiamate da 10/15 minuti di attesa lascio perdere (devo anche lavorare!).
Alla fine chiamo il numero verde delle poste che mi dice di chiamare il numero verde di chiamare il numero verde per i cellulari (c’era anche scritto, ma sto diventando scemo per seguire i loro ter buocratici del cazzo). dopo 2 tentativi vani di capie la giusta sequenza da digitare per parlare con un operatore che tratta il mio caso questo operatore finalmente mi rassicura e mi fa fornire cellulare e indirizzo di consegna valido.
Mi dice che in uno o due giorni il pacco sarà consegnato al nuovo indirizzo.
Sono circa la 11 di mattina. Ok, tutto risolto.
Tanto per curiosità controllo nuovamente la tracciatura del pacco online e nulla è cambiato (ha detto 1/2 giorni!). E dato che sono li chiedo nuovamente il
Problema risolto…
Manco per il cazzo! (si dice così dalle mie parti).
Sono le 9 di sera e sono a casa… controllo la tracciatura del pacco.
Risulta “La spedizione e’ in restituzione al mittente” dalle 15:10 di oggi.
Ma come è possibile se l’operatore qualche ora prima mi aveva detto di aver avviato la procedura di riconsegna al nuovo indirizzo? E il numero di cellulare a cosa gli serve se non mi chiamano?
Comunicazione all’email: neanche mezza.

Mi sento preso per il culo.