Фотографування та GPS

В доісторичні часи, коли фотоапарати були виключно плівковими, основну інформацію про фото ручкою або олівцем записували на звороті фотокартки. Зазвичай там писали дату, місце а також хто зображений на фото.
Інколи додаткову інформацію наносили ще в фотостудії, для прикладу на фото справа зображений я, фото зроблене в 1988 році в Лубнах (Полтавська область).

Коли фотоапарати стали цифровими — відпала необхідність записувати дату та час, камера автоматично додає до властивостей фотографії цю інформацію (головне правильно налаштувати внутрішній годинний камери і не забувати переводити його на літній/зимовий час або на інший часовий пояс в подорожах).
Хоча я не раз бачив цифрові фотографії, що мали проштамповані дату та час в кутку.

Розпізнавання облич на фотографії з’явилося в програмах та онлайн сервісах не так давно (кілька років тому). Але воно може допомогти навести лад в фотоальбомах та майже автоматично зробити персональні фотоальбоми для кожної людини, яку ви фотографували.
Єдиний суттєвий недолік — якщо у вас десятки тисяч фотографій з людьми (як у мене) то процес обробки може зайняти досить тривалий час.

З визначенням місця все значно складніше. Потрібно постійно повідомляти камері в якому місці вона знаходиться.

Найкраще з цим справляються сучасні телефони, що мають до 3х джерел координат — GPS, навігація за базовими станціями та навігація за мережами WiFi. В результаті фотографії, зроблені телефоном на базі Android та iOS, мають інформацію про те, де вони були зроблені (з різним ступенем точності).

Деякі цифрові фотоапарати теж мають вбудований GPS але я таких камер поки в руках не тримав. Яндекс.Маркет видає біля 30 моделей з GPS але в основному це мильниці.

Дзеркальні фотоапарати розраховані на розширення функціоналу додатковими аксесуарами тому деякі з них мають спеціальний GPS порт.
До нього можна приєднати пристрої 2х типів — повноцінний GPS приймач, що зазвичай кріпиться на місце спалаху та відносно невеликий Bluetooth адаптер, який працює з окремим GPS приймачем.

Недоліками першого типу в тому, що для визначення координат постійно та активно використовується батарея фотоапарату а також те, що якщо вимкнути а потім ввімкнути фотоапарат то приймачу потрібен деякий час щоб роздуплитися (інколи до кількох хвилин).
Другий тип приймачів використовує зовсім мало батареї фотоапарату а окремі GPS приймачі мають власну батарею та не залежать від вимкнення фотоапарату (хоча можуть «заснути» якщо їх довго не використовувати).

Власне поштовхом до написання цієї статті стало те, що я купив собі Bluetooth адаптер AK-N7000 (останній на малюнку) для Nikon D7000.

GPS приймач GlobalSat BT-359 в мене вже був — я його купив ще для смарфона Qtek S110 на базі (соромно сказати) Windows Mobile 2003. Оскільки тим смартфоном я вже 3 роки не користуюсь (перейшов на T-Mobile G1) то приймач валявся в мене без діла увесь цей час.

Використовувати цей набір досить просто — приєднуєте Bluetooth адаптер до камери, включаєте GPS приймач, чекаєте кілька секунд (стан можна перевірити в GPS меню фотоапарату) і ви готові до зйомки — координати будуть автоматично записуватись у властивості фотографії.
На комп’ютері це все буде виглядати приблизно так (я використовую Picasa для категоризації фото):

Якщо завантажити ці фотографії в Picasa Web то буде згенерована ось така мапа.

З недоліків цього набору — GPS приймач потрібно носити так, що б не заважати йому визначати координати (відкритий простір, зовнішні кишені сумки/рюкзака і т.п.). Сьогодні я сів з рюкзаком за плечима, в якому лежав GPS приймач на металеву лавку зі спинкою, потім встав і одразу зробив кілька фото — вони виявились без координат. В принципі це не важко поправити на комп’ютері якщо попередні та наступні фото мають координати але все одно потрібно дотримуватись певних правил.

AK-N7000 я маю лише тиждень і використовував лише кілька разів. Можливо з часом я напишу більш детальний огляд (з критичними зауваженнями) але поки він мені подобається.

World IPv6 Day

На початку цього року я вже писав про IPv6 і згадував про перше повномасштабне тестування IPv6 в інтернеті 8 червня 2011 року. Оскільки 8 червня (за UTC) вже закінчилося то можна підбивати підсумки.

Підготовка
Ще півроку тому я додав підтримку IPv6 моєму серверу на Linode за допомогою тунелю від Hurricane Electric. Першим сайтом, що отримав підтримку IPv6 ще в січні, став mrgall.com.

Цього травня Linode почала додавати «рідну» підтримку IPv6 в своїх датацентрах але до Лондона (де знаходиться мій сервер) вони обіцяють дістатися лише восени.

За 2 дні до World IPv6 Day я вирішив провести експеримент на ukrbash.org, створивши субдомен i6.ukrbash.net, в якому прописав записи А та АААА (для IPv4 та IPv6) і 1х1 картинку з якого я вставив в усі сторінки УкрБашу.
Також за допомогою JavaScript я зробив перенаправлення з i6.ukrbash.net на i.ukrbash.net (який доступний лише через IPv4) для тих, в кого i6.ukrbash.net не працював (наприклад, якщо IPv6 на комп’ютері активований але насправді не працює).
Оскільки цим перенаправленням скористалося лише 10 користувачів за 2 дні тому я вирішив, що цілком безпечно активувати IPv6 для УкрБашу на 24 години.

«День Д»
World IPv6 Day проходив 8 червня 2011 року з 00:00 до 23:59 за UTC. Оскільки я зараз в штатах, то в мене цей експеримент розпочався о 17:00 7 червня і закінчився рівно за добу. Але оскільки DNS сервери оновлюються кожні 15 хвилин то фактично на УкрБаші він розпочався та закінчився на 15 хвилин пізніше.
Особливих проблем протягом цього дня я не помітив, можливо декілька користувачів не змогли потрапити на УкрБаш але ми про це не дізнаємось (хіба вони самі про це десь напишуть). Значного «просідання» трафіку не було.

Статистика
Статистика враховує всі унікальні IPv6 адреси, з яких заходили на mrgall.com (та субдомени) протягом останніх 7 днів а також на ukrbash.org (та субдомени) протягом 24 годин.
На mrgall.com приходить приблизно 400 унікальних відвідувачів на тиждень, на ukrbash.org — 3000 на день.

Всього унікальних IPv6 адрес — 50 (це не рахуючи тих, з яких заходив я)

Використовуючи протокол 6to4 — 24
Використовуючи протокол Teredo — 4
Використовуючи тунель Hurricane Electric — 7
Використовуючи тунель Gogo6 — 1
Використовуючи IPv6 провайдерів — 14

Найбільш цікаві саме ці 14 адрес (бо тунелі та обхідні протоколи це тимчасове рішення).

Україна — Опенсвіт (1 користувач) та Uteam (2 користувачі).
Словенія — Institut Jozef Stefan
Німеччина — University of Leipzig
Чехія — Charles University
США — Layer42 та Google
Канада — iWeb
Бразилія — NIC.br
Нова Зеландія — Rurallink
Японія — WIDE, OGIKUBO та JPNIC

Висновки
Як на мене, World IPv6 Day пройшов вдало.
Звісно цікаво почитати звіти інтернет-гігантів (Google, Facebook, Yahoo) але навіть з мого невеликого експерименту видно, що IPv6 не дуже заважає нормальній роботі сайтів.

Підтримку IPv6 для УкрБашу я вже вимкнув але як тільки мій хостер почне надавати мені IPv6 восени — вона знову з’явиться.
Мій сайт mrgall.com і далі буде продовжувати працювати одночасно через IPv4 та IPv6.

Nikon D7000

Два з половиною місяці тому я купив Nikon D7000 на заміну D40.
Одразу після купівлі було важко розповідати про враження тому я вирішив відкласти написання цього допису на декілька місяців.

На жаль, в мене не було змоги порівняти D40 та D7000 пліч-о-пліч — D40 я залишив в Україні а D7000 купив вже в штатах. D7000 на 250 грам важчий за D40 та трохи більший за габаритами, але це не зменшує його зручності. Збільшення ваги робить його стабільнішим під час зйомки а корпус з магнієвого сплаву — міцнішим (сподіваюсь ця «фіча» йому не знадобиться).

Одне з найголовніших покращень D7000 в порівнянні з D40 (для мене) це наявність додаткового екрану з усіма параметрами зйомки та можливість міняти ці параметри не включаючи великий екран (в D40 додаткового екрану немає). І проблема навіть не в тому, що великий екран швидше саджає батарею (до речі, я вже купив ще одну батарею до D7000 про запас) — просто таким чином керувати параметрами швидше та зручніше.

Диск режимів має значно менше варіантів (відсутні режими «портрет», «пейзаж», «спорт» і т.п.) але цими спеціальними режимами я користувався дуже рідко. Вони не зникли безслідно — їх тепер можна налаштувати через меню на великому екрані (і їх там в 2 рази більше, ніж на D40). Також є режими U1 та U2 (цікаво, скільки грошей заплатив гурт U2 за рекламу на фотоапаратах Nikon? 🙂 які можна налаштувати за бажанням і швидко перемикатися між ними.

Під диском режимів є перемикач швидкості зйомки — один кадр, «швидка» серія (5 кадрів за секунду), «повільна» серія (1-5 кадрів за секунду, швидкість задається в меню), «тихий» режим (шпигунам має полегшити роботу :), зйомка пультом та зйомка з попереднім підняттям дзеркала (щоб мінімізувати тремтіння камери). В D40 це все можна налаштувати лише на великому екрані з меню (також там немає «повільної» серії, «тихого» режиму і т.п.)

D7000 має можливість знімати відео та LiveView (це коли при фотографуванні потрібно дивитися не у видошукач а на екран).
Зйомка відео в мене поки не пішла, а режим LiveView під яскравим каліфорнійським сонцем не дуже зручний 🙂
До речі, видошукач D7000 показує 100% кадру (D40 — 95%).

Ще однією перевагою D7000 над D40 є те, що він має двигунець для автофокусу об’єктивів AF (D40 може робити автофокус лише з об’єктивами AF-S), які коштують дешевше (для прикладу, 50mm f/1.4D AF коштує лише $300 🙂
Але в мене поки немає планів купувати об’єктиви AF.

З новим фотоапаратом я почав знімати в RAW та використовувати Lightroom для обробки фотографій. Picasa нікуди не поділась але тепер я там лише переглядаю фотографії та завантажую їх на Picasa Web для моєї галереї. З недоліків такого підходу — фотографії в RAW займають значно більше місця, ніж в JPG, але це стимулює знімати менше кадрів та економити місце на картці пам’яті та вінчестерах (хоча вінчестера зараз дуже дешеві та об’ємні 🙂
До речі, D7000 має слоти для 2х карток SD, в планах є купівля картки на 32Гб але поки вона мені не потрібна.

Значних недоліків D7000 (як на мене) не має.
Поворотний екран (як в D5100) звісно був би зручним доповненням до можливості знімати відео, але це не дуже критично.
Відео на D7000 можна знімати в 720p @ 30fps або 1080p @ 24fps (D5100 вже вміє 1080p @ 30fps) але це теж не велика проблема для фотоапарата.
Єдине, що я не можу зрозуміти, кому в Nikon заважав режим mass-storage при підключенні до комп’ютера? D40 може працювати як звичайна флешка, для D7000 потрібен додатковий софт (Picasa, Lightroom, Image Capture і т.п.). Добре, що можна дістати флешку з камери та скористатися карт-рідером в ноутбуці.
Сподіваюсь це з часом виправлять в новій прошивці.

В цілому я задоволений оновленням камери, сподіваюсь вона мені послужить значно більше (та головне ефективніше) за D40.

Додано пізніше: Ще одна цікава фіча D7000 — автоматична зйомка фотографій з інтервалом (для прикладу 100 фотографій з інтервалом 1 хвилина), таким чином можна зібрати time-lapse відео. На D40 я це робив приєднавши фотоапарат до комп’ютера.

Перехід з пошти Mail.ru на Gmail.com

Майже всі користувачі Інтернету мають поштові скриньки.
Серед українських користувачів досить популярні поштові сервіси від Gmail.com, Mail.Ru, Ukr.net та I.ua.
Якщо причину популярності Gmail.com ще можна зрозуміти (на мою думку це найкращий з масових поштових сервісів) то чому багато хто й досі використовує Mail.ru — питання відкрите.

Точніше не важко здогадатися, що причин тут декілька, найголовніші серед яких це звичка («якось працює і добре») та побоювання щодо втрати старої поштової адреси (яку знають всі потрібні контакти).

Оскільки мені вже набридло отримувати листи від користувачів Mail.ru, написані українською, але без українських літер то в цьому дописі я спробую детально пояснити, як легко перейти з Mail.Ru на Gmail.com зі збереженням старої адреси.

Логін mrgall.blog.test на скріншотах я використовував для прикладу, в усіх формах потрібно вказувати ваш власний логін.

Gmail.com

В першу чергу потрібно визначитись, чи будемо ми реєструвати скриньку в @gmail.com чи використаємо власний домен.
Якщо у вас є свій сайт і ви в курсі, що таке DNS сервери і як їх налаштовувати, то прочитайте мій допис про реєстрацію в Google Apps.

Якщо ж сайту немає (або ви не бажаєте зв’язуватись з налаштуванням DNS) то йдемо на gmail.com, натискаємо кнопку «Створити обліковий запис» та заповнюємо просту форму.

Після цього натискаємо кнопку «Перейти до облікового запису» і ми опиняємось в новій поштовій скринці.

Порада: зайти в налаштування і обрати опцію «Завжди використовувати https». Цим ви трохи підвищите безпеку своєї скриньки.

Mail.ru

Є два способи перенаправити пошту з Mail.ru на Gmail.com — переадресація пошти з Mail.ru або збір пошти на Gmail.com.
Кожен спосіб має свої переваги та недоліки: переадресація відбувається майже миттєво але вона діє лише для нових листів, збір пошти може перетягти увесь архів пошти з Mail.ru на Gmail.com (папка Вхідні) але отримання пошти відбувається лише 1-2 рази на годину.
Можна спочатку налаштувати збір пошти а коли вся пошта з Mail.ru опиниться в Gmail.com (це тривалий процес, який може тривати навіть 1-2 доби залежно від кількості листів) — видаляємо збір пошти з налаштувань в Gmail.com і налаштовуємо переадресацію в Mail.ru. Не раджу мати одночасно переадресацію та збір — навіщо вам дублікати листів?

Переадресація

Для того, щоб налаштувати переадресацію, заходимо у власну скриньку на Mail.ru, натискаємо «настройки» а потім «Пересылка».

Тут потрібно вказати вашу адресу на Gmail.com та пароль від Mail.ru (сподіваюсь вони у вас різні). Після цього з’явиться повідомлення, що потрібно підтвердити вашу адресу на Gmail.com

Заходимо в Gmail.com, відкриваємо лист від Mail.ru та беремо звідти код. В Mail.ru заходимо в «настройки», потім в «Пересылка» і біля вашої адреси на Gmail.com клікаємо на «подтвердить».

Вводимо раніше отриманий код і переадресація з Mail.ru на Gmail.com готова.

Тепер потрібно налаштувати можливість писати з Gmail.com від вашої скриньки в Mail.ru.
Заходимо в налаштування Gmail.com, переходимо на вкладку «Облікові записи й імпорт» і натискаємо кнопку «Надсилати листи з іншої адреси». У віконці, що з’явиться, вводимо вашу скриньку на Mail.ru і натискаємо кнопку «Наступний крок».

Тут вас запитають, як ви хочете відправляти пошту — через поштові сервери Gmail.com чи Mail.ru. Перший варіант простіший тому я розкажу лише про нього. Натискаємо кнопку «Наступний крок» а потім кнопку «Надіслати підтвердження».

Не закриваючи віконце йдемо на Mail.ru, відриваємо лист від Gmail.com і беремо код. Потім копіюємо цей код у віконце і натискаємо кнопку «Підтвердити».

Тепер ви маєте можливість відправляти листи з Gmail.com як від вашої нової адреси на Gmail.com так і зі старої адреси на Mail.ru. В налаштуваннях Gmail.com є опція, яку адресу підставляти у відповіді на листи, отримані на вашу стару адресу Mail.ru.

Збір пошти

Якщо ж ви бажаєте налаштувати збір пошти на Gmail.com то потрібно натиснути кнопку «Додати протокол POP3 до адреси електроннох пошти» в налаштуваннях на вкладці «Облікові записи й імпорт» (перед тим не забудьте видалити переадресацію на Mail.ru, якщо ви її налаштовували). У віконці, що з’явиться, вводимо вашу скриньку на Mail.ru і натискаємо кнопку «Наступний крок». Тут потрібно вибрати POP-сервер «pop.mail.ru», порт «995» та опцію «Завжди використовувати безпечне з’єднання (SSL) при отримуванні пошти». Опцію «Залишати копію отриманих повідомлень на сервері» вибирайте за бажанням. Потім натискаємо кнопку «Додати акаунт».

Після цього в налаштуваннях Gmail.com має з’явитися інформація про збір пошти з Mail.ru. Це не швидкий процес тому наберіться терпіння.

Якщо ця інструкція виявиться хоч комусь корисною то я можу написати подібні інструкції для Ukr.net та I.ua (вже готові скріншоти) або для інших поштових сервісів.

Протокол IPv6


Історія питання

На початку створення Інтернету ще не було відомо, що за 20-30 років він ввійде в майже усі сфери життя людини. Тому був розроблений протокол IPv4 лише з 4.3 мільярдами адрес (типу 123.123.123.123).

Здавалося цих адрес має вистачити майже усім людям на Землі, але з самого початку IP-адреси роздавались компаніям, організаціям та університетам великими пачками «про запас» (зараз деякі американські виші мають більше IP-адрес ніж вся Україна). Також ІР-адреси потрібні не лише комп’ютерам користувачів, але й серверам, маршрутизаторам та іншому мережевому обладнанню. Ну і ще до всього почалася ера мобільних телефонів з доступом до Інтернету, таким чином кожній людині вже потрібно як мінімум 2-3 IP-адреси.

Як тимчасове вирішення проблеми з лімітом IP-адрес з’явився NAT. Це коли локальна мережа має одну «білу» IP-адресу а всі комп’ютери в цій мережі використовують «сірі» адреси типу 192.168.0.1. Але такий підхід має й недоліки — два комп’ютера з різних мереж з «сірими» IP-адресами не можуть спілкуватися напряму (актуально для програм типу Skype, eMule чи BitTorrent). Також комп’ютери з «сірими» IP-адресами важко однозначно ідентифікувати на сайті (бо за межами своєї мережі вони використовують одну і ту саму «білу» IP-адресу).
Для прикладу, на Укрбаші якщо хтось з «сірою» ІР-адресою проголосував за цитату то більше з цієї мережі за цю цитату голосувати не можна (це компроміс між зручністю та захистом від накруток).

На початку 90х (через 10 років після запровадження IPv4) почали працювати над новим протоколом, який пізніше назвали IPv6. Основна відмінність IPv6 від IPv4 — на кожну людину припадає по 300 мільйонів адрес (непоганий запас, правда?). Офіційно протокол був прийнятий в 1996 році і з того часу провайдерам рекомендовано переходити на нього.

Але пройшло вже 15 років але ми й досі використовуємо IPv4. Справа в тому, що для глобального впровадження IPv6 потрібно, щоб його підтримували на всьому маршруті від користувача до сайту (ПЗ на комп’ютері, обладнання в локальній мережі, обладнання провайдера, обладнання магістрального провайдера, ПЗ на сервері і т.п.) а це не так просто 🙂

В цьому дописі я опишу 2 випадки — як додати підтримку IPv6 на сервер та в свою локальну мережу (чи лише комп’ютер).

Сервер
Я маю віртуальний сервер на Linode.com але мій хостер поки не надає IPv6 адреси. Тому я використав тунель, наданий компанією Hurricane Electric. Реєструємось на сайті і маємо можливість отримати до 5 тунелів безкоштовно.

На сервері в мене Ubuntu, для інших ОС налаштування можна глянути тут.
Для налаштування потрібно додати в файл /etc/network/interfaces ось такі рядки (замінивши виділене):

auto hetunnel # to have the interface auto restart on every reboot
iface hetunnel inet6 v4tunnel
	address HESupplied-ClientIPv6address
	netmask 64
	ttl 64
	gateway HESupplied-ServerIPv6address
	endpoint HESupplied-ServerIPv4address
	local localIPv4address # needed if you have more than one v4 address

Після цього потрібно або підняти інтерфейс hetunnel або просто перевантажити сервер.

Якщо все пройшло добре то буде працювати ось така команда:

ping6 ipv6.google.com
PING ipv6.google.com(2a00:1450:8006::68) 56 data bytes
64 bytes from 2a00:1450:8006::68: icmp_seq=1 ttl=57 time=7.57 ms
64 bytes from 2a00:1450:8006::68: icmp_seq=2 ttl=57 time=7.60 ms
^C
--- ipv6.google.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 7.575/7.589/7.604/0.088 ms

Після цього потрібно переглянути усе ПЗ, що має якийсь стосунок до ІР-адрес, і додати підтримку IPv6 (змінити конфіги, переписати скрипти і т.п.). Я перевів свій сайт mrgall.com на IPv6 досить швидко, для цього було досить переписати пару функцій в php скриптах та трохи змінити mysql базу (бо IPv6 адреси довші за IPv4).
Щоб домен був доступний для клієнтів з IPv6 потрібно в ньому прописати запис типу AAAA:

Локальна мережа / Комп’ютер
Спробуйте зайти на ipv6.google.com (або ipv6.mrgall.com), якщо ці сторінки у вас відкрилися — вітаю, вам нічого робити не потрібно 🙂

В моєму випадку мій провайдер теж поки не надає адрес IPv6, тому довелося налаштовувати тунель від HE на Airport Express.
Реєструємо новий тунель, відкриваємо AirPort Utility, шукаємо вкладку IPv6 і вводимо свої дані:

Після цього чекаємо перевантаження Airport Express, перепідключамо свої залізяки до мережі і пробуємо щось пропінгувати:

ping6 ipv6.google.com
PING6(56=40+8+8 bytes) 2001:470:c98a::xxx --> 2a00:1450:8007::6a
16 bytes from 2a00:1450:8007::6a, icmp_seq=0 hlim=56 time=58.366 ms
16 bytes from 2a00:1450:8007::6a, icmp_seq=1 hlim=56 time=58.293 ms
^C
--- ipv6.l.google.com ping6 statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 58.293/58.329/58.366/0.037 ms

Висновки
Налаштувати IPv6 на своєму сервері чи в локальній мережі можна вже зараз (в обхід провайдера). Звісно цей протокол поки використовується лише для тестування, потрібно чекати його глобального впровадження провайдерами. Але щоб бути готовим до переходу в майбутньому, варто почати тестувати IPv6 вже зараз.

До речі, 8 червня 2011 року великі гравці Інтернету (Google, Yahoo, Facebook) будуть публічно тестувати IPv6 щоб дізнатися, чи готовий Інтернет до IPv6. Я думаю в цей день в невеликої частки людей будуть проблеми (таке можливо, коли провайдер роздає IPv6-адреси клієнтам але не забезпечує нормальну роботу цього протоколу в своїй мережі) але в цілому експеримент буде вдалий і за 2-3 роки ми всі перейдемо на IPv6.