Rainbowheart - ultimele 7 pagini

  • Caprioara indiana

    12-Apr-2018 15:32 - 33 vizionari

    Cautand informatii despre numarul de cromozomi ai vulpii, lupului si hienei (toate sunt canide) am gasit la wikipedia o lista sortata in ordinea numarului de cromozomi.

    Lista este foarte interesanta: drojdia de bere = 32 cromozomi, tigru, leu, pisica, porc = 32 cromozomi, omul = 48, fluturele Agrodiaetus = 268 cromozomi (cel mai mare numar de cromozomi dintre toate animalele si depasit de niste protozoare ciliate), …

    Dar cel mai interesant este ca am gasit o caprioara (Muntjac Indian = 6 cromozomi la femele si 7 cromozomi la masculi) care are mai putini cromozomi decat musculita de otet (8 cromozomi).

    Un paradox: meduzele au ramas neschimbate de 600 milioane de ani, meduza albastra fluorescenta = 44 cromozomi, iar omul (foarte primitiv) a aparut cu un milion de ani in urma.

    Alt paradox: exista plante cu codul genetic mai complex decat al omului (ananas = 50, capsuni = 56).

    Dar caprioara indiana sau Muntjacul Indian este cel mai mare paradox: cum poate sa functioneze un mamifer cu atat de putin cod genetic?

    Cercetatorii au ajuns la concluzia ca o parte din cromozomii caprioarei indiene au fuzionat, codul genetic ramanand neschimbat, iar teoria este sustinuta de asemanarea fizica a caprioarei indiene cu Muntjacul Chinezesc (46 cromozomi) si de analiza comparativa a tabelelor cu secvente ADN.

    Apropo de fuziunea cromozomilor: diferenta genetica dintre grupul Homo Sapiens/Neandertal/Denisovan (3 grupe de homo) si grupul Marilor Primate (cimpanzeu, gorila, orangutan) este de 1-2%. Cromozomul 2 al oamenilor este al doilea dintre cei mai mari cromozomi din codul omului si are corespondenta in alti doi cromozomi ai Marilor Primate.

    Ca programator, sunt fascinat de codul genetic si de stiintele naturii, iar rearanjarea genetica a Muntjacului Indian, simplitatea genetica a omului (20,000 de gene), urmata de complexitatea genetica a unor protozoare ciliate (29.64 × 106 cromozomi) imi sustine banuiala ca traim intr-o simulare (Univers Virtual, lume artificial creata) creata cu minim de efort, dar cu mare potential si capabila sa evolueze.

    Teoria minimului de efort si a proiectarii inteligente sunt sustinute de existenta unor organisme unicelulare (cianobacterii - procariote = nu au nucleu, mitocondrii si alte organele) care au pregatit Terra, generand oxigen, pentru organisme unicelulare mai complexe si aerobe (oxigen = mai multa energie, celula mai complexa si cu volum mai mare) si organisme pluricelulare.


  • Hristos a inviat!

    08-Apr-2018 10:36 - 37 vizionari

    In fiecare an Iisus devine Hristos, moare si inviaza pentru credinciosii Sai hrestini a treia zi (dupa scripturi), pentru ca daca nu ar fi asa, zadarnica ar deveni credinta lor -  Cor1.15:14 - Cor1.15:17.

    De cele mai multe ori Hristos inviaza de doua ori in acelasi an, uneori la o luna diferenta.

    Cum iti dai seama cand este Pastele? Intrebi un evreu cand sarbatoreste Iesirea din Egipt si adaugi o zi (Matei 26:2 si Marcu 14:1 si Luca 22:7 si Ioan 18:28), nu este gluma si nici banc.

    Conform Bibliei, la Cina Cea de Taina, Iisus savarseste un gest ritualic (frangerea painii, impartirea ei si degustarea din Sfantul Potir) cu mentiunea ca gestul Sau trebuie repetat in amintirea Lui. De aici a rezultat obiceiul Sfintei Impartasanii, Euharistia, care este desavarsirea tuturor celorlalte Taine ale Bisericii, dar Crestinii (Hrestinii) au banalizat-o, cerand preotului sa o savarseasca de cate ori simt ei nevoia ca trebuie.

    Crestinul nu stie nici in ce an s-a nascut Iisus, probabil cu 4 ani inainte de Cristos.

    La fel au fost banalizate Sacrificiul si Misiunea lui Cristos: Amintirea sacrificiului pe cruce si a Cinei cea de Taina s-a transformat intr-un circ anual (bianual?) cu procesiuni pe Via Dolorosa, crucificari ritualice cu figuranti (in Filipine), Lumina Sfanta venita cu avionul de la Ierusalim (ca mai veche minune atestata a lumii crestine - aprinderea intarziata a fosforului in aer dupa ce a fost udat cu un solvent volatil) cu cateva ore inainte de miezul noptii, ciocnire de oua (oua si iepuri = paganism), exclamatii de tip Cristos a Inviat pana la Inaltare, urmate de Cristos s-a Inaltat pentru o vreme (de ce nu Cristos s-a nascut cand este perioada de Craciun?)  - Cristos minimalizat.

    Dupa 2000 de ani de minciuna crestina si de mandrie religioasa, este timpul sa imbratisam adevarul, sa-l dam jos pe Iisus de pe cruce si sa revenim la invataturile care Il reprezinta pe Iisus Cristos, pentru ca imaginea lui Iisus pe cruce este atat de puternica, incat zadarniceste Misiunea lui Iisus.

    Nu vreau sa distrug Mitul Iisus, dar m-am saturat de inconsistenta teologiei crestine, de opulenta si de aroganta reprezentantilor Bisericii, de hainele colorate ale mai marilor Bisericii (in contrast cu hainele simple ale lui Iisus), de tratamentul preferential acordat de stat anumitor culte, de circ si de teatru evlavios, de parlamentari si popi in aceeasi imagine, …

    Exista speranta, dar nu prin religie si nici prin Biserica.


  • Solutie in Python pentru construire documente pdf cu imagini

    06-Apr-2018 17:24 - 36 vizionari

    Exista in Python cateva solutii de construire a documentelor pdf, dar cel mai simplu (si care sa suporte si inserarea de imagini) este FPDF for Python.

    Ieri am testat o solutie pentru un client si astazi m-am gandit ca ar fi bine sa o structurez sub forma unui utilitar de generare a documentelor pdf plecand de la o baza de date SQL si cateva sabloane.

    Programul, in varianta ultra scurta, accepta ca argument un fisier-sablon si genereaza un document pdf conform sablonului.

    Modulul fpdf se poate instala in Python cu comanda pip install fpdf

    Daca programul se numeste main.py, el poate fi apelat:

    
    #genereaza un test.pdf conform sablonului definit in interiorul programului
    python main.py -t
    
    #genereaza test1.pdf folosind test1.txt ca sablon
    python main.py -i test1.txt -o test1.pdf
    
    
    

    Programul main.py (varianta ultrascurta si compacta):

    
    
    #
    # Make PDF from template
    #
    
    import os, string, argparse
    from fpdf import FPDF
    
    def makePdf(template):
        width, height = 600, 800
        initFlag = False
        lin = 0
        fontsz = 12
        fontfm = 'Arial'
        fontst = 'B'
        for i in template.split('\n'):
            line = i.replace('\r','').lstrip()
            if not line:
                continue
            if line.startswith(';'):
                continue
            L = [x for x in line.split() if x]
            cmd = L[0].upper()
            rest = string.join(L[1:])
            if cmd == 'SZ':
                #set document size
                _w, _h = L[1].split(',')
                width, height = int(_w), int(_h)
            if not initFlag:
                initFlag = True
                pdf = FPDF(unit = "pt", format = [width, height])
                pdf.add_page()
                pdf.set_font('Arial', 'B', fontsz)
            if cmd == 'NEWP':
                #new page
                pdf.add_page()
            if cmd == 'FONTSZ':
                #font size
                fontsz = int(rest)
                pdf.set_font(fontfm, fontst, fontsz)
            if cmd == 'FONTFM':
                #font family
                fontfm = rest
                pdf.set_font(fontfm, fontst, fontsz)
            if cmd == 'FONTST':
                #font style
                fontst = rest
                pdf.set_font(fontfm, fontst, fontsz)
            if cmd == 'PR':
                #insert text with left align
                pdf.cell(0, fontsz, rest, align='L')
                pdf.ln()
                lin += fontsz
            if cmd == 'PRC':
                #insert centered text
                pdf.cell(0, fontsz, rest, align='C')
                pdf.ln()
                lin += fontsz
            if cmd == 'LN':
                pdf.ln()
                lin += fontsz
            if cmd == 'COL':
                #next 'pr' or 'prc' command will insert text starting from 'col' position
                col = int(L[1])
                pdf.cell(col)
            if cmd == 'IM':
                #insert image from local folder
                filename, _w, _h = L[1].split(',')
                width, height = int(_w), int(_h)
                filepath = os.path.sep.join((os.getcwd(), filename))
                pdf.image(filepath, w=width, h=height)
        output = pdf.output(None, "S")
        return output
    
    
    template = '''
    ;
    ; Internal test template
    ;
    sz 600,800
    fontfm Arial
    fontsz 32
    pr Test 1 32 left
    prc Test 2 32 center
    pr Test 3 32 left
    fontsz 16
    pr Test 1 16 left
    prc Test 2 16 center
    pr Test 3 16 left
    im 122.jpg,200,100
    fontst 
    fontfm Times
    fontsz 32
    pr Test font Times 32
    prc Test font Times centered
    im 200.jpg,200,100
    fontsz 64
    pr Test font Times 64
    fontfm Arial
    fontsz 32
    pr Test font Arial 32
    fontsz 24
    pr Test font Arial 24
    fontsz 16
    pr Test font Arial 16
    newp
    fontfm Times
    fontsz 32
    pr Test On new page Times 32
    fontfm Arial
    fontsz 32
    pr Test On new page Arial 32
    '''
    
    if __name__ == "__main__":
        try:
            parser = argparse.ArgumentParser()
            parser.add_argument("-t", help="demo generate test.pdf",
                action="store_true", default=False)
            parser.add_argument("-i", type=str, help="input filename")
            parser.add_argument("-o", type=str, help="output filename")
            args = parser.parse_args()
            if args.t:
                print 'Generate test.pdf from internal template'
                with open('test.pdf', 'wb') as f:
                    f.write(makePdf(template))
            else:
                if args.i:
                    inputfile = args.i
                    outputfile = args.o or '{}.pdf'.format(inputfile)
                    print 'Generate {} from {}'.format(outputfile, inputfile)
                    with open(outputfile, 'wb') as f:
                        with open(inputfile, 'rb') as ff:
                            template = ff.read()
                        f.write(makePdf(template))
                else:
                    parser.print_help()
        except Exception as ex:
            print ex
    
    

    Sablonul de test inclus in program face referire la doua imagini jpg (122.jpg si 200.jpg) si imaginile trebuie sa existe in folderul curent.

    Un alt exemplu de sablon:

    
    ;
    ; Sablon de test
    ;
    
    sz 600,800
    fontfm Arial
    fontsz 32
    prc Page 1
    pr Test 1
    fontsz 16
    prc Page 1
    pr Test 2
    newp
    fontsz 32
    prc Page 2
    pr Test 1
    fontsz 16
    prc Page 2
    pr Test 2
    
    

    Varianta pentru client include un server XML-RPC care stocheaza imagini si genereaza rapoarte pdf.


  • Simplitatea programarii in Python, instructiunea "with"

    05-Apr-2018 15:16 - 34 vizionari

    Am ajuns sa apreciez simplitatea limbajului Python.

    Pana acum am fost incantat de viteza cu care poti schita si testa o solutie.

    Doua exemple particulare de utilizare a instructiunii "with".

    Masurarea timpului de executie a unei secvente de instructiuni:

    
    #
    # afiseaza diferenta de timp time.time() dintre momentul initial si cel final
    #
    
    class MyT(object):
        '''
            My time it class
            ex:
            with MyT('label'):
                ...
                some code
                ...
        '''
        def __init__(self, label=''):
            self.label = label
        def __enter__(self):
            self.t = time.time()
        def __exit__(self,exc_type, exc_val, exc_tb):
            print '{}: {:.4f} sec.'.format(self.label, time.time() - self.t)
    
    
    #exemplu de utilizare:
    with MyT('test o secunda'):
        time.sleep(1)
    
    
    

    Inchiderea automata a sesiunii SQLAlchemy, chiar si in caz de eroare:

    
    #
    # necesita definirea functiei getSession(), functie care returneaza o sesiune SQLAlchemy
    #
    
    class MyS(object):
        '''
            My session class
            ex:
            with MyS() as session:
                ...
                session.query(...)
                session.add(...)
                session.delete(...)
                ...
        '''
        def __init__(self):
            self.session = None
        def __enter__(self):
            self.session = getSession()
            return self.session
        def __exit__(self,exc_type, exc_val, exc_tb):
            if self.session:
                self.session.commit()
                self.session.close()
    
    #exemplu de utilizare:
    with MyS() as session:
        searchterm = '%{}%'.format(self.components.filtru.text)
        allDocs = session.query(Documente).filter(Documente.titlu.like(searchterm))\
            .order_by(Documente.dataora_modificat.asc()).all()
        ...
    
    
    

    Programarea este o arta, iar codul este poezie!


  • Suprematia robotilor si Venitul Universal

    01-Apr-2018 11:35 - 44 vizionari

    Citind cateva articole pe Internet, Machine Economy vs. Universal Basic Income, The Machine Economy: An Essay on The Communication of Value in an Automated Economy, Universal Basic Income - The Answer to Automation?, BIEN - Basic Income Earth Network, observ ca viitorul este foarte luminos si nu este pacaleala de intai aprilie: datorita progresului tehnologic robotii vor munci in locul oamenilor, iar oamenii vor primi un venit universal (ajutor social) asigurat de stat.

    Eu ma hazardez in predictie si adaug: robotii vor atinge nivelul de autonomie in care se vor repara, proiecta si imbunatati singuri, iar oamenii vor sta toata ziua pe Internet, pe retelele de socializare si pe jocuri online, vor ajunge ca omuletii din filmul WALL-E (2008) si vor uita sa mai studieze matematica, fizica, chimie, tehnologie, … si in 2-3 generatii vor uita complet cine au fost si ce realizari tehnice au avut si vor trai ca in Rai, bucurandu-se de viata ca niste copii, bucurie trecatoare, pentru ca numai la prima vedere ignoranta este fericire si extaz.

    Venitul Universal a fost deja implementat in cateva regiuni ale planetei, detalii pe futurism.com, anul 2016 avand implementari in Kenya, Finlanda, Elvetia, Olanda.

    Bani fara munca (ajutor social) oferit lunar: 550 euro in Finlanda, 2500 franci elvetieni ($2,623) in Elvetia, $980 in Olanda.

    Cel mai mare proiect experimental privind Venitul Universal se desfasoara in Kenya cu 30 milioane de dolari, beneficiari fiind 6000 de oameni, iar perioada este de 10-15 ani.  (Daca dureaza 15 ani, fiecare primeste lunar $27.7, daca dureaza 10 ani, fiecare primeste lunar $41.6).

    Venitul Universal este o idee mareata, dar tot nedreapta ramane: in Africa fiecare participant primeste $27-$41, iar in alte tari fiecare primeste de la $600 la $2,600, adica, in medie, de 94 de ori mai mult.

    Eu visez la societatea ideala ca fiind cea descrisa in Star Trek: fiecare munceste dupa puteri fara sa primeasca si fara sa foloseasca bani (cu ceva exceptii), mancare gratis, energie gratis, sisteme autonome si independente, iar singura amenintare este necunoscutul, neprevazutul si eroarea umana.


  • Web 3.0 si aplicatiile descentralizate

    29-Mar-2018 16:31 - 46 vizionari

    Astazi Youtube mi-a sugerat o prezentare din septembrie 2017, pe care am considerat-o foarte interesanta si care demonstreaza cat de mult sunt in urma cu tehnologia …

    Este vorba despre un film-ghid care vorbeste despre tehnologiile web si aplicatiile descentralizate.

    Primele aplicatii foarte populare si executate descentralizat au fost aplicatiile torrent, apoi au urmat aplicatiile de moneda virtuala (tehnologia blockchain).

    In film se spune ca initial a fost Web 1.0 prin anii 90: un sistem distribuit de servere (aproape fiecare nod web era construit acasa ca server de web) care ofereau informatie in pagini statice cu link-uri catre alte servere de web. Cautarea se facea cu Amazon, Magelan, Yahoo, … Web 1.0 este perioada indexarii paginilor statice.

    Apoi a urmat Web 2.0: un sistem centralizat oferit de mai marii Internetului (Google, Amazon, Microsoft) care gazduiau servere de web si ofereau servicii diverse, era retelelor de socializare, a webului interactiv si a informatiei dinamice obtinute dintr-un singur punct (google, yahoo, facebook) format dintr-o ferma de servere.

    Acum urmeza Web 3.0: sisteme distribuite (calculul este raspandit pe mai multe noduri nu pe un singur nod) si descentralizate (multe servere, daca se opresc cateva noduri nu e problema, la repornire se sincronizeaza) de servere in care cautarea se face pe baza semnificatiei informatiei (cautare inteligenta) nu pe cuvinte cheie si accesul la informatie se face prin IPFS sau https://ipfs.io/ - InterPlanetary File System. IPFS foloseste tehnologia blockchain utilizata de bitcoin pentru stocarea si regasirea informatiilor intr-o retea distribuita.

    O alta referinta interesanta gasita in film este https://steemit.com/ - poti sa fi platit pentru informatii de calitate, iar calitatea este votata de cititori si exista mecanisme anti frauda ca un fel de antidot pentru stirile false de pe Internet.

    Acum am de studiat Ethereum. si web3.js (protocolul Ethereum implementat in JavaScript = Generic JSON RPC) si limbajul Solidity executat pe nodurile Ethereum.


  • Pacaleala colesterolului

    19-Mar-2018 16:50 - 57 vizionari

    Pacaleala colesterolului, una din marile escrocherii ale afacerilor cu medicamente, demonstreaza cat de ridicat a ajuns nivelul de degradare al societatii umane din secolele 20-21.

    Poate ca este este o stire falsa sau poate ca nu, pentru ca nu iese fum fara foc.

    Primul film: https://www.youtube.com/watch?v=RCGZSLFrngY

     

    Din film:

    Studiul Jupiter a fost o mare realizare pentru companiile farmaceutice pentru ca a pacalit oamenii sa ia medicamente fara sa aiba nevoie.
    Dar abea in in 2010 s-a publicat un raport care a invalidat studiul Jupiter si necesitatea medicamentului Statin.
    Companiile farmaceutice au investit peste 250 milioane $ (aproximativ 1% din profitul pe anul respectiv) ca sa plaseze medicamentul pe piata.
    Inselarea medicilor privind dovezile stiintifice ar trebui sa fie considerata crima organizata.
    Prezentarea eronata a faptelor stiintifice medicilor si publicului ar trebui sa fie considerata crima organizata.
    Doctorii sunt indoctrinati de pe bancile scolii privind natura colesterolului si prevenirea lui prin medicamente.

    Al doilea film: https://www.youtube.com/watch?v=xpYT65A8vMo

     

    Din film:

    In 1984 revista Time publica pe coperta un articol despre cat de periculos este colesterolul.
    In 2014 tot revista Time publica pe coperta ca cercetatorii s-au inselat in privinta colesterolului si ca untul este bun si ca grasimea este benefica …
    In film rata de mortalitate se ia ca numar de decese la 100 de mii de locuitori (100k).
    Paradoxul francez: francezii consumau mancare grasa si cu multi carbohidrati si aveau un numar redus de boli de inima.
    Francezii consuma grasime saturata (15.5%) mai mult decat britanicii (13.5%) dar au rata de decese din motive cardiace cu o treime mai mica: 63 la 100k la englezi si 22 la 100k la francezi.
    Probabil explicatia e data de consumul de alcool: vinul rosu reduce bolile de inima.
    Paradoxul islandez: islandezii consuma (14.6%) mai multa grasime saturata decat englezii (13.5%), dar rata de decese din boli de inima este de 34 la 100k la islandezi si de 63 la 100k la englezi.
    In Danemarka se consuma mai putina grasime saturata (12.6%) decat in islanda (14.6%) , dar mortalitatea din boli de inima este mai mare in Danemarca (38) fata de Islanda (34).
    Mortalitatea cea mai mare a deceselor din boli de inima este in Lituania (126 oameni la 100k), desi consuma numai 7.7% grasimi saturate.
    Paradoxul Grecesc: in satul Anogia, desi se consuma mancare cu multa grasime, mortalitatea din boli de inima este foarte scazuta.
    Paradoxul din Sardinia, mai ales in regiunea Barbagia: acolo se gaseste un numar foarte mare de oameni care depasesc o suta de ani, iar dieta lor e compusa aproape numai din carne si branza.
    Japonia: mortalitatea din boli de inima e la 1/3-1/5 fata de cea din SUA.
    Japonezii in ultimii 50 de ani au crescut aportul de grasimi saturate cu 200%, colesterolul a crescut cu 25-30%, procentul de boli de inima a scazut cu 70%, iar atacurile de cord au scazut cu 700%.

    Concluzia: colesteroul este bun (o spun statisticile) si nu este legat de bolile de inima si medicamentele te omoara (o spun scandalurile) incet si sigur.

    Observ ca ne indreptam spre un scenariu desprins din nuvela Brave New World scrisa de Aldous Huxley, cine nu a citit cartea (ca mine) poate viziona filmul. Sunt cel putin doua filme, unul din 1980 si altul din 1998: intr-o societate moderna, undeva in viitor, populatia era tinuta sub control (docilizata) si mentinuta fericita prin droguri euforice si sloganuri manipulatoare, difuzate non stop, chiar si in somn, de genul: muncitorul (delta) nu este mai prejos de seful de tura (gama), nici seful de tura nu este mai prejos decat managerul de productie (beta) si nici managerul de productie nu este mai prejos decat directorul fabricii (alfa), pentru ca toti contribuie la progresul societatii, …



Ultimele pagini: RSS

Alte adrese de Internet

Categorii

Istoric



Contorizari incepand cu 9 iunie 2014:
Flag Counter
Serviciul DNS este oferit gratuit de Free DNS.

Atentie: Continutul acestui server reprezinta ideile mele si acestea pot fi gresite.