Unustasid parooli?



     
Sisseloginud kasutajatele märgistatakse automaatselt teksti piirkonnad, mis on muutunud alates viimasest lugemisest. Lisandunud osa on roheline, eemaldatud osa punane.
Lisaks märgistatakse sisseloginud kasutajatele menüüs täiendavate värvide abil artiklid, mis on kasutajal loetud (hall), ning artiklid, mis on peale lugemist täienenud (roheline).

   

     

Pealkiri :
Id (lühend aadressiribale) :
Autor ja viimase muudatuse autor :
Loomise aeg ja viimane muudatus :
Teksti pikkus :
Luba ligipääs ainult kasutajanimedele (eralda komadega). Autoril on alati ligipääs. :




Siin tuleb nimekiri lahenduskäikudest jaburatele ja võibolla vähem jaburatele tõrgetele, mille otsa olen programmeerimise käigus komistanud.
Aja jooksul on siia lisandunud ka lahendusi vähem jaburatele probleemidele :)
 
 
 
Üldised lingid
http://excel.tips.net/ - Exceli skriptimine
 
 
 
C# ja C++ ühendamine:
Üldiselt käib asi nõnda, nagu kirjas siin:
http://www.codeproject.com/KB/dotnet/managed_unmanaged.aspx - siin on kirjas ka, kuidas vahendada stringide tüüpe. 
Enda juhtumil lisasin DllImport reale veel CharSet atribuudi a la:
[DllImport("libra.dll", CharSet = CharSet.Unicode)]
Siin paistab olevat aga kasutatud alternatiivset viisi stringide edastamiseks:
Kui tahtsin, et vastus tuleks ka stringina, siis tekitasin deklaratsioonid a la:
typedef char *  charptr;
__declspec(dllexport) int c_func3(charptr& result_str);   //viimane sisaldab mälu eraldamist
ja
public static extern int c_func([MarshalAs(UnmanagedType.LPStr)] out string result_str);
NB! ref ja out on sarnase kuid erineva tähendusega märksõnad, uuri ise manuaalist... :)
Hiljem tuleb C++ moodulis mälu ka kuidagi vabastada. Selleks ajaks on C# omale juba koopia teinud.
 
Nagu arvata võis, ilmnes algul mitmeid dokumenteerimata või muidu jaburaid takistusi.
Minul oli neid kaks. Järgnevad kaks leidu aitasid need lahendada.
http://koobmeej.blogspot.com/2006/12/vista-manifest-crash.html - lahendab MT.exe crashimise (ka muudes süsteemides kui Vista), kui tahad kasutada embedded manifeste. C# ei oska miskipärast C++ DLL-i laadida, kui manifest on eraldi failis, tuleb teade, et ei leia DLL-i vms.
http://www.codeproject.com/KB/cs/C_DLL_with_Csharp.aspx - lahendab "Unable to find an entry point named ... in DLL"
 
 
 
IE6 ning PNG AlphaImageLoader
 
 
 
Google Analytics
Kui tahad statistikasse lisada infot, mis linkide kaudu inimesed lehelt lahkuvad, siis kasuta infot siin:
Kui Sa seda võtet ei kasuta, siis paljud asjad ei jõua statistikasse ning Time on page võib olla tihti null.
Kui tahad teada, kui tihti külastajad sulgevad browserit ilma klikkimata, kasutan onbeforeunload eventi. Mozilla toetab seda nüüd ka, varemalt võimaldas ainult Internet Explorer seda.
Küsimus:
Me teame, mis on _trackPageview(),
mis funktsioonid on aga _setAllowLinker() ja _trackTrans() - ?
Vastus:
* _trackTrans() &Co - epoodide jne jaoks: http://code.google.com/apis/analytics/docs/gaJSApiEcommerce.html
 
 
 
Kuidas saada käsurida enne sisse logimist?
ma ei hakand dll faili muutma, tegin selle registri täienduse, mis oli kommentaarides mainitud: "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\utilman.exe" alla string nimega "Debugger". "utilman.exe" jaotust registris pole, seega tuleb see ise lisada.
"Debugger" stringi väärtuse panin veidi teisiti, kui seal blogis on öeldud, kuna sealne ei töötand minu jaoks, panin:
psexec -accepteula -s -x cmd.exe /c start cmd.exe 
kui aga tahad, et käsurida tuleks sisselogitud konto ekraanile, siis pane
psexec -accepteula -s -i cmd.exe /c start cmd.exe
Kui kompunnida, on võimalik asi käivitada ka mõlemal ekraanil näiteks .bat fail oleks lihtne variant nende käskude kokkuühendamiseks.
Võti -accepteula on vajalik, kui ei soovi psexec litsentsi dialoogi esimese käivitamise ajaks jätta, vaid garanteerida, et see üldse ei ilmukski.
psexec.exe pead omale ise hankima, see on veebis vabalt saada.
 
 
Kuidas disableda veel süsteemi programme, ilma et peaks neid kustutama või muutma
Näide Sticky Keys. Ilmub lagedale, kui vajutad viis korda shift nuppu. Tüütu.
registrisse:
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\" uus jaotus "sethc.exe"
sinna alla string nimega "Debugger" väärtuseks "dud.exe"
Laadi omale fail Dud: http://www3.telus.net/_/dud/
Sarnast asja lubab teha ka http://www.bernardbelanger.com/computing/NaDa/index.php aga selgub, et selle käivitamiseks on vaja laadida ntvdm.exe, mis kokkuvõttes on ressursikulukam ja näiteks Stiky Keys puhul tooks korraks erkaanile konsooli. dud.exe samas on ehtne windowsi programm ja seda probleemi ei oma.
 
 
Jutumärkide kaotamine .bat-failide argumentidelt
 
 
Kuupäeva ja kellaaja arvutused  .bat-failides
 
 
Kuidas arvutit kokku jooksutada:
http://support.microsoft.com/kb/244139 (minul ei hakanud see tööle)
 
 
Kuidas kaotada windowsi aknalt sulgemise nupp
Kasuta dokumenteerimata konstanti WS_CLOSEBOX = 0x00080000, analoogselt konstandile WS_MAXIMIZEBOX ja WS_MINIMIZEBOX.
 
 
HTML entity'te näitamine dialoogikastides alert() prompt() confirm()
ise kasutan aga järgnevat koodi:
 
function remove_andamp(str) {
  var temp = str;
  var re_andamp1 = new RegExp("\\&\\;\\#", "gi");  //&# is the beginning of html code
  temp = temp.replace(re_andamp1, "&#");
  var re_andamp2 = new RegExp("\\&\\;nbsp\\;", "gi");
  temp = temp.replace(re_andamp2, " ");
  var re_nbsp = new RegExp("\\ \\;", "gi");
  temp = temp.replace(re_nbsp, " ");
  return temp;
}
 
function moz_html_decode(str) { 
 
  //kuigi funktsiooni nimi on mul moz_html_decode, rakendub see ka IE ja teiste brauserite puhul. Algselt rakendasin seda funktsiooni, et muuta INPUT väljade väärtusi skripti seest, sel juhul IE ei vajanud konvertimist, Mozilla aga vajab ka sel juhul.
 
  var re_htmlcode;
  var out;
  var pos;
  var entrylen;
  var entrychars;
  var charcode;
  var character;
 
  re_htmlcode = new RegExp("&#[0-9]{1,4};", "i");
  out = "";
  pos = str.search(re_htmlcode);
  while(pos != -1)
  {
    out = out + str.substr(0, pos);
    str = str.substr(pos);
    entrylen = str.search(";") + 1;
    entrychars = str.substr(2, entrylen - 3);
    charcode = entrychars.valueOf(); 
    character = String.fromCharCode(charcode);
    out = out + character;
    str = str.substr(entrylen);
    pos = str.search(re_htmlcode);  
  };
  out = out + str;
 
 
  re_htmlcode = new RegExp("&#x[0-9a-f]{1,4};", "i");
 
 
  str = out;
  out = "";
  pos = str.search(re_htmlcode);
  while(pos != -1)
  {
    out = out + str.substr(0, pos);
    str = str.substr(pos);
    entrylen = str.search(";") + 1;
    entrychars = str.substr(3, entrylen - 4);
    charcode = parseInt(entrychars, 16);
    character = String.fromCharCode(charcode);
    out = out + character;
    str = str.substr(entrylen);
    pos = str.search(re_htmlcode);  
  };
  out = out + str;
  return out; 
}
 
function my_alert(txt) {
  var txt2 = moz_html_decode(remove_andamp(txt));
  window.alert(txt2);
 
 
 
Pangalingi tegemine
Pankade info:
 
 
 
Passing variables by reference MATLAB-is
 
 
 
Method for calculating precise logarithm of a sum
Disclosed is a method to compute the precise value of the logarithm of a sum.
A number of practical problems can result in having too big or small values in intermediate values of a calculation... In the case: log (p · q) = log p + log q is very easy to compute, but the problem is then to compute (or approximate) the value of log (p1 + p2) from the value of log p1 and log p2. 
 
 
 
Fast log function
Original: http://www.flipcode.com/archives/Fast_log_Function.shtml - a code snippet to replace the slow log() function... It just performs an approximation, but the maximum error is below 0.007.
I made some small updates to the proposed code
See: http://roland.pri.ee/wiki/fast_log_function
 
 

C++ compile-time numeric messages
Boost has preprocessor macro named BOOST_PP_ASSERT_MSG:
http://www.boost.org/doc/libs/1_39_0/libs/preprocessor/doc/ref/assert_msg.html
But this only works for string constants. What if You need to debug Your C++ compile-time metaprogram and want to output some numbers unknown at the time of writing the code?
 
 
C++ for-tsüklite optimeerimine
Nii mõnigi kord on ette teada, et for-tsükkel kestab vähemalt ühe tsükli ning seega ei ole vaja tegelikult tsükli alguses kontrollida, et kas tsükli muutuja on vähem kui piirväärtus.
Visual Studio kompilaator võimaldab kirjutada sellist asja:
int var = 0; 
__assert(var < end); 
for(; var < end; var++)
    ... 
}
 
selle võtte mugavamaks kasutamiseks kirjutasin järgmise makro:
#define FORA(var, end)    var = 0; __assert(var < end); for(; var < end; var++) 
Analoogselt saab luua rohkemate argumentidega makrosid teistsuguste algväärtuste ja sammudega tsüklite loomiseks. 
 
 
C# LowerBound
võibolla parem alternatiiv: NStl library
 
 
Ruby on Rails mitme välja korraga jälgimine
 
 
Exceptionite püüdmine Visual Studio debuggerisse nende toimumise ajal
 
 
Bit hacks
* http://www.eng.utah.edu/~cs5830/handouts/InvSqrt.pdf - Fast inverse Square root. Sellest funktsioonist on variatsioon minu bakatöö lähtekoodis. Ma ei mäleta enam, mida ja miks ma seal muutsin, aga see tegi asja kas paremaks või õigemaks.
* http://www.azillionmonkeys.com/qed/asmexample.html 
 
Bit hacks - Population Count
* see the above links
 
Bit hacks - Binary GCD
 
 
Erinevate Dictionary/Hashmap-ide jõudluse võrdlus .NET/C# keele jaoks:
 
 
Kui Visual Studio Step-In või Step-Over korraga käitub nagu Run:
--> parandus (aga ei toimi alati): http://code.msdn.microsoft.com/KB957912
 
 
 
 
 
 
 

kommentaarium spämmi tõttu ajutiselt välja lülitatud





Teised tekstid samas jaotuses:  ||  Librad  ||  Wiki arendus  ||  Veebidisain  ||  Töövahendid  ||  Skriptimine ja interpretaatorid  ||  Reflektsioon ja koodigeneraatorid  ||  Huvitavad algoritmid  ||  Draiverite arendus  ||  Koodinäidised  ||  Modularity  ||  P2P tehnoloogiad  ||  OpenERP  ||  Proge - uurimiseks  ||  Andmestruktuurid  ||  MemoryLeaks  ||  




  Saada kiri