NMultiSelect 1.5.4

Just a service update.

I think I was way to fast in releasing the 1.5.3-version. It was extremely buggy, had a few bugs and didn’t live up to the standards I think a release from me should meet. So therefore, forget the 1.5.3 (throw it away and never look back!) and get the latest NMultiSelect 1.5.4 instead. It is much more stable and nice than previous versions.

You can download NMultiSelect 1.5.4 here.

Or see it live here.

As always, comments are welcome!

XML DBManager

commentxml1[1]Så er min XML Manager til NMapperen, ved at være godt moden. Jeg bruger den på mit arbejde, sammen med NMapperen, selvfølgelig, og har i den forbindelse fundet en hel del svagheder i den. I den seneste version er de fleste af de svagheder blevet helbredt.

Et af mine problemer opstod da jeg ville indsætte 9445 rækker i en tabel (xml fil) navigate to these guys. Den insisterede på at gemme filen for hver indsættelse. Det tog evigheder, sad i en halv time og ventede.

Så slog det mig. Indsæt en buffer, der indeholder alle XML-filer fra de oprettes eller indlæses, og så lade en tråd gemme de filer en gang i mellem.

På den måde skal der faktisk kun læses een gang fra harddisken og kun skrives til disken samtidig med at cachen renser sig selv.

Javascript OS – ny udgave

Så har jeg leget lidt mere med javascript igen, denne gang er det mit javascript OS jeg har opdateret.

Jeg har omskrevet hele kernen, lavet et nyt og smartere API til udvikling af applikationer og en langt bedre vindues håndtering.

Sommetider crasher systemet, og skal entet resettes eller også skal vinduet lukkes og åbnes igen.

Det er stadigvæk kun til sjov og ballade for mig selv, men kig på det alligevel. Den fungere kun i firefox!

http://os.ndesoft.dk/

Det er ikke alt der virker, Nxplore viser ingen mapper, da den kræver en .NET webservice til at smide noget xml ud. Jeg arbejder på det.

Prøv evt. at trykke F7 på skrivebordet…

NLang – .NET Sproghåndtering

Jeg læste en artikel forleden omkring hårdkodede tekster som gør det besværligt at kunne oversætte et program til andre sprog. Derfor har jeg lavet en lille dll fil i C# som kan håndtere det problem.

Dll’en er ganske simpel og kan bruges med kun een linje kode. Ens tekster bliver hentet fra en xml-fil som jeg kommer ind på senere. Det er muligt selv at bestemme strukturen i sine programmer og sprog filer.

Du kan herunder hente en zip-fil med dll’en og xml-eksempler.

Eksempler på brug:

// Denne linje henter indholdet af xml-filen med navnet danish.xml
NLang.INLanguage dansk = NLang.NLanguages.Load("danish");


// Denne linje henter den tekst der svare til idéet angivet i []
string minTekst = dansk["mintxt1"];

Xml-filen der skal hentes skal ligge i Languages-mappen, men man kan kalde den hvad man vil og have lige så mange man har lyst til, man skal blot huske at ændre parameteren i Load() til det filnavn man vælger.

XML-syntaksen ser således ud:

<NLang>

<trans id="mintxt1">
<text>
Min Tekst 1
</text>
</trans>

<trans id="mintxt2">
<text>
Min Tekst 2
</text>
</trans>

</NLang>

Det id der er angivet kan man selv vælge hvad skal være man skal blot huske at linjen dansk[“mintxt1”] skal tilpasses så den passer.

Download NLang 1.0.

NLog – Log-system.

Dansk:

Jeg er i gang med et eksamens projekt, og har i den anledning haft brug for at lave et logning system til at styre ændringer i system og evt. fejl. Til det system vi arbejder med er log-systemet lavet som en integreret del af systemet, men jeg tænkte om ikke kunne laves som en enkelt dll der blot skulle implementeres. Jeg er derfor kommet frem til det vedhæftede resultat: NLog. NLog består af en dll-fil og et css-dokument.

Disse to filer skal ligge i samme mappe som projektet bliver kørt fra. DLL’en er lavet i .NET 3.5 frameworket og kan implementeres i alle sprog der kører i dette framework. DLL’ens namespace er NLogClasses.

DLL-en og css-filen kan distribures frit. Dog må dll-en eller css-filen skifte navn og indholdet af dll-en må ikke ændres!

Eksempler (C#):

// Indlæs alle logs:
NLog.LoadAllLogs(); // Skal køres for der oprettes logge eller poster!
// Opret Log:
// CreateLog(string logName); logName angiver loggens navn!
Log minLog = NLog.CreateLog("LogNavn");
// Opret log-indlæg:
// CreateEntry(string description, bool error); description er en beskrivelse af hændelsen.
// error er true hvis der er tale om en fejl og false hvis ikke.
minLog.CreateEntry("Beskrivelse",false);
// Find Log:
// FindLog(string logName); logName er navnet på den log du vil finde.
Log fundetLog = NLog.FindLog("LogNavn");
// Find indlæg:
// FindEntry(DateTime time); time er tidspunktet hvor hændelsen finder sted.
Entry minEntry = fundetLog.FindEntry(DateTime.Parse("01-01-01"));
// Gem alle logs:
NLog.SaveAllLogs(); // Denne opretter en xml-fil hvis ikke denne allerede eksistere.
// Følgende er en beskrivelse af properties:
NLog.Logs; // Returnerer alle logge.
minLog.Name // Returnerer navnet på loggen.
minLog.Entries // Returnerer alle entries i den aktuelle log.
minEntry.Descr; // Returnerer beskrivelsen af hændelsen.
minEntry.Time; // Returnerer tidspunktet for hændelsen.
minEntry.Error; // Returnerer om hændelsen var en fejl eller ej.

Download NLog 0.1.

English:

I am in the middle af an exam project, in which we had to built a log-system to manage alle events to go back and se what happened when. Our log-system is embedded within our entire system so it can only run in our system. I then began to develop this little log-system which is not embedded in any way and can be used when and where it should be. It is made on the .NET 3.5 framework and is a dll-file and it can be implementet in all systems using that framework. The appended file contains the dll and a css-file. These two files has to be stored in the same directory as the rest of the executables is.

The namespace of the DLL is: NLogClasses.

The dll-file and the css-file is free to distribute but you may not change the name of the dll or the css-file. The content of the dll must stay as is!

Examples (C#):

// Load all logs:
NLog.LoadAllLogs(); // Has to be run before creating any logs or entries!
// Create Log:
// CreateLog(string logName); logName is the name of the log!
Log myLog = NLog.CreateLog("LogName");
// Create Log-entry:
// CreateEntry(string description, bool error); description is a descripten of the event.
// If the event is an error the error parameter is true.
myLog.CreateEntry("Description",false);
// Find Log:
// FindLog(string logName); logName is the name of the log you want to find.
Log foundLog = NLog.FindLog("LogName");
// Find entry:
// FindEntry(DateTime time); time is the time where the event took place.
Entry MyEntry = fundetLog.FindEntry(DateTime.Parse("01-01-01"));
// Save all logs:
NLog.SaveAllLogs(); // This creates an xml-file if it does not already exist.
// Th folowing is a description of alle the properties:
NLog.Logs; // Returns all logs.
myLog.Name // Returns the name of the log.
myLog.Entries // Returns all entries in the active log.
MyEntry.Descr; // Returns the discription of the event.
MyEntry.Time; // Returns the time of the event.
MyEntry.Error; // Returns wether the event is an error or not.

Download NLog 0.1.