Skip to content

Instantly share code, notes, and snippets.

@AlexMocioi
AlexMocioi / indexStringPG
Created May 2, 2014 09:08
Indexarea campurilor de tip varchar in PostgreSQL
Am făcut niscai teste și toată căcănăria provine din biblioteca folosită de PostgreSQL pentru comparația de string-uri pentru crearea arborilor când se face indexarea.
Baza când este inițializată se inițializează ca proasta cu opțiunea default de "collate en_US.UTF-8" în loc de anticul "collate C" și folosește o altă bibliotecă, specială, pentru comparațiile "lexicografice" de caractere!
Să vedem niște teste și să luăăăm amiiiiinteeeeee ....
// "Încălzim cache-ul" să ducem tabela în memorie să nu conteze citirea din disc
root@bnd:/home/teo# time psql cs_muster -c "select count(*) from crotalie"
count
----------
91.505.920
@AlexMocioi
AlexMocioi / callBackToJS.dart
Created April 22, 2014 20:24
Add callback function in dart to jquery UI component
class CallbackFunction implements Function {
final Function f;
CallbackFunction(this.f);
call() => throw new StateError('There should always been at least 1 parameter'
'(js this).');
noSuchMethod(Invocation invocation) {
Function.apply(f, []);
}
}
@AlexMocioi
AlexMocioi / autentificare
Created April 22, 2014 10:11
Exemplu de autentificare cu tigertronic fara session management
package main
import (
"fmt"
"io"
//"github.com/rcrowley/go-metrics"
"crypto/md5"
"github.com/rcrowley/go-tigertonic"
"net/http"
"net/url"
@AlexMocioi
AlexMocioi / textSelection.js
Created April 10, 2014 06:33
Funcție ajutătoare să faci ceva cu un text selectat prin dublu-click într-o fereastră HTML
function getSelectedText() {
if (window.getSelection) return window.getSelection().toString();
if (document.getSelection) return document.getSelection().toString();
if (document.selection) return document.selection.createRange().text.toString();
return "";
}
//În altă parte vrei să se declanșeze ceva când utilizatorul a selectat un cuvânt:
//- merge pe selecție prin drag peste text, când termini, pe mouseUp
//- merge când faci dublu-click, că face și selecția și apoi la mouseUp declanșează acțiunea
@AlexMocioi
AlexMocioi / OpenApi.js
Created April 8, 2014 21:30
Dacă aveți nevoie să verificați/extrageți ceva informații de la OpenAPI (cod fiscal)
onBlurCodFiscal: function() {
var localThis = this,
cui = trim(this.findByNume("cui").val());
if ( cui=="" ) return;
$.ajax({
type: 'get',
url: 'servlet/proxyOpenAPI.php',
data: {
cui: cui
},
@AlexMocioi
AlexMocioi / ReadSTDIN.go
Created April 6, 2014 16:24
Read big text data from SDIN in Go
package main
import "fmt"
import "bufio"
import "os"
func main() {
f, _ := os.Create("outputgo.txt")
reader := bufio.NewReader(os.Stdin)
for {
line, err := reader.ReadString('\n')
@AlexMocioi
AlexMocioi / JSON.go
Created April 6, 2014 16:21
Map json to struct in GO, for direct marshal, unmarshal
package main
import "encoding/json"
import "fmt"
type Person struct {
Name string `json:"name"`
@AlexMocioi
AlexMocioi / LIST_Erlang_cu _all_docs.erl
Created January 22, 2014 11:01
De la versiunea 1.4 în sus, CouchDB permite cuplarea unei funcții LIST și cu view-ul _all_docs care dă pe țeavă toate înregistrările din bază! Asta este un lucru bun pentru că cuplarea unei funcții LIST cu un view scris de utilizator înseamnă parcurgerea a doi arbori: prima dată a B-tree-ului view-ului (indexului) și a doua oară, pe sărite , în …
fun(Head, {Req}) ->
Send(<<"[">>),
Fun = fun({Row}, Virgula) ->
Send(Virgula),
case proplists:get_value(<<"doc">>, Row) of
{Doc} ->
%% mă asigur că nu trimit altceva decât documente de tip "localitate"
%% și nu am primit din view și vreun document de tip _design
Elocalitate = proplists:is_defined(<<"Siruta">>, Doc),
if
@AlexMocioi
AlexMocioi / a la full-text-search.erl
Created January 20, 2014 21:00
Funcția Map normalizează denumirile, scoate diacriticele, le face litere mari și sparge denumirile după spații, linii, puncte, virgule sau paranteze și emite apoi o listă de tokenuri! Funcția List parcurge răspunsul cu include_docs și întoarce în format aaData (array-of-arrays-of-Data) taman bine formatate pentru DataTables ! Pentru că nu apelea…
%%Map
fun({Doc}) ->
Filtre = [ {"ț","T"}, {"Ț","T"}, {"ș","S"}, {"Ș","S"}, {"ă","A"}, {"â","A"}, {"Ă","A"}, {"Â","A"}, {"Î","I"}, {"î","I"} ],
Nume = proplists:get_value(<<"Nume">>, Doc),
Cuvinte = string:tokens(binary_to_list(Nume)," (),-.?!'"),
lists:foreach(fun((Cuvant)) ->
Lung = string:len(Cuvant),
if
Lung>2 ->
Filtrat = lists:foldl(fun({Pattern, Replacement}, Subject) ->
@AlexMocioi
AlexMocioi / AmprentaDigitalaDocCouch.js
Created January 18, 2014 08:36
Funcție map-reduce pe CouchDB, face SHA256 pe document:
//Map
function(doc) {
// Machetă document complex
if ( doc.tip=='MD' ) {
var ss = ''+doc.macheta+doc.prd+doc['_id']+doc['_rev'];
for (var i=0,n=doc.valori.length; i<n; i++) {
for (var j=0, m=doc.valori[i].registre.length; j<m; j++) {
var k = doc.valori[i].registre[j];
ss += doc.valori[i].valoare+k[0]+k[1]+k[2]+k[3];
}