Archiwum dla maj, 2009

“Drzewo genealogiczne” języków programowania

Przy poszukiwaniu pomysłu na zrealizowanie deklaracji etykiet, idąc po hiperłączach pajęczyny natknąłem się na stronie domowej Éric Lévénez’s na wykres prezentujący rozwój  języków programowania od roku 1954 (od Fortrana) do aż do obecnego 2009. Na wykresie jest wyszczególnione 50 języków programowania. Wykres w PDFie jest dostępny w formie plakatu lub podzielony na strony A4.  Polecem ;)

Tworzenie ozdobnych pendrivów

Prezentacja polskiej, przydomowej firmy produkującej pendriv’y w drewnianej, zdobionej ozdobie. Brawo za pomysł na własny biznes :)

Maszyny cyfrowe zwane komputerami

Na ulicy polnej w Warszawie każdy może wybrać potrzebne mu usługi, jest tu i taka niebywała firma która świadczy usługi w tempie 30 000 na sekundę! Zakład elektronicznej techniki obliczeniowej…

To cytat z poniższego fragmentu filmu pochodzącego z kroniki filmowej PRL, dotyczącego maszyn cyfrowych zwanych komputerami. Dziwnie się patrzy na to z perspektywy tego kto nie miał nieszczęścia żyć w tamtych czasach ;p

ROT13

Chyba każdenu programującemu znany jest ten trywialny algorytm szyfrujący, ale na wszelki wypadek poniżej kod w C gdyby ktoś nie…

#include <stdio.h>
#include <string.h>

int main (int argc, char* argv[]) {
 int i = 0;
 for (i = 0; i != strlen (argv[1]); ++i) {
 char *c = &argv[1][i];
 if (!isalpha(*c))
 continue;

 if (*c  'Z'|| (*c) + 13 > 'z')
 (*c) -= 26;
 (*c) += 13;
 }
 printf ("%s\n", argv[1]);    
 return 0;
}

lub ciekawsza implementacja, nie mojego autorstwa, pochodząca całego zbioru implementacji tego algorytmu w różnych językach:

int main ()
{
 register char byte, cap;
 for(;read (0, &byte, 1);)
 {
 cap = byte & 32;
 byte &= ~cap;
 byte = ((byte >= 'A') && (byte <= 'Z') ? ((byte - 'A' + 13) % 26 + 'A') : byte) | cap;
 write (1, &byte, 1);
 }
}