El Generador és una aplicació Winforms (amb els seus pros i contres), però no fa servir BBDDs per guardar la seva informació. Fa servir fitxers XML. En projectes grans que hi ha diferents entorns Desenvolupament - Test - Producció el que faig és mantenir un fitxer per cada entorn. Quan la versió del software canvia d'entorn el que faig és renombrar el fitxer a l'entorn que toca i actualitzar la cadena de connexió. El propi generador de codi té el botó de "verificar esquema" que informa dels canvis necessaris per que la nova versió sigui compatible amb la BBDD, és molt útil per detectar els camps que s'han afegit o modificat a les taules en un evolutiu. D'aquesta forma es garanteix que les stored procedures funcionin bé.
Al no tenir BBDD el generador el que fa és carregar el fitxers XML a objectes, aquests objectes es posen com a DataSource de controls BindingSource. Els controls BindingSource al seu temps permeten lligar-se als controls del formulari i mostrar les dades fent servir la propietat DataBinding del control.
La classe principal que guarda tota la informació del projecte és la clsGestorTaules.
publicclass clsGestorTaules
{
/// <summary>/// Taules que es gestionen amb el generador/// </summary>publicList<clsTaula> Taules { get; set; }
/// <summary>/// Fitxer del que s'ha fet Load, es fa servir en el save/// </summary>publicstring FitxerCarregat { get; set; }
/// <summary>/// Carpeta del projecte/// </summary>publicstring ProjectFolder { get; set; }
/// <summary>/// Subcarpeta dins del projecte on es guarden/// les clases de dades (on està la clsDades)/// </summary>publicstring DataFolder { get; set; }
/// <summary>/// En el cas que el projecte tingui formularis en/// HTML, carpeta on es guarden/// </summary>publicstring HTMLFolder { get; set; }
/// <summary>/// Carpeta on es guarden els Javascripts/// </summary>publicstring JSFolder { get; set; }
/// <summary>/// Ruta del fitxer master/// </summary>publicstring MasterFile { get; set; }
/// <summary>/// Si no es generen els scripts contra BBDD, fitxer/// on es guarden els scripts./// </summary>publicstring ScriptFile { get; set; }
/// <summary>/// Carpeta on estan els fitxers XML del generador/// </summary>publicstring CarpetaFitxers { get; set; }
/// <summary>/// NameSpace de l'aplicació que es genera/// </summary>publicstring NameSpace { get; set; }
/// <summary>/// Cadena de connexió a BBDD/// </summary>publicstring ConnString { get; set; }
public clsGestorTaules()
{
Taules = newList<clsTaula>();
}
[.. Funcions de load/save..]
}
Aquestes propietats es corresponen als controls de la capçalera del Generador.
El Namespace és el que fa servir l'aplicació que s'està desenvolupant. El valor es fa servir quan es generen les classes derivades, també quan es generen pantalles.
Els radiobuttons destí indica si el SQL que genera el programa va directament a la BBDD o bé a un fitxer d'script. Això és útil quan no es té accés a l'entorn on s'ha de desplegar l'aplicació (per exemple producció) i s'han d'enviar els fitxers per que algú altra els executi.
Carpeta del projecte és la carpeta on està l'aplicació que s'està desenvolupant. Ha de tenir les carpetes de "dades", js i HTML. La carpeta dades és on està la clsDades i on es deixen els fitxers de les classes derivades. A la carpeta JS es deixen els javascripts i en la HTML les pantalles. El valor de MasterFile es fa servir per projectes web que facin servir una master page. És útil ja que permet posar tots els scripts de l'aplicació junts i comuns per tota l'aplicació, es fa servir quan es generen pantalles.
El desplegable de taules inicialment està buit, s'omple amb el botó de "Carregar taules". Amb aquest botó es carreguen les taules de la BBDD, és el pas previ a generar una taula. Generar una taula vol dir crear un objecte taula, i afegir-lo a la llista de taules del gestor. A aquest objecte taula se li afegeix tota la informació relativa a camps (tipus, longituds,...) i indexos. Un cop està generada la taula es pot començar a treballar amb els camps, però això ho veurem en un altra post.
Així mateix el botó "Generar totes les Storeds" serveix tal com indica el seu nom per actualitzar les storeds de totes les taules, es generen tots els GET, INS, UPD, ... de totes les taules.
#02/04/2014 14:30 Programació C# Autor: Alex Canalda
Amb les "solicitudes de gasto", quin període hi ha per presentar les "solicitudes de gasto" perque computin per l'any que toca?
El plazo límite para que los gestores del Gobierno central presentaran solicitudes de gasto con cargo al presupuesto el año pasado se fijó para el 25 de noviembre, en comparación con el del 3 de diciembre en 2012, de acuerdo con las órdenes ministeriales publicadas en el Boletín Oficial. En 2011, el corte fue el 30 de diciembre. Así que a menos días, menos gasto.
D'aqui un temps només es podran presentar els 29 de febrer, de 9 a 10 del matí, llavors tindrem 0% de deficit... Mentre ningú li expliqui a la Merkel viurem feliços.
Doncs ja m'he acabat un altra llibre de nauetes, pew-pew!
Aquest segueix tot just on ho deixa l'anterior. [Spoilers!] El Sindics (dolents molt dolents) han descobert com manipular la Hypernet per deixar només una ruta cap a casa. I la flota de naus de l'Aliança ha de seguir aquest camí. Els Sindics ho fan per parar-li trampes al llarg del camí de tornada a casa (Varandal). Però en Jack Geary, que és un bo molt bo i en sap un munt, no cau a cap parany. També passa que els Sindics són molt llestos i no deixen rastres legals que els pugui incriminar a cap trampa d'aquestes que li han parat. Un cop arriba a Varandal, els extraterrestres que acompanyen a la flota volen anar a la vella Terra, no es sap perquè. Això es veu al final, els E.T. resulta que volen enterrar a un astronauta que va morir fa molt temps, quan la humanitat estava experimentant amb els salts en l'hiperespai i els va arribar.
Space opera en estat pur, grans discursos, dilemes morals, i... pew-pew! Que més es pot demanar! A mi m'agradat.
Hi ha dues formes de construir software. La primera és fer-ho tan senzill que no hi ha deficiències obvies. La segona és fer-ho tan complexe que no hi ha deficiències obvies. El primer mètode és el més difícil.
Quan ja vaig fer la primera versió de generador de classes ràpidament es va quedar curta. Tenia que fer més coses, suportar més casos, conforme han passat projectes fent servir el generador s'han arreglat més bugs... En l'estat actual ja m'ajuda a trobar errors en el disseny, encara que podria ser més perfecte detectant coses com, que en un ASHX no hi ha el mètode corresponent a un autocomplete que s'ha definit en la part client (però això ja és molt pijo).
El que sí ha empitjorat és l'usabilitat, ara fa tantes coses que l'interface ha quedat plagat d'opcions. Tinc pendent de modificar-lo per fer un interface més amigable, separat en varies finestres, com si fos un assistent, enlloc de tot apretat com està ara. Però clar, amb el tema dels interfaces en HighDPI encara estic pensant com fer-ho.
Ara doncs començaré a desgranar el que hi ha fet, el com funciona ja ho he explicat, ara cal explicar com es generen les coses automàticament.
Avui he vist el final de la quinta temporada de Breaking Bad. El cert és que aquesta 5 temporada és un gran final per la serie. Tot just començar ja t'ensenyen el final, encara que no entens que està fent el Walt.
Spoilers: aquesta és la temporada que tot va cap a malament. Pitjor i pitjor, el món d'en Walt cau peça a peça. Tot comença quan es vol retirar del negoci definitivament, el seu cunyat Hank casualment troba una pista que li obre els ulls, a partir d'aquí tot cap abaix. Liquida a en Mike (el yayo que era el segurata d'en Gus Fringe), i segueix caient. Al final el clan xungo que els feia de tapadora amb una empresa de desinsectació i els proporcionava un lloc on cuinar es fa càrrec del negoci. Maten a en Hank, el cunyat, segresten al Pinkman i l'obliguen a cuinar i amenacen a la dóna del Walt. En Walt decideix fugar-se amb l'advocat, amb l'especialista que fa desaparèixer gent (sense matar-los). Al cap d'uns mesos en Walt torna, s'acomiada de la seva dóna i la seva filla, aconsegueix que els seus amics rics que l'han repudiat li facin un donatiu al seu fill dient-li que no és diners de la droga, liquida a la dóna borde que era la proveïdora d'un ingredient donant-li verí, i al clan xungo els ametralla amb un dels seus invents. Allibera a en Pinkman i ell mor ferit per una bala rebotada (total amb el cancer altra cop tampoc li queda gaire temps).
Definitivament una molt bona serie, amb final coherent.
Està ubicat a Terrassa, en les antigues instal·lacions del Vapor Aymerich, Amat i Jover, que fou una fàbrica tèxtil de principis de segle XX. És molt gran i només ens ha donat temps de visitar les exposicions de l'energia, més o menys la meitat del museu. També hem pogut veure una representació teatralitzada de les condicions de treball d'aquells temps, 12h/dia de dilluns a dissabte, soroll infernal, sous baixos, sense assegurança de res, accidents, i si no treballes al carrer. No és molt agradable veure que es vol retornar a això. Pel que fa al museu està molt bé, i bé de preu, els nens menors de 8 anys no paguen, i si són del Club Super3 tampoc i amb la targeta de visita dels museus de la tècnica hi ha descompte, un matí entretingut per pocs diners. Recomanable!
Al final del segle XIX, tres industrials egarencs, els senyors Josep Aymerich, Pau Amat i Francesc Jover, es van associar creant l'empresa Aymerich, Amat i Jover, per dedicar-se a la fabricació de teixits de llana. Com era de costum de l'època, al principi es van instal·lar en unes naus de lloguer, en un dels vapors existents a la ciutat. Cap als anys 1905-1906 tots tres industrials decideixen construir el seu propi vapor. Un dels socis, el senyor Pau Amat, va demanar als seus dos companys d'empresa que l'immoble a construir fos una societat separada jurídicament, i a tots els efectes, de la companyia tèxtil. Així doncs van formar una Societat Anònima que seria la propietària del local.
Construcció Sobre terrenys que havien estat hortes, els industrials Fransesc Jover, Pau Amat i Josep Aymerich van fer aixecar un edifici per la seva indústria.
La construcció va ser dirigida per l'arquitecte Lluís Muncunill i l'execució va anar a càrrec dels mestres d'obres Cobelles i Balta. Muncunill va aconseguir fer d'un edifici funcional i productiu. La fàbrica era alhora un edifici funcional i un edifici bonic. Els treballs es van realitzar entre 1907 i 1908 i van donar feina ordinàriament a uns 200 operaris. Mentre va durar l'obra, i en contra del que era usual a l'època, no va haver-hi cap accident. En la construcció de l'edifici van emparar-se 31.000 quintars de ciment de Sant Joan de les Abadesses, 37.000 quintars de Vallirana, 240.000 rajoles fines i 2.000.000 entre toves i altres rajoles.
L'edifici consta d'una gran nau de producció que té annex un edifici de tres cossos destinat a allotjar la secció energètica i motriu, un pati i dependències d'oficines que fan façana amb el carrer.
La nau de producció és un espai extraordinàriament uniforme. La sustentació de la cobertades realitza mitjançant 300 pilars de ferro colat fets als tallers de la Nova Vulcano de La Barceloneta. Es calcula que el ferro emprat en l'edifici pesa uns 340.000 kg. La sala està coberta amb arcs i voltes de maó tibades amb ferro. Les voltes es combinen amb claraboies adoptant el sistema de "dents de serra". La nau no té finestres, la il·luminació zenital s'aconsegueix amb les àmplies claraboies. Les voltes de la coberta són extraordinàriament agosarades i estètiques amb materials moderns (ferro colat) i materials econòmics (rajoles i maons), Muncunill va aconseguir una extraordinària combinació de funcionalitat i estètica la sala de màquines, de gran sobrietat, està construïda amb maons i coberta amb voltes. La seva ubicació li permet distribuir racionalment l'energia al conjunt de la nau.
Espai tèxtil Dins del vapor Aymerich, Amat i Jover es realitzaven tots els procesos tèxtils: es filava, es teixia, es tenyia i s'acabava la llana. Dins les naus tèxtils s'organitzava la més diversa maquinària per facilitar els diferents processos. El soroll que es produïa a les naus tèxtils era esfereïdor i els obrers arribaven a comunicar-se pràcticament per signes. En el tèxtil treballaven homes i dones i la presència femenina era majoritàriament en algunes seccions com la filatura. Joves de curta edat (quasi nens) també treballaven. Segons els períodes, a la fàbrica podien arribar a concentrar-se uns quants centenars d'obrers. En èpoques de gran demanda, la fàbrica podia arribar a treballar dia i nit i els torns de treballadors se succeïen contínuament. D'aquesta manera s'optimitzava el rendiment de les calderes i de la màquina de vapor. Cap al 1913 la jornada d'un obrer solia ser d'unes 12 hores diàries. Les condicions de treball eren dures: jornades llargues, molta humitat, aire viciat pel polsim i les volves de fibra, soroll esgarrifós, accidents,... Els salaris eren baixos i feien que els obrers haguessin de portar una vida molt austera. Les dones acostumaven a cobrar menys, ja que el seu treball era menys valorat.
Aquest llibre segueix just on acaba l'anterior. Es a dir, el l'Almirall Jack Geary i la seva flota està dins de l'espai controlat pels aliens. Aquest aliens són una raça molt misteriosa per que fan tots els esforços possibles per donar qualsevol pista sobre com són, pensen, etc... Per això els diu la raça Enigma. Travessant el seu territori arriba a un sistema on hi ha uns altres aliens, hervibors, que l'únic que fan és liquidar qualsevol depredador i consideren als humans com a tals. Són els bear-cows o Kicks. Fugint del territori dels Kicks va a caure en un altra sistema on derrota la seva armada i es troba amb uns tercers aliens, els Dancers, amb els que sí pot parlar i li ofereixen enviar una delegació al sistema dels humans. Els Dancers són tan bons que permeten que la flota torni cap la zona de l'espai controlada pels humans, i quan arriben han de derrotar als Enigma que estan atacant la colònia humana que està allí. I aquí acaba el llibre, ja s'han cobert els número de pàgines estipulades i al següent.
El llibre segueix la tònica dels anteriors, si els altres t'agraden aquest també.
Segueixo veient cosetes del HTML5, aquest cop és un atribut dels camps input que es diu placeholder. Consisteix en posar un text dins d'un input de tipus text que quan l'usuari comenci a escriure desapareix. Abans això es feia amb Javascript, ara està en el llenguatge. Millor un exemple, el codi seria:
<inputname="valor"id="valor"type="text"placeholder="Entra aqui el valor" />
I quedaria algo com:
També és curiós que el comportament no és exactament igual en tots els navegadors. En IE11 tot just el input rep el focus el text desapareix. En Firefox no, desapareix quan l'usuari comença a escriure. El valor del placeholder no s'envia mai al servidor, es a dir, si es fa un HTTP POST d'un camp buit amb placeholder aquest valor no forma part del que s'envia al servidor.
#20/03/2014 16:51 Programació HTML/CSS Autor: Alex Canalda
L'acció d'aquest llibre succeïx paral·lelament a l'anterior (Deadhouse Gates), uns quatre mesos més tard del final del primer (Gardens of the Moon).
En aquest reprèn el fil conductor del 2º Exercit comandat per Dujek OneArm que renega de l'imperi malazà i s'alia amb els seus antics enemics, l'Anomander Rake i el Caladan Brood. Aquesta aliança es fa per lluitar contra el caníbals comandats pel Jaghut Pannion Seer. La primera batalla és a Capustan on els mercenaris Grey Swords defensen la ciutat contra els Pannions. El Grey Sword Shield Anvil Itkovian rep sobre les seves espatlles el sufriment de milers de morts ja que les portes de la mort no estan obertes.
Finalment aconsegueixen vèncer als Pannions encara que estaven patrocinats pel Crippled God a la ciutat de Coral, que esdevé la seu dels TisteAndii ja que l'Anomander sacrifica la seva fortalesa voladora Moon Spawn en la batalla.
En el llibre hi ha moltes altres línies argumentals i és algo complicat de seguir a vegades, sobretot per que salta molt de grups de personatges, però això és una constant en la sèrie. A mi m'ha agradat força.