LiteDb- o BD embeddable

M-am jucat cu https://github.com/mbdavid/LiteDB . Fata de Raven  , e o placere sa o folosesti. Nu face probleme si poti sa dai deploy la un fisier pe server in mod direct.

De ce nu am folosit SqlLite ? Pentru ca trebuie sa creez structura de tabele. Iar pentru aplicatia de RomaniaOpenData nu vreau asa ceva: vreau ceva rapid care sa stocheze un obiect ( ca json sau xml, nu imi pasa)

Da, stiu ca Sqlite are json1  – insa nu mi-a placut asta:”The json1 source code is included with the SQLite amalgamation, though it is turned off by default. Add the -DSQLITE_ENABLE_JSON1 compile-time option to enable the json1 extension that is built into the amalgamation.”

Asa ca recomand LiteDb pentru WriteOnce / ViewMultiple  data.

Internship la EA

Marketing – Intern

Player engagement (Publishing Org)

DevOps Engineer – Intern

Multiple Dev Teams

Software Engineer – Intern

Quality Enginnering

Software Engineer – Intern

Frostbite

Software  Engineer – Intern

FUT 16

Software  Engineer – Intern

FIFA Gen 4

Software  Engineer – Intern

FUT 18

Producer – Intern

FIFA

 

Daca aveti pe cineva , va rog sa imi dati de stire.

( Da, Quality Enginnering este la mine – insa nu o sa il intervievez eu)

Date deschise si aplicatie

 

Am vrut sa ma inscriu la concursul de aici – http://ogp.gov.ro/planul-national/pna-2014-2016-2/premii-ogp-2016/ . E vorba nu doar de concurs , ci si de o intreaga filozofie a datelor deschise care se pot obtine de la http://data.gov.ro/dataset .

Asa ca am facut https://github.com/ignatandrei/RomaniaOpenData . Ce vrea sa fie? O corelatie a datelor pe judete obtinute in mod vizual.

Se poate vedea online la http://ropwebmvc20160213092204.azurewebsites.net/

De pilda, corelam personal medical din RO cu numarul de alegatori pe liste.  Se observa usor ca pentru Suceava exista o corelatie negativa- numarul de alegatori creste iar numarul de personal scade.

Utilizeaza o BD RavenDB ( o sa o schimb cit de curind) si HighCharts .

Codul e free pe github si va invit sa participati.

Ce mai e de facut:

  1. Tutoriale ( wiki)
  2. Obtinut alte date(https://github.com/ignatandrei/RomaniaOpenData/wiki/Cum-scrieti-cod-pentru-un-nou-set-de-date )
  3. MVVM pe javascript – nu sunt mindru cum am scris codul pe javascript ( si nici macar pe server – se putea si mai bine)
  4. Altele – corelatii statistice, etc.

Fun cu NLOG si async

Sa presupunem ca avem o aplicatie simpla console in care facem logging. Pentru mine cel mai usor este NLOG.

Codul este:

using System;


namespace ConsoleApplicationNlog
{
    class Program
    {
        static void A()
        {
            try
            {
                B();
            }
            catch (Exception ex)
            {
                
                throw new Exception("from a", ex);
            }
        }
        static void B()
        {
            throw new ArgumentException("from b");
        }
        static void Main(string[] args)
        {
            var s = NLog.LogManager.GetCurrentClassLogger();
          
            try
            {
                A();
            }
            catch(Exception ex)
            {
                s.ErrorException(ex.Message,ex);
                Console.WriteLine("---------------------");
                //Console.WriteLine(ex.StackTrace);
            }
            //Thread.Sleep(1000);
        }
    }
}

 

Vrem sa logam in fisier stack trace si eroarea si pentru asta construim fisierul de configurare Nlog.config urmator

<?xml version=”1.0″ encoding=”utf-8″ ?>
<nlog xmlns=”http://www.nlog-project.org/schemas/NLog.xsd”
      xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>

  <targets async=”true“>
    <target xsi:type=”File” name=”f” fileName=”${basedir}/logs/${shortdate}.log”
            layout=”${longdate} ${uppercase:${level}} ${message}  ${exception:format=ToString:innerFormat=StackTrace:maxInnerExceptionLevel=2} (${callsite:includSourcePath=true})”  />
    
  

    </targets>

  <rules>
    <logger name=”*” minlevel=”Trace” writeTo=”f” />   
  </rules>
</nlog>

 

Cind ne uitam in ceea ce logheaza este:

2016-01-30 08:48:24.3290 ERROR from a  System.Exception: from a —> System.ArgumentException: from b
   at ConsoleApplicationNlog.Program.B()
   at ConsoleApplicationNlog.Program.A()
   — End of inner exception stack trace —
   at ConsoleApplicationNlog.Program.A()
   at ConsoleApplicationNlog.Program.Main(String[] args)
   at ConsoleApplicationNlog.Program.B()
   at ConsoleApplicationNlog.Program.A() (ConsoleApplicationNlog.Program.Main)

 

 

Unde sunt liniile din stack trace?

 

Rezolvare:

Fie puneti

<async=”false“>

fie decomentati

Thread.Sleep(1000);

In cazul acesta , o sa arate asa:

2016-01-30 08:56:30.6137 ERROR from a  System.Exception: from a —> System.ArgumentException: from b
   at ConsoleApplicationNlog.Program.B() in C:\p\ConsoleApplicationNlog\ConsoleApplicationNlog\Program.cs:line 22
   at ConsoleApplicationNlog.Program.A() in C:\p\ConsoleApplicationNlog\ConsoleApplicationNlog\Program.cs:line 12
   — End of inner exception stack trace —
   at ConsoleApplicationNlog.Program.A() in C:\p\ConsoleApplicationNlog\ConsoleApplicationNlog\Program.cs:line 17
   at ConsoleApplicationNlog.Program.Main(String[] args) in C:\p\ConsoleApplicationNlog\ConsoleApplicationNlog\Program.cs:line 30
   at ConsoleApplicationNlog.Program.B() in C:\p\ConsoleApplicationNlog\ConsoleApplicationNlog\Program.cs:line 22
   at ConsoleApplicationNlog.Program.A() in C:\p\ConsoleApplicationNlog\ConsoleApplicationNlog\Program.cs:line 12 (ConsoleApplicationNlog.Program.Main)

Marți, 9 februarie 2016 – MsSql / Reactive Extensions

Marți, 9 februarie 2016, ora 19:00, va fi a doua întâlnire pe anul 2016 awww.adces.ro
Locul de întrunire va fi la Electronic Arts( vezi detalii mai jos) .
Desi evenimentul e free, totusi inregistrarea participarii se face pe MEETUP
http://www.meetup.com/Bucharest-A-D-C-E-S-Meetup/events/228193257/
Din agendă:
MSSQL tips & tricks – Alexandru Gatej (https://www.linkedin.com/in/gatej-alexandru-miron-265300a)
Din prezentare:
Stiti diferenta intre isnull si coalesce ?
De exemplu,
select coalesce((select sum(id) from @t where id%2=0), 0)
select isnull((select sum(id) from @t where id%2=0), 0)
Durata estimata : 1h
Reactive Extensions in .Net – Costin Manda(https://www.linkedin.com/in/costinmanda)
Din continut:
Async searching in .NET
Durata estimata : 1h
(Apoi bergem la bere , la https://foursquare.com/v/azzurro-il-venetiano/4be9a7bf62c0c92863e9dfd4 😉 )
Data: 9 februarie 2016, ora 19:00
Locație: sediul Electronic Arts – Afi Park 2 . Te rog sa iti iei buletinul cu tine.
Harta: https://goo.gl/maps/Kt8ZL
Detalii acces: Poți ajunge aici cu următoarele mijloace de transport în comun:
– Metrou, Stația Politehnica
– Orice (105, 69, altele ) pina la mall AFI Palace Cotroceni si intrebi de cladirea AFI Park 2.
Pentru mai multe detalii,telefonul meu este 0728200034
Multumesc,

Exporter–ce mai e de facut

Am facut si video-uri –

Export Json To Excel Word PDF from javascript

Export List Objects To ExcelWordPDF

Export CSV To Excel Word PDF

Export DataTable to Excel Word PDF

Am adaugat si cum sa trimiti alte date decit un List/JSON https://github.com/ignatandrei/Exporter/wiki/Export-other-data-that-does-not-belong-to-the-model 

Ce mai e de facut gasiti aici: https://github.com/ignatandrei/Exporter/wiki/Help-the-project  – si puteti participa daca doriti( eu imi doresc Winking smile )

Ce obtineti: contributor la un proiect ce are sanse sa devina un punct de referinta pentru export in diverse formate( Open Office, anyone?)

Ultimul export in Word/Excel/PDF cu .NET 4.x

Am facut o aplicatie web + nuget care exporta date (input:  clase/datatable/csv/json) in Word/Excel/PDF.

Lectii invatate:

  1. Sa faci proiectul e usor. Documentatia e mai grea
  2. Daca ai deja teste , documentatia este mai usoara – la urma urmei, codul este documentatia ( ma rog, 50% din codul de testare ajunge in documentatie – si e cam 50% din documentatie)
  3. GitHub are de toate – doar daca stii unde sa cauti. De exemplu, stiti ce inseamna “`csharp ?
  4. In ziua de azi, nu ajunge sa faci un dll. Trebuie sa dai si codul cum sa iti foloseasca dll-ul. Si sa fie usor de gasit. Si sa aiba teste . Si sa ai si un demo – am facut pe Web , nu si pe Mobile(inca)
  5. Si presupun ca asta nu e de ajuns … Vom trai si vom vedea…

Cod:  https://github.com/ignatandrei/Exporter 

NuGet : https://www.nuget.org/packages/ExporterWordExcelPDF

Demo online : http://exporter.azurewebsites.net/ 

Documentatie si code C#/Javascript de folosire : https://github.com/ignatandrei/Exporter/wiki 

Puteti participa la proiect https://github.com/ignatandrei/Exporter/wiki/Help-the-project