Microsoft Edge і RTC: історія болю

imageХмарна телефонія VoxImplant може приймати дзвінки та телефонувати на різні джерела. Стільникові телефони, SIP, мобільні додатки, веб сторінки. Можна подзвонити з мобільного на веб сторінку, виглядає заворожуюче. Якщо з стільниковими все зрозуміло, то можливість поговорити з браузером вимагає чого-небудь крім HTML і JavaScript. Раніше таким «що-небудь» був Flash. І ми досі не можемо його використовувати в якості fallback-варіанту. Але останні кілька років популярні браузери дзвонять зовсім не через Flash, а через HTML5 технологію «WebRTC». Яка до недавнього часу була представлена у Chrome і Firefox. Але все тече, все змінюється, і в бета-версії Microsoft Edge з'явилася підтримка WebRTC. Майже. Microsoft традиційно пішла своїм шляхом і зробила «альтернативну» реалізацію, яка називається «ORTC». Чим вони відрізняються і що довелося пережити нашим розробникам — читайте під катом.


Читати далі →

Спроба реінкарнації і вкидання в Open-Source Яндекс.Підписок

Привіт, хабрасообщество! Багато хто помітив, що Яндекс закрив сервіс підписок. Читаючи коментарі, у мене виникла ідея створити аналог. Підняти його на API від Яндекса, після чого перевести його, так би мовити, на автономне харчування, замінивши API на своє (не переживайте, я не зроблю це так непомітно, як зробив це Великий Жовтий).
Був створений репозиторій на гітхабі, зареєстрований тимчасовий домен в зоні .tk (чому тимчасовий, я думаю, пояснювати не варто :). Кому цікавий цей проект, ласкаво прошу під кат.

Читати далі →

«Never say never» або Працюємо з таймзонами правильно

Ця стаття розповідає про проблеми, які чекають програміста, який працює з часовими поясами. В теорії, начебто, все добре, просто і зрозуміло, але життя — штука складна, і на практиці часом виникають абсолютно несподівані ситуації.

TL;DR: Робота з таймзонами — це біль і приниження. Ніколи не працюйте з таймзонами!

Отже, колом твердять вам, що при отриманні часу від користувача потрібно відразу ж переводити його в UTC, працювати з часом потрібно тільки у UTC і зберігати час теж потрібно строго UTC. Рада, на перший погляд, виглядає розумним, і слідування йому робить ваше життя простіше… Якщо тільки ваша програма не передбачає складної роботи з датами. Записати в базу даних дату та час реєстрації користувача на сайті? Зберегти час відправки повідомлення або дату створення замовлення в інтернет-магазині? Вивести повідомлення в лог із зазначенням дати-часу? Використовуйте UTC і все буде в порядку, можете навіть не читати цю статтю далі. Будь поточний час можна абсолютно спокійно конвертувати у UTC і забути про проблеми. Але що, якщо ми хочемо працювати з часом в майбутньому? Або в минулому? Наприклад, якщо ми пишемо сервіс календаря, або сервіс для відкладеного відправлення повідомлень?


Читати далі →