Skip to content
Jun 16 13

Change character set of all MySQL tables

by Tomek

Yes, you did it again. Created new MySQL database on defaults, your automated database migration tool created tables on defaults and you end up with latin1_swedish everywhere.

Next time you will remember to execute

  1. CREATE DATABASE new_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

But since milk is already spilt you can save the day and convert your tables (and VARCHAR fields too) with one-line-saviour:

  1. ALTER TABLE mytable CONVERT TO CHARACTER SET utf8
Apr 19 13

RESTful web services presentation

by Tomek

4Developers 2013 is over, and it was really great event - I'd say too great because it was technically impossible to listen to 12 presentations at once. The big plus was possibility to meet people you would not meet in normal circumstances: .NET developers, UX people, project managers and more. Unlike on typical Java event you could have taken fresh breath and listen to something completely different.

Responding to requests here is my slide deck:

You may also want to see:

If you are fan of JSON as data transfer format, you might be interested in

Books

There are couple of books that may be interesting reading.

Restful Web Services by Leonard Richardson

REST in Practice: Hypermedia and Systems Architecture by Jim Webber

Both of them provide in-depth course on RESTful web services, and there are mocked up example applications which are designed and developed through the book.

Oct 10 12

Mac Gems: easy PDF creation

by Tomek

One of the niceties of Mac OS X is great support for PDF documents out of the box. And it has been for very long time: PDF is just first class citizen in Mac's operating system.

One task that we may need to perform is to combine multiple JPEGs into one multi-page PDF file. In Windows world I'd start looking for software, hoping to find something free. In Mac OS X first thought leads to powerful, but a little obscure tool: Automator.

Apparently, this job is done by just a few clicks. Start with creating new workflow. Next, from PDFs category, choose "New PDF from images". Second click is to plug any source of files - I had mine in iPhoto, and quickly found "Ask for Photos" workflow step.

Last step is to just run the workflow, pick images from iPhoto and in a second, nice PDF is waiting on your desk(top).

 

Aug 29 12

Komunikacja w San Francisco – jak się poruszać po mieście

by Tomek

Ten tekst jest moim skromnym wkładem w budowę źródeł przydatnych informacji dla turystów czy po prostu ludzi którym przyjdzie tu zostać dłużej niż jedną noc.

San Francisco ma rozbudowany system komunikacji miejskiej, pod względem intensywności ruchu jest on na drugim miejscu w USA.

W mieście funkcjonuje kilka firm transportowych, część z nich operuje połączenia między miastami w rejonie zatoki, np. BART (Bay Area Rapid Transfer), czy obsługuje rejon na północ od mostu Golden Gate (Golden Gate Transport). W mieście poruszamy się dzięki SF Municipal Transportation Agency, w skrócie SFMTA nazywana po prostu “Muni”.

Komunikacja jest świetnie zorganizowana: w mieście kursują autobusy i trolejbusy oraz premetro - w centrum miasta schowane pod ziemią, dalej wyjeżdżające na powierzchnię.

Wszystkie pojazdy kursują bardzo często, do tego stopnia że na przystankach nie ma rozkładów, tylko tabelkę częstotliwości odjazdów. Nawet w odleglejszej części miasta wystarczyło stanąć i poczekać - w ciągu 10-15 minut zwykle coś nadjedzie. W razie wątpliwości na przystankach są wyświetlacze informujące o najbliższych odjazdach, dla niewidomych automaty gadające po naciśnięciu przycisku, a w ostateczności można zadzwonić na numer 511, ewentualnie wysłać SMS-a na numer 41411. Posiadacze smartfonów mogą z kolei wejść na stronę nextmuni.com, która odczyta położenie telefonu i wyświetli odjazdy z najbliższych przystanków.

Na ziemi cały czas kursują zabytkowe tramwaje linii F - tabor stanową odrestaurowane wagony z lat 40 i 50, odkupione od innych miast. Każdy jest inny, i każdy ma swoją historię, o której można przeczytać na w środku. Jedną z pętli F ma w Fisherman’s Wharf, turystyczna okolica nad brzegiem zatoki z mnóstwem barów, restauracji i sklepów z pamiątkami.

MUNI obsługuje również ikoniczne tramwaje linowe: w mieście są dwie linie: oblegana przez turystów północ-południe (startuje na skrzyżowaniu Powell i Market i dojeżdża do Fisherman’s Wharf) i mniej obłożona wschód-zachód, jadąca wzdłuż California Street. Warto się wybrać tą drugą, i pokonać malowniczo górzystą ulicę i wysiąść w Chinatown. Tramwaj linowy jest zasilany biegnącą pod ziemią stalową liną. Sterowanie takim tramwajem jest bardzo trudne wymaga ogromnych umiejętności. “Motorniczy” dwiema wajchami łapie chwytakiem linę by tramwaj jechał i hamuje w razie potrzeby.

Bilet kosztuje $2.00, i kupuje się go u kierowcy wkładając monety i banknoty do automatu, ale lepiej kupić bilet okresowy (“muni visitor pass”). A jeszcze lepiej wziąć kartę Clipper, która jest ważna we wszystkich środkach transportu w mieście. Na każdej stacji metra są automaty, które pozwalają “załadować” kartę potrzebnymi produktami. Może to być gotówka (karta wtedy służy do płacenia za pojedynczy przejazd), ale może to być bilet tygodniowy na MUNI, albo bilet miesięczny na kolejkę podmiejską BART. Kupując bilety kartą Clipper można zyskać rabat - czasem drobny, a czasem dosyć spory (np. na promy).

Sama karta Clipper jest darmowa, ale od 1 września 2012 będzie kosztować 3 dolary, co ma zachęcić użytkowników do uzupełniania karty zamiast jej wyrzucania i brania nowej. Kartę najprościej kupić w sklepach Walgreens, które w mieście są niemal co krok.

Poruszanie się po mieście jest bardzo łatwe i wygodne - po kilku dniach pobytu zna się już większość niuansów tutejszej komunikacji miejskiej :)

Jul 5 12

Japoński off-topic

by Tomek

W życiu większości blogów tematycznych musi się zdarzyć epizodyczne odejście od głównego nurtu. Skuszony możliwością wygrania kilku ciekawych fantów prosto z Japonii, wziąłem udział w

Trzecim wsiowym mini konkursiku blogowym

zorganizowanym przez Anię "Dwa koty" mieszkającą na wsi w Japonii i prowadzącą bloga o jej życiu w Japonii. Nie jest on zaadresowany do hardcorowych japonofilów, bo blog jest bardziej osobisty niż ogólnojapoński, ale to mi odpowiada. Do wygrania są koszmarnie różowe rzeczy, ale rodzice pięcioletnich córek na pewno mnie zrozumieją:

Różowości


May 29 12

Pimp my Git

by Tomek

It is not hip anymore to use Git. Git went mainstream, and you should really watch out for suddenly appearing Gits.

Git has many faces, there is growing number of graphical clients, but command line interface is essential to master, and unfortunately not truly user friendly. Let's see what can be done. read more...

May 20 12

Server behind NAT not available in LAN

by Tomek

Personal note to remember, but it may be helpful for anyone.

Case: Linksys router with DD-WRT 2.4 software (which is most important part of the problem). Personal web- (or other) server connected to Internet via NAT. Port forwarding is configured.

Problem: apparently services are accessible only from Internet, not from local network.

Solution:

iptables -t nat -I POSTROUTING -o br0 -s 192.168.1.0/24 -d 192.168.1.0/24 -j MASQUERADE

Apparently adding missing  rule to "nat" table solves the problem.

Feb 11 12

Syringe: Dependency Injection dla iOS/OSX

by Tomek

Artykul dostepny w wersji angielskiej. read more...

Jan 30 12

Gadu-Gadu skanuje przesyłane URLe

by Tomek

Rozmowa z kolegą znającym się na administrowaniu Linuksem zazwyczaj prowadzi do podniesienia poziomu mojej wiedzy tajemnej. Czasami pozwoli na dokonanie jakiegoś wiekopomnego odkrycia, którym nawet można zaskoczyć mądrzejszego kolegę :-)

Konfigurując router, by pozwolił mi otworzyć stronę WWW na moim własnym serwerze, poprosiłem kolegę o pomoc. Wysłałem przez Gadu-Gadu linka do strony WWW, i w tym samym momencie w access.log pojawił się wpis:

91.197.15.34 - - [30/Jan/2012:11:19:15 +0100] "GET / HTTP/1.1" 200 761 "-" "-"

Właścicielem tego adresu jest:

inetnum:        91.197.12.0 - 91.197.15.255
netname:        GADU-GADU
descr:          GG Network S.A.

Najprostsze wyjaśnienie to rutynowe sprawdzanie linków przed dostarczeniem, czy nie zawierają stron które mogą zaszkodzić użytkownikowi. Chociaż w świetle ostatnich kontrowersji na temat pewnej umowy międzynarodowej, definicja "szkodliwości" i tego co ma zostać odfiltrowane, może zostać łatwo poszerzona...

Jul 21 11

Wspólny WAR na wiele środowisk w Grails

by Tomek

Niestety ten artykuł jest dostępny na razie tylko w wersji angielskiej.