Pull to refresh
0
0

Web-developer

Send message

Этот восхитительный Юникод

Reading time 27 min
Views 93K


Перед вами обновляемый список самых замечательных «вкусностей» Юникода, а также пакетов и ресурсов

Юникод — это потрясающе! До его появления международная коммуникация была изнурительной: каждый определял свой отдельный расширенный набор символов в верхней половине ASCII (так называемые кодовые страницы). Это порождало конфликты. Просто подумайте, что немцам приходилось договариваться с корейцами, где чья кодовая страница. К счастью, появился Юникод и ввёл общий стандарт. Юникод 8.0 охватывает более 120 000 символов из более 129 письменностей. И современные, и древние, и до сих пор не расшифрованные. Юникод поддерживает текст слева направо и справа налево, наложение символов и включает самые разные культурные, политические, религиозные символы и эмодзи. Юникод потрясающе человечен, а его возможности сильно недооцениваются.
Читать дальше →
Total votes 64: ↑64 and ↓0 +64
Comments 56

Big Data от А до Я. Часть 1: Принципы работы с большими данными, парадигма MapReduce

Reading time 6 min
Views 510K

Привет, Хабр! Этой статьёй я открываю цикл материалов, посвящённых работе с большими данными. Зачем? Хочется сохранить накопленный опыт, свой и команды, так скажем, в энциклопедическом формате – наверняка кому-то он будет полезен.



Проблематику больших данных постараемся описывать с разных сторон: основные принципы работы с данными, инструменты, примеры решения практических задач. Отдельное внимание окажем теме машинного обучения.



Начинать надо от простого к сложному, поэтому первая статья – о принципах работы с большими данными и парадигме MapReduce.


Читать дальше →
Total votes 58: ↑51 and ↓7 +44
Comments 35

Козырная карта Интернет­-магазина: исследование юзабилити процесса покупки онлайн

Reading time 8 min
Views 26K
Не нужно проводить исследования и сложные подсчёты — достаточно оглянуться вокруг — все больше времени люди проводят с гаджетами и электронными устройствами. Так, только обладателей смартфонов в России насчитывается около 30 миллионов. При этом структура использования становится все более интересной и многообразной: пользователи имеют несколько аккаунтов, синхронизируют устройства, продолжают прерванные сессии на другом гаджете. Эта тенденция оказывает серьезное влияние и на всю сферу электронной коммерции — люди все больше не только выбирают товары в Интернете и читают отзывы о них, но и совершают покупки онлайн. Всю серьезность роста интернет-торговли подтверждают усилия, которые предпринимают крупнейшие корпорации для обслуживания подобных сделок: ярким примером могут служить Яндекс.Маркет, Google Play и активное развитие сервисов онлайн-рекламы.


Читать дальше →
Total votes 21: ↑19 and ↓2 +17
Comments 7

Почему читабельность кода имеет значение?

Reading time 7 min
Views 5.2K
Понятно, что напрашивающийся (и правильный) ответ — «Потому что код приходится не только писать, а и читать». Едва ли этот ответ стоит целого поста, но автор им не ограничивается.

Последнее время мои коллеги огрызаются на мои неустанные замечания о стиле в рецензиях на их код. Я уделяю все больше и больше внимания тому, что можно с полным основанием назвать косметикой. Да, есть плохие стили кода, есть лучшие, но все они всего лишь соглашения. Нельзя отрицать, что некоторые из них действительно улучшают общее качество кода, но вне зависимости от того, сколько мы спорим о пробелах и табуляции, они остаются субъективными предпочтениями, часто делом вкуса.

Впрочем, меня беспокоит не качество кода — не настолько, как напряжение зрения и случайные ошибки чтения, которые тоже определяют качество кода. Мы часто бьемся над ошибками, которых можно было бы избежать, если бы не спешка и недопонимание.

Разработчики не только пишут код — большую часть нашего времени мы добавляем, убираем и редактируем небольшие его фрагменты, фактически вносим мелкие изменения в огромный код. Независимые фрагменты кода, написанные с нуля, попадаются редко — если, конечно, мы не начинаем новый проект. Большинство наших проектов — наследие многих поколений разработчиков до нас. Что бы мы ни делали — добавляли новую функциональность или изменяли старую — нам приходится читать код, чтобы выяснить, какая команда что делает и как лучше всего реализовать нашу задумку. Даже при работе над совершенно независимым модулем или классом, как только мы написали первые строки, нам приходится возвращаться к ним снова и снова, чтобы вплетать в них новый код.

Читать дальше →
Total votes 80: ↑65 and ↓15 +50
Comments 28

Многопользовательский чат с использованием WebRTC

Reading time 7 min
Views 66K
image

WebRTC – это API, предоставляемое браузером и позволяющее организовать P2P соединение и передачу данных напрямую между браузерами. В Интернете довольно много руководств по написанию собственного видео-чата при помощи WebRTC. Например, вот статья на Хабре. Однако, все они ограничиваются соединением двух клиентов. В этой статье я постараюсь рассказать о том, как при помощи WebRTC организовать подключение и обмен сообщениями между тремя и более пользователями.
Читать дальше →
Total votes 26: ↑22 and ↓4 +18
Comments 9

Справочник методов console в JS

Reading time 6 min
Views 34K
Со времён систематизации методов объекта console прошло достаточно много времени, некоторые браузеры получили поддержку недостающих ранее методов. Таблица вызывает естественный интерес у разработчиков, поэтому — почему бы её не обновить, дополнив в одной статье описаниями? Github.
Читать дальше →
Total votes 44: ↑40 and ↓4 +36
Comments 12

Верстка email рассылок от А до Я для чайников

Reading time 9 min
Views 403K
Уже 3 с лишним года занимаюсь дизайном и версткой почтовых рассылок, которые ориентированы на англоязычных пользователей. За время работы перелопатили огромную кучу информации, перепробовали много вариантов верстки, набили достаточное количество шишек. Были найдены и исправлены типичные баги, которые в той или иной мере повторялись во всех почтовых клиентах. Также нашлись проблемы с некоторыми CSS свойствами — различные почтовые клиенты интерпретировали их по разному. Каждое письмо тестировалось на самых популярных почтовых клиентах: Gmail, Outlook, Yahoo, Android, iOS, MozillaThunderbird, Microsoft Outlook, The Bat. Рассылки ходят на сотни миллионов пользователей и приносят очень хорошие результаты. Итак, приступим к изучению.
Читать дальше →
Total votes 66: ↑62 and ↓4 +58
Comments 35

Общение скриптов из разных вкладок браузера

Reading time 3 min
Views 18K
Мне захотелось наладить общение скриптов из разных вкладок браузера. Будущий API SharedWorker позволяет передавать данные между разными iframe и даже вкладками или окнами. В Chrome он работает давно, в Firefox – недавно, а в IE и Safari его не видать. Но существует кроссбраузерная альтернатива, о которой мало кто знает. Давайте разбираться.

Представьте, что на одной вкладке человек залогинился, затем открыл другую, и там разлогинился. На первой он вроде как залогинен, но когда он сделает там что-либо, ему выдадут ошибку. Хорошо было бы хотя бы показать ему диалог о том, что он разлогинился и ему надо войти ещё раз.
Читать дальше →
Total votes 31: ↑27 and ↓4 +23
Comments 15

Уязвимости публичных терминалов: как взломать велопрокат и поликлинику

Reading time 6 min
Views 96K
В этом году Москву охватила настоящая велосипедная лихорадка. Количество станций велопроката было увеличено с 79 до 150, а услугами аренды воспользовались 90 тыс. человек. Пока двухколесные друзья отдыхают на зимних каникулах, расскажем об уязвимостях терминалов для оплаты аренды велосипедов, которые поставили под угрозу безопасность персональных данных и электронных кошельков пользователей, а также заставили задуматься о новой парадигме атак на корпоративные сети.

image

Платежные и информационные терминалы сегодня функционируют на улицах, в торговых центрах, в аэропортах, в поликлиниках, в метро. Большинство таких устройств работает на базе Windows, в режиме так называемого киоска, который позволяет запускать на компьютере одно основное полноэкранное приложение, заданное администратором. Функциональность терминала существенно расширяется, если выйти из режима киоска в операционную систему.
Читать дальше →
Total votes 101: ↑95 and ↓6 +89
Comments 47

Качество без «наворотов» или как я выбирал видеорегистратор

Reading time 9 min
Views 24K
В 2013 году в России произошло 204 тысячи ДТП – всего на 0,2% больше, чем годом ранее. Зато продажи регистраторов в стране за тот же период выросли на 30%, а в 2012 году вообще на 80% – народ понимает, что при одной и той же аварии наличие/отсутствие «чёрного ящика» может радикально изменить оценку инцидента компетентными органами. До последнего времени я периодически посматривал видео с регистраторов на YouTube, ведь иной раз сюжет и игра «актёров» уделывают голливудские блокбастеры по зрелищности. А недавно и сам попал в ДТП, в котором нежелание приобрести регистратор и спорные обстоятельства происшествия лишили меня внушительной суммы денег, времени и нервов. Пришлось отложить чтение интересных постов на Geektimes и взяться за внимательное изучение соответствующей тематики. Во что это вылилось – читайте далее.

Читать дальше →
Total votes 37: ↑25 and ↓12 +13
Comments 41

Поиск на сайте своими руками

Reading time 15 min
Views 188K


Наверное, многие когда-нибудь задумывались, как сделать поиск на сайте? Безусловно, для крупных сайтов с большим количеством контента поиск является просто незаменимой вещью. В большинстве случаев пользователь, впервые посетив Ваш сайт в поисках чего-либо важного, не станет разбираться в навигационных панелях, выпадающих меню и прочих элементах навигации, а в спешке попытается найти что-нибудь похожее на поисковую строку. И если такой роскоши на сайте не окажется, либо он не справится с поисковым запросом, то посетитель просто закроет вкладку. Но статья не о значении поиска для сайта и не о психологии посетителей. Я расскажу, как реализовать небольшой алгоритм полнотекстового поиска, который, надеюсь, избавит начинающих разработчиков от головной боли.
Читать дальше →
Total votes 54: ↑36 and ↓18 +18
Comments 39

MySQL шпаргалки

Reading time 3 min
Views 817K
Часто, когда разрабатываешь сайт, замечаешь, как на одни и те же грабли наступают разработчики при проектировании базы данных.

Сегодня я решил опубликовать свои шпаргалки, на самые часто встречающиеся ошибки при работе с MySQL.

Читать дальше →
Total votes 215: ↑193 and ↓22 +171
Comments 230

Liberator признали смертельным оружием

Reading time 1 min
Views 115K
image
Уже хорошо известный пистолет Liberator, который можно распечатать на 3D-принтере, Бюро по контролю за продажей табака, алкоголя, огнестрельного оружия и взрывчатки (Bureau of Alcohol, Tobacco, Firearms and Explosives — ATF) США признало смертельным оружием.

Эксперты Бюро поступили просто — скачали CAD-файлы пистолета, свободно доступные в Интернете, напечатали требуемое количество оружия и провели испытания. В итоге выяснилось, что пуля 38-го калибра, выпущенная из Liberator, способна проникать через несколько дюймов человеческой плоти, нанося повреждения жизненно важным органам и даже пробивать череп — правда, расстояние до цели и то, как влияет одежда на эффективность выстрела, не указывается.
Узнать подробности
Total votes 63: ↑60 and ↓3 +57
Comments 271

Панорамная HD-камера Giroptic: снимает под водой, вкручивается в патрон от лампочки, стримит через Ethernet и WiFi

Reading time 2 min
Views 35K
Кампания Giroptic на Кикстартере через десять дней после запуска превысила первоначальную цель в 150 000 долларов в четыре раза. Хотя в ней нет каких-либо революционных технических новшеств, она подкупает продуманностью дизайна и обилием возможностей, многие из которых ориентированы на профессиональное использование в видеосъёмке или системах наблюдения.

Giroptic может работать под водой на глубине до 10 метров (класс водонепроницаемости IPx8). Чтобы объективы нормально работали под водой, на камеру надеваются герметичные «очки», создающие воздушную прослойку между объективами и водой. Угол обзора камеры — 360 градусов по горизонтали и 300 — по вертикали. Съёмку обеспечивают 3 камеры с качественными стеклянными объективами «рыбий глаз». Разрешение камеры в режиме видео — 2048 х 1024, в режиме фото — 4096 х 2048, с возможностью делать до 3-х снимков в секунду.


Читать дальше →
Total votes 29: ↑27 and ↓2 +25
Comments 14

Поведенческие факторы и с чем их едят

Reading time 5 min
Views 3.8K

Доброго времени суток!
Более подробно остановимся на:
  • Поведенческие факторы? Курим или реальность? А как пощупать?
  • Нужно построить зиккурат больше информации. Откуда поисковые системы узнают о поведении пользователей?
  • Чего ПС ценят в поведении людей? Основные факторы
  • Как заставить людей вести себя хорошо! Плетка? Пряник?
  • Ну и на последок…
Читать дальше →
Total votes 21: ↑8 and ↓13 -5
Comments 11

Манипуляции с объектами на фотографиях в 3D

Reading time 1 min
Views 11K


Как сообщает CNET, исследователи из университета Carnegie Mellon разработали технологию, позволяющую делать плоские объекты на фото объёмными, и свободно манипулировать ими.
Читать дальше →
Total votes 38: ↑38 and ↓0 +38
Comments 13

[Перевод] Магические методы в PHP

Reading time 10 min
Views 94K
Если Вы когда-нибудь изучали PHP-код открытых проектов, то вы могли встречать методы, начинающиеся с двойного подчеркивания. Это и есть те самые магические методы, с помощью которых вы сможете определить поведение вашего объекта при различных манипуляциях с его экземпляром.

Предполагаю, что вы уже сталкивались с некоторыми из них, ведь существуют довольно распространенные методы, и тем не менее, я считаю, что компетентному программисту PHP необходимо уверенное владение всеми возможностями языка.
Я думаю, это можно считать, своего рода, отправной точкой в мир Магических методов.
Читать дальше →
Total votes 39: ↑16 and ↓23 -7
Comments 19

Метапрограммирование с примерами на JavaScript

Reading time 15 min
Views 42K
Эта статья, еще одна попытка переосмысления метапрограммирования, которые я периодически предпринимаю. Идея каждый раз уточняется, но в этот раз удалось подобрать достаточно простых и понятных примеров, которые одновременно очень компактны и иллюстративны, имеют реальное полезное применение и не тянут за собой библиотек и зависимостей. В момент публикации я буду докладывать эту тему на ОдессаJS, поэтому, статью можно использовать, как место для вопросов и комментариев к докладу. Формат статьи дает возможность более полно изложить материал, чем в докладе, слушатели которого, не освобождаются от прочтения.

UPD: Обновленная видеоверсия статьи на Youtube (лекция записана в Киевском политехническом институте 18 апреля 2019 года в рамках курса «100 видео-лекций по программированию»):

Читать дальше →
Total votes 52: ↑39 and ↓13 +26
Comments 23

WebRTC или как я научил нашу CRM звонить на телефоны

Reading time 7 min
Views 35K
Компания, в которой мне довелось работать, занимается продажей услуг по интернету. Каждое утро дежурная смена разбирает общий стек накопившихся заявок и начинается обзвон клиентов для уточнения заказов. В течение дня операторы еще и принимают входящие звонки. До начала моей затеи они использовали для звонков такой десктопный SIP-клиент:



Эта звонилка устанавливалась на компьютере каждого сотрудника, принимала звонки и звонила, куда надо. Чтобы сделать какие-либо изменения в настройках, нужно было обойти все машины и сделать все вручную. При этом, если сотрудник работает удаленно, приходилось его консультировать по телефону, как это все сделать. И часто это было довольно непросто.

Но самым главным траблом было отсутствие интеграции с нашей web-системой и базой данных. Такие, казалось бы простые задачи, как открытие карточки клиента на входящий звонок, сохранение статистики звонков для каждого из сотрудников и мониторинг их активности из административного web интерфейса — все это очень сложно сделать с десктопным софтфоном, даже в том случае он имеет соответствующие возможности интеграции с браузером, например с помощью плагинов.

Возникла идея объединить в одной системе и базе данных всю внутреннюю работу и звонки. Я долго допиливал нашу CRM с функцией встроенной звонилки c записью разговоров.
Для реализации звонков рассмотрел ряд технологий и пришел к выводу, что их не так уж и много. Нашлась пара опенсорсных и коммерческих реализаций, а так же несколько SAAS сервисов, которые не подходили в силу внутренних политик безопасности — обрабатывать звонки через собственный сервер.

В начале пытался использовать sipml5:

image
Читать дальше →
Total votes 32: ↑31 and ↓1 +30
Comments 26

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity