Que és la neutralitat de la xarxa? És un concepte que s'aplica a Internet i resumint molt vol dir que les dades que viatgen per la xarxa han de ser tractades igual. Sense prioritzar el tràfic per alguna raó.
Per que és bona la neutralitat de la xarxa? És bona per que fa que tothom jugui amb les mateixes regles i no uns que juguen millor per que tenen més diners.
Per que és dolenta la neutralitat de la xarxa? És dolenta perque no tot el tràfic té la mateixa urgència en arribar a destí, el tràfic d'una webcam es podria considerar més prioritari que un de P2P.
Qui està a favor de la neutralitat de la xarxa? La majoria de companyies que en fan us, Google, eBay, Amazon, ...
Qui està en contra? Les companyies de telecomunicacions. Aquestes volen cobrar doble, volen cobrar per una connexió de X megabit, i a més a més una altra de X megabit "premium". Es a dir volen un tros del negoci de les companyies tecnològiques, ja que aquestes s'haurien de gastar diners en comprar les connexions "premium". Per exemple Netflix, no només hauria de pagar pels seus "megas" sinó que hauria de pagar més perque fossin "premium" o per competir amb Youtube. Si es permet això una companyia que contracti el "premium" triomfarà més que una que no, i entrarien en una espiral de a veure qui contracta el millor producte. Una companyia que estigués començant no podria arribar gaire lluny, les seves competidores amb "premium" l'enfonsarien.
També caldria veure si per exemple Netflix traspassaria aquest premium sobre la quota que cobra als seus usuaris, o si hauria usuaris A i usuaris B...
Les companyies de telecomunicacions també addueixen el tema de que tràfics diferents haurien de tenir velocitats diferents, aquest punt també discrepo, ja que si tu el que vens són "megas" si l'usuari els paga i omple aquestes de tràfic FTP és el seu problema, si a la companyia de telecomunicacions se li satura la xarxa és per que ha venut masses "megas", és com l'overbooking dels avions, que dimensionin les seves xarxes com cal i no es queixin tant. Oh! Wait! Això costa diners...
A més a més no cal modificar el tema de neutralitat de la xarxa perque ja es poden comprar connexions amb tràfic garantit, també hi ha Akamai que es dedica a la entrega de continguts amb una xarxa pròpia.
Recentment als USA on hi ha més debat sobre això s'han produïtnoticies al respecte que van en bon camí, el cap de la FCC ha decidit classificar a les empreses proveïdores de Internet com si fossin companyies de telèfon i això les obliga no discriminar tràfic.
Aquí a Hispanistan Movistar voldria segmentar Internet segons els seus interessos (a.k.a guanyar més diners) però de moment sembla que la UE la frena. No se si ara que han canviat els buròcrates d'alla lluny (a.k.a Brusel·les) això es torçarà.
He llegit aquest llibre del Ken Follet que és el primer de la "trilogia del Segle".
El llibre narra la vida de diferents famílies i com aquestes sobreviuen als diferents successos històrics de principis del S. XX, concretament entre els anys 1911 i 1924.
Les famílies són:
Família Dewar, diplomàtics americans
Família Fitzherbert, aristòcrates anglesos
Família Williams, miners gal·lesos
Família Von Ullrich, diplomàtics alemanys
Familia Peshkov, treballadors russos
El llibre descriu molt bé la societat d'aquell temps i s'esforça amb vincular els fets històrics i les families. La part anglesa m'ha recordat molt la serie Downton Abbey. Les descripcions que fa és com si estiguessis mirant la sèrie.
També t'adones que s'ha millorat molt des d'aleshores socialment, que ara les condicions no són tan dures com en aquells temps encara que amb la crisi estem retrocedint en el temps, però no arriba ni molt menys a allò. Només observar la descripció la vaga de vídues, on després d'una explosió la companyia minera feia fora de les cases dels treballadors a les vídues ja que no hi havia cap treballador en actiu a la casa (era propietat de la companyia). També les descripcions de les condicions de vida en la Rúsia del Tzar són cor prenedores.
La descripció de la primera guerra mundial també és bastant bona, sense arribar al detall de la batalla, per exemple el Sharpe és més precís i dedica tot un llibre a una batalla. També t'adones del poc valor que donaven a la vida humana i que van morir un munt de gent per l'estupidesa dels dirigents que la van declarar i per la ineptitud d'oficials que es creien superiors i enviaven a la gent a córrer davant de metralladores.
Avui he anat al Circ Raluy que estava instal·lat al Port Vell de Barcelona. He anat acompanyat de la petita que mai havia anat al circ. Hem vist l'espectacle des de primera fila. Hi ha hagut pallassos, noies que feien equilibris, un cowboy, un que feia malabars i finalment quatre que feien acrobàcies. El cert és que ens ho hem passat molt bé i ens ha agradat molt. És curiós que aquest circ és molt antic, del 1911 i les caravanes són d'època, molt boniques i molt decorades. 100% recomanat per petits i grans.
#01/03/2015 23:37 Fotografia Excursions Autor: Alex Canalda
El C# 6 portarà noves formes de fer coses, es modifica la sintaxi del llenguatge afectant a l'estil de codificar de cadascú, a mi particularment aquestes són les que més m'han cridat l'atenció
Interpolació d'strings:
//Abans es feia això:string STRWS = StarWars;
StringBuilder Build = newStringBuilder;
Build.AppendFormat("Ja falta poc per la nova peli de {0}", STRWS);
string Frase = Build.Tostring();
//---- En C# 6 es faràstring Frase = $"Ja falta poc per la nova peli de {STRWS}";
Nou operador nameof: abans es tenia que reflection per obtenir noms de variables, etc... ara amb aquest operador es com si es tingués la reflection ja muntada dins el llenguatge.
Exceptions filtrades, que ja es podia fer llançant exceptions més detallades però bueno...
try
{
thrownewException("Error");
}
catch (Exception ex) if (ex.Message == "ErrorMoltXungo")
{
// Aquest no s'executa.
}
catch (Exception ex) if (ex.Message == "Error")
{
// Aquest sí s'executa
WriteLine("Error");
}
Per obtenir metadades del SQL Server s'han de fer consultes de les taules de sistema. Allí hi ha les descripcions de tota la BBDD. Per exemple per obtenir el nom de les taules:
SELECT name FROM sys.objects WHERE type='u'ORDERBY name
Seguint amb el tema de les stored procedures, per obtenir el nom, tipus, longituds etc... dels paràmetres de les storeds cal fer:
SELECT
SO.name AS [ObjectName],
SO.Type_Desc AS [ObjectType],
P.name AS [ParameterName],
TYPE_NAME(P.user_type_id) AS [ParameterDataType],
P.max_length AS [ParameterMaxBytes],
P.precision AS [Precision],
P.scale AS [Scale],
P.is_output AS [IsOutPutParameter]
FROM sys.objects AS SO
INNERJOIN sys.parameters AS P
ON SO.OBJECT_ID = P.OBJECT_ID
WHERE SO.TYPE ='P'ORDERBY SO.name, P.parameter_id
Amb aquesta informació es poden fer validacions en temps d'execució...
#16/02/2015 15:38 Programació SQLServer Autor: Alex Canalda
En la llibreria que crida a SQL Server que m'he fet falta la crida a Stored Procedures, i estic mirant de com fer-ho. He trobat llocs on fan d'una manera, hi ha per tots els gustos. El que he trobat és una forma un xic arriscada: la que fa servir el tipus "object" de C#. Primer cal veure que és el "boxing/unboxing".
int i = 123;
// La següent linia "boxes" (encapsa) i.object o = i;
Cal observar que encara que sigui un "object" la variable conserva el tipus, i també que ocupa un espai de memòria diferent a la variable que a encapsat. Es a dir, que si "i" modifica el seu valor el "object" no. Igualment un cop des-encapsada si es modifica l'object no es modifica la variable on s'ha assignat el seu valor.
int i = 123; // un valorobject o = i; // encapsatint j = (int)o; // des-encapsat
Cal vigilar molt que quan es el des-encapsat la variable a la que es fa l'assignació ha de ser del mateix tipus que la original, si no es produeix una InvalidCastException.
I els SQL Parameters? Doncs resulta que els SqlParameter tenen un constructor que té els següents paràmetres: Constructor (String, Object). On el "string" és el nom del paràmetre i el "object" és el valor. El constructor dedueix el tipus del paràmetre a partir del tipus de l'objecte encapsat. I ho fa seguint la següent taula:
Tipus de la variable
Tipus a la BBDD
Boolean
Bit
Byte
TinyInt
byte[]
VarBinary (cal vigilar si la longitud de l'array supera la longitud del varbinary)
Char
No suportat
DateTime
DateTime
DateTimeOffset
DateTimeOffset (només a partir de SQL Server 2008 inclòs)
Decimal
Decimal
Double
Float
Single
Real
Guid
UniqueIdentifier
Int16
SmallInt
Int32 (els int normals)
Int
Int64
BigInt
String
NVarChar (cal vigilar si la longitud de l'string supera la longitud del nvarchar)
TimeSpan
Time (només a partir de SQL Server 2008 inclòs)
Aleshores és molt perillós passar un object al constructor del SqlParameter perquè es fàcil despistar-se i que no encaixi amb el tipus de base de dades i com està "boxed" no hi ha una visió del que està passant exactament.
#13/02/2015 13:32 Programació C# SQLServer Autor: Alex Canalda