You broke the build!

July 16th, 2010

Kopš šīs dienas Agnes pensionējas un viņas pienākumus turpmāk pildīs Inigo Montoya.

Here be dragons!

July 6th, 2010

Dažreiz gribas, lai plkst. 18:00 es varētu aizmirst par kārtējo dragonu un tas mani nesatrauktu līdz nākošās dienas 9:00. Bet nē – tas neļauj man gulēt un jāmeklē cēloņi, līdz sasniegšu “Aha, elementāri!” momentu.

Ne velti Engineers Explained rakstīts: The fastest way to get an engineer to solve a problem is to declare that the problem is unsolvable. No engineer can walk away from an unsolvable problem until it’s solved.

Retro beach cruiser made in USSR

June 27th, 2010

OOP puzzle

June 3rd, 2010

Objektorientētā programmēšanā alus pudelēm pārāk bieži ir tendence pašām sevi attaisīt un izdzerties.

Taisnīguma dēļ jāpiebilst, ka procedurālā programmēšanā pārāk bieži mēģina izdzert neattaisītu alus pudeli.

Using C++ in GCC is OK

June 1st, 2010

Pirms kāda laika tika ieguldīts darbs, lai GCC kompilētos ar C++ kompilatoru, nevis C kompilatoru – jo C++ kompilators veic striktākas pārbaudes. Tagad pašā GCC drīkstēs lietot C++. Un tas vienā no svarīgākajām un lielākajām GNU programmām, kas rakstītas C. Nevar saprast – vai nu C++ ir sasniedzis pietiekamu brieduma pakāpi vai GNU projektus pārņem “svaigas asinis”.

Jāsagaida GCC C++ vadlīnijas, lai redzētu, ko C++ kompilatora autori uzskatīs par “pieņemamo” C++ iespēju komplektu. Googles C++ vadlīnijas tādā ziņā vietām ir arhaiskas. Piemēram – “nelietot izņēmumus (exceptions) un RTTI”, lai gan var arī saprast viņu argumentāciju.

What really matters in programming.

May 30th, 2010

Skaisti:

It is not about solving puzzles and being the brightest kid in the class. It is about realizing that the complexity of software dwarfs even the most brilliant human; that cleverness cannot win. The only weapons we have are simplicity and convention.

Jonathan Edwards – Mea Culpa

Father 2.0

May 19th, 2010

Mēnesis un 2 dienas, kopš esmu Father 2.0. Stradiņi dēlam piešķīra bērna dzimšanas apliecību ar numuru 0666, bet man ir aizdomas, ka nulle priekšā ir tikai pieklājības dēļ. Diemžēl dokuments palika dzimtsarakstu nodaļā.

Tikmēr vecākais dēls (2.5 gadi), ar pirkstu rādot nākošo video, YouTube plašumos uzgājis hipnotizējoša bērnu dziesmu un meitenes ar baloniem (ir aizdomas par meiteņu profesiju…), kas tagad ir viņa mīļākajā pleilistē.

Lifetime of most new programming languages

May 17th, 2010

The quick death: Invented by 1 person, used by 1 person, dies within a year.

(No prezentācijas par Haskell)

Readability

April 11th, 2010

Labākais pēdējā laika atklājums – Readability. Tādā veidā var noslēpt visu traucējošo portālu reklāmu (troksni) un lasīt informāciju paša izvēlētā formātā.

I’d rather write code that writes code than write code.

April 7th, 2010

Python kods, kas ģenerē python kodu, kas ģenerē PL/SQL kodu.
Bet atslodzei python kods, kas ģenerē SQL.
Jo rakstīt kodu ir pārāk vienkārši.

OCI, OTL un CLOB/BLOB

March 5th, 2010

Ja augstāk minētie burtu salikumi ir pazīstami…

Jau pagājuši pāris gadi kopš dienas gaismu ieraudzīja manis rakstīta Oracle OCI bibliotēka un šobrīd tā turpina savu izplatību gandrīz visā jaunajā kompānijas kodā. (Pat ja objektorientēta programmēšana ir atbilde, C++ un ORM īpaši nedraudzējas).

Šonakt bibliotēka beidzot tika pie īsta CLOB/BLOB atbalsta, ļaujot iznīdēt pēdējos PRO*C bastionus. Un dara to, manuprāt, elegantāk par savu paraugu OTL. No ārpuses tas ir tikpat vienkārši kā kā OTL darbs VARCHAR2 laukiem, toties iekšpusē… ir OCI data interface ar dinamiskiem bind/define mainīgajiem un piecewise operācijas. Maģija.

Getting Real about NoSQL and the SQL-Isn’t-Scalable Lie

March 4th, 2010

In the case of the NoSQL hype, it isn’t generally the inventors over-stating its relevance — most of them are quite brilliant, pragmatic devs — but instead it is loads and loads of terrible-at-SQL developers who hope this movement invalidates their weakness.

Interesanti būs pēc gadiem trim paskatīties uz to, kas paliks pāri no visām (“katram izstrādātājam sava”) NoSQL datubāzēm.

Ko mamma tev nestāstīja par Oracle MERGE priekšrakstu

February 26th, 2010

Oracle MERGE priekšraksts (jeb upsert) ļauj ar vienu operāciju izmainīt ierakstu vai pievienot to, ja šāds ieraksts vēl neeksistē. Apmēram:

IF ieraksts atrasts
    THEN UPDATE
ELSE
    INSERT;

Kas nav acīmredzams, bet patiesībā loģisks rezultāts: veicot operāciju ar primāro atslēgu “ON” daļā ir iespējams iegūt kļūdu “ORA-00001: unique constraint (…) violated”. Respektīvi – starp brīdi, kad Oracle noskaidro, ka ieraksts neeksistē un veic INSERT, kāds cits process, veicot MERGE operāciju, var paspēt izpildīt INSERT pirmais.