tapeta na dzis
walka z fikcją
to czego nie lubię to fikcja i jej utrzymywanie. udajesz, że zajmujesz się czymśtam bo taki masz tytuł w pracy, ale realnie robisz zupełnie co innego.
znacie to? oczywiście nie tyczy tylko pracy – może tyczyć czegokolwiek. utrzymujesz nierzeczywisty obraz siebie lub jakiegoś aspektu siebie przed całym światem. tylko po co?
od jakiegoś czasu nie jestem w stanie wykroić czasu na pisanie bloga. bo nie. bo aby cokolwiek móc napisać spędzam całe weekendy przed kompem czytając literalnie tysiące “newsów" ze świata.
jeden weekend mi wypadł bo miałem nienegocjowalne kwestie rodzinne i już pojawia się backlog 5000 newsów.
z jednej strony “no przecież prowadzę bloga, muszę to robić". z drugiej strony – a kogo to obchodzi. nie piszę nic od siebie. wszystko to tylko “przedruki" z innych źródeł, czasem wzbogacone o jakieś informacje wygrzebane na boku.
tak więc – stwierdziłem dziś, że pisanie bloga przeze mnie to fikcja.
a z fikcją trzeba walczyć. zaprzestanie pisania jest trywialne – i tak już nic nie piszę. przez pewien czas będą się jeszcze ukazywały tapety dnia, bo są dodane do wordpressa “naprzód" do 14 marca.
bloga jako takiego nie kasuję – może się kiedyś komuś przyda jakiś wpis techniczny.
jeśli ktoś z was chciałby prowadzić tę stronę dalej – prosze o kontakt. dam hasła, dostępy – jeśli prowadzenie tego typu site'ów was bawi i macie na to czas – to może być fajne. w/g feedburnera mam 111 subskrybentów rss'ów. technorati klasyfikuje go na pozycji 275151. w/g google analytics site w lutym wygenerował 9748 visits i 17182 page views.
triggerek
a dziś mam dla państwa zagadkę.
zagadka powstała wczoraj w firmie, i aż się zdziwiłem, że okazała się taka skuteczna 🙂
zadanie jest proste. mamy tabelkę:
create table posts (id serial primary key, paired_with int references posts (id), title text, body text);
inne kolumny są nieistotne.
i teraz – post może być sparowany lub nie. jak nie jest – w paired_with ma null'a.
jak jest – to ma tam id innego postu.
nie można być sparowanym samym z sobą.
i teraz – chcemy stworzyć trigger lub triggery które utrzymają tam porządek:
- nie dopuszczą do parowania z samym sobą
- pilnują by wszystkie relacje były poprawne. czyli jeśli post 1 jest sparowany z 2 to 2 musi być z 1.
- posty mogą być wstawiane sparowane lub nie
- posty mogą być w dowolnej chwili update'owane.
proste? pewnie, że proste.
jak masz chwilę – napisz tego triggera(y)
jako ciekawostkę mogę podać, że znajomy tworzył wczoraj coś takiego przez kilka godzin 🙂
aha – ów znajomy proszony jest o nie podsyłanie rozwiązania.
tapeta na dzis
technika, technika
jakiś czas temu pisało i trąbiło w mediach, że f16 co to nam amerykanie sprzedali to złom, bo po drodze do polski musiały przymusowo lądować.
jak więc zareagować na to, że najnowsza chluba sił powietrznych usa – f22 raptor miał “buga" który zwieszał kompa od nawigacji przy przekroczeniu 180 stopnia długości geograficznej (następuje wtedy zmiana z “180 stopni wschodniej na 180 zachodniej" albo odwrotnie).
osobiście uważam, że jest to po prostu słodkie.
tapeta na dzis
5 rzeczy których nie chcieliście wiedzieć i nigdy o nie nie pytaliście.
co najmniej 3 osoby mnie naznaczyły (elf, ata i tmarc), więc lecimy:
- w 4 czy 5 klasie podstawówki przyniosłem do szkoły penthouse'a. koledzy mieli radochę, ja opierdziel.
- wyrzucono mnie ze szkoły (liceum) za to że namalowałem grafitti na korytarzu. tyle, że tego nie zrobiłem.
- mam kilka świetnych pomysłów na zarabianie kasy. i jedynie nie potrafię się zebrać w sobie i zabrać za to by je zrealizować. i tak od kilku lat. a pomysłów przybywa.
- nie mam w ogóle pamięci do twarzy czy nazwisk. jestem w stanie całkowicie bezstresowo nie zauważyć bądź nie poznać na ulicy osoby z którą pracuję od lat. co gorsza – nie robię tego celowo.
- nie czytam książek informatycznych. żadnych. niby jako programista/bazodanowiec powinienem, ale nudzą mnie. uważam, że jest z nimi jak ze świnkami morskimi – ani to świnka ani morska.
co do kolejnych ofiar:
tapeta na dzis
nowości w postgresie 8.3 – prompt
weszlo do cvs'a, wiec już chyba mogę opisać.
rzecz jest prosta.
od jakiegoś czasu w psql'u można używać zmiennych. przykład:
# \set a 123 # \set b '''depesz''' # select :a, ':b'; ?column? | ?column? ----------+---------- 123 | depesz (1 row)
zastosowanie jest oczywiste – prostsze pisanie sql'i z jakimiś zmiennymi.
minusy są dwa – utrudniona składnia do definiowania zmiennych tekstowych (potrójne apostrofy). i dwa – skoro i tak można tu ustawić tylko w skrypcie sql to funkcjonalność znikoma.
tak było do teraz.
ostatnio pojawił się patch na psql'a (i wszedł do cvs'a) dodający polecenie \prompt.
polecenie to pyta (zadanym tekstem) po czym odpowiedź użytkownika zapisuje do podanej zmiennej.
perfekcyjna sprawa gdy chcemy np. sparametryzować patch-bazodanowy.
przykład:
# \prompt 'Numeryczny identyfikator backupu? ' backup_id Numeryczny identyfikator backupu? 123 # \echo :backup_id 123 # create table backup_:backup_id as select * from pg_proc; SELECT # select count(*) from backup_123; count ------- 2007 (1 row)
sweet 🙂